/component-audit
Audit a design system's component library for health, producing a findings-based assessment of usage, complexity, duplication, and coverage gaps with actionable recommendations. This produces a deep, single-dimension audit of the component library, NOT a cross-cutting system
$ npx -y skills add murphytrueman/design-system-ops --skill component-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/component-audit
Context preview
The summary Claude sees to decide when to auto-load this skill.
Audit a design system's component library for health, producing a findings-based assessment of usage, complexity, duplication, and coverage gaps with actionable recommendations. This produces a deep, single-dimension audit of the component library, NOT a cross-cutting system
SKILL.md
component-audit.SKILL.mdname: component-audit
description: "Audit a design system's component library for health, producing a findings-based assessment of usage, complexity, duplication, and coverage gaps with actionable recommendations. This produces a deep, single-dimension audit of the component library, NOT a cross-cutting system health assessment. Trigger when someone says: audit my components, component health, what components do I have, unused components, component coverage, component review, assess my library, or anything about evaluating the quality and health of a component library. Do NOT trigger for building machine-readable index files or dependency graphs for AI agents — use codebase-index for those. Do NOT trigger for a holistic health summary — use system-health for that."
references:
- ../../knowledge-notes/component-governance.md
- ../../knowledge-notes/component-bestiary-reference.md
- ../../knowledge-notes/output-discipline.md
Component audit
A skill for auditing a design system's component library across four dimensions: usage signals, complexity distribution, duplication, and coverage gaps. Produces an inventory with tiered findings and a prioritised action list.
Context
Component libraries accumulate silently. New components arrive through contributions. Old components persist because nobody wants to be the one who removes them. Variants proliferate because each edge case adds one more. The result is a library that grows in mass without growing proportionally in value.
A component audit brings the library back into focus: what is there, what is used, what duplicates what, and what is missing that teams have been building around. It is the maintenance work that makes the next year of development faster.
---
Configuration
Before producing output, check for a `.ds-ops-config.yml` file in the project root. If present, load:
- `system.framework` — pre-selects framework-specific inventory guidance
- `system.component_count` — pre-populates the small-system gate
- `severity.*` — overrides for finding severity ratings
- `integrations.*` — enables auto-pull for component data (see below)
- `recurring.*` — enables comparison with previous audit
Auto-pull integrations
If integrations are configured in `.ds-ops-config.yml`, pull data automatically:
**Figma MCP** (`integrations.figma.enabled: true`):
- Read the published library from `integrations.figma.file_key` via Figma MCP
- Extract the component inventory: names, variant counts, description status
- Use Figma library analytics (if available via REST API) to pull detach rates per component — high detach rates are a direct usage signal
- Cross-reference the Figma inventory against the code inventory to detect components that exist in design but not in code (or vice versa)
**npm registry** (`integrations.npm.enabled: true`):
- Pull download statistics for `integrations.npm.package_name` (or each package in `integrations.npm.scoped_packages` for monorepos) using `npm view [package] --json` or the npm registry API
- Use download trends (last 30 days, last 90 days) as a usage signal in Dimension 1
- For monorepos: note that per-package downloads are unreliable (see monorepo handling) — use as a directional signal only
**Storybook** (`integrations.storybook.enabled: true`):
- Fetch the story index from `integrations.storybook.url/index.json`
- Extract component list, story counts per component, and documentation status
- Components with zero stories are likely undocumented — flag in Dimension 1
**GitHub** (`integrations.github.enabled: true`):
- Use `gh api search/code` to count import references for each component across consuming repositories
- Pull PR activity for the component library — components with no PRs in 12+ months are likely stale
- Pull open issues tagged with component names to surface known problems
**Documentation platform** (`integrations.documentation.enabled: true`):
- If platform is `zeroheight`: use the Zeroheight API to pull page list and last-updated dates per component
- If platform is `supernova`: use the Supernova API to pull component documentation coverage
- If platform is `storybook`: same as Storybook integration above (docs tab status)
- Map documentation coverage to the component inventory — components without docs pages are flagged in Dimension 3
If an integration fails, log it and proceed with manual input.
Step 0: Identify what you're looking at
Before auditing components, determine what kind of shared UI this is. The library type changes which dimensions matter and how findings should be framed.
**Classify from codebase signals:**
- **Design system** — Full template applies. All four audit dimensions (usage, complexity, duplication, coverage) plus composition graph and AI readiness.
- **Component library** — Focus on complexity distribution, duplication, and coverage gaps. Usage signals may not exist yet — note this rather than flagging it as a problem. Skip AI readiness unless the team has signalled interest.
- **Pattern library** — Focus on duplication and documentation completeness per pattern. Complexity distribution is less meaningful because patterns are reference implementations, not consumed packages. Coverage gaps should be framed as "patterns your team builds frequently but hasn't documented" rather than "components missing from the system."
- **Utility collection** — Focus on duplication and naming consistency. A utility collection with overlapping helpers is actively harmful; one with clear, non-overlapping utilities is doing its job. Skip coverage gaps — a utility collection is not trying to be comprehensive.
**Include the classification in the report header** as "Library type: [Design system / Component library / Pattern library / Utility collection]" and skip dimensions that don't apply.
---
Step 1: Gather the component inventory
Ask for or confirm (skip questions already answered by auto-pull):
- Access to the component library: Figma library, Sto
Read more
name: component-audit description: "Audit a design system's component library for health, producing a findings-based assessment of usage, complexity, duplication, and coverage gaps with actionable recommendations. This produces a deep, single-dimension audit of the component library, NOT a cross-cutting system health assessment. Trigger when someone says: audit my components, component health, what components do I have, unused components, component coverage, component review, assess my library, or anything about evaluating the quality and health of a component library. Do NOT trigger for building machine-readable index files or dependency graphs for AI agents — use codebase-index for those. Do NOT trigger for a holistic health summary — use system-health for that." references: - ../../knowledge-notes/component-governance.md - ../../knowledge-notes/component-bestiary-reference.md - ../../knowledge-notes/output-discipline.md
Component audit
A skill for auditing a design system's component library across four dimensions: usage signals, complexity distribution, duplication, and coverage gaps. Produces an inventory with tiered findings and a prioritised action list.
Context
Component libraries accumulate silently. New components arrive through contributions. Old components persist because nobody wants to be the one who removes them. Variants proliferate because each edge case adds one more. The result is a library that grows in mass without growing proportionally in value.
A component audit brings the library back into focus: what is there, what is used, what duplicates what, and what is missing that teams have been building around. It is the maintenance work that makes the next year of development faster.
---
Configuration
Before producing output, check for a `.ds-ops-config.yml` file in the project root. If present, load:
- `system.framework` — pre-selects framework-specific inventory guidance
- `system.component_count` — pre-populates the small-system gate
- `severity.*` — overrides for finding severity ratings
- `integrations.*` — enables auto-pull for component data (see below)
- `recurring.*` — enables comparison with previous audit
Auto-pull integrations
If integrations are configured in `.ds-ops-config.yml`, pull data automatically:
**Figma MCP** (`integrations.figma.enabled: true`):
- Read the published library from `integrations.figma.file_key` via Figma MCP
- Extract the component inventory: names, variant counts, description status
- Use Figma library analytics (if available via REST API) to pull detach rates per component — high detach rates are a direct usage signal
- Cross-reference the Figma inventory against the code inventory to detect components that exist in design but not in code (or vice versa)
**npm registry** (`integrations.npm.enabled: true`):
- Pull download statistics for `integrations.npm.package_name` (or each package in `integrations.npm.scoped_packages` for monorepos) using `npm view [package] --json` or the npm registry API
- Use download trends (last 30 days, last 90 days) as a usage signal in Dimension 1
- For monorepos: note that per-package downloads are unreliable (see monorepo handling) — use as a directional signal only
**Storybook** (`integrations.storybook.enabled: true`):
- Fetch the story index from `integrations.storybook.url/index.json`
- Extract component list, story counts per component, and documentation status
- Components with zero stories are likely undocumented — flag in Dimension 1
**GitHub** (`integrations.github.enabled: true`):
- Use `gh api search/code` to count import references for each component across consuming repositories
- Pull PR activity for the component library — components with no PRs in 12+ months are likely stale
- Pull open issues tagged with component names to surface known problems
**Documentation platform** (`integrations.documentation.enabled: true`):
- If platform is `zeroheight`: use the Zeroheight API to pull page list and last-updated dates per component
- If platform is `supernova`: use the Supernova API to pull component documentation coverage
- If platform is `storybook`: same as Storybook integration above (docs tab status)
- Map documentation coverage to the component inventory — components without docs pages are flagged in Dimension 3
If an integration fails, log it and proceed with manual input.
Step 0: Identify what you're looking at
Before auditing components, determine what kind of shared UI this is. The library type changes which dimensions matter and how findings should be framed.
**Classify from codebase signals:**
- **Design system** — Full template applies. All four audit dimensions (usage, complexity, duplication, coverage) plus composition graph and AI readiness.
- **Component library** — Focus on complexity distribution, duplication, and coverage gaps. Usage signals may not exist yet — note this rather than flagging it as a problem. Skip AI readiness unless the team has signalled interest.
- **Pattern library** — Focus on duplication and documentation completeness per pattern. Complexity distribution is less meaningful because patterns are reference implementations, not consumed packages. Coverage gaps should be framed as "patterns your team builds frequently but hasn't documented" rather than "components missing from the system."
- **Utility collection** — Focus on duplication and naming consistency. A utility collection with overlapping helpers is actively harmful; one with clear, non-overlapping utilities is doing its job. Skip coverage gaps — a utility collection is not trying to be comprehensive.
**Include the classification in the report header** as "Library type: [Design system / Component library / Pattern library / Utility collection]" and skip dimensions that don't apply.
---
Step 1: Gather the component inventory
Ask for or confirm (skip questions already answered by auto-pull):
- Access to the component library: Figma library, Sto
Showing the first part of this file.
Claude Code skills for the work that keeps a design system alive.
Repo: murphytrueman/design-system-ops
Other skills on design-system-ops.
- /accessibility-per-component
Run an accessibility audit on a specific design system component. Trigger when someone says: accessibility check, a11y audit, WCAG compliance, is this accessible, check accessibility, does this meet WCAG, screen reader support, keyboard navigation check, or anything about
Open skill - /adoption-report
Produce a design system adoption report separating coverage from actual adoption, with trend direction and risk flags. Trigger when someone says: adoption report, how much is the system being used, usage metrics, adoption status, coverage report, which teams are using the
Open skill - /ai-component-description
Generate AI-optimised text descriptions for components, formatted for Figma's MCP server and LLM consumption. This produces prose descriptions in a six-section format (purpose, props, anti-patterns, composition, accessibility, examples), NOT JSON schemas or structured data
Open skill - /backlog-generator
Transform audit findings into sprint-ready work items with effort estimates, acceptance criteria, and stakeholder-friendly rationale. This converts existing findings into tickets, NOT the process for contributing new components to the system. Trigger when someone says: generate
Open skill - /change-communication
Produce a communication package for a design system change — release notes, migration guide, and team announcement. This produces communication artefacts for changes that have already been decided, NOT the deprecation lifecycle itself. Trigger when someone says: communicate this
Open skill - /cicd-integration
Generate CI/CD pipeline configurations that automate design system quality checks — token validation, component linting, visual regression, accessibility scanning, and release gating. Produces ready-to-use pipeline files for GitHub Actions, GitLab CI, CircleCI, or Bitbucket
Open skill

