diff --git a/ROADMAP.md b/ROADMAP.md index e5fd0b9c3a0..180c767925a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -205,7 +205,7 @@ Adjacent lane — algorithmic-cost rewrite engine (the §3 construction design; - [ ] emitted crate `cargo build`s green (Route-A last mile) - [ ] real fixed point: `content_hash` stage1==stage2 (dissolve placeholder hashes) - [ ] wire `regen_stage0 --verify` lockstep gate into CI — enforces no stage0 hand-edits ← **keystone** - - [ ] dissolve seed hand-patches (`patch_*` / `HAND_MAINTAINED_STAGE0_FILES`) + - [ ] dissolve seed hand-patches (`patch_*` / `HAND_MAINTAINED_STAGE0_FILES`) — the `emit_rust` hand-sync caveat the gate must reproduce: [required facts](docs/plans/regen-verify-gate-required-facts.md) - [ ] TypeScript to first-class (beyond the `add` slice) - [ ] seed-honesty discharge (Diverse Double-Compiling) - [ ] collapse `src/v1` → pinned v2-emitted seed; delete the 154k hand-written lines (terminal, not a big-bang `rm`) diff --git a/docs/plans/regen-verify-gate-required-facts.md b/docs/plans/regen-verify-gate-required-facts.md new file mode 100644 index 00000000000..d721618b2c1 --- /dev/null +++ b/docs/plans/regen-verify-gate-required-facts.md @@ -0,0 +1,42 @@ +# regen --verify gate — required facts (carried from the deleted emit_rust header) + +Status: parked design row. Pins the load-bearing operational facts that the +`v1_compiler_emit_rust.rs` header carried before the codebase-wide comment ban +deleted it (deletion was operator-directed; git history holds the full original +at `git show :src/v1/stage0/src/v1_compiler_emit_rust.rs`). A +comment described the regen hazard but enforced nothing — the structural home for +the fact is this gate. Breadcrumb: `node://adhoc-80af9ff8-40f` (#5514 deferral). + +## Why this row exists + +`src/v1/stage0/src/v1_compiler_emit_rust.rs` is a **hand-synced mirror** of the +`.dag` authority, **not** a clean regen fixpoint. There is no `regen --verify` +gate, so a blind regen would silently overwrite the two hand-resolved drifts +below and regress the wire-policy fix. The protection was always absent; this row +makes the fact durable so it rides the gate when it lands. + +## The two hand-resolved local drifts (must be reproduced by a faithful regen) + +1. **cargo header inlined** — the file inlines its cargo header rather than + importing the deliberately-unwired `extdeps_cargo_version` orphan module. +2. **policy ref/value alignment at `wire_value_serialize.rs`** — the wire-policy + reference/value alignment is hand-resolved here; a naive regen loses it. + +All other emitted modules stay byte-identical to the committed seed. + +## Deferral provenance (#5514, verbatim) + +"regen-write still emits a non-building seed from ~150 emitter-completeness gaps; +the clean green regen fixpoint is deferred, converges with the Route-A emitter +self-host." A faithful full regen wires the deliberately-unwired orphan std +modules (`std_measure`, `std_algebra`, `std_realization_schedule`, +`std_machine_constraints`, `std_integer`, `extdeps_version_semver`, +`extdeps_cargo_version`) and surfaces ~150 latent emitter-completeness gaps +(std numeric / measure-tower generic emission). + +## Dissolution trigger + +§7 fixpoint convergence with the Route-A emitter self-host — when +wire-all-emitted-modules → regen-equals-committed is in reach, the +`regen --verify` gate (a wall: a clean regen must reproduce the committed seed +bit-identically) becomes buildable and this row dissolves into it.