home / skills / madebyaris / spec-kit-command-cursor / sdd-evolve

sdd-evolve skill

/.cursor/skills/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-evolve

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.6 KB
---
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

Overview

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.

How this skill works

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.

When to use it

  • Implementation uncovers requirements or edge cases not in the original spec
  • Technical constraints force a different design or architecture choice
  • Clarification is required because an original requirement is ambiguous
  • A previously planned feature must be removed or replaced
  • You need to record decisions made during development for audits or future work

Best practices

  • Document discoveries immediately—add a changelog entry as soon as you confirm a finding
  • Be specific: include context, exact change, impact assessment, and decision authority
  • Reference related tasks, PRs, or discussion threads so reviewers can trace context
  • Flag changes that affect schedule or downstream work and pause implementation if review is needed
  • Preserve history—append changelogs instead of rewriting past entries

Example use cases

  • While building a feature, you find a performance constraint that requires a different data model—record a Modification and update plan.md
  • An API provider drops an endpoint during integration—create a Removal entry and adjust tasks.md
  • A discovered security edge case leads to a new requirement—add an Addition entry with impact and new tasks
  • Ambiguous acceptance criteria discovered during QA—add a Refinement entry to clarify spec.md
  • Implementation reveals broader architecture implications—assess impact and create cross-file changelog entries

FAQ

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.