publish-report-artifact
Skill5 starsChanged 21 days agoMITView on GitHub
Publish analysis results as a polished, shareable web page (Claude Artifact) instead of pasting a markdown table into the terminal. Use when the deliverable is a report, audit, data table, comparison, incident timeline, or migration inventory that the user will share with colleagues (management, product, non-developers). Triggers on: "make a report", "share this with the team", "prepare something I can send", or whenever an analysis produces a table or findings worth reading outside the terminal. Covers page structure, PII rules for aggregated data, a token-based house style with light/dark themes, and the publish/update workflow.
In this repository19 other files it gives its agents.
- code-reviewSkill
- context-guardSkill
- graylog-searchSkill
- html-slide-deckSkill
- image-generationSkill
- implement-specSkill
- jiraSkill
- lighthouseSkill
- mac-maintenanceSkill
- mysql-schema-designSkill
- phaser-gamedevSkill
- pixelart-cleanupSkill
- pixellab-apiSkill
- pixellabSkill
- product-hunt-launchSkill
- promo-videoSkill
- seo-blogSkill
- seo-optimizationSkill
- usage-statuslineSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
When an analysis produces something colleagues will read — a data audit, an incident timeline, a reconciliation report, a comparison — the …
- Distinctive: line 25
Don't wait to be asked.
- Distinctive: line 59
Aggregates only, never PII: No e-mail addresses, tokens, or per-person rows with identifying data — values + counts, or hashes where …
- Very specific: line 62
Use the reader's locale for numbers (thousands separator, % spacing) and tabular-nums wherever digits align.
- Very specific: line 68
Start from references/report-template.html (proven skeleton — token-based palette, both themes, sticky table header, chips, stat tiles) and …
- Very specific: line 91
Don't emit <!DOCTYPE>, <html>, <head>, <body> — the publisher wraps the file.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Publish a report as an Artifact
When an analysis produces something colleagues will read — a data audit, an
incident timeline, a reconciliation report, a comparison — the deliverable is a
link to a readable page, not a wall of terminal markdown. Claude Code's
Artifact tool publishes a self-contained HTML file to a private claude.ai URL;
the user shares it from the page's share menu.
Proactively offer this whenever the output is a shareable table or report. Don't wait to be asked.
Workflow
- Build the page as a single HTML file in the session scratchpad directory (never in the user's repo).
- Publish with the
Artifacttool: set a stable emojifavicon, a one-sentencedescription, and a<title>in the HTML. - Reply with the link plus a 3–5 line summary of what's inside. The artifact is private by default — mention that sharing is done from the page itself.
- Updates: republish the same file path in the same conversation (keeps the
URL); from another conversation pass the original URL as
url. Keep the favicon stable across updates — people find their tab by its icon.
No Artifact tool in your harness? Write the same HTML file and give the user
its path instead.
Page structure (in this order)
- Header — eyebrow label (
AREA · SYSTEM · internal), H1 with the subject and the as-of date, short lede: what the data is, where it came from, what the reader should do with it. - Stat tiles — 2–4 headline numbers with one-line explanations. This is what management reads; make the numbers carry the story.
- Key-insight callout — the one paragraph you'd say out loud in a meeting (root cause, "it is NOT caused by X", decision needed).
- Detail table(s) — the full data, one row per entity, with status chips
for anomalies (
mixed values,placeholder image,all empty, …). - Footer — data source, scan date/method, caveats, how to reproduce.
Content rules
- Write in the reader's language, for non-developers. Name things by what people recognize (mailing, contact, editor), not by API nouns.
- Aggregates only, never PII. No e-mail addresses, tokens, or per-person rows with identifying data — values + counts, or hashes where correlation is needed. Say so on the page ("Data is aggregated — no personal addresses").
- Use the reader's locale for numbers (thousands separator,
%spacing) andtabular-numswherever digits align. - Flag anomalies visually (chips), don't bury them in prose.
House style
Start from references/report-template.html (proven skeleton — token-based
palette, both themes, sticky table header, chips, stat tiles) and replace the
content. The palette is brand-neutral by design — swap --accent (and, if
you have them, the semantic tokens) for your brand's values:
| Token | Light | Dark | Role |
--paper / --ink | #FBFAF7 / #22242A | #17181C / #E7E5E0 | ground / text |
--accent | #2456A6 | #6FA3F0 | brand accent — header rule, eyebrow, callout bar |
--warn-fg | #92580A | #E4A64C | anomaly chips, elevated percentages |
--crit-fg | #A50F27 | #F2778A | critical chips (100 % empty, broken data) |
--ok-fg | #1A7F4B | #55B583 | healthy states |
Technical constraints that will bite you if ignored:
- CSP blocks all external resources — no webfonts, CDN scripts, or remote
images (external
<a href>links are fine). System font stack only, or inline a face as a data URI. - Both themes: define tokens on
:root, override in@media (prefers-color-scheme: dark)AND in:root[data-theme="dark"]/:root[data-theme="light"]— the viewer's toggle must win in both directions. - Wide tables go inside a
divwithoverflow-x: auto; the page body must never scroll horizontally. - Don't emit
<!DOCTYPE>,<html>,<head>,<body>— the publisher wraps the file; start with<title>+<style>+ content.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

