Skip to content

docs: pre-v0.32.0 — fill [Unreleased] CHANGELOG + repair README drift gate#1448

Merged
noahgift merged 3 commits into
mainfrom
docs/v0-32-0-changelog-readme-drift
May 4, 2026
Merged

docs: pre-v0.32.0 — fill [Unreleased] CHANGELOG + repair README drift gate#1448
noahgift merged 3 commits into
mainfrom
docs/v0-32-0-changelog-readme-drift

Conversation

@noahgift

@noahgift noahgift commented May 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Two related preparation steps for the v0.32.0 cut decision:

  1. Fill out empty [Unreleased] CHANGELOG section with today's session body of work (238 commits since v0.31.2)
  2. Repair the FAILING README drift gate (bash scripts/check_readme_claims.sh) — README claimed 1096 contracts / 79 CLI commands, filesystem has 1105 / 80

What's in the CHANGELOG entry

Headline What
5/5 DISCHARGED apr-cpu-vs-gpu-output-parity-v1 v1.5.0 ACTIVE — first contract in SHIP-TWO program to reach complete-evidence terminal state (PRs #1427-#1442, #1445, #1446)
apr trace --save-tensor New flag for SHIP-007 layer-0 oracle bisection; apr-cli-trace-save-tensor-v1 v1.4.0 FUNCTIONAL
HF FP16 oracle Pinpoints SHIP-007 to layer-0 attn_out (cos=0.99999995 attn_norm → 0.9966 attn_out) (#1423, #1426)
Distillation contract 9/9 falsifiers algorithm-bound
MoE 2× speedup rayon parallel expert dispatch (#1396)
APR mmap Unblocks apr diff --values on 7B (#1058)
M32d numerical parity Q/K RMSNorm + rope_theta + chat template (#1228)
150+ contract sweep Record algorithm-bind cycle across kernel + format + training + GPU + CLI families

README drift gate repair

BEFORE:
PASS FALSIFY-README-001 crate_count: 80
FAIL FALSIFY-README-002 contract_count: README claims 1096, filesystem has 1105
FAIL FALSIFY-README-003 cli_command_count: README claims 79, apr --help lists 80
PASS FALSIFY-README-004 cookbook_link: present

AFTER:
PASS FALSIFY-README-001 crate_count: 80
PASS FALSIFY-README-002 contract_count: 1105
PASS FALSIFY-README-003 cli_command_count: 80
PASS FALSIFY-README-004 cookbook_link: present

Five Whys (README drift)

  1. Why was the gate failing? README contract counts and CLI counts are stale.
  2. Why are they stale? 9 new contracts and 1 new CLI command merged since the last README update.
  3. Why didn't the gate catch it earlier? It's a script, not wired into CI as a hard gate yet.
  4. Why isn't it a CI gate yet? readme-claims-v1 is recent (2026-04-24), wired to bash scripts/check_readme_claims.sh but not to a workflow step.
  5. Why fix it now? Pre-release hygiene — releases must ship green drift gates per feedback_post_publish_qa_required.md.

Test plan

  • bash scripts/check_readme_claims.sh returns 4× PASS
  • CI green on required gates

🤖 Generated with Claude Code

…rift gate

Two related preparation steps for the v0.32.0 cut decision:

## CHANGELOG

Fill out the empty `[Unreleased]` section with today's session body of work
(238 commits since v0.31.2):

- **CPU/GPU output parity contract** (jidoka armor): `apr-cpu-vs-gpu-output-parity-v1`
  v1.0.0 → v1.5.0 ACTIVE with **5/5 falsifiers DISCHARGED** in a single 2-PR cycle
  (#1445 + #1446) — first contract in the SHIP-TWO program to reach complete-evidence
  terminal state. CUDA + wgpu fallback log prefixes + inline cosine parity gate.
- **`apr trace --save-tensor`** — new flag for SHIP-007 layer-0 oracle bisection;
  `apr-cli-trace-save-tensor-v1` v1.4.0 FUNCTIONAL.
- **HF FP16 oracle bisection** — pinpoints SHIP-007 to layer-0 attn_out
  (cos=0.99999995 attn_norm → 0.9966 attn_out).
- **Distillation training contract** — 9/9 falsifiers algorithm-bound.
- **MoE expert dispatch parallelized** — 2× speedup (#1396).
- **APR file mmap** — unblocks `apr diff --values` on 7B (#1058).
- **M32d numerical-parity bundle** — Q/K RMSNorm + rope_theta + chat template (#1228).
- **150+ contract algorithm-bind sweep** — record cycle, kernel + format + training +
  GPU-backend + CLI families flipped from `unbound` to `PARTIAL_ALGORITHM_LEVEL`.

## README drift gate repair

`bash scripts/check_readme_claims.sh` was FAILING:

- README claimed 1096 contracts, filesystem has 1105
- README claimed 79 CLI commands, `apr --help` lists 80

Fixed both numbers in the contract-backed table AND the prose references.
Drift gate now PASS 4/4.

Five Whys:

1. Why was the gate failing? README contract counts and CLI counts are stale.
2. Why are they stale? 9 new contracts and 1 new CLI command merged since the
   last README update.
3. Why didn't the gate catch it earlier? It's a script — not yet wired into CI
   as a hard gate (FALSIFY-README-001..004 are PARTIAL_ALGORITHM_LEVEL, the
   shell wrapper is documented in the contract but doesn't fail PRs).
4. Why isn't it a CI gate yet? `readme-claims-v1` is recent (2026-04-24),
   wired to `bash scripts/check_readme_claims.sh` but not to a workflow step.
5. Why fix it now? Pre-release hygiene — releases must ship green drift gates
   per `feedback_post_publish_qa_required.md`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@noahgift noahgift enabled auto-merge (squash) May 4, 2026 01:34
noahgift added a commit that referenced this pull request May 4, 2026
…cision (#1449)

After §45 landed the 5/5 DISCHARGE milestone for `apr-cpu-vs-gpu-output-parity-v1`,
the natural follow-up question is whether the 238 commits accumulated since v0.31.2
(2026-04-19) warrant a `cargo publish` cut today.

## Verdict: HOLD

The release-readiness audit found exactly one load-bearing blocker — SHIP-007
layer-0 attention divergence is empirically pinpointed (cos=0.99999995 attn_norm
→ 0.9966 attn_out per memory `2026-05-03 SHIP-007 finding`) but **not yet fixed**,
so cutting v0.32.0 today would crates.io-ship a binary where `apr run` on a 7B
GPU teacher still emits gibberish unless the user passes `--no-gpu`.

The §41-§45 jidoka armor makes the failure visible + fail-closed (which is
shippable behaviour), but a user-facing `## [0.32.0]` headline that reads
"5/5 DISCHARGE on apr-cpu-vs-gpu-output-parity-v1" implies the GPU correctness
hole is closed when in truth it is only contained.

Per `feedback_fix_root_cause_never_route_around.md`: route-around-via-fallback
is acceptable as a *temporary jidoka layer*, but it is muda to ship a release
whose headline claims a fix that doesn't exist.

## What §46 records

| Subsection | Content |
|---|---|
| 46.1 | What's accumulated since v0.31.2 (8-row headline table) |
| 46.2 | Release-readiness gate audit (6-gate verdict table) |
| 46.3 | Why SHIP-007 is the load-bearing blocker |
| 46.4 | Pre-flight artifacts shipped alongside this decision (PR #1448) |
| 46.5 | **Pre-conditions for the v0.32.0 cut** — 5 falsifiable gates |
| 46.6 | Five Whys (why hold / why now / why §46 not extend §45) |
| 46.7 | Net effects + ranked open follow-ups |
| 46.8 | Spec amendment cadence preserved |

## Pre-conditions (§46.5) for the future v0.32.0 cut

1. SHIP-007 layer-0 attention divergence FIXED (cos ≥ 0.999 at every sub-stage)
2. PR #1448 merged (CHANGELOG `[Unreleased]` populated; README drift gate GREEN)
3. Workspace version bumped 0.31.2 → 0.32.0; `## [0.32.0] - <date>` heading
4. Post-publish QA: `cargo install aprender --force` + /dogfood GO verdict
   (per `feedback_post_publish_qa_required.md` — v0.31.1 was yanked for skipping)
5. Drift gates GREEN: `check_readme_claims.sh` + `pv validate` + `cargo deny`

## Net effects

- Spec v2.90.0 → **v2.91.0**
- MODEL-1 ship %: unchanged at 91% (this is metadata, not a falsifier flip)
- MODEL-2 ship %: unchanged at 57%
- Coverage tally: unchanged (no PARTIAL → DISCHARGED in this cycle)
- Single highest-leverage next-session deliverable: SHIP-007 layer-0 attention
  bisection using `apr trace --save-tensor` + HF FP16 oracle from PR #1423

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
@noahgift noahgift merged commit 70d084b into main May 4, 2026
10 checks passed
@noahgift noahgift deleted the docs/v0-32-0-changelog-readme-drift branch May 4, 2026 02:28
noahgift added a commit that referenced this pull request May 4, 2026
…pre-existing capture gaps (QPostRope + KPostRope) (#1452)

Records pre-implementation research for FALSIFY-ATTN-SUB-002 (`trace-attn-sub-stages-v1.yaml` v1.1.0).

## What this evidence pins

While researching where to wire AttnScores + AttnSoftmax in
`forward_traced_with_plan` (per the v1.1.0 contract), discovered that
QPostRope + KPostRope variants exist in the SaveTensorStage enum
(lines 47-50) but have **no `emit()` call** in `forward_traced_with_plan`.

The RoPE-rotated tensors q_all + k_all are computed at lines 130-131
but never captured. The parent contract `apr-cli-trace-save-tensor-v1.yaml`
v1.4.0 (FUNCTIONAL) silently overstates coverage for these 2 stages.

## What FALSIFY-ATTN-SUB-002 will wire

When #1451 lands, the next PR will wire 4 capture points (not 2):

| Stage | Source line | Existed in enum? |
|---|---|---|
| QPostRope   | post line 133 | YES (gap) |
| KPostRope   | post line 133 | YES (gap) |
| AttnScores  | line 152 (per head, accumulator) | NEW (#1451) |
| AttnSoftmax | line 160 (per head, accumulator) | NEW (#1451) |

## Why an evidence file, not a 5th stacked PR

Four PRs (#1448-#1451) already in flight. A 5th stacked PR would
slow CI throughput. Recording the implementation plan here so the
next loop iteration can spawn the impl PR off main once #1451 merges.

## Five Whys + cross-references

In `evidence/ship-007-layer0-attn-bisection-2026-05-04/forward-traced-research.md`:

- Five Whys for scope (4 stages, not 2)
- Wire-plan with insertion points
- Backward-compat test plan
- Next-iteration deliverables checklist

## Net effects

- Evidence file lands; no code change in this PR
- MODEL-1 ship %: unchanged at 91%
- MODEL-2 ship %: unchanged at 57%
- Unblocks the next loop iteration's atomic PR

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant