React Doctor
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.
Turns existing audit or health output, or saved recurring runs, into an HTML dashboard, SVG charts or Mermaid diagrams.
$ npx skills add murphytrueman/design-system-ops --skill visual-report -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install murphytrueman/design-system-ops visual-report --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/visual-report .claude/skills/visual-report && 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 "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .claude/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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/visual-reportType 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 visual-report -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install murphytrueman/design-system-ops visual-report --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/visual-report .agents/skills/visual-report && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .agents/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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 visual-report -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install murphytrueman/design-system-ops visual-report --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/visual-report .cursor/skills/visual-report && 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 "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .cursor/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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/visual-report--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 visual-report -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install murphytrueman/design-system-ops visual-report --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/visual-report .gemini/skills/visual-report && 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 "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .gemini/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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 visual-reportInstalls 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 visual-report -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/visual-report .github/skills/visual-report && 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 "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .github/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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 visual-report -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 visual-report --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/visual-report .opencode/skills/visual-report && 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 "visual-report" agent skill from https://github.com/murphytrueman/design-system-ops/tree/main/skills/visual-report into .opencode/skills/visual-report/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "visual-report", 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.
visual-reportTurns existing audit or health output, or saved recurring runs, into an HTML dashboard, SVG charts or Mermaid diagrams.
Visual Report is an agent skill from murphytrueman/design-system-ops. Turns existing audit or health output, or saved recurring runs, into an HTML dashboard, SVG charts or Mermaid diagrams. Triggers: visualise the findings, dashboard, chart, graph the trends. Does not run audits (run one first); for a written brief use stakeholder-brief.
Its SKILL.md is about 4k 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.
5 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 2 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cdn.jsdelivr.netFrom 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.
Visual Report loads about 4k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,828 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). 1,828 words, ~4,025 tokens.
.claude/skills/visual-report/SKILL.md (or your agent's skills folder).A skill for transforming audit findings, system health statuses, and saved recurring runs into visual outputs — interactive HTML dashboards, SVG charts, and Mermaid diagrams — that make design system health visible at a glance.
Output type: File creation. This skill produces HTML dashboard files, SVG chart files, or Mermaid diagram blocks that can be embedded in documentation, presentations, or shared directly.
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.
Numbers in a markdown table are accurate. They are also invisible. A stakeholder will not register "System health: 🟡 Functional with two weak dimensions" from a text report. But a radar chart showing dimension statuses — with red zones, amber zones, and green zones — communicates instantly.
Design system health data is inherently visual. Token coverage maps, component dependency graphs, severity distribution pie charts, trend lines over time — these are the natural representations of the data that audit skills produce. This skill bridges the gap between raw findings and visual communication.
This skill visualises existing findings — it does not run audits or generate new data. If no audit output or session history exists, there is nothing to visualise; run the relevant audit skill first. If the request is for a written stakeholder summary rather than a visual artefact, use stakeholder-brief instead. This skill produces HTML dashboards, SVG charts, and Mermaid diagrams — if the request is for a slide deck or PDF, the visual output from this skill can feed into those formats but this skill does not produce them directly.
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:
visuals:
brand_primary: "#0052CC" # Primary colour for charts
brand_secondary: "#FF5630" # Accent colour for warnings/critical
brand_success: "#36B37E" # Success colour
brand_neutral: "#6B778C" # Neutral/baseline colour
output_format: "html" # html, svg, or mermaid
output_directory: ".ds-ops/visuals"If no configuration exists, use these defaults:
#2563EB (blue)#DC2626 (red)#16A34A (green)#6B7280 (grey)html.ds-ops/visuals (the same as the config default, so a run with and without a config file lands in the same place)This skill accepts any of these as input:
recurring.output_directory, for trend linesBased on the input data and the request, select one or more visual types:
| Type | Best for | Format |
|---|---|---|
| Status strip | System health dimension statuses | One tile per dimension, coloured by status |
| Severity distribution | Audit findings by severity | Donut chart |
| Trend line | Metric changes over time | Line chart |
| Coverage heatmap | Token or component coverage | Grid heatmap |
| Dependency graph | Component relationships | Mermaid flowchart |
| Comparison bar | Before/after comparisons | Grouped bar chart |
| Action priority matrix | Findings by effort vs. impact | Scatter plot |
| Full dashboard | Multiple visuals on one page | HTML dashboard |
If the request is vague ("make this visual"), choose the visual type that best fits the data:
Extract:
Extract:
Extract:
metrics: [{ label, value, max, category }]
timeseries: [{ date, metric, value }]
findings: [{ id, severity, category, effort?, impact? }] # effort and impact only when the source report carries them
relationships: [{ source, target, weight }]Produce one tile per dimension, in the report's order, each carrying the dimension name, the status word and the status colour (🟢 Strong, 🟡 Functional, 🟠 Weak, 🔴 Absent), plus the key finding as a one-line caption. Statuses are ordinal labels, so a strip reads honestly; a radar chart over them implies a magnitude and an area that the labels don't have. If the user asks for a radar anyway, produce it with the status words on the axes and say in the caption that the shape is illustrative.
Implementation: an HTML flex row of cards, or an SVG row of rectangles.
Produce a donut chart showing the distribution of findings by severity.
Ring segments use the four severities from output-discipline only, ordered darkest (Critical) to lightest (Low) so the order still reads in greyscale. Each colour has at least 3:1 contrast against a white background, and every segment carries a text label:
#991B1B)#C2410C)#C27C0E)#6B7280)Use the same four colours wherever severity appears (bubble charts, stacked bars, badges). Brand colours from configuration apply to non-severity series only.
Centre text: Total finding count.
Implementation: Chart.js doughnut, or SVG arc paths.
Produce a line chart with time on the X axis and the metric on the Y axis. One line per metric being tracked.
Include:
Implementation: Chart.js line chart in HTML.
Produce a grid where:
Implementation: HTML table with CSS background colours, or SVG grid.
Produce a Mermaid flowchart showing component relationships:
graph TD
Button["Button (fan-in: 12)"]
Card["Card (fan-in: 8)"]
Modal["Modal (fan-in: 5)"]
Button --> Card
Button --> Modal
Card --> ProductCard["ProductCard"]
Card --> UserCard["UserCard"]Colour nodes by health status if data is available. Use line thickness to indicate dependency weight.
Implementation: Mermaid.js syntax block.
Produce grouped bars showing before/after values for each metric. One group per metric (e.g., violations, critical count, coverage %).
Colour coding:
Include delta labels above each bar group: "↓ 33%" or "↑ 5%"
Implementation: Chart.js grouped bar chart in HTML.
Plot it only when every finding it would show carries an effort value and an impact value from the source report: effort from an estimates table the audit produced with its assumptions (token-audit's, for example), impact from the finding's severity. If the source has no effort figures, skip the matrix and say so in the text summary. Never assign effort to a finding to make the chart possible; an invented "8–12 hrs" on a dashboard becomes a sprint commitment.
Produce a scatter plot where:
Implementation: Chart.js scatter chart with quadrant overlays in HTML.
Combine multiple charts into a single HTML page with:
Implementation: a single HTML file with all data inline. Chart.js is the one dependency; chart.js@4 on a CDN floats to the latest 4.x and fails offline or under a strict content-security policy, so either inline the library (read node_modules/chart.js/dist/chart.umd.js if the project has it) or pin the exact version (npm view chart.js version) with an integrity attribute, and say which in the footer.
The dashboard is a single HTML file. Structure:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[System Name] — Design System Health Dashboard</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js@[exact version]/dist/chart.umd.min.js" integrity="[sri hash]" crossorigin="anonymous"></script>
<!-- or inline the library so the file works offline -->
<style>
/* Inline styles — no external CSS */
/* Use CSS Grid for layout */
/* Responsive: 2 columns above 768px, 1 column below */
/* Cards with subtle shadows for key metrics */
/* Colour variables from config or defaults */
</style>
</head>
<body>
<header>
<!-- System name, date, overall health status badge -->
</header>
<p class="headline">
<!-- One-sentence headline from the source report -->
</p>
<section class="metrics-cards">
<!-- 3–5 key metric summary cards -->
</section>
<section class="charts-grid">
<!-- Individual chart containers -->
</section>
<section class="scope">
<!-- Scope: Inspected / Not inspected / reported-not-measured, from the source report -->
</section>
<footer>
<p>Generated by Design System Ops — visual-report</p>
<p>[Date]</p>
</footer>
<script>
// All chart configuration inline
// Data embedded as JS objects
// Chart.js instantiation for each chart
</script>
</body>
</html>Each card shows:
Save the file to the configured output directory:
[output_directory]/[system-name]-dashboard-[YYYY-MM-DD].html
Save each chart as a separate SVG file:
[output_directory]/[chart-type]-[YYYY-MM-DD].svg
Output the Mermaid syntax block inline in the conversation (for embedding in markdown documentation).
Also output a text-based summary of what the visuals show, so the findings are accessible without viewing the visual output:
Dashboard generated: agds-dashboard-2026-03-09.html
What the visuals show:
- Status strip: Strongest in Tokens (🟢 Strong), weakest in Documentation (🟠 Weak)
- Severity distribution: 12 findings — 2 Critical, 4 High, 4 Medium, 2 Low
- Trend: Violations decreased 33% since January
- Coverage: Feedback token category has zero coverage across all tiers
- Priority matrix: skipped, the source report carries no effort figuresAfter any audit completes, suggest: "Run visual-report to generate charts from these findings."
The diagnostic agent can chain visual-report after Phase 4 to auto-generate a dashboard from the full diagnostic output.
When generating a stakeholder brief, suggest: "Run visual-report first and attach the dashboard to the brief."
Load the saved reports in recurring.output_directory to produce trend lines across runs; the configuration-and-recurring note says how they're matched.
© 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/visual-report of murphytrueman/design-system-ops.
Open the folder on GitHubat commit f167898
Visual Report 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 |
|---|---|---|---|---|---|---|
| Visual Report this skillmurphytrueman/design-system-ops | 201 | — | ~4k | Automated safety check: Pass | MIT | |
| React Doctormakeplane/plane | 60k | 12 repos | ~657 | Automated safety check: Pass | AGPL-3.0 | |
| React Composition Patternsvercel-labs/openreview | 1.7k | 58 repos | ~721 | Automated safety check: Pass | MIT | |
| React Router Developmentremix-run/react-router | 57k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| React UI State PatternsChrisWiles/claude-code-showcase | 6.1k | 7 repos | ~1.6k | Automated safety check: Pass | None | |
| Vercel React Best Practicessanity-io/sanity | 6.4k | 130 repos | ~1.6k | Automated safety check: Pass | MIT |
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.
vercel-labs/openreview
Rules for structuring React components with composition instead of boolean props, covering compound components, lifted state, variants and React 19 changes.
remix-run/react-router
Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.
ChrisWiles/claude-code-showcase
Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.
sanity-io/sanity
React and Next.js performance optimization guidelines from Vercel Engineering.
getsentry/sentry
Filter large Sentry Scraps design-system migration PRs for review by separating mechanical import-path changes, generated baseline updates, snapshot mocks, and pure renames from substantive…
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
Turns existing audit or health output, or saved recurring runs, into an HTML dashboard, SVG charts or Mermaid diagrams. Visual Report is an agent skill from murphytrueman/design-system-ops. Turns existing audit or health output, or saved recurring runs, into an HTML dashboard, SVG charts or Mermaid diagrams.
Visual Report fits situations like: frontend & Design work in your project.
Run `npx skills add murphytrueman/design-system-ops --skill visual-report -a claude-code`. Or copy the skill folder (skills/visual-report in murphytrueman/design-system-ops) into .claude/skills/visual-report in your project. Claude Code loads it when a task matches its description.
Run `npx skills add murphytrueman/design-system-ops --skill visual-report -a codex`. Or copy the skill folder (skills/visual-report in murphytrueman/design-system-ops) into .agents/skills/visual-report 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 visual-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visual-report, .gemini/skills/visual-report, .github/skills/visual-report and .opencode/skills/visual-report in your project.
Going by SKILL.md and its folder, Visual Report needs the command-line tools its instructions call (npx and npm). 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(npm view:*).
SKILL.md names 1 domain. In commands or code: cdn.jsdelivr.net; the agent is likely to contact it when it follows the instructions. 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.
Visual Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k 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 Visual Report: React Doctor (makeplane/plane, 60k stars), React Composition Patterns (vercel-labs/openreview, 1.7k stars), React Router Development (remix-run/react-router, 57k stars) and React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k 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 201 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.