/breakdown - PRD/CRD Task Breakdown
SkillFiles & storageBreak down a PRD or CRD into self-contained implementation tasks for LLM execution. Use when you have a PRD/CRD file and want to generate executable task files for autonomous implementation.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /breakdown - PRD/CRD Task Breakdown skill
What this skill tells your AI
The instructions your AI receives, as published by vinzenz/prd-breakdown-execute in .claude/skills/breakdown/SKILL.md and read by ahel’s review.
You are orchestrating the breakdown of a PRD (Product Requirements Document) or CRD (Change Request Document) into implementation tasks optimized for autonomous LLM execution.
Arguments
<input-path>: Path to PRD index.md or CRD document (required)--layer <N>: Only generate tasks for specific layer (optional, 0-4)--review-only: Only run review pass on existing tasks (optional)--output-dir <path>: Target directory for greenfield projects (overrides default)--project-path <path>: Existing project path for brownfield/CRD (overrides PRD value)--auto-setup: Automatically execute Layer 0 tasks after generation (greenfield only)
Input Format Detection
The skill automatically detects whether the input is a PRD or CRD:
| Root Element | Format | Description |
|---|---|---|
<prd> | PRD | Full product requirements (greenfield or brownfield) |
<crd> | CRD | Change request for existing project |
CRD handling:
- CRDs are always brownfield (no Layer 0)
- CRDs require
--project-pathor a project with PROJECT.md - CRDs use
<impact-analysis>to scope task generation - CRDs typically produce fewer tasks (focused changes)
Output Location
Tasks are written to: docs/tasks/<prd-slug>/
For greenfield with --output-dir:
- Layer 0 tasks reference the output-dir as target
- Other layer tasks are still saved to docs/tasks/
Workflow
Execute these phases in order:
Phase 1: Validate Input
- Read the input file at the provided path
- Detect format by checking root element (
<prd>or<crd>) - Verify valid XML structure
- Extract the slug from
<meta><slug>tag - Create output directory:
docs/tasks/{slug}/ - If directory exists, check for existing
.donemarkers to resume
For CRD input:
- Require
--project-pathargument (CRDs always target existing projects) - Verify PROJECT.md exists at
{project-path}/PROJECT.md - Load PROJECT.md context for use in task generation
Phase 2: Analyze Input
For PRD:
Invoke the breakdown-analyze-prd skill with the full PRD content.
Pass the PRD XML content and request structured extraction of:
- All features with priorities
- Tech stack with versions
- Implied data models
- Implied API endpoints
- Implied frontend components
- External dependencies
- Template path if specified
For CRD: Extract directly from CRD structure:
- Requirements from
<requirements>section - Acceptance criteria from
<acceptance-criteria>section - Affected files from
<impact-analysis><affected-files> - Affected features from
<impact-analysis><affected-features> - Tech stack from PROJECT.md context
- Related existing features from
<context><related-features>
The CRD already contains impact analysis, so less inference is needed.
Save the analysis to docs/tasks/{slug}/analysis.json
Phase 3: Plan Layers
For PRD:
Invoke the breakdown-plan-layers skill with the analysis JSON.
Request organization into 4-5 layers:
- 0-setup: Template copy, git init, environment (greenfield only)
- 1-foundation: Database models, migrations, base config
- 2-backend: API endpoints, services, business logic
- 3-frontend: React components, state management, routing
- 4-integration: Wiring, E2E flows, polish
For CRD:
Layer planning is simpler based on <impact-analysis>:
- If
<affected-schemas>has changes: Include Layer 1 (foundation) - If
<affected-apis>has changes: Include Layer 2 (backend) - If frontend files in
<affected-files>: Include Layer 3 (frontend) - Always include Layer 4 (integration) for wiring changes together
CRD typically produces 2-3 layers, not 5.
Save the layer plan to docs/tasks/{slug}/layer_plan.json
Phase 4: Generate Tasks (Per Layer)
Determine layers to process based on input type:
- PRD Greenfield:
[0-setup, 1-foundation, 2-backend, 3-frontend, 4-integration] - PRD Brownfield:
[1-foundation, 2-backend, 3-frontend, 4-integration](skip Layer 0) - CRD: Only layers identified in Phase 3 based on impact analysis
For each layer in order:
-
Check completion: If
{layer}/.doneexists, skip this layer -
Create directory:
docs/tasks/{slug}/{layer}/ -
Batch tasks: Split layer tasks into batches of max 5 tasks each
- If layer has ≤5 tasks: single batch
- If layer has 6-10 tasks: 2 batches
- If layer has 11-15 tasks: 3 batches
- Example: 14 tasks → batches of [5, 5, 4]
-
For each batch, with retry loop (max 3 attempts per batch):
for batch in batches: for attempt in [1, 2, 3]: # Generate invoke breakdown-generate-tasks with: - Layer name - Task batch (subset of layer tasks) - PRD analysis - Template path (if any) - Output directory: docs/tasks/{slug}/{layer}/ - Previous review feedback (if retry) # Review invoke breakdown-review-tasks with: - Path to generated task files - Layer name # Handle result if review.verdict == "PASSED": break # Move to next batch elif attempt < 3: # Extract failures for next attempt feedback = { "attempt": attempt + 1, "previous_failures": review.critical_issues } else: # Max retries exceeded Report: "Batch failed after 3 attempts. Manual intervention required." Report: review.critical_issues Exit without creating .done -
Mark layer complete: After ALL batches pass, create
{layer}/.donemarker
Phase 5: Finalize
- Generate
docs/tasks/{slug}/manifest.jsoncontaining:- PRD slug and name
- Generation timestamp
- Layer completion status
- Task inventory with IDs and file paths
- Report completion summary:
- Total tasks generated
- Tasks per layer
- Any review failures requiring attention
Task File Format
Each task file follows this XML structure (see references/task-format-spec.md for full spec):
<task>
<meta>
<id>L1-001</id>
<name>Task Name</name>
<layer>1-foundation</layer>
<priority>1</priority>
</meta>
<context>...</context>
<dependencies>...</dependencies>
<objective>...</objective>
<requirements>...</requirements>
<test-requirements>...</test-requirements>
<files-to-create>...</files-to-create>
<verification>...</verification>
<exports>...</exports>
</task>
Critical Constraints
- Self-contained tasks: Each task file MUST contain ALL information needed for implementation. No external lookups.
- Small context: Tasks are designed for ~50k token context models (Haiku, GLM 4.5-4.7)
- Interface contracts: Dependencies use type signatures, not full code
- Max 3 files per task: Keep scope manageable
- TDD approach: Test requirements come before implementation
- Explicit verification: Every task has runnable verification commands
Error Handling
- If PRD file not found: Report error, exit
- If PRD invalid XML: Report parsing error with details, exit
- If skill invocation fails: Report which phase failed, suggest retry
- If review fails: Do NOT mark layer complete, report specific issues
Example Usage
Greenfield Project
/breakdown docs/prd/voice-prd-generator/index.md --output-dir /path/to/new-project
Output:
Analyzing PRD: voice-prd-generator
Detected: greenfield project (Python + FastAPI template)
Target directory: /path/to/new-project
Saved analysis to: docs/tasks/voice-prd-generator/analysis.json
Planning layers...
Saved layer plan to: docs/tasks/voice-prd-generator/layer_plan.json
Generating Layer 0 (Setup)...
Batch 1/1: [L0-001, L0-002, L0-003, L0-004]
- L0-001-copy-template.xml
- L0-002-init-git-env.xml
- L0-003-configure-database.xml
- L0-004-verify-setup.xml
Reviewing batch... PASSED
Created: docs/tasks/voice-prd-generator/0-setup/.done
Generating Layer 1 (Foundation)...
Batch 1/1: [L1-001, L1-002, L1-003, L1-004, L1-005]
- L1-001-project-model.xml
- L1-002-conversation-model.xml
- L1-003-message-model.xml
- L1-004-prddocument-model.xml
- L1-005-personaworkflow-model.xml
Reviewing batch... PASSED
Created: docs/tasks/voice-prd-generator/1-foundation/.done
Generating Layer 2 (Backend)...
Batch 1/3: [L2-001, L2-002, L2-003, L2-004, L2-005]
Reviewing batch... PASSED
Batch 2/3: [L2-006, L2-007, L2-008, L2-009, L2-010]
Reviewing batch... FAILED (attempt 1)
- L2-008: Contains placeholder 'TBD' for schema
Regenerating with feedback...
Reviewing batch... PASSED (attempt 2)
Batch 3/3: [L2-011, L2-012, L2-013, L2-014]
Reviewing batch... PASSED
Created: docs/tasks/voice-prd-generator/2-backend/.done
[continues for layers 3-4...]
Breakdown complete!
- Total tasks: 28
- 0-setup: 4 tasks
- 1-foundation: 5 tasks
- 2-backend: 14 tasks
- 3-frontend: 7 tasks
- 4-integration: 4 tasks
Brownfield Project (PRD)
/breakdown docs/prd/new-feature/index.md --project-path /existing/project
Output:
Analyzing PRD: new-feature
Detected: brownfield project
Existing project: /existing/project
Skipping Layer 0 (setup)
[continues with layers 1-4...]
CRD (Change Request)
/breakdown docs/crd/dark-mode-toggle.md --project-path /existing/project
Output:
Analyzing CRD: dark-mode-toggle
Detected: Change Request Document
Existing project: /existing/project
Loading PROJECT.md context...
Impact Analysis:
- Affected files: 4 (2 modify, 2 create)
- Affected features: settings
- Breaking changes: none
Planning layers from impact...
- Layer 2 (backend): 1 task (API endpoint)
- Layer 3 (frontend): 2 tasks (component, hook)
- Layer 4 (integration): 1 task (wiring)
Generating Layer 2 (Backend)...
Batch 1/1: [L2-001]
- L2-001-theme-settings-api.xml
Reviewing batch... PASSED
Created: docs/tasks/dark-mode-toggle/2-backend/.done
Generating Layer 3 (Frontend)...
Batch 1/1: [L3-001, L3-002]
- L3-001-theme-toggle-component.xml
- L3-002-use-theme-hook.xml
Reviewing batch... PASSED
Created: docs/tasks/dark-mode-toggle/3-frontend/.done
Generating Layer 4 (Integration)...
Batch 1/1: [L4-001]
- L4-001-wire-theme-toggle.xml
Reviewing batch... PASSED
Created: docs/tasks/dark-mode-toggle/4-integration/.done
Breakdown complete!
- Total tasks: 4
- 2-backend: 1 task
- 3-frontend: 2 tasks
- 4-integration: 1 task
To execute:
/execute docs/tasks/dark-mode-toggle/ --project-path /existing/project
Signals
- GitHub stars
- 56
- Forks
- 3
- Last commit
- Jan 2026
Advanced
- Catalog kind
- skill
- Gateway key
breakdown- Source
- github.com/vinzenz/prd-breakdown-execute