Portable Artifacts Deck

What the portable-artifacts plugin builds, how to use it, and where it stops

Date
2026-10-13
Branch
feat/visual-artifacts
Repo
claude-skills

The idea

A script builds the page from model JSON

Good

Diagrams, dashboards, videos and explainers share the same themes. Each page opens offline in any browser.

  • Every page makes no network requests when it is viewed.
  • Validation runs before the render and names the JSON path and the fix.
  • Claude Haiku passes the eval gates for all three skills.

Skills

Each skill covers one kind of artifact

  • make-diagram

    Architecture, flow, sequence and state diagrams with zoom and hover tracing.

  • make-dashboard

    Charts and KPI pages built from local CSV, Parquet, JSON, DuckDB or SQLite files.

  • make-motion

    Short animated MP4 videos rendered from a JSON scene list.

  • make-explainer

    Recaps, checklists, concept pages and slide decks like this one.

Clip

A make-motion clip plays on its own slide

Rendered from a JSON spec. The clip never autoplays, so press play when you want it.

Workflow

Every skill follows the same four steps

  1. Write the spec

    The agent writes one JSON file.

  2. Validate it

    Each problem prints a JSON path, the problem and the fix.

  3. Build it

    The build writes one themed HTML page.

  4. Check it

    An optional headless check opens the page at two widths.

Install

One command installs all three skills together

bash
npx skills add abhijitbansal/claude-skills --skill make-explainer make-diagram make-dashboard
Name all three skills. Installing make-explainer alone fails on its first diagram or chart section.

Eval build

Claude Haiku built every eval prompt

Dashboard builds
14 of 14
Claude Haiku, measured
Diagram builds
8 of 8
Claude Haiku, measured
Explainer builds
8 of 8
Claude Haiku, measured
Median validate runs
1
Median for each of the three skills

Haiku vs Sonnet

Haiku and Sonnet both pass every build

Measured with node eval/run-eval.mjs. A local gemma4 model passed fewer builds and is kept for reference only.
SkillModelValid buildsMedian seconds
make-dashboard v2Claude Haiku14 of 1423
make-dashboard v2Claude Sonnet14 of 1422
make-diagramClaude Haiku8 of 821
make-diagramClaude Sonnet8 of 824
make-explainerClaude Haiku8 of 836
make-explainerClaude Sonnet8 of 834

Limits

Four limits to plan around before you ship

SeverityRiskMitigation
Medium A local gemma4 model fails most explainer builds Run the explainer on Claude Haiku or Claude Sonnet.
Medium make-motion was not re-evaluated on this branch Check its output by hand before a release.
Low Browser find searches only the current slide in a deck Use the O key to open the outline and jump to a slide.
Low Each static chart ships four drawings, which adds page weight Keep long pages to a few charts.

Before you start

Install all three skills before asking for decks

The explainer embeds diagrams and charts from its sibling skills. Each page works offline; keep a page and its assets folder together when you share it.

Outline

  1. Portable Artifacts Deck
  2. A script builds the page from model JSON
  3. Each skill covers one kind of artifact
  4. A make-motion clip plays on its own slide
  5. Every skill follows the same four steps
  6. One command installs all three skills together
  7. Claude Haiku built every eval prompt
  8. Haiku and Sonnet both pass every build
  9. Four limits to plan around before you ship
  10. Install all three skills before asking for decks