agentleFS
freemafreema/ai-skills/skills/publish-report-artifact/SKILL.md

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.

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
  1. Distinctive:

    When an analysis produces something colleagues will read — a data audit, an incident timeline, a reconciliation report, a comparison — the …

    line 18
  2. Distinctive:

    Don't wait to be asked.

    line 25
  3. Distinctive:

    Aggregates only, never PII: No e-mail addresses, tokens, or per-person rows with identifying data — values + counts, or hashes where …

    line 59
  4. Very specific:

    Use the reader's locale for numbers (thousands separator, % spacing) and tabular-nums wherever digits align.

    line 62
  5. Very specific:

    Start from references/report-template.html (proven skeleton — token-based palette, both themes, sticky table header, chips, stat tiles) and …

    line 68
  6. Very specific:

    Don't emit <!DOCTYPE>, <html>, <head>, <body> — the publisher wraps the file.

    line 91

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. Build the page as a single HTML file in the session scratchpad directory (never in the user's repo).
  2. Publish with the Artifact tool: set a stable emoji favicon, a one-sentence description, and a <title> in the HTML.
  3. 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.
  4. 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)

  1. 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.
  2. Stat tiles — 2–4 headline numbers with one-line explanations. This is what management reads; make the numbers carry the story.
  3. Key-insight callout — the one paragraph you'd say out loud in a meeting (root cause, "it is NOT caused by X", decision needed).
  4. Detail table(s) — the full data, one row per entity, with status chips for anomalies (mixed values, placeholder image, all empty, …).
  5. 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) and tabular-nums wherever 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:

TokenLightDarkRole
--paper / --ink#FBFAF7 / #22242A#17181C / #E7E5E0ground / text
--accent#2456A6#6FA3F0brand accent — header rule, eyebrow, callout bar
--warn-fg#92580A#E4A64Canomaly chips, elevated percentages
--crit-fg#A50F27#F2778Acritical chips (100 % empty, broken data)
--ok-fg#1A7F4B#55B583healthy 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 div with overflow-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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.