Loading...
Loading...
Generates detailed implementation plans with milestones and tasks from business and technical requirements. Embeds best practices including task sizing (30m-2.5h), style anchors, TDD requirements, and quality constraints. Outputs milestones.yaml and milestone-m*.tasks.yaml files ready for development.
npx skill4agent add validkeys/sherpy implementation-plannerbusiness-requirements.yamltechnical-requirements.yamlModels optimize locally; enforce global constraints with layered verification (prompt → IDE → commit → CI → runtime).
milestones.yamlversion: "1.0.0"
project: [project-name]
generated: [timestamp]
business_requirements: [path/to/business-requirements.yaml]
technical_requirements: [path/to/technical-requirements.yaml]
milestones:
- id: m0
name: [Milestone Name]
description: |
[What this milestone delivers]
dependencies: [] # Empty for first milestone
estimated_duration: [timeframe]
tasks_file: milestone-m0.tasks.yaml
success_criteria:
- [Criterion 1]
- [Criterion 2]
- id: m1
name: [Milestone Name]
description: |
[What this milestone delivers]
dependencies: [m0] # References previous milestone
estimated_duration: [timeframe]
tasks_file: milestone-m1.tasks.yaml
success_criteria:
- [Criterion 1]
- [Criterion 2]milestone-m*.tasks.yamlmilestone: [milestone-id]
name: [Milestone Name]
generated: [timestamp]
style_anchors:
- path: [path/to/example/file.ts]
lines: [10-50]
description: |
[What pattern this demonstrates]
[Why it's a good example]
- path: [path/to/test/file.test.ts]
lines: [1-30]
description: |
[Testing pattern example]
global_constraints:
allowed_patterns:
- [Pattern 1 - e.g., "Use Effect.Service for all services"]
- [Pattern 2 - e.g., "Use Schema.Class for all data validation"]
forbidden_patterns:
- [Anti-pattern 1 - e.g., "Direct async/await in service methods"]
- [Anti-pattern 2 - e.g., "Type assertions on external data"]
tdd_required: true
max_task_duration_minutes: 150
commit_strategy: "Commit after each task"
quality_gates:
- stage: pre-commit
commands:
- [linter command]
- [type checker command]
- [test command]
- stage: task-completion
criteria:
- All tests passing
- No lint errors
- Code formatted
- Documentation updated
tasks:
- id: [milestone]-001
name: [Task name]
description: |
[What to implement]
[Why it's needed]
estimate_minutes: 60
type: [code/test/docs/config]
dependencies: [] # or list of task IDs
files:
create:
- [path/to/new/file.ts]
- [path/to/new/file.test.ts]
modify:
- [path/to/existing/file.ts]
touch_only:
- [files to reference but not modify]
instructions: |
**Objective:**
[Clear statement of what needs to be done]
**Implementation Steps:**
1. [Step 1]
2. [Step 2]
3. [Step 3]
**Constraints:**
- ONLY use: [specific libraries/approaches]
- Follow pattern in: [style anchor reference]
- File scope: ONLY modify listed files
**TDD Checklist:**
- [ ] Write failing test first
- [ ] Implement minimum code to pass
- [ ] Refactor if needed
- [ ] All tests passing
**Validation:**
```bash
[command to run]
```
Expected: [what success looks like]
**Drift Policy:**
If you encounter unexpected patterns or dependencies, STOP immediately.
Do not fix mid-stream. Report the issue and await guidance.
validation:
commands:
- [test command]
- [linter command]
expected_output: [success criteria]
on_failure: [what to do if validation fails]
- id: [milestone]-002
name: [Task name]
dependencies: [[milestone]-001]
...- id: m1-001
name: Add export statement
estimate_minutes: 10
rationale: "Simple addition but critical for module system"- id: m1-002
name: Implement user authentication service
estimate_minutes: 90
dependencies: [m1-001]# BEFORE (too large):
- id: m1-003
name: Build complete API layer
estimate_minutes: 300
# AFTER (properly split):
- id: m1-003
name: Define API interface and types
estimate_minutes: 60
- id: m1-004
name: Implement API routes
estimate_minutes: 90
dependencies: [m1-003]
- id: m1-005
name: Add API middleware and error handling
estimate_minutes: 60
dependencies: [m1-004]style_anchors:
- path: src/services/UserService.ts
lines: 10-50
description: |
Example of Effect.Service pattern with:
- Dependency injection via Effect.Service
- All methods returning Effect types
- Proper error handling with tagged errors
- path: test/services/UserService.test.ts
lines: 1-40
description: |
Example of testing Effect services:
- Using it.effect from @effect/vitest
- Providing service dependencies
- Testing both success and failure casesquality_gates:
- stage: pre-commit
commands:
- npm run lint
- npm run typecheck
- npm test
must_pass: truequality_gates:
- stage: ci
commands:
- npm run lint
- npm run typecheck
- npm test
- npm run test:integration
coverage_threshold: 80quality_gates:
- stage: task-completion
criteria:
- All tests passing
- No lint errors
- No type errors
- Code formatted
- Documentation updated
- Commit message follows convention/implementation-planner path/to/business-requirements.yaml path/to/technical-requirements.yaml/implementation-planner path/to/business-requirements.yaml path/to/technical-requirements.yaml --style-anchors ./examplesmilestones.yamlmilestone-m*.tasks.yamlproject/
├── business-requirements.yaml
├── technical-requirements.yaml
└── examples/
├── service.ts
├── service.test.ts
└── schema.ts/implementation-planner \
business-requirements.yaml \
technical-requirements.yaml \
--style-anchors ./examplesproject/
├── milestones.yaml
├── milestone-m0.tasks.yaml # Foundation
├── milestone-m1.tasks.yaml # Core features
├── milestone-m2.tasks.yaml # Advanced features
└── milestone-m3.tasks.yaml # Polish & releasetask_sizing_analysis:
total_tasks: [count]
average_duration: [minutes]
too_small:
- task_id: [id]
estimate: [minutes]
rationale: [why it's small]
recommendation: [merge with X or accept]
too_large:
- task_id: [id]
estimate: [minutes]
recommendation: [split into X, Y, Z]
optimal_range:
count: [number]
percentage: [%]dependency_analysis:
critical_path: [m0 → m1 → m3 → m5]
critical_path_duration: [time]
parallel_opportunities:
- [m2 and m3 can run in parallel]
- [m4 can start after m1]
dependency_issues:
- task: [id]
issue: [unnecessary dependency / missing dependency]
recommendation: [fix]requirement_coverage:
functional_requirements:
FR-1: [m1-001, m1-002] # Tasks covering this requirement
FR-2: [m1-003]
FR-3: [gap] # Not covered!
non_functional_requirements:
performance: [m2-001, m2-002]
security: [m1-005]
usability: [gap] # Not covered!gap_analysis:
completeness_score: [1-10]
alignment_score: [1-10]
feasibility_score: [1-10]
critical_gaps:
- category: [category]
issue: [description]
impact: [high/medium/low]
affected_requirements: [FR-1, FR-2, etc]
recommendation: [how to fix]
missing_coverage:
requirements:
- [FR-X not covered]
- [NFR-Y not covered]
task_types:
- [Missing: integration tests]
- [Missing: documentation]
sizing_issues:
too_small_count: [n]
too_large_count: [n]
recommendations: [list]
dependency_issues:
- [description]
strong_areas:
- [what's well-planned]
optimization_opportunities:
- [parallel execution: m2 and m3]
- [combine tasks: m1-002 and m1-003]
suggestions:
- [improvement suggestions]
ready_for_development: [yes/no/with-modifications]
estimated_timeline:
optimistic: [time]
realistic: [time]
pessimistic: [time]"I've identified some gaps in the implementation plan:Critical Issues:
- [Issue 1]
- [Issue 2]
Missing Coverage:
- [Requirement FR-X not covered]
- [No integration tests planned]
Would you like to:
- Add missing tasks now (I'll generate them)
- Review and manually adjust the plan
- Proceed with development (address gaps as needed)"
# Load milestone tasks into context
Read milestone-m1.tasks.yaml
# Review style anchors
Read examples/service.ts:10-50
Read examples/service.test.ts:1-40
# Begin first task
# Task m1-001: Implement core service