1.8 KiB
1.8 KiB
undo-spec-conformance
- Change ID: undo-spec-conformance
- Package:
@suaveplan/undo - Status: PROPOSED
- Type: spec-conformance
- Date: 2026-04-26
Why
The folded openspec/specs/undo/spec.md documented requirements as a flat
R01-R20 bullet list under ### ADDED Requirements. The conformance
parser only recognises ### Requirement: <name> or ### CAP-NN — headings,
so bun scripts/openspec-conformance.ts @suaveplan/undo reported "0
requirements parsed". This is purely a parsing gap; the implementation
already satisfies every clause and is pinned by an extensive test suite.
What changes
- Rewrite
openspec/specs/undo/spec.mdfromR01-R20bullets to nine### Requirement: <name>blocks (sync UndoStack, BranchingHistory, AsyncUndoStack, HistoryCompressor, SelectiveUndoStack, CommandMerger, command primitives, error codes / UndoError, option schemas). - Add
**Verified by:**lines under every requirement naming concreteit(...)titles in:src/stack/stack.test.tssrc/branch/branch.test.tssrc/async/async-stack.test.tssrc/async/async-command.test.tssrc/compression/history-compressor.test.tssrc/selective/selective-undo.test.tssrc/merge/command-merger.test.tssrc/command/command.test.tssrc/errors/undo-error.test.tssrc/schemas/undo.schemas.test.ts
- No source changes; no public-surface changes; no new tests required.
Out of scope
- New behaviour. Heading rewrite + verification annotation only.
- Source mapping table —
@suaveplan/undois genesis-original.
Verification approach
Every requirement is pinned to existing it(...) titles across the ten
test files listed above (combined: 130+ cases pre-dating this change).
Migration impact
None — additive metadata only. Public surface unchanged.