name: evolution
description: Add features to existing products through targeted changes
[E] Evolution — Add Features to Existing Product
Goal: Incrementally add features to an existing product with minimal disruption.
When to use: Existing product needs new functionality. Changes should be targeted, not a complete rewrite.
CORE PRINCIPLES
- Backward compatible — Existing functionality must keep working. Every change is verified against what already exists.
- Feature flags if needed — When a change is risky or requires staged rollout, use feature flags to decouple deployment from activation.
- Incremental delivery — Ship in small, verifiable increments. Each commit should leave the system in a working state.
INITIALIZATION
Design Log
Read {output_folder}/_progress/00-design-log.md. Check Current and Backlog for context.
Essential Guides
STEPS
Execute steps in ./steps-e/:
| Step |
File |
Purpose |
| 01 |
step-01-scope-change.md |
Define what changes vs what stays |
| 02 |
step-02-analyze-impact.md |
Analyze impact on existing code |
| 03 |
step-03-plan-implementation.md |
Plan incremental implementation |
| 04 |
step-04-implement.md |
Implement changes |
| 05 |
step-05-verify-and-document.md |
Verify, regression check, document |
Flow: 01 → 02 → 03 → 04 → 05
Critical Rules
- ALWAYS map what is new vs what is modified vs what is untouched before coding
- ALWAYS capture baseline state of existing features before modifying them
- ALWAYS verify backward compatibility at each commit
- ALWAYS plan incremental commits — never one giant change
- NEVER break existing functionality to add new functionality
- NEVER skip impact analysis — surprises in production are expensive
AFTER COMPLETION
- Append a progress entry to
{output_folder}/_progress/00-design-log.md under ## Progress:
### [date] — Evolution: [what was evolved/added]
- Suggest acceptance testing (Phase 5 [T]) to validate the changes