Gate record — M10: API freeze audit → v1.0 (certification deferred)¶
Date: 2026-07-05 · Milestone: M10 (PRD 18 §M10) · Decision: PARTIAL / DEFERRED. The API-freeze audit was performed and is clean; the v1.0 certification and tag are deferred because two acceptance inputs are hardware-blocked (REQ-LEDGER-012 final ≥5-µarch coverage; the regression subset on ≥2 machines) and depend on M9, itself deferred under R-06. No version tag; the version constant is unchanged. No invented data (Charter T2).
1. Objective¶
Freeze surfaces A–C; certify the Charter §9.1 v1.0 criteria (signature-for-signature equality
docs↔headers, traceability complete + bidirectional, ADR statuses current, zero DISABLED_
tests, and the release-candidate performance/coverage gates).
2. Freeze audit — performed, clean¶
- Signature-for-signature equality (headers ↔ PRD §04 ↔ docs/api): PASS. An independent audit
cross-checked every public function (Surface A façades, Surface C dispatch) and every vocabulary
type/enum (Surface B): names, parameter types/order, return types, and
noexceptmatch across all three sources; all four enums match on values andstd::uint8_tunderlying type. Two documentation discrepancies found and fixed in this milestone: the K8UnpackOutconcept was undocumented (now in the PRD §3 and core.md concept tables, and PRD K8-001/002 usetemplate<UnpackOut Out>to match the header), andreduce_sum_wrap's float-policy line in reduce.md contradicted PRD §04 / its own AVX2 note (now states the ADR-013 reassociation policy accurately). Observation (not changed):[[nodiscard]]is present on the query functions but absent onset_isa_override— deliberate, since callers legitimately ignore the success bool when forcing a tier (the examples do; adding it would break their-Werrorbuild). - Traceability complete + bidirectional: verified. The 01 §6 matrix covers every REQ (range-expanded, 235 IDs, each once — established at PRD review and unchanged: M8 implemented existing REQs, M9 owned none new).
- ADR statuses current: all 26 ADRs are
Accepted(ADR-018 carries its M8 amendment). - Zero
DISABLED_tests (REQ-CI-010): confirmed — none in the suite.
3. Deferred — v1.0 certification (R-06 / REQ-LEDGER-012)¶
- ≥5-µarch ledger coverage (REQ-LEDGER-012, the M10-owned final gate): only
apple-m2-mbais registered. Blocked since M5. - Regression subset vs v0.6 on ≥2 machines: requires a second registered machine.
- M9 representation study completion + paper: deferred (gate M9).
- v1.0 tag +
docs/releases/v1.0.0.md: not produced — certifying v1.0 while these criteria are unmet would over-claim (Charter §9.1). The API surface is frozen-clean and ready; the release certification awaits hardware. - Version constant: unchanged at
0.1.0— the deliberate tag-driven scheme (releases are git tags; the constant is not bumped per milestone). Whether the pre-1.0 constant should track the tags is the standing REQ-REL-001 clarification proposed in gate M8 §8.
4. Acceptance status¶
The freeze audit passes; the v1.0 certification acceptance (signature equality and the release-candidate coverage/regression gates) is not fully met and cannot be without registered hardware. Recorded as DEFERRED, honestly — consistent with the "max honest progress" directive.
5. Files¶
Modified: docs/api/core.md, docs/prd/04-public-api.md (UnpackOut documented; K8 heads),
docs/api/reduce.md (float-policy line corrected); manifest; this gate. No source changes (freeze).
6. Reopening¶
Register a second machine (and reach ≥5 µarchs) → run the release-candidate nightly + regression subset, complete M9, re-verify REQ-REL-001..006, then certify and tag v1.0.0. Tracked under R-06.