Files
clawdbot/extensions/open-prose/skills/prose/examples/35-feature-factory.prose
2026-01-23 00:49:40 +00:00

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.
"""