home / skills / madebyaris / spec-kit-command-cursor / sdd-evolve
This skill keeps specifications in sync with implementation discoveries, updating plans, specs, and tasks as new requirements or constraints emerge.
npx playbooks add skill madebyaris/spec-kit-command-cursor --skill sdd-evolveReview the files below or copy the command above to add this skill to your agents.
---
name: sdd-evolve
description: Update specifications with discoveries made during development. Use when implementation reveals new requirements, constraints, or design changes.
---
# SDD Evolve Skill
Keep specifications in sync with implementation discoveries.
## When to Use
- Implementation reveals new requirements
- Technical constraints discovered during development
- Design changes needed based on learnings
- Edge cases found that weren't in original spec
- Architecture decisions made during implementation
## Evolution Protocol
### Step 1: Identify the Discovery
Categorize the change:
- **Discovery**: New information that was unknown
- **Refinement**: Clarification of existing requirement
- **Addition**: New requirement not in original scope
- **Modification**: Change to existing requirement
- **Removal**: Requirement no longer needed
### Step 2: Assess Impact
1. Which spec files are affected?
2. Does this change the plan?
3. Are there downstream impacts?
4. Should implementation pause for review?
### Step 3: Document the Change
Add changelog entry with:
- What changed
- Why it changed
- Impact on existing work
- Decision made
### Step 4: Update Specs
Modify the appropriate files:
- `spec.md` for requirement changes
- `plan.md` for architecture changes
- `tasks.md` for task adjustments
- `todo-list.md` for new/removed items
## Change Documentation Format
Add to the relevant spec file:
```markdown
## Changelog
### [Date] - [Category]: [Brief Description]
**Context**: [Why this change is needed]
**Change**: [What specifically changed]
**Impact**: [How this affects existing work]
**Decision**: [What was decided and by whom]
---
[Previous changelog entries...]
```
## Evolution Categories
### Discovery
```markdown
### [Date] - Discovery: [Title]
**Context**: During implementation of [task], discovered that [finding]
**Change**: Added [new requirement/constraint] to spec
**Impact**: [minimal/moderate/significant] - [explanation]
**Decision**: Proceeding with [approach]
```
### Refinement
```markdown
### [Date] - Refinement: [Title]
**Context**: Original requirement "[X]" was ambiguous
**Change**: Clarified to mean [specific interpretation]
**Impact**: None - aligns with existing implementation
**Decision**: Updated spec for clarity
```
### Addition
```markdown
### [Date] - Addition: [Title]
**Context**: [Why new requirement is needed]
**Change**: Added requirement for [new feature/constraint]
**Impact**: [New tasks required / timeline adjustment]
**Decision**: [Approved by / scope discussion needed]
```
### Modification
```markdown
### [Date] - Modification: [Title]
**Context**: Original approach [X] not feasible because [reason]
**Change**: Changed from [old] to [new]
**Impact**: [Rework required / tasks affected]
**Decision**: [Rationale for new approach]
```
### Removal
```markdown
### [Date] - Removal: [Title]
**Context**: [Why requirement no longer needed]
**Change**: Removed [requirement/feature]
**Impact**: [Tasks that can be skipped / simplification]
**Decision**: [Who approved removal]
```
## Best Practices
1. **Document immediately** - Don't wait until end of implementation
2. **Be specific** - Include enough detail to understand later
3. **Link to context** - Reference related tasks or discussions
4. **Assess impact** - Flag if review is needed before continuing
5. **Preserve history** - Never delete, always add changelog
## Integration
- Called during `sdd-implementer` subagent work
- Triggered by `/evolve` command
- Works with `sdd-verifier` to validate changes
- Feeds into future `/audit` runs
- Use the ask question tool if change requires stakeholder input
This skill helps keep specifications in sync with discoveries made during development. It provides a lightweight evolution protocol to categorize, assess, document, and apply changes to spec, plan, and task files. Use it to capture new requirements, constraints, and design changes discovered while implementing features. The goal is fast, auditable updates that prevent drift between code and spec.
When an implementation reveals new information, run the evolve flow to classify the finding (discovery, refinement, addition, modification, removal), evaluate affected artifacts and downstream impact, and record a changelog entry. The skill maps each change to the appropriate spec files—spec.md, plan.md, tasks.md, todo-list.md—and suggests whether implementation should pause for review. It integrates with implementer and verifier agents and supports stakeholder questions when approvals are needed.
Who should approve changes recorded by this skill?
Approval depends on your project rules: typically the feature owner, tech lead, or architect signs off on changes with moderate or significant impact.
Should implementation stop when a discovery is made?
If the impact is minimal you can continue; for moderate or significant impacts, flag the change and pause until the relevant reviewers assess the decision.