Agent skill

Component API Validator

by murphytrueman in murphytrueman/design-system-ops

Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.

MITAuto-check passedFrontend & Design

Install Component API Validator

skills CLI
$ npx skills add murphytrueman/design-system-ops --skill component-api-validator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install murphytrueman/design-system-ops component-api-validator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/murphytrueman/design-system-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/component-api-validator .claude/skills/component-api-validator && rm -rf skills-src

Use ~/.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/

Facts

Skill name
component-api-validator
GitHub stars
201
Token cost
~4.3k tokens
SKILL.md length
1,843 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.

  • Works in 6 steps: Gather component sources → Extract API surface → Assess cross-library consistency → …
  • Tasks that involve Design systems
  • SKILL.md covers Before you begin: verify…, Context, Configuration and Auto-pull integrations, plus 8 more sections
  • Calls npx and npm

What it does

Component API Validator is an agent skill from murphytrueman/design-system-ops. Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions. Trigger: component API audit, are our props consistent, prop naming review. For semver calls use version-bump-advisor.

Its SKILL.md is about 4.3k 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, covering Design systems. The repository describes itself as: Claude Code skills for the work that keeps a design system alive. The licence is MIT.

When your agent uses it

  • Tasks that involve Design systems

Example prompts

  • “/component-api-validator”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(sort:*), Bash(tail:*), Bash(wc:*), Bash(npm pack:*), Bash(npx react-docgen-typescript:*), Bash(npx custom-elements-manifest:*), Bash(npx vue-component-meta:*)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Gather component sources
  2. Extract API surface
  3. Assess cross-library consistency
  4. Breaking change detection
  5. Design-to-code contract alignment (only with a design source)
  6. Produce the validation report

What it can do on your machine

Read from SKILL.md and the folder at commit f167898. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Grep
    • Glob
    • Bash(cat:*)
    • Bash(find:*)
    • Bash(head:*)
    • Bash(ls:*)
    • Bash(sort:*)
    • Bash(tail:*)

    …and 5 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Component API Validator loads about 4.3k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,843 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~4.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from murphytrueman/design-system-ops at commit f167898, republished under its MIT licence (© murphytrueman). 1,843 words, ~4,319 tokens.

