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

1.4 KiB

Tasks: idempotency-spec-conformance

1. Source refactors (no public-API change)

  • 1.1 Rewrite src/error-codes.ts to use defineCodes("IDEMPOTENCY", [...]) from @suaveplan/error; re-export IDEMPOTENCY_CODES from src/errors/idempotency-error.ts.
  • 1.2 Add // schema: boundary-only marker to src/schemas/idempotency.schemas.ts.

2. Spec annotations

  • 2.1 Rewrite ### REQ-IDMP-NNN — headings as ### IDMP-NN — so the conformance parser picks them up.
  • 2.2 Add a **Verified by:** line under every requirement in openspec/specs/idempotency/spec.md.

3. Pinning tests

  • 3.1 Add src/errors/idempotency-error.spec-conformance.test.ts (IDMP-01).
  • 3.2 Add src/schemas/idempotency.schemas.spec-conformance.test.ts (IDMP-02).
  • 3.3 Add src/guard/idempotency-guard.spec-conformance.test.ts (IDMP-03 + IDMP-04).
  • 3.4 Add src/metrics/idempotency-metrics.spec-conformance.test.ts (IDMP-05).
  • 3.5 Add tests/structural-adapters.spec-conformance.test.ts (IDMP-08).
  • 3.6 Add tests/benchmarks-present.spec-conformance.test.ts (IDMP-07).

4. Verify

  • 4.1 bunx turbo lint typecheck test --filter=@suaveplan/idempotency green (8/8 tasks, 234/234 tests).
  • 4.2 bunx turbo test:coverage --filter=@suaveplan/idempotency 100/100/100/100.
  • 4.3 bun scripts/openspec-conformance.ts @suaveplan/idempotency PASS (0 error, 9 warn, 1 info).