Prd To Tasks
Generate a task breakdown YAML from a PRD file. Creates an ordered list of implementable tasks with dependencies and acceptance criteria. Use after creating or reviewing a PRD.
Generate tasks from the PRD file specified in $ARGUMENTS.
Step 1: Read and validate the PRD
Read the PRD file at the path given in $ARGUMENTS.
Extract the feature name from the filename: prd-<feature-name>.md -> <feature-name>.
If the file doesn't exist or doesn't match the naming pattern, report the error and stop.
Step 2: Generate tasks
Analyze the PRD and break it down into implementable tasks. Each task must have:
- id: Sequential identifier
task-001,task-002, etc. - title: Brief, actionable title (max 80 characters)
- description: Detailed description of what needs to be done (2-4 sentences)
- status: Always
pendingfor new tasks - dependencies: Array of task IDs that must complete first (empty array
[]if none) - acceptance_criteria: Array of specific, testable criteria (3-5 items each)
- completed_at: Always
nullfor new tasks
Order tasks by implementation priority:
- Dependencies and infrastructure first
- Core abstractions and architectural decisions
- Integration points between modules
- Standard features
- Polish and refinements
Keep dependency chains reasonable — don't over-constrain.
Step 3: Write the task YAML
Write to .plans/tasks-<feature-name>.yml using this exact format:
feature: <feature-name>
prd: ./prd-<feature-name>.md
created_at: <ISO-8601-datetime>
updated_at: <ISO-8601-datetime>
tasks:
- id: task-001
title: '<title>'
description: |
<description text>
status: pending
dependencies: []
acceptance_criteria:
- '<criterion 1>'
- '<criterion 2>'
- '<criterion 3>'
completed_at: null
- id: task-002
title: '<title>'
description: |
<description text>
status: pending
dependencies:
- task-001
acceptance_criteria:
- '<criterion 1>'
- '<criterion 2>'
completed_at: null
IMPORTANT formatting rules:
- Use
|for multi-line description blocks - Quote titles and acceptance criteria strings with double quotes
- Use
[]for empty dependencies arrays - Use
null(unquoted) for completed_at - Blank line between task entries
Step 4: Report results
Generated <N> tasks
Saved to .plans/tasks-<feature-name>.yml
Now run:
/hone:run .plans/tasks-<feature-name>.yml -i <N>