Download SKILL.mdSave it as .claude/skills/component-api-validator/SKILL.md (or your agent's skills folder).
name
component-api-validator
description
Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions. Trigger: component API audit, are our props consistent, prop naming review. For semver calls use version-bump-advisor.
allowed-tools
Read, Write, Grep, Glob, Bash(cat:*), Bash(find:*), Bash(head:*), Bash(ls:*), Bash(sort:*), Bash(tail:*), Bash(wc:*), Bash(npm pack:*), Bash(npx react-docgen-typescript:*), Bash(npx custom-elements-manifest:*), Bash(npx vue-component-meta:*)
references
../../knowledge-notes/design-to-code-contract.md, ../../knowledge-notes/component-governance.md, ../../knowledge-notes/output-discipline.md

Component API validator

A skill for auditing the public API surface of a component library — prop naming consistency, type coverage, default value patterns, breaking change detection, and alignment with the design-to-code contract. Treats the component API as infrastructure: the public contract that consuming teams depend on.

Before you begin: verify references

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.

Context

A component library's most important output is not its visual rendering — it is its API. The props, types, defaults, and composition patterns form a contract with every consuming team. When that contract is inconsistent (some components use variant, others use type, others use appearance for the same concept), unclear (prop types are any or undocumented), or unstable (breaking changes ship without versioning), consuming teams lose trust. And when trust erodes, teams start wrapping system components in local abstractions, which is the beginning of drift.

API validation is not about enforcing a single naming convention. It is about detecting where the library's public surface is working against the teams consuming it. A library where every component follows the same patterns for sizing, variants, event handlers, and composition is a library that teams can learn once and apply everywhere. A library where each component invents its own conventions is a library that requires re-learning for every component.

This skill evaluates the API surface as a whole — not one component at a time, but the patterns that emerge across the library. Individual component reviews are useful but miss the cross-library inconsistencies that frustrate consumers most.

Do NOT use this skill for: deciding the semver bump for a release (use version-bump-advisor) or checking one component against its design spec (use design-to-code-check).


Configuration

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 — determines the prop extraction method
  • system.styling — styling approach
  • severity.api_* — overrides for API finding severity
  • integrations.github — component source (see below)
  • integrations.storybook — prop metadata (see below)

Auto-pull integrations

GitHub (integrations.github.enabled: true):

  • Pull component source files from the configured repository if there's no local checkout

Storybook (integrations.storybook.enabled: true):

  • Extract argTypes metadata for structured prop information
  • Cross-reference Storybook's prop documentation with source code types

Figma (integrations.figma.enabled: true):

  • Pull component property definitions from Figma
  • Cross-reference Figma properties against code props for design-to-code alignment

Step 1: Gather component sources

Read before asking. package.json gives the package name, version, exports, main and types; the entry point gives the public component list; tsconfig.json or the presence of .d.ts, PropTypes or JSDoc gives the typing approach; the framework shows in the dependencies. Confirm what you found in one line and ask only for:

  1. Previous version source (optional) — for breaking change comparison. Prefer the published type declarations of the previous release (npm pack <pkg>@<prev> and read its .d.ts files, or an api-extractor report); a git tag or release branch works if nothing was published
  2. Deliberate exceptions — legacy names kept for compatibility, so they're reported as accepted rather than as deviations

If no component source is in reach (no path, no checkout, no package to unpack), stop and ask for one; an API audit of described components produces guesses.

Step 2: Extract API surface

For each component in the source path:

  1. Identify exported components — components that are part of the public API (exported from index files or package entry points)
  2. Extract props/attributes with the tool that fits, and hand-parse only when none does. Tool output is complete and consistent; a hand read of forty interfaces is neither.
    • React with TypeScript: react-docgen-typescript (npx react-docgen-typescript or its API) gives name, type, required, default and description per prop from the interfaces. Storybook argTypes (from integrations.storybook) are the same data if the docs addon is set up.
    • Vue: vue-component-meta for <script setup> and defineProps; fall back to reading defineProps by hand.
    • Web Components: the Custom Elements Manifest (npx custom-elements-manifest analyze, or an existing custom-elements.json) lists attributes, properties, events, slots and CSS custom properties; it is the standard, so read it rather than re-deriving it.
    • Svelte: exported let declarations, events, slots (read by hand; note that in the Scope block).
    • Untyped or PropTypes-only React: read PropTypes and JSDoc; record every prop with no type as untyped.
  3. For each prop, capture:
    • Name
    • Type (specific type or any/unknown/untyped)
    • Required or optional
    • Default value (if any)
    • Description (from JSDoc, TSDoc, or inline comment)
  4. Identify composition patterns:
    • Does the component accept children/slots?
    • Does it forward refs?
    • Does it spread remaining props to a root element?
    • Does it accept render props or scoped slots?

Step 3: Assess cross-library consistency

This is the core of the skill. Evaluate patterns across the entire library, not within individual components.

3a. Prop naming consistency

Look for the same concept implemented with different names across components:

ConceptConsistent patternInconsistent examples
Visual variantAll use variantSome use variant, others type, others appearance, others kind
SizeAll use sizeSome use size, others scale, others dimension
Disabled stateAll use disabledSome use disabled, others isDisabled
Loading stateAll use loadingSome use loading, others isLoading, others pending
Event handlersAll use onActionSome use onChange, others handleChange, others onValueChange
Colour/intentAll use intentSome use intent, others color, others severity, others status

For each inconsistency, report:

  • The concept
  • Which convention is most common (the likely "correct" one)
  • Which components deviate
  • Suggested normalisation
3b. Boolean prop patterns

Boolean props are a common source of API inconsistency:

  1. Prefix convention — does the library use isDisabled or disabled? Pick one, flag deviations.
  2. Negative booleans — the working convention is that a boolean prop defaults to false, so the common case needs no prop. hideLabel is the right shape when labels usually show; showLabel defaulting to true forces showLabel={false} at every call site that hides one. Flag a boolean whose default is true, and flag a library that uses both forms for the same concept (hideLabel on one component, showLabel on another). Don't flag a negative name on its own.
  3. Boolean vs. enum — a prop that started as boolean (compact) but should be an enum (density: 'compact' | 'default' | 'comfortable'). Flag booleans that limit future extensibility.
Show full SKILL.md (759 more words)Show less
3c. Default value patterns
  1. Presence — do all optional props have explicit defaults? Missing defaults are implicit API decisions.
  2. Consistency — does size default to 'medium' in some components and 'md' in others?
  3. Sensible defaults — does variant default to the most common use case? Flag surprising defaults.
3d. Type coverage
  1. TypeScript/PropTypes completeness — what percentage of props have explicit types?
  2. Specificity — are types specific ('sm' | 'md' | 'lg') or vague (string)?
  3. Exported types — are component prop types exported for consumers who need them?
  4. Generic patterns — if some components use generics (e.g., Select<T>), are they consistently applied?
3e. Event handler patterns
  1. Naming convention — onChange vs onValueChange vs handleChange. Identify the library's convention and flag deviations.
  2. Callback signature — do event handlers pass the event, the value, or both? Is this consistent?
  3. Controlled vs. uncontrolled — if the library supports controlled components, is the pattern consistent (value/onChange vs defaultValue)?
3f. Composition patterns
  1. Children vs. render props — is the composition model consistent across components?
  2. Ref forwarding — do all interactive components forward refs?
  3. Prop spreading — do components spread remaining props? Is this consistent?
  4. Slot naming (Vue/Web Components) — are slot names consistent across components?

Step 4: Breaking change detection

If a previous version is available, compare the published type declarations of both versions, not the source. Source can differ from what shipped, and declarations show the whole public surface. Diff the package exports (components, hooks, types, utilities) as well as props — a removed export breaks consumers just as surely as a removed prop.

  1. Removed exports and props — anything in the previous version's declarations that is gone
  2. Renamed props — report these as a removal plus an addition, then check whether a deprecated alias for the old name still exists. Without an alias, it is breaking; don't guess at renames from type similarity
  3. Type narrowing — prop type changed from wider to narrower (string → 'a' | 'b')
  4. Default value changes — default changed in a way that alters existing behaviour
  5. Required prop additions — new props that are required (existing consumers will break)
  6. Behavioural changes — same prop name but different behaviour (hardest to detect — flag for manual review)

Classify each:

  • Breaking — consuming code will fail at compile time or behave differently at runtime
  • Potentially breaking — may break depending on usage pattern (flag for review)
  • Non-breaking — addition only, existing code unaffected

Step 5: Design-to-code contract alignment (only with a design source)

Only when a Figma library or exported spec is in reach. Otherwise write "skipped: no design source" under Scope and move on; don't infer design variants from prop names. With a source, cross-reference the API surface against the design-to-code contract:

  1. Prop coverage vs. design spec — does every design variant have a corresponding prop? Are there props with no design equivalent (engineering-added functionality)?
  2. State coverage — does the API support every prop-driven state in the spec (disabled, loading, error, selected)? Hover, focus, and active are CSS/interaction states, not props — don't flag them as missing props
  3. Token alignment — do any props accept raw values (colours, spacing) that should reference tokens?
  4. Accessibility props — are aria-* attributes passed through to the underlying element? Do icon-only variants require an accessible label (e.g. a required aria-label or label prop in the type for the icon-only case)? A consumer-settable role prop is not required, and usually a smell

Step 6: Produce the validation report

# Component API Validation Report

[Headline sentence: the most important API problem and how widespread it is]

## Executive Summary
[Library name, component count, framework, TypeScript coverage, headline findings]

## API Inventory
| Component | Props | Typed | Required | Optional | Defaults | Description coverage |
|-----------|-------|-------|----------|----------|----------|---------------------|
[One row per component]

## Cross-Library Consistency

### Prop Naming
[Table of concept → dominant convention → deviations → ✅ PASS / ⚠️ WARN / ❌ FAIL per pattern]
[Counts, e.g. "14 of 19 components use `variant`; 4 use `type`; 1 uses `appearance`" (illustrative)]

### Boolean Patterns
[Findings: negative booleans, boolean-should-be-enum, prefix inconsistency]

### Default Values
[Findings: missing defaults, inconsistent defaults]

### Type Coverage
[Overall: X of Y props explicitly typed]
[Breakdown: full TypeScript / JSDoc / PropTypes / untyped per component]

### Event Handlers
[Convention identified, deviations listed]

### Composition Patterns
[Ref forwarding coverage, children vs render props consistency, slot naming]

## Breaking Change Analysis
[If previous version available]
| Change | Component | Prop | Type | Impact |
|--------|-----------|------|------|--------|
[One row per change]

## Design-to-Code Contract
[Findings: design variants without props, props without design equivalents, missing state coverage]

## Findings Summary
| ID | Severity | Component | Prop | Evidence | Finding | Remediation |
|---|---|---|---|---|---|---|
| AV-01 | 🟠 High | Badge | `type` | `src/components/Badge/Badge.tsx:12` | 14 of 19 components use `variant`; Badge uses `type` for the same concept | Rename to `variant`, keep `type` as a deprecated alias for one minor |

Severity: 🔴 Critical for a breaking change that shipped without a major, or `any`/untyped on a public prop of an interactive component; 🟠 High for one concept named two ways across the library, a missing exported prop type, or a required prop with no description; 🟡 Medium for inconsistent defaults, missing descriptions, or a boolean that should be an enum; ⚪ Low for style (prefix conventions, slot naming). Evidence is the file and line of the prop's declaration, or the `.d.ts` line when comparing versions.

## Prioritised Recommendations
[Grouped: 🔴 Critical (breaking/type safety) → 🟠 High (consistency) → 🟡 Medium (documentation) → ⚪ Low (style)]

**Scope**
- **Inspected:** [source paths, entry points, declaration files, previous version compared against]
- **Not inspected:** [components not exported from the entry point, runtime behaviour, packages out of reach]
- **How "none found" was checked:** [e.g. "no breaking changes" — both versions' `.d.ts` exports were diffed and the diff did pick up the props added in this release]
- **Assumptions:** [e.g. the entry point defines the public API]

If any of these inconsistencies are deliberate (a legacy name kept for compatibility, a convention you've chosen on purpose), tell me and I'll treat them as accepted in future runs.

Quality checks

Before delivering the report, verify:

  1. Every exported component is included — no components skipped
  2. Cross-library patterns are identified — the report doesn't just list individual component issues but identifies library-wide patterns
  3. Consistency is counted, not scored — not "some props are inconsistent" or a percentage rating, but "14 of 19 components use variant, 4 use type, 1 uses appearance"
  4. Breaking changes are correctly classified — removals are breaking, additions are non-breaking, type changes depend on direction
  5. Fix suggestions include the specific rename or type change — not "make this consistent" but "rename type to variant in AlertDialog, Badge, Toast"
  6. TypeScript type coverage is measured per-component — not just a library-wide average
  7. Findings reference specific component and prop names with a file and line — never "some components have inconsistent naming"
  8. Props came from tooling where a tool exists (docgen, component-meta, a Custom Elements Manifest), and the Scope block names which

Small-system note

For libraries with fewer than 10 components: run the same analysis but present as a single consolidated view. Every finding gets individual attention. Consistency is easier to achieve in a small library — the bar should be 100% consistency, not "mostly consistent."

© murphytrueman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/component-api-validator of murphytrueman/design-system-ops.

Open the folder on GitHubat commit f167898

Compare with similar skills

Component API Validator 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.

Component API Validator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Component API Validator this skillmurphytrueman/design-system-ops201—~4.3kAutomated safety check: PassMIT
Impeccablebestofjs/bestofjs3.1k27 repos~2.6kAutomated safety check: PassMIT
Figma Design System Builderwarpdotdev/warp65k2 repos~4.4kAutomated safety check: PassAGPL-3.0
Figma use_figma Plugin API Ruleswarpdotdev/warp65k4 repos~4.4kAutomated safety check: PassAGPL-3.0
UI StylingOhh-889/skyroc79513 repos~2.5kAutomated safety check: PassMIT
Shadcnsupabase/evals14342 repos~4.5kAutomated safety check: PassApache-2.0

Similar skills

  • Impeccable

    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…

    3.1k GitHub starsUsed in 27 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • UI Styling

    Ohh-889/skyroc

    Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.

    795 GitHub starsUsed in 13 repos~2.5k tokens
    Frontend & DesignAuto-check passed
  • Shadcn

    supabase/evals

    Official

    Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI.

    143 GitHub starsUsed in 42 repos~4.5k tokens
    Frontend & DesignAuto-check passed
  • Design System

    Ohh-889/skyroc

    Token architecture, component specifications, and slide generation.

    795 GitHub starsUsed in 11 repos~1.7k tokens
    Frontend & DesignAuto-check passed

More from murphytrueman/design-system-ops

All 36 skills in this repo
  • Agent Instructions

    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.

    201 GitHub stars~2.3k tokensUpdated 13 days ago
    Auto-check passed
  • AI Component Description

    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.

    201 GitHub stars~4.7k tokensUpdated 13 days ago
    Auto-check passed
  • Change Communication

    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.

    201 GitHub stars~3.4k tokensUpdated 13 days ago
    Auto-check passed
  • Codebase Index

    murphytrueman/design-system-ops

    Generate machine-readable index files in .ai/index/ (component inventory, uses/usedBy graph, stats) for AI agents.

    201 GitHub stars~4.7k tokensUpdated 13 days ago
    Auto-check passed
  • Codemod Generator

    murphytrueman/design-system-ops

    Generate tested jscodeshift/postcss codemods for design system migrations: token renames, prop renames or removals, import paths, component swaps.

    201 GitHub stars~4.9k tokensUpdated 13 days ago
    Auto-check passed
  • Component Decision Tree

    murphytrueman/design-system-ops

    Write "choosing between" pages (docs/choosing/) that route an intent to the right component via narrowing questions; YAML trees on request.

    201 GitHub stars~4.9k tokensUpdated 13 days ago
    Auto-check passed

Questions about Component API Validator

What does Component API Validator do?

Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions. Component API Validator is an agent skill from murphytrueman/design-system-ops. Audit prop APIs across a component library: naming consistency, boolean/default patterns, type coverage, exported types, breaking changes between versions.

When should I use Component API Validator?

Component API Validator fits situations like: tasks that involve Design systems.

How do I install Component API Validator in Claude Code?

Run `npx skills add murphytrueman/design-system-ops --skill component-api-validator -a claude-code`. Or copy the skill folder (skills/component-api-validator in murphytrueman/design-system-ops) into .claude/skills/component-api-validator in your project. Claude Code loads it when a task matches its description.

How do I install Component API Validator in Codex?

Run `npx skills add murphytrueman/design-system-ops --skill component-api-validator -a codex`. Or copy the skill folder (skills/component-api-validator in murphytrueman/design-system-ops) into .agents/skills/component-api-validator in your project. Codex loads it when a task matches its description.

Can I use Component API Validator in Cursor, Gemini CLI or GitHub Copilot?

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 component-api-validator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/component-api-validator, .gemini/skills/component-api-validator, .github/skills/component-api-validator and .opencode/skills/component-api-validator in your project.

What does Component API Validator need to run?

Going by SKILL.md and its folder, Component API Validator 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 pack:*), Bash(npx react-docgen-typescript:*), Bash(npx custom-elements-manifest:*), Bash(npx vue-component-meta:*).

Does Component API Validator access the network?

SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Component API Validator safe to install?

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.

What licence does Component API Validator use?

Component API Validator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Component API Validator use?

About 4.3k 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.

What are the alternatives to Component API Validator?

Skills that share tags, products or a category with Component API Validator: Impeccable (bestofjs/bestofjs, 3.1k stars), Figma Design System Builder (warpdotdev/warp, 65k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and UI Styling (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Component API Validator?

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.