skills/figma-integration/SKILL.md
# Skill: Figma Integration > Pulls design specs, component inventories, and screen states from Figma into the PRD and Build Brief pipeline. Validates that PRD screen specifications match actual Figma mocks. Extracts design tokens, spacing, and component names so coding agents produce pixel-accurate implementations. --- ## Why This Exists PRDs describe screens in text. Figma has the actual designs. Without this skill: - PRD field-detail tables drift from what design actually built - Engineers
npx skillsauth add bigeasyfreeman/adlc skills/figma-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pulls design specs, component inventories, and screen states from Figma into the PRD and Build Brief pipeline. Validates that PRD screen specifications match actual Figma mocks. Extracts design tokens, spacing, and component names so coding agents produce pixel-accurate implementations.
PRDs describe screens in text. Figma has the actual designs. Without this skill:
This skill bridges the gap: it reads Figma programmatically and feeds design truth into the pipeline.
| When | What | |------|------| | PRD Agent Phase 5 (Screen Specs) | Pull frame names, component lists, and states from linked Figma file | | Build Brief Phase 0 (Research) | Validate PRD screen specs against current Figma state | | Architecture Scaffolding | Extract component names, design tokens, and layout structure for frontend stubs | | Codegen Context Assembly | Inline design specs (spacing, colors, component hierarchy) into frontend task prompts |
{
"figma_file_url": "string (Figma file or frame URL)",
"figma_access_token": "string (via MCP server auth)",
"prd_screens": [
{
"screen_name": "string",
"figma_frame_ref": "string (frame name or node ID from PRD)",
"field_detail_table": {}
}
],
"mode": "extract | validate | design_tokens | component_inventory"
}
extract — Pull Design Into PRDFor each Figma frame referenced in the PRD:
GET /v1/files/:file_key/nodes?ids=:node_ids)Output:
{
"screen_name": "Invite Modal",
"figma_frame": "Invite - Filled",
"figma_url": "https://figma.com/file/...",
"last_modified": "ISO date",
"components_used": [
{"name": "SearchableMultiSelect", "type": "input", "library": "DesignSystem/Inputs"},
{"name": "UserChip", "type": "display", "library": "DesignSystem/Chips"},
{"name": "PrimaryButton", "type": "button", "label": "Send"}
],
"text_content": [
{"node": "Modal Title", "content": "Share [Deliverable Name]"},
{"node": "CTA Button", "content": "Send"},
{"node": "Secondary Action", "content": "Copy link"}
],
"states": ["empty", "filled", "sending", "sent"],
"extracted_field_table": {
"Modal Title": "Share [Deliverable Name]",
"Recipient Input": "SearchableMultiSelect — org users and WRITER seat holders",
"Chip Display": "UserChip — avatar + name + email, removable",
"Primary CTA": "PrimaryButton — 'Send', triggers email dispatch",
"Secondary Action": "Copy link (present in design)"
}
}
validate — Check PRD Against FigmaCompare every PRD screen spec against its linked Figma frame:
| PRD Says | Figma Shows | Status | |----------|------------|--------| | "Share" button with share/arrow icon | Frame has ShareIcon + "Share" label | ✅ Match | | Copy link option (TBD for v1) | "Copy link" text node present in frame | ⚠️ Conflict — design has it, PRD says TBD | | Modal title: "Share [Deliverable Name]" | Title text: "Share [Deliverable Name]" | ✅ Match | | No error state specified | No error state frame exists | ⚠️ Gap — neither PRD nor design covers errors |
Output: validation_report
{
"matches": [{"field": "string", "prd_value": "string", "figma_value": "string"}],
"conflicts": [{"field": "string", "prd_value": "string", "figma_value": "string", "recommendation": "string"}],
"gaps_in_prd": [{"field": "string", "figma_has": "string", "recommendation": "add to PRD"}],
"gaps_in_figma": [{"field": "string", "prd_has": "string", "recommendation": "design needed"}],
"stale_screens": [{"screen": "string", "prd_last_updated": "date", "figma_last_modified": "date"}]
}
design_tokens — Extract for Coding AgentsPull design tokens for frontend implementation:
component_inventory — Map to Code ComponentsIf the repo has a component library (found via Codebase Research), map Figma components to existing code components:
| Figma Component | Code Component | Location | Match |
|----------------|---------------|----------|-------|
| PrimaryButton | <Button variant="primary"> | src/components/ui/Button.tsx | ✅ Exists |
| SearchableMultiSelect | <Combobox> | src/components/ui/Combobox.tsx | ✅ Exists (different name) |
| UserChip | — | — | ❌ New component needed |
figma_extract{
"name": "figma_extract",
"description": "Extract screen specs, components, and design tokens from Figma frames",
"inputSchema": {
"type": "object",
"properties": {
"figma_url": {
"type": "string",
"description": "Figma file or frame URL"
},
"mode": {
"type": "string",
"enum": ["extract", "validate", "design_tokens", "component_inventory"]
},
"prd_screens": {
"type": "array",
"description": "PRD screen specs to validate against (required for validate mode)"
},
"repo_path": {
"type": "string",
"description": "Repo path for component_inventory mode"
}
},
"required": ["figma_url", "mode"]
}
}
# Extract screen specs from Figma
adlc-figma extract --url "https://figma.com/file/..." --output ./figma-specs.json
# Validate PRD against Figma
adlc-figma validate --url "https://figma.com/file/..." --prd ./prd.md
# Extract design tokens
adlc-figma tokens --url "https://figma.com/file/..." --output ./tokens.json
# Map Figma components to code components
adlc-figma components --url "https://figma.com/file/..." --repo ./my-repo
development
Orchestration skill: chains the full ADLC Build Loop. PRD → Brief → Council → Scaffold → Codegen → LDD → TDD → Council → PR. Use when implementing a new feature end-to-end.
development
# Skill: Helm & ArgoCD Deployment > Validates Helm charts and generates ArgoCD Application manifests when the ADLC pipeline produces infrastructure or service code. Ensures every deployable artifact has correct chart structure, environment-specific values, and a GitOps-ready Application manifest before code review. --- ## Why This Exists Without deployment validation in the pipeline, common failures slip through to production: - **Helm charts fail `helm template`** because of missing values,
testing
Decide whether an intersecting verifier actually exercises the semantic change.
development
# Skill: UX Flow Builder > Generates user flow diagrams (Mermaid) from PRD personas and screen specifications. Surfaces dead ends, missing screens, and disconnected flows before design or engineering starts. Helps PMs think in screens, not features. --- ## Trigger - Automatically during PRD Phase 4 (Personas & Flows) to visualize the user journey - On-demand when the PM says "show me the flow" or "map the user journey" - During PRD evaluation to verify screen connectivity --- ## Input ```