28 lines
1.5 KiB
Markdown
28 lines
1.5 KiB
Markdown
# OpenSpec Change: crypto-utils-spec-conformance
|
|
|
|
- **Change ID**: crypto-utils-spec-conformance
|
|
- **Package**: `@suaveplan/crypto-utils`
|
|
- **Status**: PROPOSED
|
|
- **Date**: 2026-04-26
|
|
|
|
## Summary
|
|
|
|
Add `**Verified by:**` lines to every requirement in `openspec/specs/crypto-utils/spec.md` and pin the previously-unverified "No vendored code" structural scenario with `src/no-vendored.spec-conformance.test.ts`. No public-API or behavioural changes.
|
|
|
|
## Current state
|
|
|
|
`@suaveplan/crypto-utils` ships its full surface (encoding delegation, byte helpers, constant-time equality, random bytes, zeroize, KAT/diff-fuzz harnesses, Merkle helpers, primitive-id registry, `PrimitiveNotImplemented`) with 100% coverage. The spec was authored without the `**Verified by:**` annotation mandated by `openspec/AGENTS.md` Section 13, and the "No vendored code" requirement asserted a tree-structure invariant with no test pinning it.
|
|
|
|
## What changes
|
|
|
|
1. Annotate every requirement in the folded `openspec/specs/crypto-utils/spec.md` with a `**Verified by:**` line citing concrete `src/**/*.test.ts::"<it title>"` pairs.
|
|
2. Add `src/no-vendored.spec-conformance.test.ts` to pin the "src/ contains no vendored directory" structural scenario at runtime.
|
|
3. `bun scripts/openspec-conformance.ts @suaveplan/crypto-utils` exits 0.
|
|
|
|
## Impact
|
|
|
|
- Public API unchanged.
|
|
- One new test file (~30 lines).
|
|
- `openspec/specs/crypto-utils/spec.md` gains 6 `**Verified by:**` blocks.
|
|
- Coverage stays 100/100/100/100.
|