297 lines
7.7 KiB
Plaintext
297 lines
7.7 KiB
Plaintext
# Feature Factory
|
|
#
|
|
# From user story to deployed feature. A captain agent coordinates a team
|
|
# of specialists to design, implement, test, and document a complete feature.
|
|
# Watch an entire engineering team's workflow automated.
|
|
#
|
|
# Usage: Describe a feature and watch it get built.
|
|
|
|
input feature: "Description of the feature to implement"
|
|
input codebase_context: "Brief description of the codebase (optional)"
|
|
|
|
# The Captain: Coordinates everything, maintains context across the build
|
|
agent captain:
|
|
model: sonnet
|
|
persist: project # Remembers across features
|
|
prompt: """
|
|
You are the Tech Lead coordinating feature development.
|
|
|
|
Your responsibilities:
|
|
- Break features into implementable tasks
|
|
- Review all work before it merges
|
|
- Maintain architectural consistency
|
|
- Make technical decisions when needed
|
|
- Keep the build moving forward
|
|
|
|
You've worked on this codebase before. Reference prior decisions.
|
|
"""
|
|
|
|
# Specialists
|
|
agent architect:
|
|
model: opus
|
|
prompt: """
|
|
You are a software architect. You design systems that are:
|
|
- Simple (no unnecessary complexity)
|
|
- Extensible (but not over-engineered)
|
|
- Consistent with existing patterns
|
|
|
|
Produce clear technical designs with file paths and interfaces.
|
|
"""
|
|
|
|
agent implementer:
|
|
model: opus
|
|
prompt: """
|
|
You are a senior developer. You write:
|
|
- Clean, idiomatic code
|
|
- Following existing project patterns
|
|
- With clear variable names and structure
|
|
- Minimal but sufficient comments
|
|
|
|
You implement exactly what's specified, nothing more.
|
|
"""
|
|
|
|
agent tester:
|
|
model: sonnet
|
|
prompt: """
|
|
You are a QA engineer. You write:
|
|
- Unit tests for individual functions
|
|
- Integration tests for workflows
|
|
- Edge case tests
|
|
- Clear test names that document behavior
|
|
|
|
Aim for high coverage of the new code.
|
|
"""
|
|
|
|
agent documenter:
|
|
model: sonnet
|
|
prompt: """
|
|
You are a technical writer. You create:
|
|
- Clear API documentation
|
|
- Usage examples
|
|
- README updates
|
|
- Inline JSDoc/docstrings where needed
|
|
|
|
Match existing documentation style.
|
|
"""
|
|
|
|
# ============================================================================
|
|
# Phase 1: Understand the codebase
|
|
# ============================================================================
|
|
|
|
session: captain
|
|
prompt: """
|
|
Starting feature implementation: {feature}
|
|
|
|
First, let me understand the current codebase.
|
|
"""
|
|
|
|
let codebase_analysis = session "Analyze codebase structure"
|
|
prompt: """
|
|
Explore the codebase to understand:
|
|
1. Directory structure and organization
|
|
2. Key patterns used (state management, API style, etc.)
|
|
3. Testing approach
|
|
4. Where this feature would fit
|
|
|
|
Use Glob and Read tools to explore. Be thorough but efficient.
|
|
"""
|
|
context: codebase_context
|
|
|
|
# ============================================================================
|
|
# Phase 2: Design
|
|
# ============================================================================
|
|
|
|
let design = session: architect
|
|
prompt: """
|
|
Design the implementation for: {feature}
|
|
|
|
Based on the codebase analysis, produce:
|
|
1. High-level approach (2-3 sentences)
|
|
2. Files to create/modify (with paths)
|
|
3. Key interfaces/types to define
|
|
4. Integration points with existing code
|
|
5. Potential risks or decisions needed
|
|
|
|
Keep it simple. Match existing patterns.
|
|
"""
|
|
context: { feature, codebase_analysis }
|
|
|
|
# Captain reviews design
|
|
let design_approved = resume: captain
|
|
prompt: """
|
|
Review this design:
|
|
- Does it fit our architecture?
|
|
- Is it the simplest approach?
|
|
- Any risks or concerns?
|
|
- Any decisions I need to make?
|
|
|
|
Return APPROVED or specific concerns.
|
|
"""
|
|
context: design
|
|
|
|
if **design needs adjustment**:
|
|
design = session: architect
|
|
prompt: "Revise design based on tech lead feedback"
|
|
context: { design, design_approved }
|
|
|
|
# ============================================================================
|
|
# Phase 3: Implementation
|
|
# ============================================================================
|
|
|
|
resume: captain
|
|
prompt: "Design approved. Breaking into implementation tasks."
|
|
context: design
|
|
|
|
let tasks = resume: captain
|
|
prompt: """
|
|
Break the design into ordered implementation tasks.
|
|
Each task should be:
|
|
- Small enough to implement in one session
|
|
- Have clear acceptance criteria
|
|
- List file(s) to modify
|
|
|
|
Return as numbered list with dependencies.
|
|
"""
|
|
context: design
|
|
|
|
# Implement each task sequentially
|
|
for task in tasks:
|
|
resume: captain
|
|
prompt: "Starting task: {task}"
|
|
|
|
let implementation = session: implementer
|
|
prompt: """
|
|
Implement this task:
|
|
{task}
|
|
|
|
Follow the design spec. Match existing code patterns.
|
|
Write the actual code using Edit/Write tools.
|
|
"""
|
|
context: { task, design, codebase_analysis }
|
|
retry: 2
|
|
backoff: exponential
|
|
|
|
# Captain reviews each piece
|
|
let review = resume: captain
|
|
prompt: """
|
|
Review this implementation:
|
|
- Does it match the design?
|
|
- Code quality acceptable?
|
|
- Any issues to fix before continuing?
|
|
|
|
Be specific if changes needed.
|
|
"""
|
|
context: { task, implementation }
|
|
|
|
if **implementation needs fixes**:
|
|
session: implementer
|
|
prompt: "Fix issues noted in review"
|
|
context: { implementation, review }
|
|
|
|
# ============================================================================
|
|
# Phase 4: Testing
|
|
# ============================================================================
|
|
|
|
resume: captain
|
|
prompt: "Implementation complete. Starting test phase."
|
|
|
|
let tests = session: tester
|
|
prompt: """
|
|
Write tests for the new feature:
|
|
1. Unit tests for new functions/methods
|
|
2. Integration tests for the feature flow
|
|
3. Edge cases and error handling
|
|
|
|
Use the project's existing test framework and patterns.
|
|
Actually create the test files.
|
|
"""
|
|
context: { design, codebase_analysis }
|
|
|
|
# Run tests
|
|
let test_results = session "Run test suite"
|
|
prompt: """
|
|
Run all tests:
|
|
1. npm test / pytest / cargo test (whatever this project uses)
|
|
2. Report results
|
|
3. If failures, identify which tests failed and why
|
|
"""
|
|
|
|
loop until **all tests pass** (max: 5):
|
|
if **tests are failing**:
|
|
let fix = session: implementer
|
|
prompt: "Fix failing tests. Either fix the code or fix the test if it's wrong."
|
|
context: test_results
|
|
|
|
test_results = session "Re-run tests after fix"
|
|
prompt: "Run tests again and report results"
|
|
|
|
# ============================================================================
|
|
# Phase 5: Documentation
|
|
# ============================================================================
|
|
|
|
resume: captain
|
|
prompt: "Tests passing. Final phase: documentation."
|
|
|
|
parallel:
|
|
api_docs = session: documenter
|
|
prompt: """
|
|
Document the new feature's API:
|
|
- Function/method signatures
|
|
- Parameters and return values
|
|
- Usage examples
|
|
- Add to existing docs structure
|
|
"""
|
|
context: design
|
|
|
|
readme_update = session: documenter
|
|
prompt: """
|
|
Update README if needed:
|
|
- Add feature to feature list
|
|
- Add usage example if user-facing
|
|
- Update any outdated sections
|
|
"""
|
|
context: { design, codebase_analysis }
|
|
|
|
# ============================================================================
|
|
# Phase 6: Final Review & Commit
|
|
# ============================================================================
|
|
|
|
resume: captain
|
|
prompt: """
|
|
Feature complete! Final review:
|
|
|
|
1. All tasks implemented
|
|
2. Tests passing
|
|
3. Documentation updated
|
|
|
|
Prepare final summary and create commit.
|
|
"""
|
|
context: { design, tests, api_docs }
|
|
|
|
session "Create feature commit"
|
|
prompt: """
|
|
Stage all changes and create a well-structured commit:
|
|
1. git add -A
|
|
2. git commit with message following conventional commits:
|
|
feat: {feature short description}
|
|
|
|
- Implementation details
|
|
- Tests added
|
|
- Docs updated
|
|
"""
|
|
|
|
# Final report
|
|
output summary = resume: captain
|
|
prompt: """
|
|
Feature Factory Complete!
|
|
|
|
Generate final report:
|
|
- Feature: {feature}
|
|
- Files created/modified: [list]
|
|
- Tests added: [count]
|
|
- Time from start to finish
|
|
- Any notes for future work
|
|
|
|
This feature is ready for PR review.
|
|
"""
|