agentleFS
MaximepodgorskiMaximepodgorski/agent-skills/component/SKILL.md

component

Skill21 starsChanged 6 months agoMITView on GitHub

Design system component workflow. Spec, document, implement, review, spec-review, and audit DS components with Figma as primary input. 6 actions: spec, doc, ship, review, spec-review, audit. Auto-activates on: "component", "spec component", "doc component", "ship component", "review component", "spec-review component", "audit component", "design system", "ds component", "component spec", "component doc", "component ship", "component review", "component spec-review", "component audit".

8 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Fallback rule: If Figma MCP is unavailable, the skill works from text input and codebase analysis.

    line 32
  2. Distinctive:

    Human-in-the-loop: Never create a new token without user approval.

    line 71
  3. Very specific:

    Zero hardcoded values: Every hex, px, hardcoded spacing/color/radius is a CRITICAL violation.

    line 72
  4. Distinctive:

    Adapt to project: Read CLAUDE.md + codebase.

    line 73
  5. Very specific:

    When a Figma link is provided, the skill calls get_design_context from Figma MCP:

    line 78
  6. Very specific:

    Before any ship or review action, scan the project for existing design tokens:

    line 103
  7. Distinctive:

    Loading rule: Read the action file BEFORE executing.

    line 158
  8. Distinctive:

    All behavior is configurable by editing the skill files directly.

    line 224

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Component

Design system component workflow. Figma to production, DS-compliant.

Agent Capabilities

CapabilityUsed ForRequiredFallback
File read/writeSpecs, docs, audit reportsYes—
Code search (grep/glob)Token scan, pattern discovery, codebase conventionsYes—
Shell/command executionQuality gates (lint, typecheck)RecommendedList commands for user to run
Task/todo trackingShip loop progressRecommendedTrack in spec Progress section
User interactionToken creation approval, stuck escalationYes—
Figma MCPDesign context extraction (code, screenshot, hints)RecommendedUser provides spec manually

Fallback rule: If Figma MCP is unavailable, the skill works from text input and codebase analysis. Warn the user and proceed.

Actions

ActionInputOutputReference
spec {name} [figma-link]Component name + optional Figma linkSpec in ds/specs/active/spec.md
doc {path|name}File path or component namedoc.md co-located in component folderdoc.md
ship {name} [figma-link]Component name + optional Figma linkImplemented component (subagent or inline execution)ship.md
review {path|figma-link}File path or Figma linkDS compliance reportreview.md
spec-review {spec-path|name}Spec path or component nameMulti-perspective spec reviewspec-review.md
audit {path|figma-link}Directory path or Figma linkReport in ds/audits/active/audit.md

Flow

Recommended (new component):
  spec → spec-review → doc → ship → review

Quick (simple component):
  ship {name} [figma-link]

Maintenance (existing component):
  review {path}    or    doc {path}

Spec validation:
  spec-review {spec-path}

System-wide:
  audit {directory}    or    audit {figma-link}

Each action is standalone — usable independently without requiring prior actions.

Philosophy

  • Figma-first: Figma is the primary input. Design context drives structure, API, and implementation.
  • Principles over opinions: Grounded in Atomic Design, BEM, DTCG, WCAG — not arbitrary preferences.
  • Reuse > create: Scan existing tokens, variables, typography BEFORE generating. Never invent.
  • Human-in-the-loop: Never create a new token without user approval.
  • Zero hardcoded values: Every hex, px, hardcoded spacing/color/radius is a CRITICAL violation.
  • Adapt to project: Read CLAUDE.md + codebase. Match the project's naming, not the skill's.
  • Stack-agnostic: Works with React, Vue, Svelte, Angular, Web Components — no hardcoded framework.

Figma Integration

When a Figma link is provided, the skill calls get_design_context from Figma MCP:

Figma link provided?
  │
  ├─ YES → Call get_design_context(fileKey, nodeId)
  │         → Receives: code + screenshot + contextual hints
  │         → Extract: component hierarchy, props, variants, tokens used
  │         → Cross-reference with codebase conventions
  │         → Proceed with enriched context
  │
  └─ NO  → Proceed from codebase / manual input only

