
spec-based-web-dev
by xodnjs1219-cpu
SKILL.md
name: spec-based-web-dev description: Systematic web development workflow from PRD to implementation plan. Generates database schemas, detailed use cases with sequence diagrams, page requirements with state management design (Context + useReducer), and modular implementation plans. Use when building web applications following spec-driven development methodology with PostgreSQL and React.
Spec-Based Web Development
Structured workflow for translating specifications into implementation-ready plans.
Workflow Overview
The development process follows a sequential workflow with built-in review cycles:
- Database Schema - Design minimal database structure from PRD and user flow
- → Review & Approval - User validates schema before proceeding
- Use Cases - Document detailed specifications for each feature with sequence diagrams
- → Review & Approval - User validates use case before proceeding
- → Page Complexity Analysis - Analyze pages and suggest state management needs
- State Management - Design page-level state using Flux pattern with Context + useReducer
- → Review & Approval - User validates state design before proceeding
- Implementation Plan - Create modular implementation plans (feature-based or page-based)
- → Final Review - User approves plan before implementation
Each phase builds upon previous outputs, creating a complete specification chain from requirements to code-ready plans. User approval is required after each phase to ensure alignment before proceeding.
Phase 1: Database Schema
Generate minimal database schema and migration files.
🤖 Recommended Agent: database_writer
Use the Task tool to launch the database_writer agent for this phase:
Task(
subagent_type="database_writer",
description="Generate database schema",
prompt="/docs/prd.md, /docs/userflow.md, 그리고 /docs/external/ 디렉토리의 모든 파일을 참조하여 데이터베이스 스키마를 설계하고 /docs/database.md와 migration SQL을 생성해주세요. 외부 서비스 연동이 필요한 경우 해당 데이터 요구사항도 스키마에 반영해주세요."
)
Inputs:
/docs/prd.md- Product requirements document/docs/userflow.md- User flow documentation/docs/external/[service].md- External service integration specs (if exists)
Process:
- Read all files in
/docs/external/directory to identify external service requirements - Identify data entities explicitly mentioned in user flow
- Create high-level data flow diagram (including external service data flows)
- Design PostgreSQL schema with minimal fields
- Consider external service data requirements when designing schema
- Generate migration SQL
Outputs:
/docs/database.md- Data flow + schema documentation/supabase/migrations/*.sql- Migration files
Key Guidelines:
- MUST read all files in
/docs/external/directory before designing schema - Include ONLY data explicitly in user flow or required by external services
- Consider external service data requirements (API responses, webhook payloads, etc.)
- Use PostgreSQL-specific features appropriately
- Present data flow before detailed schema (including external service interactions)
- Keep schema minimal for MVP
Agent Benefits:
- Specialized in database design from userflow
- Follows PostgreSQL best practices
- Generates idempotent migration files automatically
Review & Approval:
After completing this phase, present the generated files to the user with:
-
Summary: Brief overview of what was created
- Number of tables designed
- Key relationships identified
- Migration files generated
-
Review Questions:
- "Does the data flow diagram accurately represent your requirements?"
- "Are there any missing entities or relationships?"
- "Is the schema minimal enough for MVP, or should we simplify further?"
-
Request Feedback:
- Ask: "Please review
/docs/database.mdand/supabase/migrations/*.sql. Any changes needed before proceeding to Use Cases?" - Wait for user approval or modification requests
- If modifications needed, update files and repeat review
- Ask: "Please review
-
Git Commit Proposal (after user approval):
- Suggest creating a commit with the following message:
docs(database): add database schema and migration - Create database schema documentation - Add PostgreSQL migration file - Define N tables with relationships - Ask: "이 커밋을 생성할까요?"
- If user approves, use Bash tool to create the commit
- If user declines, skip and proceed to Phase 2
- Suggest creating a commit with the following message:
Do not proceed to Phase 2 until user explicitly approves the review.
Phase 2: Use Cases
Create detailed use case specifications for individual features.
🤖 Recommended Agent: usecase-writer
Use the Task tool to launch the usecase-writer agent for each feature:
Task(
subagent_type="usecase-writer",
description="Write use case for feature N",
prompt="/docs/userflow.md의 {N}번 기능에 대한 상세 유스케이스를 작성하고 /docs/00N/spec.md에 저장해주세요. Hono Backend Guide를 참고하여 API 명세도 포함해주세요."
)
Inputs:
/docs/userflow.md- Identifies features to document- Feature number N from user flow
/docs/database.md- Database schema (for data references)/docs/external/[service].md- External service integration specs (if exists)
Process:
- Extract feature N from user flow
- Check if external service integration is required (
/docs/external/[service].md) - Document use case with standard structure
- Create sequence diagram showing User → FE → BE → Database (and External Service if applicable) interactions
- [IMPORTANT] Include Backend API specifications (see Hono Backend Guide)
- [IMPORTANT] Include External Service integration details if
/docs/external/[service].mdexists
Output:
/docs/00N/spec.md- Use case specification
Required Sections:
- Primary Actor
- Precondition (user perspective only)
- Trigger
- Main Scenario (numbered steps)
- Edge Cases (error handling)
- Business Rules
- API Specification: Endpoint, Request/Response schemas, Error codes
- Database Operations: Tables, operations (INSERT/SELECT/UPDATE/DELETE)
- External Service Integration: Service name, purpose, API calls (if
/docs/external/[service].mdexists)
- Sequence Diagram (PlantUML format, no separators)
Diagram Guidelines:
- Use standard PlantUML syntax
- Subdivide BE layer: Hono Router (route.ts) and Service (service.ts)
- Include External Service participant: If external service is used, add as a separate participant (e.g., "Payment Gateway", "Email Service")
- Show validation, transformation, and error handling flows
- No custom separators or non-standard markup
- Show complete interaction flow including external service calls
For Hono + Supabase projects: See detailed guidance in Hono Backend Guide
Agent Benefits:
- Automatically reads PRD, userflow, and database schema
- Creates PlantUML sequence diagrams with correct syntax
- Includes API specifications (endpoints, schemas, error codes)
- Follows use case writing best practices
- Numbers use cases appropriately (001, 002, etc.)
Review & Approval:
After completing this phase, present the use case document to the user with:
-
Summary: Quick overview of the use case
- Feature being documented
- Number of main scenario steps
- Number of edge cases covered
- API endpoints defined (if applicable)
-
Key Highlights:
- Primary actor and trigger
- Critical business rules
- Important edge cases
-
Visual Check:
- Share the PlantUML sequence diagram (suggest rendering at plantuml.com)
- Ask: "Does this flow match your expectations?"
-
Review Questions:
- "Is the main scenario complete and accurate?"
- "Are there any missing edge cases or error scenarios?"
- "Do the business rules align with your requirements?"
- "Is the API specification clear?" (for Hono projects)
-
Request Feedback:
- Ask: "Please review
/docs/00N/spec.md. Any changes needed before proceeding to the next use case or State Management?" - Wait for user approval or modification requests
- If modifications needed, update the document and repeat review
- Ask: "Please review
-
Git Commit Proposal (after user approval):
- Suggest creating a commit with the following message:
docs(usecase): add use case specification for feature N - Document main scenario with X steps - Add Y edge cases for error handling - Include API specification (endpoints, schemas, error codes) - Create sequence diagram for user flow - Ask: "이 커밋을 생성할까요?"
- If user approves, use Bash tool to create the commit
- If user declines, skip and proceed to next use case or Phase 2.5
- Suggest creating a commit with the following message:
Do not proceed to the next use case or Phase 2.5 until user explicitly approves the review.
Phase 2.5: Page Complexity Analysis
Trigger: After all Use Cases are completed and approved
Analyze all use cases to identify pages requiring state management and suggest appropriate complexity levels.
Purpose:
- Identify which pages need state management
- Determine complexity level for each page
- Suggest state management depth (Level 1-3)
- Prioritize pages for Phase 3 work
Process:
-
Extract Pages from Use Cases
- Read all
/docs/00N/spec.mdfiles - Identify all unique pages mentioned
- List pages with their associated use cases
- Read all
-
Calculate Complexity Score
For each page, score across four dimensions (see page-complexity-analysis.md):
-
State Complexity (1-5+ points)
- Number of data types to manage
- Server data, form state, UI state, filters, etc.
-
Interaction Complexity (1-5+ points)
- Number of user actions
- CRUD operations, filtering, sorting, pagination
-
Component Hierarchy (1-4+ points)
- Component depth
- Number of siblings sharing state
-
Data Flow Complexity (1-5+ points)
- Data sources (API, localStorage, URL params)
- Data transformations (filter, sort, aggregate)
-
-
Determine Management Level
Based on total score:
Total Score Level Recommendation 0-5 Low No state management needed 6-10 Medium Level 1: Basic state definition only 11-15 High Level 2: Flux pattern (Action/Reducer/View) 16+ Very High Level 3: Full Context + useReducer -
Suggest Priority Order
- Rank pages by complexity (highest first)
- Consider business criticality
- Recommend which pages to work on in Phase 3
Output Format:
Present analysis to user with:
📊 **페이지 복잡도 분석 완료**
모든 Use Case를 분석한 결과:
## 분석 결과 테이블
| 페이지 | 점수 | 레벨 | 작업 범위 |
|--------|------|------|-----------|
| 결제 페이지 | 18 | Very High | ⭐⭐⭐ Level 3 (Context + useReducer) |
| 장바구니 | 15 | High | ⭐⭐ Level 2 (Flux 패턴) |
| 상품 목록 | 12 | High | ⭐⭐ Level 2 (Flux 패턴) |
| 상품 상세 | 6 | Medium | ⭐ Level 1 (기본 상태만) |
| 회사 소개 | 2 | Low | ❌ 작업 불필요 |
## 각 페이지 상세 분석
### 1. 결제 페이지 (18점, Very High)
**복잡도 구성:**
- 상태: 6점 (결제 정보, 배송 정보, 쿠폰, UI 상태)
- 상호작용: 5점 (여러 폼, 검증, API 호출)
- 계층: 4점 (5단계 이상 깊이)
- 데이터 흐름: 3점 (API + localStorage + 복잡한 계산)
**제안 수준: Level 3**
- ✅ Requirement.md
- ✅ State Management.md (전체)
- 상태 정의
- Flux 패턴
- Context 설계
**이유:**
여러 하위 컴포넌트가 결제 상태를 공유해야 하므로 Context 필수
[... 다른 페이지들 ...]
## 권장 작업 순서
1. **결제 페이지** (18점) → Level 3
2. **장바구니** (15점) → Level 2
3. **상품 목록** (12점) → Level 2
4. **(선택) 상품 상세** (6점) → Level 1
## 다음 단계 선택
어떻게 진행하시겠습니까?
1. "결제 페이지부터 시작" → 해당 페이지 Level 3 작업
2. "순서대로 모두 진행" → 1번부터 순차 작업
3. "[페이지명] 먼저" → 지정 페이지 작업
4. "분석만 확인" → Phase 3 건너뛰고 Phase 4로
Level별 작업 범위:
-
Level 1 (Medium, 6-10점):
/docs/pages/[pagename]/requirement.md작성- 상태 정의 + 상태 전환 테이블만
- Flux/Context 없음
-
Level 2 (High, 11-15점):
/docs/pages/[pagename]/requirement.md작성/docs/pages/[pagename]/state_management.md작성 (부분)- 상태 정의 + Flux 패턴 (Action/Reducer/View)
- Context 설계 없음 (useReducer만)
-
Level 3 (Very High, 16+점):
/docs/pages/[pagename]/requirement.md작성/docs/pages/[pagename]/state_management.md작성 (전체)- 상태 정의 + Flux 패턴 + Context 설계
User Decision:
Wait for user to select:
- Which page(s) to work on
- Whether to proceed with all suggestions
- Whether to skip Phase 3 entirely
Important:
- Do not proceed to Phase 3 without user's decision
- If user skips Phase 3, go directly to Phase 4
- If user selects specific pages, only work on those
For detailed scoring criteria, see Page Complexity Analysis Guide.
Phase 3: State Management
Design page-level state management with Flux pattern.
🤖 Recommended Agent: status_management_writer
Use the Task tool to launch the status_management_writer agent for selected pages:
Task(
subagent_type="status_management_writer",
description="Design state management for [pagename]",
prompt="[pagename] 페이지에 대한 상태 관리 문서를 작성해주세요. Level {N} 수준으로 작성하며, requirement.md와 state_management.md를 생성해주세요."
)
Note: Based on Phase 2.5 analysis, only work on pages that require state management (Level 1-3).
Inputs:
/docs/prd.md/docs/userflow.md/docs/usecases/**- Related use cases- Page name
- Complexity Level (from Phase 2.5 analysis)
Process:
- Create page requirements document
- Define state data vs derived/display data
- Apply Flux pattern (Action → Store → View)
- Design Context + useReducer implementation
- Document exposed interface for child components
Outputs:
/docs/pages/[pagename]/requirement.md- Requirements and data flow/docs/pages/[pagename]/state_management.md- State design
State Management Structure:
-
State Data Identification
- List managed state
- List derived/display-only data
-
State Transition Table
- Change conditions
- UI updates per state change
-
Flux Pattern Design
- Actions (user-triggered events)
- Store (state updates via useReducer)
- View (component rendering)
-
Context Design
- Data loading flow visualization
- Exposed variables and functions
- Focus on interface design, not implementation details
Implementation Standards:
- Use useReducer for state management
- Follow industry best practices for Context API
- Include database interactions in requirements
Agent Benefits:
- Follows structured workflow (requirement → state definition → Flux → Context)
- Adheres to complexity level guidelines (Level 1/2/3)
- Creates both requirement.md and state_management.md automatically
- Ensures Flux pattern consistency (Action → Reducer → View)
- Designs Context interface with proper TypeScript types
Review & Approval:
After completing this phase, present the state management documents to the user with:
-
Summary: Overview of state design
- Number of managed state variables
- Number of derived/display-only data
- Number of actions defined
- Data loading sources (API, local storage, etc.)
-
Key Design Decisions:
- State vs. Derived data separation rationale
- Critical state transitions
- Context interface highlights
-
Validation Check:
- Confirm state is minimal (not over-engineered)
- Verify action names are clear and consistent
- Check reducer logic is understandable
-
Review Questions:
- "Does the state structure match your mental model of the page?"
- "Are the actions comprehensive enough to handle all user interactions?"
- "Is the Context interface clear for other developers to use?"
- "Should we simplify or expand any state management logic?"
-
Request Feedback:
- Ask: "Please review
/docs/pages/[pagename]/requirement.mdand/docs/pages/[pagename]/state_management.md. Any changes needed before proceeding to Implementation Plan?" - Wait for user approval or modification requests
- If modifications needed, update documents and repeat review
- Ask: "Please review
-
Git Commit Proposal (after user approval):
- Suggest creating a commit with the following message:
docs(state): add state management design for [pagename] page - Create page requirements documentation - Define N state variables and M derived data - Design Flux pattern with X actions - Implement Context API interface (Level N) - Ask: "이 커밋을 생성할까요?"
- If user approves, use Bash tool to create the commit
- If user declines, skip and proceed to next page or Phase 4
- Suggest creating a commit with the following message:
Do not proceed to Phase 4 until user explicitly approves the review.
Phase 4: Implementation Plan
Create modular, implementation-ready plans.
Feature-Based Plan
For implementing individual features from use cases.
🤖 Recommended Agent: caseplan-writer
Use the Task tool to launch the caseplan-writer agent:
Task(
subagent_type="caseplan-writer",
description="Create implementation plan for use case N",
prompt="/docs/usecases/00N/spec.md의 유스케이스를 구현하기 위한 상세한 계획을 작성하고 /docs/usecases/00N/plan.md에 저장해주세요. Hono Backend Guide를 참고하여 backend 모듈도 포함해주세요."
)
Inputs:
/docs/usecases/00N/spec.md/docs/external/[service].md- External service integration specs (if referenced in spec.md)- Existing codebase (conventions, implemented features)
CLAUDE.md- Codebase structure guidelines
Process:
- Parse use case requirements
- Check if external service integration is required (read
/docs/external/[service].mdif referenced) - Explore codebase for existing patterns and conventions
- Design modular structure following AGENTS.md
- Identify shared/generic modules
- [IMPORTANT] Design backend modules (see Hono Backend Guide)
- [IMPORTANT] Design external service integration layer if required
Output:
/docs/usecases/00N/plan.md
Plan Structure:
- Overview - Module list with names, locations, descriptions
- Include backend modules: schema.ts, error.ts, service.ts, route.ts
- Include external service integration modules if needed (e.g.,
lib/external/[service]-client.ts)
- Diagram - Mermaid diagram showing module relationships
- Show data flow from Route → Service → Supabase
- Show external service integration flow if applicable
- Implementation Plan - Per-module details with:
- Presentation layer: QA sheets
- Business logic: Unit tests
- Backend layer: Schema definitions, Service unit tests, Route QA sheets
- External Service layer: Integration module, error handling, unit tests (if applicable)
For Hono + Supabase projects: See detailed module templates in Hono Backend Guide
Agent Benefits:
- Explores codebase to find existing patterns and conventions
- Identifies shared/generic modules automatically
- Follows CLAUDE.md structure guidelines strictly
- Includes backend modules (schema, error, service, route) for Hono projects
- Integrates external service specs from
/docs/external/[service].md - Generates Mermaid diagrams showing module relationships including external services
- Creates QA sheets for UI and unit test scenarios for logic
Page-Based Plan
For implementing complete pages with all features.
🤖 Recommended Agent: pageplan-writer
Use the Task tool to launch the pageplan-writer agent:
Task(
subagent_type="pageplan-writer",
description="Create implementation plan for [pagename]",
prompt="[pagename] 페이지의 구현 계획을 작성해주세요. 관련된 모든 use case와 state management 문서를 참고하여 /docs/pages/[pagename]/plan.md에 저장해주세요."
)
Inputs:
- All
/docs/*.mdfiles (direct children only) - Related
/docs/usecases/*/spec.mdfiles /docs/external/[service].md- External service integration specs (if referenced in related use cases)/docs/pages/[pagename]/state_management.md(if exists)- Existing codebase
CLAUDE.md
Process:
- Read all relevant documentation
- Extract page requirements from related use cases
- Check if external service integration is required (read
/docs/external/[service].mdif referenced) - Reference state management design if available
- Explore codebase patterns
- Design modular structure with shared components
- Design external service integration layer if required
Output:
/docs/pages/[pagename]/plan.md
Plan Structure: (Same as feature-based)
Planning Guidelines:
- Follow CLAUDE.md structure strictly
- Identify reusable shared modules
- Consider generic implementations
- Include QA sheets for UI components
- Include unit tests for business logic
Agent Benefits:
- Same as caseplan-writer, but optimized for page-level planning
- Reads all related use cases and state management documents
- Consolidates multiple features into cohesive page implementation
- Ensures consistency across related features
Review & Approval:
After completing this phase, present the implementation plan to the user with:
-
Summary: High-level overview
- Total number of modules to implement
- Module breakdown by category (Frontend, Backend, Shared)
- Estimated implementation order
- Key dependencies identified
-
Key Architectural Decisions:
- Why certain modules were separated
- Shared/generic modules identified for reuse
- Critical dependencies and their rationale
-
Visual Check:
- Share the Mermaid diagram (suggest rendering at mermaid.live)
- Ask: "Does the module structure make sense?"
-
Implementation Readiness:
- Confirm all modules have clear responsibilities
- Verify QA sheets are comprehensive
- Check unit test scenarios are actionable
-
Review Questions:
- "Is the modular structure clear and logical?"
- "Are there any modules that should be split or merged?"
- "Do the QA sheets and unit tests provide enough guidance?"
- "Are backend modules properly designed?" (for Hono projects)
- "Can a developer start coding immediately with this plan?"
-
Request Feedback:
- Ask: "Please review
/docs/usecases/00N/plan.mdor/docs/pages/[pagename]/plan.md. Any changes needed before starting implementation?" - Wait for user approval or modification requests
- If modifications needed, update the plan and repeat review
- Ask: "Please review
-
Final Checklist Reminder:
- Suggest: "You can use the validation checklist in references/validation-checklist.md to ensure all items are covered."
-
Git Commit Proposal (after user approval):
- Suggest creating a commit with the following message:
docs(plan): add implementation plan for [feature/page] - Define N modules with clear responsibilities - Create module dependency diagram - Add QA sheets for UI components - Include unit test scenarios for business logic - Design backend modules (route, service, schema, error) - Ask: "이 커밋을 생성할까요?"
- If user approves, use Bash tool to create the commit
- If user declines, skip and proceed to implementation
- Suggest creating a commit with the following message:
Do not proceed to implementation until user explicitly approves the plan.
Review Cycle Best Practices
For Users:
- Be specific: Instead of "looks good", provide concrete feedback
- Check completeness: Use validation checklists as a guide
- Think ahead: Consider edge cases and future extensibility
- Ask questions: If anything is unclear, ask for clarification
For AI Assistant:
- Wait for approval: Never proceed to next phase without explicit user confirmation
- Accept iterations: Be prepared to revise documents multiple times
- Summarize changes: When updating, clearly state what changed
- Proactive suggestions: If you notice potential issues, point them out during review
Agent Usage Guidelines
When to Use Agents
✅ DO use agents for:
- Phase 1: Database schema generation (database_writer)
- Phase 2: Use case documentation (usecase-writer)
- Phase 3: State management design (status_management_writer)
- Phase 4: Implementation planning (caseplan-writer / pageplan-writer)
- Implementation: Actual coding (implementer)
❌ DON'T use agents for:
- Phase 2.5: Page complexity analysis (manual analysis required)
- Review & Approval steps (user interaction required)
- Simple file edits or updates
How to Launch Agents
Use the Task tool with the appropriate subagent_type:
Task(
subagent_type="<agent-name>", // e.g., "database_writer"
description="<short description>", // e.g., "Generate database schema"
prompt="<detailed task instructions>" // What you want the agent to do
)
Agent Handoff Pattern
Agents work sequentially, with each agent's output becoming input for the next:
database_writer → /docs/database.md
/supabase/migrations/*.sql
↓
usecase-writer → /docs/usecases/00N/spec.md
↓
[Page Analysis] → Complexity scores
↓
status_management_writer → /docs/pages/[page]/requirement.md
/docs/pages/[page]/state_management.md
↓
caseplan-writer/pageplan-writer → /docs/usecases/00N/plan.md
/docs/pages/[page]/plan.md
↓
implementer → Actual code implementation
Agent Supervision
Monitor agent progress:
- Agents may take several minutes for complex tasks
- Check intermediate outputs if available
- Intervene if agent goes off-track
After agent completes:
- Review the generated files
- Use the Review & Approval prompts
- Request modifications if needed
- Only proceed to next phase after approval
Troubleshooting Agents
If agent fails:
- Check the prompt clarity
- Ensure all required input files exist
- Verify file paths are correct
- Re-launch with more specific instructions
If agent output is incomplete:
- Use the validation checklist
- Point out missing items
- Request agent to complete missing parts
If agent deviates from guidelines:
- Reference the relevant guide (Hono Backend Guide, etc.)
- Ask agent to revise following the guidelines
Best Practices
Documentation:
- Write concisely for easy review
- Use consistent formatting across phases
- Include visual diagrams where helpful
- Keep specifications implementation-agnostic until plan phase
Database:
- Start minimal, expand as needed
- Document relationships clearly
- Use appropriate PostgreSQL types and constraints
State Management:
- Separate state from derived data
- Design clear action boundaries
- Keep reducer logic simple and testable
- Document data flow explicitly
Implementation Plans:
- Break into small, testable modules
- Consider reusability from the start
- Include acceptance criteria
- Reference architectural guidelines
Reference Documentation
- workflow-examples.md - Complete examples of each phase with real-world scenarios
- hono-backend-guide.md - Hono + Supabase architecture guide for backend implementation
- page-complexity-analysis.md - Page complexity scoring criteria and state management level recommendations
- prompt-templates.md - Copy-paste ready prompts for each phase, including review prompts
- review-guide.md - Comprehensive guide for the review and approval process
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon