name: spec-maintenance description: Update spec indices, activate features, and maintain spec files. Use when activating completed features, deprecating old ones, or updating the spec index files. license: MIT metadata: author: znck version: "1.0"
Spec Maintenance
When to Use
- Activating a completed feature (WIP → Active)
- Adding/removing features or decisions from indices
- Updating recent changes
- Deprecating a feature (Active → Inactive)
Files to Keep in Sync
| File | Contains |
|---|---|
spec/README.md |
Product overview, recent changes |
spec/features/README.md |
Feature index (WIP, Active, Inactive) |
spec/decision-records/README.md |
Decision index (Active, Superseded) |
Common Tasks
Activate Feature (WIP → Active)
- Update feature file:
Status: Active - Check all acceptance criteria boxes
- Move from WIP to Active in
spec/features/README.md - Add to Recent Changes in
spec/README.md
Add New Feature/Decision
- Add to appropriate index table
- Add to Recent Changes
Deprecate Feature (Active → Inactive)
- Update feature file:
Status: Inactive - Append deprecation reason (no other edits)
- Move to Inactive in
spec/features/README.md - Add to Recent Changes
Supersede Decision
- Mark old decision:
Status: Superseded - Add timeline entry with reason
- Create new decision record
- Move old to Superseded in index
- Add to Recent Changes
Recent Changes Format
## Recent Changes
- **YYYY-MM-DD** [What changed](./path/to/spec.md)
Keep 5-10 entries, newest first. Older changes live in git history.
Index Formats
spec/features/README.md
# Features
## WIP
| Feature | Started | Detail |
|---------|---------|--------|
| [Name](YYYY-MM-DD-<name>.md) | YYYY-MM-DD | Summary |
## Active
| Feature | Started | Detail |
|---------|---------|--------|
| [Name](YYYY-MM-DD-<name>.md) | YYYY-MM-DD | Summary |
## Inactive
| Feature | Detail |
|---------|--------|
| [Name](YYYY-MM-DD-<name>.md) | Reason |
spec/decision-records/README.md
# Decision Records
## Active
| Decision | Domain | Date | Detail |
|----------|--------|------|--------|
| [Topic](YYYY-MM-DD-<name>.md) | Domain | YYYY-MM-DD | Summary |
## Superseded
| Decision | Superseded By |
|----------|---------------|
| [Topic](YYYY-MM-DD-<name>.md) | [New](YYYY-MM-DD-<name>.md) |
Rules
- Keep indices synchronized with spec files
- Use relative links
- Brief recent changes (one line per entry)
- Status values:
WIP,Active,Inactive,Superseded
When to Update
Update for:
- Feature launched
- Feature deprecated
- Decision made or superseded
Don't update for:
- Code changes
- Bug fixes
- Refactoring
Specs track product evolution, not implementation details.