Files
2026-05-27 23:29:53 +01:00

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.md from R01-R20 bullets 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 concrete it(...) titles in:
    • src/stack/stack.test.ts
    • src/branch/branch.test.ts
    • src/async/async-stack.test.ts
    • src/async/async-command.test.ts
    • src/compression/history-compressor.test.ts
    • src/selective/selective-undo.test.ts
    • src/merge/command-merger.test.ts
    • src/command/command.test.ts
    • src/errors/undo-error.test.ts
    • src/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/undo is 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.