Skip to content

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 noexcept match across all three sources; all four enums match on values and std::uint8_t underlying type. Two documentation discrepancies found and fixed in this milestone: the K8 UnpackOut concept was undocumented (now in the PRD §3 and core.md concept tables, and PRD K8-001/002 use template<UnpackOut Out> to match the header), and reduce_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 on set_isa_override — deliberate, since callers legitimately ignore the success bool when forcing a tier (the examples do; adding it would break their -Werror build).
  • 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-mba is 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.