Web Artifacts Builder
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
Audit whether docs keep pace with components: undocumented components, stale docs, orphaned pages, with join confidence.
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops docs-coverage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/docs-coverage .claude/skills/docs-coverage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .claude/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops docs-coverage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/docs-coverage .agents/skills/docs-coverage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .agents/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops docs-coverage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/docs-coverage .cursor/skills/docs-coverage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .cursor/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/murphytrueman/design-system-ops.git --path skills/docs-coverage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops docs-coverage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/docs-coverage .gemini/skills/docs-coverage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .gemini/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install murphytrueman/design-system-ops docs-coverageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/docs-coverage .github/skills/docs-coverage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .github/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add murphytrueman/design-system-ops --skill docs-coverage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install murphytrueman/design-system-ops docs-coverage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/docs-coverage .opencode/skills/docs-coverage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "docs-coverage" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/docs-coverage into .opencode/skills/docs-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-coverage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
docs-coverageAudit whether docs keep pace with components: undocumented components, stale docs, orphaned pages, with join confidence.
Docs Coverage is an agent skill from murphytrueman/design-system-ops. Audit whether docs keep pace with components: undocumented components, stale docs, orphaned pages, with join confidence. Triggers: docs coverage, which components are undocumented, stale docs check. Not for writing docs (usage-guidelines) or doc analytics (adoption-report).
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteGrepGlobBash(cat:*)Bash(find:*)Bash(head:*)Bash(ls:*)Bash(sort:*)Bash(tail:*)…and 3 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Docs Coverage loads about 4.2k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 2,285 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 2,285 words, ~4,167 tokens.
.claude/skills/docs-coverage/SKILL.md (or your agent's skills folder).A skill for auditing whether a design system's documentation surface keeps pace with its components. It measures the code (the source of truth for what exists) against each documentation surface and reports three things: coverage gaps (components with no documentation), staleness (documentation that predates the component's last code change), and orphaned docs (pages for components that no longer exist). Produces a severity-rated finding table with per-signal confidence labelling.
Confirm that every path in this skill's frontmatter references: exists relative to this SKILL.md. If any is missing, stop: the install is incomplete, usually because a flattening installer (for example npx skills install) dropped the repo-root knowledge-notes/ directory. Tell the user to reinstall by a method in 1-INSTALL.md and run verify-install.sh from the install root. Proceed without the references only if the user explicitly says to, and then say in the output that it was produced without the pack's reference material.
Code is the source of truth for what components exist; the documentation surface is measured against it. A component in code with no docs is a coverage gap; a page for a deleted component is an orphan; a page older than the component's last change is a staleness risk.
This skill is built to work with no integration at all: a components directory plus a Storybook build plus git history answer coverage and staleness for most teams. Hosted platforms (Zeroheight, Supernova, custom docs sites) are optional layers that light up when configured — never prerequisites. The audit never blocks on an integration; it logs what is unavailable and proceeds with what it can reach.
The hard part is trust. Coverage is a join between two lists — components in code and entries in the doc surface — and the join is only as reliable as the key that links them. Every coverage finding carries a confidence tier so a fuzzy guess is never presented as a fact. See documentation-coverage.md for the full model.
If .ds-ops-config.yml exists, follow the configuration-and-recurring knowledge note (../../knowledge-notes/configuration-and-recurring.md) for loading, integration fallbacks and recurring runs. This skill reads:
system.framework — affects how component files are discovered (e.g. .tsx / .vue / .twig)severity.* — severity-rating overridesintegrations.storybook.static_path — local Storybook build directory (e.g. storybook-static); the preferred sourceintegrations.storybook.url — published Storybook URL for pulling /index.json when no local build existsintegrations.documentation — optional hosted platform: platform, url, api_key_env, plus styleguide_id (Zeroheight) or design_system_id (Supernova)integrations.github — change history when the audit runs outside a local clonedocs_coverage.staleness_threshold_days — grace window before a doc is flagged stale (default 90)recurring.* — trend comparison (see Recurring workflow)Storybook — the primary surface (integrations.storybook.enabled: true or a local build):
integrations.storybook.static_path (default storybook-static/index.json). No server, no auth.<url>/index.json.*.stories.* grouped by their title (or the default export's component) give rung 1; a tags: ['autodocs'] entry or a sibling MDX file gives a docs page. Say under Scope that the inventory came from story source, not an index, and that componentPath joins weren't available.v field, which tracks the Storybook version: v: 3 is the SB 6 stories.json (entries under the stories key); v: 4 and v: 5 are the SB 7+ index.json (entries under entries), and v: 5 (SB 8.1+) adds componentPath. componentPath is opt-in and not guaranteed even on recent Storybook — use it for the Tier A join when present, and fall back to the Tier B name join whenever it is absent, regardless of v. A v: 3 stories.json has no type: 'docs' entries at all, so it can't show rung 2: mark rung 2 unknown for v3, unless you read the MDX files or each story's parameters.docs directly.@storybook/addon-mcp) is optional — at the time of writing it needs a running server and is React-only/experimental. Use it only if the tools are already available; never make it a dependency.Documentation platform — optional layers (integrations.documentation.enabled: true):
zeroheight: use the REST API (Enterprise) — GET /styleguides/{id}/pages and GET /pages/{id} give the documented-page set and updated_at per page (high-confidence staleness). There is no components endpoint, so reconstruct the coverage diff by name-matching pages against the code/Storybook inventory (Tier C).supernova: use the MCP "Relay" or @supernovaio/sdk — get_design_system_component_list vs get_documentation_page_list gives a coverage diff (heuristic link, Tier B/C). Per-page staleness timestamps are not reliably exposed — mark staleness unknown unless a page timestamp is actually present.custom: crawl the sitemap or rendered HTML for page titles; name-match only (Tier C).Establish what components exist before looking at any documentation.
codebase-index output exists (.ai/index/), use its component list — it is already resolved and classified.src/index.ts, or each package's entry point in a monorepo), use its component exports as the inventory — that's what consumers see and what needs docs. Internal building blocks that aren't exported don't need public docs; count them separately if at all.src/components/**, packages/*/src/**, lib/components/**, app/components/**. Treat each component file/symbol as a candidate (e.g. Button.tsx, not Button.test.tsx, Button.stories.tsx, or index.ts barrels), and say the inventory may include internal components.Produce a brief inventory line before continuing: N components found across M directories. If discovery finds nothing, ask the user where components live.
For each available surface, list what is documented.
index.json. Group entries by title. For each component, record: has a type: 'story' entry (rung 1, exists); has a docs page — autodocs or MDX via tags (unknown for a v3 stories.json, see above); and the resolved componentPath and importPath. A docs page alone doesn't make a component described: the autodocs tag generates a page even when no prop has a description. Rung 2 needs the page and descriptions on most props, from argTypes in the CSF file or JSDoc on the props interface. Record the prop-description ratio per component (described props of total) and report it; a page with 0 of 12 props described is rung 1 with a docs page, not rung 2. Also note play presence (interaction tests) where the CSF is read.figma_get_component, or the official MCP's get_design_context on the library node): a documentation surface for designers. Record which components have a non-empty description and report it as its own column, not merged into the Storybook rungs.updated_at/last-modified timestamp.usage-guidelines output, MDX "When to use" sections, a Zeroheight guideline page), record which components reach rung 3.Join code components to documentation entries using the Tier A / B / C reliability hierarchy in documentation-coverage.md (file path, then symbol name, then fuzzy title match), and record the tier on every match. Never state a Tier C result as fact.
Before reporting anything as undocumented, run a positive control: confirm the join matches a component you can see is documented (open its story or page). If the join misses it, the key doesn't fit this codebase — fix it before reporting gaps.
From the join, produce:
For each documented component, compare change dates:
git log -1 --format=%cI -- <component source path>. If the latest commit looks test-only or cosmetic, check it with git log -1 --name-only -- <component path> and lower confidence rather than excluding file types.git log -1 --format=%cI -- <story/MDX file>, or the platform timestamp (updated_at).component_last_change − doc_last_change > staleness_threshold_days (default 90). A doc the same age as or newer than the component is never stale.git log returns empty output (not an error) for a file with no commits in the current branch/clone. Treat an empty result as untracked and mark staleness unknown — never as fresh. Do the same when a platform exposes no timestamp. Prefer a full clone: shallow clones and renames without --follow give misleading dates.See documentation-coverage.md for why this proxy over-flags, how staleness and join confidence combine, and how to frame stale findings as a risk ("docs predate a code change on [date] — confirm they still match", with both dates shown) rather than a defect.
Open with a headline sentence stating overall state and where to focus. Example: "Of 84 components, 71 have a story but only 38 have a docs page, and 9 docs pages predate a code change. The coverage floor is solid; the described/guided layer and 9 staleness risks are where to focus."
Structure the report:
Date: [date] Inventory: [N components] · Surfaces audited: [Storybook / Zeroheight / Supernova / custom] · Join confidence: [the tier used for most components — A, B, or C]
Summary One paragraph. Overall state, the most urgent gap, and an explicit note on which signals were measured vs estimated or unavailable. Write it like a peer review, not a compliance filing.
Coverage by rung — count each component at the highest rung it reaches. The rows are mutually exclusive (a "guided" component is not also counted under "described" or "exists"), so they sum to the full inventory. "Undocumented" is the rung-0 bucket: components on none of the three documentation rungs.
| Rung | Count | % of inventory |
|---|---|---|
| Guided (usage guidance) | ||
| Described (docs/autodocs page, no usage guidance) | ||
| Exists (≥1 story, no docs page) | ||
| Undocumented (no surface) |
Findings List each finding with:
Orphaned documentation List pages/stories with no matching component, with the suggested removal.
Action list
Scope
End with the closing note below.
Follows the recurring-run procedure in the configuration-and-recurring note. Specific to this skill:
End the report with:
A note on context: This audit measures your documentation surface against your code — it does not see why a component was left undocumented or why a doc predates a change. Some gaps are deliberate (internal-only components) and some "stale" docs are still correct after a refactor. Tier C matches are best-guesses, not facts. If a finding describes an intentional choice, let me know — I'll calibrate future runs. The goal is to surface drift you haven't seen, not to second-guess decisions you've already made.
© murphytrueman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/docs-coverage of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
Docs Coverage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Docs Coverage this skillmurphytrueman/design-system-ops | 203 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Web Artifacts Builderanthropics/skills | 180k | 41 repos | ~769 | Automated safety check: Pass | Apache-2.0 | |
| React Doctormakeplane/plane | 61k | 12 repos | ~657 | Automated safety check: Pass | AGPL-3.0 | |
| Impeccablebestofjs/bestofjs | 3.1k | 27 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Web Interface Guidelines Reviewervercel-labs/openreview | 1.7k | 98 repos | ~308 | Automated safety check: Pass | None |
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
makeplane/plane
Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.
bestofjs/bestofjs
A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
vercel-labs/openreview
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
murphytrueman/design-system-ops
Write the AGENTS.md that tells coding agents how to use this design system: where things live, sourced rules, how to check work, what not to do; Claude, Cursor or Copilot pointers on request.
murphytrueman/design-system-ops
Write a six-section prose description (purpose, props, anti-patterns, composition, accessibility, examples) for a Figma component's description field so LLMs read it via MCP.
murphytrueman/design-system-ops
Write release notes, a migration guide and a team announcement for a design system change that is already decided, scaled to its impact.
murphytrueman/design-system-ops
Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.
murphytrueman/design-system-ops
Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.
murphytrueman/design-system-ops
Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.
Categories
Audit whether docs keep pace with components: undocumented components, stale docs, orphaned pages, with join confidence. Docs Coverage is an agent skill from murphytrueman/design-system-ops. Audit whether docs keep pace with components: undocumented components, stale docs, orphaned pages, with join confidence.
Docs Coverage fits situations like: frontend & Design work in your project.
Run `npx skills add murphytrueman/design-system-ops --skill docs-coverage -a claude-code`. Or copy the skill folder (skills/docs-coverage in murphytrueman/design-system-ops) into .claude/skills/docs-coverage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill docs-coverage -a codex`. Or copy the skill folder (skills/docs-coverage in murphytrueman/design-system-ops) into .agents/skills/docs-coverage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add murphytrueman/design-system-ops --skill docs-coverage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/docs-coverage, .gemini/skills/docs-coverage, .github/skills/docs-coverage and .opencode/skills/docs-coverage in your project.
Going by SKILL.md and its folder, Docs Coverage needs the command-line tools its instructions call (git and npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(sort:*), Bash(tail:*), Bash(wc:*), Bash(git log:*), Bash(git ls-files:*).
SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Docs Coverage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Docs Coverage: Web Artifacts Builder (anthropics/skills, 180k stars), React Doctor (makeplane/plane, 61k stars), Impeccable (bestofjs/bestofjs, 3.1k stars) and Figma Design System Builder (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
murphytrueman (a GitHub user) maintains it in murphytrueman/design-system-ops, which has 203 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 24, 2026.
Source: murphytrueman/design-system-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.