Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add 30eggis/claude-frontend-skills --skill "spec-it-complex"
Install specific skill from multi-skill repository
# Description
Frontend spec generator (Hybrid mode). Auto-validation with 4 milestone approvals. Best for medium projects.
# SKILL.md
name: spec-it-complex
description: "Frontend spec generator (Hybrid mode). Auto-validation with 4 milestone approvals. Best for medium projects."
allowed-tools: Read, Write, Edit, Bash, Task, AskUserQuestion
argument-hint: "[--resume
permissionMode: bypassPermissions
spec-it-complex: Hybrid Mode
Transform PRD/vibe-coding into frontend specifications with auto-validation and 4 milestone approvals.
Rules
See shared/output-rules.md and shared/context-rules.md.
Workflow
[Requirements] β [Divergent] β [3-Round Critique] β [Chapter Plan]
β
β
MILESTONE 1: "Proceed with N chapters?"
β
[CH-00~02: Auto] β β
MILESTONE 2: "Basic structure OK?"
β
[CH-03~04: Auto] β β
MILESTONE 3: "Features OK?"
β
[CH-05~07: Auto] β [Review] β [Tests] β [Assembly]
β
β
MILESTONE 4: Final approval
Phase 0: Init
Step 0.0: Design Style Selection
# Design Trends 2026 Integration
DESIGN_TRENDS_PATH = $HOME/.claude/plugins/marketplaces/claude-frontend-skills/skills/design-trends-2026
AskUserQuestion(
questions: [{
question: "μ΄λ€ λμμΈ μ€νμΌμ μ μ©νμκ² μ΅λκΉ? (2026 Design Trends κΈ°λ°)",
header: "Design Style",
options: [
{label: "Minimal (Recommended)", description: "κΉλν SaaS: λ°μ ν
λ§, λ―Έλλ© μΉ΄λ"},
{label: "Immersive", description: "λ€ν¬ ν
λ§: κ·ΈλΌλ°μ΄μ
μΉ΄λ, λ€μ¨ ν¬μΈνΈ"},
{label: "Organic", description: "μ κΈ°μ : Glassmorphism, λΆλλ¬μ΄ 곑μ "},
{label: "Custom", description: "μ§μ νΈλ λ μ ν"},
{label: "Custom File", description: "μ§μ μ€νμΌ νμΌ κ²½λ‘ μ§μ "}
]
}]
)
IF "Custom":
AskUserQuestion(
questions: [{
question: "μ μ©ν λμμΈ νΈλ λλ₯Ό μ ννμΈμ",
header: "Trends",
multiSelect: true,
options: [
{label: "Dark Mode+", description: "μ΄λμ΄ ν
λ§"},
{label: "Light Skeuomorphism", description: "λΆλλ¬μ΄ κ·Έλ¦Όμ"},
{label: "Glassmorphism", description: "λ°ν¬λͺ
blur"},
{label: "Micro-Animations", description: "μλ―Έμλ λͺ¨μ
"},
{label: "3D Visuals", description: "3D μμ΄μ½"},
{label: "Gamification", description: "Progress, λ°°μ§"}
]
}]
)
IF "Custom File":
# User provides custom style file path via "Other" option
# Expected: Path to a directory containing:
# - references/trends-summary.md
# - references/component-patterns.md
# - templates/*.md (navigation, card, form, dashboard templates)
customPath = userInput
IF NOT exists(customPath + "/references/trends-summary.md"):
Output: "κ²½κ³ : trends-summary.mdλ₯Ό μ°Ύμ μ μμ΅λλ€. κΈ°λ³Έ μ€νμΌμ μ¬μ©ν©λλ€."
DESIGN_TRENDS_PATH = default
ELSE:
DESIGN_TRENDS_PATH = customPath
_meta.customDesignPath = customPath
_meta.designStyle = selectedStyle
_meta.designTrends = selectedTrends
_meta.designTrendsPath = DESIGN_TRENDS_PATH
Step 0.1: Session Init
# Generate session and get SESSION_DIR
result = Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/session-init.sh "" {uiMode} "$(pwd)"
# Parse output to get SESSION_DIR (full absolute path)
sessionId = extract SESSION_ID from result
sessionDir = extract SESSION_DIR from result # CRITICAL: Use this in all script calls
β Auto-launches dashboard
Step 0.R: Resume
IF --resume in args:
Read: .spec-it/{sessionId}/plan/_meta.json
GOTO: _meta.currentStep
Phase 1: Design Brainstorming
Step 1.1: Requirements Analysis
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start design-interviewer
Task(design-interviewer, opus):
Output: 00-requirements/requirements.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete design-interviewer "" 1.1
Step 1.2: Divergent Thinking + Critique
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start divergent-thinker
Task(divergent-thinker, sonnet):
Output: 01-chapters/alternatives/*.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete divergent-thinker "" 1.2
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start chapter-critic
FOR round in [1, 2, 3]:
Task(chapter-critic, opus):
Output: 01-chapters/critique-round{round}.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete chapter-critic "" 1.3
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start chapter-planner
Task(chapter-planner, opus):
Output: 01-chapters/chapter-plan-final.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete chapter-planner "" 1.4
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} phase-complete 1 2 "2.1"
β MILESTONE 1: Chapter Plan Approval
Read: 01-chapters/chapter-plan-final.md
AskUserQuestion: "{N} chapters planned. Proceed?"
Options: [Yes, Modify]
IF Modify: Revise plan
Phase 2: Chapters + UI Architecture
Step 2.1: Batch 1 (CH-00~02) + UI Architecture
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start "chapter-writer,ui-architect"
Task(chapter-writer, sonnet, parallel):
Output: 01-chapters/decisions/CH-00.md, CH-01.md
Task(ui-architect, sonnet):
prompt: "
Role: ui-architect
=== YAML UI FRAME REFERENCE (MUST READ) ===
Read: skills/shared/references/yaml-ui-frame/01-basic-structure.md
Read: skills/shared/references/yaml-ui-frame/02-grid-definition.md
=== DESIGN REFERENCE ===
Read: {_meta.designTrendsPath}/references/trends-summary.md
Read: {_meta.designTrendsPath}/references/component-patterns.md
Design Style: {_meta.designStyle}
Output: 02-screens/screen-list.md, layouts/layout-system.yaml
"
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/planners/screen-planner.sh {sessionId}
FOR each batch:
Task(ui-architect, sonnet, parallel):
prompt: "
Role: ui-architect
=== YAML UI FRAME REFERENCE (MUST READ) ===
Read: skills/shared/references/yaml-ui-frame/03-components.md
Read: skills/shared/references/yaml-ui-frame/07-design-direction.md
=== DESIGN REFERENCE ===
Read: {_meta.designTrendsPath}/references/trends-summary.md
Read: {_meta.designTrendsPath}/references/component-patterns.md
Design Style: {_meta.designStyle}
=== OUTPUT FORMAT (YAML) ===
Use template: assets/templates/UI_WIREFRAME_TEMPLATE.yaml
Output: 02-screens/wireframes/{screen}.yaml
=== CRITICAL RULES ===
- NEVER use ASCII box characters
- Use grid.areas for layout (CSS Grid syntax)
- Include testId for all interactive elements
"
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete "chapter-writer,ui-architect" "" 2.1
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} phase-complete 2 3 "3.1"
β MILESTONE 2: Basic Structure Approval
AskUserQuestion: "Basic structure (CH-00~02) complete. Continue?"
Options: [Yes, Review]
Phase 3: Features + Components
Step 3.1: Batch 2 (CH-03~04)
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start "chapter-writer,component-auditor"
Task(chapter-writer, sonnet, parallel):
Output: 01-chapters/decisions/CH-03.md, CH-04.md
Task(component-auditor, haiku):
Output: 03-components/inventory.md, gap-analysis.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete "chapter-writer,component-auditor"
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/planners/component-planner.sh {sessionId}
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start "component-builder,component-migrator"
Task(component-builder, sonnet, parallel):
Output: 03-components/new/spec-{component}.md
Task(component-migrator, sonnet):
Output: 03-components/migrations/migration-plan.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete "component-builder,component-migrator" "" 3.1
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} phase-complete 3 4 "4.1"
β MILESTONE 3: Feature Approval
AskUserQuestion: "Features (CH-03~04) complete. Continue?"
Options: [Yes, Review]
Phase 4: Remaining + Review
Step 4.1: Batch 3 (CH-05~07) + Review
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start "chapter-writer,critical-reviewer,ambiguity-detector"
Task(chapter-writer, sonnet, parallel):
Output: CH-05.md, CH-06.md, CH-07.md
Task(critical-reviewer, opus, parallel):
Output: 04-review/scenarios/, ia-review.md, exceptions/
Task(ambiguity-detector, opus, parallel):
Output: 04-review/ambiguities.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete "chapter-writer,critical-reviewer,ambiguity-detector" "" 4.1
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} phase-complete 4 5 "5.1"
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/phase-dispatcher.sh {sessionId} ambiguity
β IF must-resolve: AskUserQuestion
Phase 5: Test Specification
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start "persona-architect,test-spec-writer"
Task(persona-architect, sonnet, parallel):
Output: 05-tests/personas/
Task(test-spec-writer, sonnet, parallel):
Output: 05-tests/scenarios/, components/, coverage-map.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete "persona-architect,test-spec-writer" "" 5.1
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} phase-complete 5 6 "6.1"
Phase 6: Final Assembly
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-start spec-assembler
Task(spec-assembler, haiku):
Output: 06-final/final-spec.md, dev-tasks.md, SPEC-SUMMARY.md
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} agent-complete spec-assembler "" 6.1
β MILESTONE 4: Final Approval
AskUserQuestion: "Spec complete. Handle tmp folder?"
Options: [Archive, Keep, Delete]
Bash: $HOME/.claude/plugins/marketplaces/claude-frontend-skills/scripts/core/status-update.sh {sessionDir} complete
Output Structure
.spec-it/{sessionId}/plan/
βββ _meta.json, _status.json
tmp/
βββ 00-requirements/
βββ 01-chapters/
β βββ alternatives/, decisions/
β βββ critique-round1~3.md
β βββ chapter-plan-final.md
βββ 02-screens/wireframes/, layouts/, [html/]
βββ 03-components/new/, migrations/
βββ 04-review/scenarios/, exceptions/
βββ 05-tests/personas/, scenarios/
βββ 06-final/
Agents
| Agent | Model | Purpose |
|---|---|---|
| design-interviewer | opus | Requirements |
| divergent-thinker | sonnet | Alternatives |
| chapter-critic | opus | 3-round critique |
| chapter-planner | opus | Plan chapters |
| chapter-writer | sonnet | Write chapters |
| ui-architect | sonnet | Wireframes |
| component-auditor | haiku | Component scan |
| component-builder | sonnet | Component spec |
| component-migrator | sonnet | Migration |
| critical-reviewer | opus | Review |
| ambiguity-detector | opus | Ambiguities |
| persona-architect | sonnet | Personas |
| test-spec-writer | sonnet | Tests |
| spec-assembler | haiku | Assembly |
Resume
/frontend-skills:spec-it-complex --resume {sessionId}
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.