# Tasks: retry-spec-conformance ## 1. New tests - [x] 1.1 Add `src/retry/retry.spec-conformance.test.ts` with six cases: generic narrowing (type-level), deterministic seeded-Rng jitter, per-attempt signal forwarding, mid-backoff abort discriminator, backoff factory purity, RetryExhaustedError cause chain. - [x] 1.2 Add `src/circuit-breaker/circuit-breaker.spec-conformance.test.ts` with three cases: full FSM walk in one assertion, open never invokes fn, CircuitOpenError.context.openedAt carries injected-clock timestamp. - [x] 1.3 Add `src/types/retry.schemas.spec-conformance.test.ts` with six cases: round-trip parse + reject for every published schema. ## 2. Spec annotations - [x] 2.1 Add `**Verified by:**` line under every `### RT-NN —` block in `openspec/specs/retry/spec.md`. - [x] 2.2 Update RT-05 to match the 4-arg `withTimeout(fn, ms, attemptNumber, signal?)` signature. - [x] 2.3 Update RT-10 to reflect helper-based opt-in OTel emission (record functions are no-ops without exporter). ## 3. Verify - [x] 3.1 `bunx turbo lint typecheck test --filter=@suaveplan/retry` green. - [x] 3.2 `bunx turbo test:coverage --filter=@suaveplan/retry` 100/100/100/100. - [x] 3.3 `bun scripts/openspec-conformance.ts @suaveplan/retry` exits 0.