Combined failure state:
  Figma MCP unavailable AND no component in codebase AND no spec in ds/specs/active/?
    → Error: "No context available. Provide a Figma link with MCP configured,
       create the component first, or run /component spec {name} with a description."

URL parsing:

  • figma.com/design/:fileKey/:fileName?node-id=:nodeId → convert - to : in nodeId
  • figma.com/design/:fileKey/branch/:branchKey/:fileName → use branchKey as fileKey

Token Scan Protocol

Before any ship or review action, scan the project for existing design tokens:

1. SCAN sources (in order):
   - CSS custom properties (--*)
   - SCSS/LESS variables ($*, @*)
   - Tailwind config (tailwind.config.*)
   - CSS-in-JS theme objects
   - Design token files (tokens.json, *.tokens.*)

2. DETECT naming pattern:
   - Prefix convention (--color-*, --bg-*, $spacing-*)
   - Tier structure (primitive → semantic → component)
   - Categorization (color, spacing, typography, radius, shadow)

3. MATCH Figma values to existing tokens:
   - Color: match hex/rgba to nearest token
   - Spacing: match px values to spacing scale
   - Typography: match font-size/weight/family to type tokens
   - Radius: match border-radius to radius tokens

4. FLAG missing tokens:
   - Value needed but no token exists → ASK user
   - Present options: closest match, create new, custom
   - NEVER create a token without user approval

Action Router

User input
  │
  ├─ "spec", "spec component",
  │  "component spec"                   → Load references/actions/spec.md
  │
  ├─ "doc", "document component",
  │  "component doc"                    → Load references/actions/doc.md
  │
  ├─ "ship", "ship component",
  │  "implement component",
  │  "component ship"                   → Load references/actions/ship.md
  │
  ├─ "review", "review component",
  │  "component review",
  │  "check component"                  → Load references/actions/review.md
  │
  ├─ "spec-review", "spec-review component",
  │  "component spec-review",
  │  "review spec"                      → Load references/actions/spec-review.md
  │
  └─ "audit", "audit component",
     "component audit",
     "audit ds", "audit design system"  → Load references/actions/audit.md

Loading rule: Read the action file BEFORE executing. The action file contains all logic, principles references, and templates needed.

Input detection:

Input contains figma.com URL?
  YES → Extract fileKey + nodeId, call Figma MCP
  NO  → Check if input is a file path (contains / or .)
    YES → Load from codebase
    NO  → Treat as component name, search codebase

Project Structure (in user's project)

ds/
├── specs/
│   ├── active/       ← Current specs (from spec action)
│   ├── shipped/      ← Components delivered
│   └── dropped/      ← Abandoned specs
└── audits/
    ├── active/       ← Current audit findings
    ├── shipped/      ← Fixes applied
    └── dropped/      ← Won't fix

ComponentName/
├── ComponentName.{ext}  (detected from project)
├── doc.md             ← Generated by doc action
├── ComponentName.test.ts
└── index.ts

Principles

Standards that inform every action. Loaded by review and audit for compliance checks.

PrincipleStandardReference
CompositionAtomic Design (Brad Frost)composition.md
NamingBEM (Block Element Modifier)naming.md
TokensDTCG (W3C Design Token Community Group)tokens.md
Props APIComponent API patternsprops-api.md
AccessibilityWCAG 2.1 AAaccessibility.md

Templates

File Templates (generated output files)

TemplateUsed byReference
Component specspecspec.md
Component docdocdoc.md
Audit reportauditaudit-report.md

Output Templates (chat status messages)

TemplateUsed byReference
Spec outputspecspec-output.md
Spec-review outputspec-reviewspec-review-output.md
Doc outputdocdoc-output.md
Ship outputshipship-output.md
Review outputreviewreview-output.md
Audit outputauditaudit-output.md

Configuration

All behavior is configurable by editing the skill files directly.

What to changeEdit
Action logicreferences/actions/{action}.md
DS principlesreferences/principles/{principle}.md
Output templatesreferences/templates/{template}.md

References

Actions:

  • Spec | Doc | Ship | Review | Spec-Review | Audit

Principles:

  • Composition | Naming | Tokens | Props API | Accessibility

Templates (files):

  • Spec | Doc | Audit Report

Output (chat):

  • Spec | Doc | Ship | Review | Spec-Review | Audit

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.