Render artifact
Skill All-The-Vibes/ATV-PaperBoard/adapters/copilot-cli/_dist/skills/render-artifact
Cross-harness HTML artifact toolkit for AI coding agents. Native plugins for Claude Code, Codex CLI, and GitHub Copilot CLI + GitHub Actions recipe for the Copilot Coding Agent. One Python core, four pillars: Enforce, Render, Persist, Compound. Apache-2.0.
npx -y skills add All-The-Vibes/ATV-PaperBoard --skill render-artifactAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Render a structured input (JSON or Markdown) into a paired HTML + DESIGN.md + meta.yaml artifact triple. Serves the result on loopback HTTP and opens a browser tab (unless running headless/remote). Invokes `paperboard render` via the atv-paperboard CLI.
SKILL.md
3.6 KB, as published. Nobody here has run it
render-artifact
Converts structured LLM output into a beautiful, linted HTML artifact governed by a DESIGN.md.
Usage
paperboard render --input <path-or-> [--design <name|path|url>] [--tier atv|pico|daisy] [--no-open]
Tier selection
- Default:
atv— the dark designed-document tier; use for dashboards, reports, and any rich multi-section output. This is the right answer in almost all cases. pico/daisy— light-document tiers; pick only when the target audience explicitly wants a lightweight, framework-styled page.
When to invoke
- The user asks to "render" or "visualize" structured output (tables, dashboards, comparisons).
- A prior tool write produced a file that looks like a data artifact.
Steps
- Collect the input path (or pipe JSON/Markdown via stdin with
--input -). - Optionally specify
--design(starter name, path, or URL) and--tier(omit foratv). - Run the command; report the triple paths and slug from stdout.
- If
--no-openwas NOT passed and the environment is non-headless, the browser opens automatically.
Output
The command writes three files and prints their paths:
<slug>.html— single-file artifact<slug>.DESIGN.md— design sidecar<slug>.meta.yaml— metadata (tier, harness, lint_passed, created_at)
Input shape — pick the richest one that fits
The atv tier renders three distinct layouts depending on what --input receives.
Prefer the richest layout the content supports — most agent output is structured
enough to use the section graph, which is the only mode that exercises the
designed-document treatment (hero strip, numbered sections, accent typography).
1. Section graph — use this for almost everything
JSON with a top-level sections: [...] array. Each entry has a kind that maps
to one of 15 emitters. Run paperboard schema to see them all, or
paperboard schema --kind <name> for fields + an example payload.
{
"title": "Pipeline Report",
"sections": [
{"kind": "hero", "eyebrow": "Release", "title": "v0.2.0 pipeline.", "sub": "All checks green."},
{"kind": "sec", "num": "01", "title": "Build matrix.",
"body": [{"kind": "status-table", "rows": [{"check": "build", "status": "PASS"}]}]}
]
}
Available kinds (see paperboard schema for full input shape per kind):
hero, sec, stack-list, dep-list, q-list, steps, code-shell,
color-strip, fit-row, anti, checklist, callout, subhead,
props-table, status-table.
2. Simple table — {title, subtitle, rows}
Use when the content is genuinely just a table and a heading. Renders as
<h1> + <h2> + <table>; no hero strip, no card sections.
{"title": "Bug Hunt", "subtitle": "Phase 7 triage", "rows": [{"id": "RW-1", "status": "FIXED"}]}
3. Markdown prose — paperboard render --input report.md
Use only when the content is genuinely prose (long-form writing, narrative
documentation). Renders the dark editorial typography in .prose mode.
No hero, no sections.
Discover the schema before constructing JSON
paperboard schema # list all 15 kinds
paperboard schema --kind hero # detail + example for one kind
paperboard schema --format json # full machine-readable dump