MetaSpec Iteration Layers - Visual Guide
November 11, 2025 ยท View on GitHub
Quick Reference: When to use which layer and how they work together
๐ฏ Two Layers of Iteration
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MetaSpec Iteration System โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Layer 1: Evolution (Formal Change Management) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Purpose: Modify specification with controlled process โ โ
โ โ Commands: /metaspec.proposal โ apply โ archive โ โ
โ โ Output: changes/[id]/proposal.md, spec-delta.md โ โ
โ โ Modifies: spec.md (after approval) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Layer 2: Command Iteration (Daily Quality Checks) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Purpose: Validate specification quality โ โ
โ โ Commands: /metaspec.sds.checklist (update mode) โ โ
โ โ Output: checklists/comprehensive-quality.md โ โ
โ โ Modifies: NEVER modifies spec.md โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Complete Workflow Diagram
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User wants to change spec โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Is toolkit released? โ
โ (v1.x.x or published) โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโ
โ YES โ NO
โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ
โ Use Evolution Layer โ โ Check change type โ
โ โ โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ /metaspec.proposal โ โ
โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโโ
โ โ Breaking/Major โ Minor
โ โผ โผ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ โ Use Evolution โ โ Direct Edit โ
โ โ โ โ โ
โ โ /metaspec. โ โ vim spec.md โ
โ โ proposal โ โ โ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Execute change โ
โ โ
โ Evolution: apply โ
โ Direct: edit done โ
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Validate Quality โ
โ โ
โ /metaspec.sds. โ
โ checklist โ
โ (update mode) โ
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Quality OK? โ
โโโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ YES โ NO
โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ Evolution: โ โ Fix issues and โ
โ archive โ โ repeat โ
โ โ โโโโโโโโโโโโโโโโโโโโ
โ Direct: Done โ
โโโโโโโโโโโโโโโโ
๐ Layer Comparison Table
| Aspect | Evolution Layer | Command Layer |
|---|---|---|
| Purpose | Modify spec.md | Validate spec.md |
| Modifies Spec | โ YES (after approval) | โ NO (read-only) |
| When | Released OR Breaking/Major | Anytime (quality check) |
| Workflow | Proposal โ Apply โ Archive | Generate โ Update โ Update |
| Output | changes/[id]/proposal.md | checklists/quality.md |
| Overhead | Heavy (formal process) | Light (immediate feedback) |
| Version Control | โ Required | โ Not needed |
| Impact Analysis | โ Required | โ Not needed |
| Approval | โ Required | โ Not needed |
๐ฎ Usage Scenarios
Scenario 1: Draft Toolkit - Add Example (Minor)
# Toolkit: v0.2.0 (draft)
# Change: Add usage example
1. vim specs/domain/001-mcp/spec.md
# Add example section
2. /metaspec.sds.checklist
# AI detects existing checklist
โ Mode: update (default)
โ CHK010: โ โ โ
(Examples added)
3. Done! โ
Layer used: Command Layer only (no Evolution needed)
Scenario 2: Draft Toolkit - Add New Entity (Major)
# Toolkit: v0.2.0 (draft)
# Change: Add new "Notification" entity
1. /metaspec.proposal "Add Notification entity" --type sds
โ Creates changes/2025-11-05-add-notification/
2. Review proposal.md and approve
3. /metaspec.apply 2025-11-05-add-notification
โ Executes tasks, modifies spec.md
4. /metaspec.sds.checklist
โ Validates new entity quality
โ CHK001-CHK010: Check Notification entity
5. /metaspec.archive 2025-11-05-add-notification
โ Moves to archive, updates CHANGELOG
Done! โ
Layers used: Evolution Layer + Command Layer (validation)
Scenario 3: Released Toolkit - Fix Typo (Minor but Released)
# Toolkit: v1.0.0 (released)
# Change: Fix typo in description
1. /metaspec.proposal "Fix typo in entity description" --type sds
โ Even minor changes need Evolution for released toolkit
2. Review and approve
3. /metaspec.apply 2025-11-05-fix-typo
โ Version: v1.0.0 โ v1.0.1 (PATCH)
4. /metaspec.sds.checklist
โ Validates fix
5. /metaspec.archive 2025-11-05-fix-typo
Done! โ
Layers used: Evolution Layer (required for released) + Command Layer
Scenario 4: Quality Check Only (No Changes)
# Toolkit: any version
# Purpose: Check spec quality
1. /metaspec.sds.checklist
โ Generates quality report
โ Identifies issues: CHK003 โ, CHK007 โ ๏ธ
2. User reviews issues
3. If fixes needed:
โ Draft: Direct edit โ Re-run checklist
โ Released: /metaspec.proposal
Done! โ
Layer used: Command Layer only
๐ฆ Decision Matrix
| Toolkit Status | Change Type | Method | Example |
|---|---|---|---|
| Draft (v0.x.x) | Fix typo | Direct edit | vim spec.md |
| Draft (v0.x.x) | Add example | Direct edit | vim spec.md |
| Draft (v0.x.x) | Add optional field | Direct edit | vim spec.md |
| Draft (v0.x.x) | Add required field | Evolution or Direct* | Breaking โ Evolution preferred |
| Draft (v0.x.x) | Add new entity | Evolution | Major change โ Evolution |
| Released (v1.x.x) | Any change | Evolution | ALWAYS Evolution |
*Note: For draft toolkit, if near release (v0.9.x), use Evolution for breaking changes too.
๐ Key Principles
Principle 1: Command Layer Never Modifies
โ
Checklist reads:
- specs/domain/XXX/spec.md
โ
Checklist writes:
- checklists/comprehensive-quality.md
โ Checklist NEVER modifies:
- spec.md
Principle 2: Evolution for Formal Changes
Use Evolution when:
- Toolkit is released (v1.x.x)
- Breaking changes
- Major features
- Need version control and impact analysis
Principle 3: Direct Edit for Fast Iteration
Use Direct Edit when:
- Toolkit is draft (v0.x.x)
- Minor, non-breaking changes
- Fast iteration needed
- THEN validate with checklist
๐ฏ No Conflict Between Layers
Q: Can they conflict?
A: No, they serve different purposes.
- Evolution: MODIFY spec.md (formal process)
- Command: VALIDATE spec.md (read-only)
They complement each other:
Evolution modifies โ Command validates โ Evolution archives
๐ Reference
For detailed decision guide, see:
docs/evolution-guide.md- Complete decision treememory/constitution.md- Principle #6: Iteration-Aware Designsrc/metaspec/templates/meta/sds/commands/checklist.md.j2- Command Layersrc/metaspec/templates/meta/evolution/commands/proposal.md.j2- Evolution Layer
๐ Best Practices
-
Always validate after modifying
# After ANY modification (Evolution or direct) $ /metaspec.sds.checklist -
Use Evolution for released toolkits
# If v1.x.x, ALWAYS use Evolution $ /metaspec.proposal "..." -
Fast iterate in draft phase
# If v0.x.x, iterate quickly $ vim spec.md $ /metaspec.sds.checklist # validate $ vim spec.md # fix issues $ /metaspec.sds.checklist # validate again -
Track iterations with checklist
# Checklist automatically tracks: ## Iteration 1: [2025-11-03] ## Iteration 2: [2025-11-05]
โ Summary
Two layers, zero conflict, perfect synergy:
Evolution Layer (Modify) + Command Layer (Validate) = Robust Iteration
When to use what:
Released?
YES โ Evolution
NO โ Breaking/Major?
YES โ Evolution
NO โ Direct Edit + Checklist
Always validate:
After ANY change โ /metaspec.sds.checklist (update mode)