From a48ecf67146865ae2d02d3f783163ef9ddca6b6d Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Sat, 30 May 2026 02:20:04 +0000 Subject: [PATCH 1/5] docs(planning): v4-done six-predicate tracker for Self-host/Release Manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Authoritative close ledger per TASKS.md:801-815 and PR #3938 §8.D4/§10.0: per-predicate ship_disposition, engineering_state, TASKS owners, blocking receipts, and resolving manager lanes. Pre-§8 — no worker dispatch implied. Co-authored-by: Cursor --- .../v4-done-predicate-tracker-2026-05-30.md | 254 ++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 docs/planning/v4-done-predicate-tracker-2026-05-30.md diff --git a/docs/planning/v4-done-predicate-tracker-2026-05-30.md b/docs/planning/v4-done-predicate-tracker-2026-05-30.md new file mode 100644 index 00000000000..2442e88f39c --- /dev/null +++ b/docs/planning/v4-done-predicate-tracker-2026-05-30.md @@ -0,0 +1,254 @@ +# v4-done — six-predicate tracker + +> **Status:** PLANNING — first artifact for Self-host/Release Manager (`nimble-crane-490`). +> **Authority:** `src/v4/TASKS.md:801-815` (definition); PR [#3938](https://github.com/gunb-ai/gunbc/pull/3938) §8.D4 + §10.0 + §11.1 (disposition vocabulary + lane map). +> **Session:** `nimble-crane-490` · **Parent:** `nimble-dove-733` (PM May 29) +> **Tree HEAD spot-check:** `e332fc27b` (2026-05-30) — `session/nimble-crane-490` tracking `origin/main`. + +## Non-negotiables + +- **Cannot narrow v4-done.** Per PR #3938 §8.D4: any predicate relaxation requires an explicit `src/v4/TASKS.md:801-815` amendment with named operator rationale — not a PM or manager call. +- **Closure vocabulary (§10.0):** `ship_disposition: PROVEN` only with an executable receipt (+ falsification when the probe asks). Substrate alone → `GAP` + `engineering_state: SUBSTRATE_PRESENT` (or finer states below). +- **§8 operator gate:** No worker briefs from this tracker until §8 D1–D7 are operator-ratified on PR #3938 and (where applicable) Modeling DFS worksheets are approved. + +## Summary matrix + +| # | Predicate (`TASKS.md:801-815`) | `ship_disposition` | `engineering_state` | Primary TASKS anchors | Blocking receipt (close) | Resolving manager lane | +| - | ------------------------------ | ------------------ | --------------------- | --------------------- | ------------------------ | ---------------------- | +| 1 | Every other scheduled task complete (whole plan minus T-15) | `GAP` | `CENSUS_NOT_RUN` (drift-proof; no mechanical census) | Plan graph `src/v4/TASKS.md:7-265`; Summary `src/v4/TASKS.md:1233-1239` | Per-task `DONE` / dissolution receipts against live plan at close time — not a frozen list | **Close/Receipt** (ledger) + **all lanes** (implementation) | +| 2 | v4 compiles `src/v4/compiler/*.dag` end-to-end | `GAP` | `PARTIAL_GATE_PRESENT` | `T-6`…`T-10`, `T-37` `src/v4/TASKS.md:474-686`, `:2246-2271` | v4 compiler-of-record executes full `src/v4/compiler/*.dag` pipeline without v2 OOM/SIGTERM mask; P5 resolve-posture bridge deleted | **Compiler Spine** | +| 3 | v4 emits Rust that compiles to a binary | `GAP` | `PARTIAL_GATE_PRESENT` | `T-10`, `T-11`, `T-20`, `T-32` `src/v4/TASKS.md:612-686`, `:1057-1078`, `:2155-2216` | Emitted Rust is `cargo`-clean for release binary; bootstrap `compiled:` under v4 emit (not v2-only structural compile) | **Compiler Spine** + **Target Realization** | +| 4 | Binary on `src/v4/compiler/*.dag` → bit-identical output (stage1==stage2) | `GAP` | `SCAFFOLD_PRESENT` | `T-15` `src/v4/TASKS.md:768-815`; `T-20`, `T-32`, `T-36` | B1 merkle `content_hash` pins replace digest placeholders; `self_host.dag` runner realized; `claim_t15` + `t_15_self_host_fixed_point` execute real fixpt (not structural-only) | **Self-host/Release** (this lane) + **Compiler Spine** | +| 5 | TestClaim suite passes | `GAP` | `PARTIAL_GATE_PRESENT` | `T-14`, `T-22`, `T-38` `src/v4/TASKS.md:734-766`, `:1130-1151`, `:2277-2309` | Modeled T-22 eval over manual corpus + structured `TestClaimRun` verdicts in CI; delete `scripts/v4-testclaim-corpus-gate.sh` | **Runtime/TestClaim** (pending spawn) + **Compiler Spine** | +| 6 | Hand-authored Rust not editable authority (reproduction-proven) | `GAP` | `PARTIAL_GATE_PRESENT` | `T-15`, `T-32`, INVARIANTS A3 / P5 | Rebuild-from-(.dag + frozen seed) reproduces pinned artifact hash; SG-0 hand-test census trends to dissolution; P5 bridges removed | **Self-host/Release** + **Close/Receipt** (census ratchet) | + +**Release bar:** predicates **1–6 collectively** (PR #3938 §8.D4). Ladder rungs 7–8 map to predicates 4–5; predicate 1 is strictly broader than any single rung. + +--- + +## Predicate 1 — Whole plan minus T-15 + +**Authority text:** `src/v4/TASKS.md:802-808` — drift-proof close gate; never a hardcoded task count. + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `CENSUS_NOT_RUN` | +| Owner sub-tasks | **Meta-gate** — each `T-*` / `T-4.*` row in `src/v4/TASKS.md:7-265` and task bodies `:299-2310` | +| Blocking receipt | At close time: every in-scope scheduled task shows landed dissolution (`[DONE]`, scaffold dissolved, or explicit `[DROPPED]` tombstone per operator ratification) except **T-15** | +| Resolving lane | **Close/Receipt** maintains the ledger; implementation ownership is per-task (see §Lane routing below) | + +**Spot-check (2026-05-30):** Plan still carries substantial open surface — examples with explicit non-DONE status in task bodies: + +| Anchor | Status signal | +| ------ | ------------- | +| `T-35` `src/v4/TASKS.md:1679` | `[SCHEDULED]` | +| `T-38` `src/v4/TASKS.md:2277` | `[SCHEDULED]` | +| `T-31` `src/v4/TASKS.md:2102` | `[SCHEDULED]` | +| `T-32` `src/v4/TASKS.md:2155` | `[SCHEDULED]` | +| `T-36` `src/v4/TASKS.md:2220` | `[IN PROGRESS — PR open]` | +| `T-24` `src/v4/TASKS.md:1172` | CI/YAML authority bridge open per task body | +| `T-4.17` `src/v4/TASKS.md:2000` | Wave 2a/2b active | + +**Landed (examples):** `T-19`, `T-29`, `T-33`, `T-34`, `T-37` marked `[DONE]` in task bodies; `T-25-core` / `T-26` `[SUBSTRATE LANDED]`. + +**Note:** `TASKS.md:815` Close-status snapshot (`main@678bb8bbd`) predates current HEAD; treat this tracker + live `TASKS.md` as operational — refresh Close-status in a dedicated receipt PR after §8 ratification. + +--- + +## Predicate 2 — Corpus compiles end-to-end + +**Authority text:** `src/v4/TASKS.md:809`. + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `PARTIAL_GATE_PRESENT` | +| Owner sub-tasks | `T-6`, `T-7`, `T-8`, `T-9`, `T-10`, `T-37` (serializer unblock) | +| Blocking receipt | v4 pipeline compiles `src/v4/compiler/*.dag` as compiler-of-record; no P5 bridge masking compile failure | +| Resolving lane | **Compiler Spine** | + +**Evidence (file:line):** + +- **T-37 landed:** `src/v4/TASKS.md:2246-2271` — #3791; dissolution trigger (b) met on probe. +- **P5 bridge still live:** `scripts/v4-bootstrap-resolve-posture-gate.sh:1-12` (dissolve when (a) or (b) + 14-day soak); CI `.github/workflows/ci.yml:273` invokes it. +- **Structural compile today:** `scripts/v4-testclaim-corpus-gate.sh:3-18` compiles `src/v4` via **v2** `gunbc` (`:33-37`) — not the v4 self-host binary chain. +- **Emit scaffold gates:** widespread `🟡` on compiler stages; SG-1 emit class still open per PR #3938 §10.1. + +**Interrogation:** `docs/audit/v4-close-interrogation-validation-2026-05-30.md` — 0/346 `PROVEN`; global blocker cites missing executable `TestClaimRun` verdicts (`:12-14`). + +--- + +## Predicate 3 — Emitted Rust compiles to a binary + +**Authority text:** `src/v4/TASKS.md:810`. + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `PARTIAL_GATE_PRESENT` | +| Owner sub-tasks | `T-10`, `T-11`, `T-20` (`bootstrap.dag`), `T-32` (minimum seed) | +| Blocking receipt | Release-path `cargo build` of v4-emitted Rust succeeds; bootstrap viability reaches `compiled:` under v4 emit authority | +| Resolving lane | **Compiler Spine** (emit) + **Target Realization** (`TargetAtomRealization` / projection rows — SG-1 class) | + +**Evidence:** + +- `src/v4/workflow/bootstrap.dag:3` — `bootstrap-content-hash-pins` still `🟡`; placeholder `Hash` aliases until T-15 B1 operands land. +- `src/v4/compiler/self_host.dag:3-4` — runner `scaffold-against-contract`; `self_host_runner_not_realized` at `:67-77`, `:148`. +- Open emit-error program: PR #3938 §10.1 SG-1 (~2978 E0423 class) — **Target Realization** worker surface after DFS worksheet approval. + +--- + +## Predicate 4 — Bit-identical self-output (stage1 == stage2) + +**Authority text:** `src/v4/TASKS.md:811`; falsification probe `src/v4/TASKS.md:780-799`. + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `SCAFFOLD_PRESENT` | +| Owner sub-tasks | **`T-15`** (primary), **`T-20`**, **`T-32`**, **`T-36`** (round-trip prerequisite) | +| Blocking receipt | Real B1 `content_hash` on stage1/stage2 emitted Rust; executed `Equals` over digests; bootstrap fixpt without placeholder `Node` stubs | +| Resolving lane | **Self-host/Release** (T-15 ceremony) + **Compiler Spine** (emit determinism) + **Ladder/Fixture** (rung 7 gate shape) | + +**Evidence:** + +| Artifact | Location | Status | +| -------- | -------- | ------ | +| Trampoline authority | `src/v4/bin/main.dag:10-21` | Landed — `include!` string + digest **placeholders** (`Conj`/`Disj` empty nodes) | +| Equals claim | `src/v4/test/claim/self_host/claim_t15_self_host_fixed_point.dag:2-4` | Wired; **execution deferred** to T-22 / host harness | +| Bootstrap fixpt shape | `src/v4/workflow/bootstrap.dag` | `FixptStage1Stage2` + `bootstrap_plan_well_formed` require stage1==stage2 (harness-verified) | +| Host harness | `src/v3/compiler/tests/integration/v4_t15_self_host_fixed_point_harness_test.rs:190-198` | **PASS** on HEAD — **structural** receipt (parse/bootstrap wiring), not executed self-host | +| CI gate | `.github/workflows/ci.yml:203` | `t_15_self_host_fixed_point` runs on affected set | +| Lane closeout | `docs/briefs/t15-bin-main-dag-lane-closeout-receipt.md` | #3897 merged — explicitly **does not** close full T-15 program | + +**T-36 (feeds predicate 4):** `src/v4/TASKS.md:2220-2242` — fixture + claim landed; `RoundTripClaim` eval **`Deferred`** at `src/v4/compiler/05_eval.dag:1732-1736`. + +**Interrogation §4.2:** 4/4 probes `GAP` / `SUBSTRATE_PRESENT` — `docs/audit/v4-close-interrogation-validation-2026-05-30.md:422-431`. + +--- + +## Predicate 5 — TestClaim suite passes + +**Authority text:** `src/v4/TASKS.md:812`. + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `PARTIAL_GATE_PRESENT` | +| Owner sub-tasks | **`T-38`** (CI harness), **`T-22`** (eval), **`T-14`** (corpus), **`T-24`** (ci.dag wiring) | +| Blocking receipt | CI runs T-22 eval on `src/v4/test/claim/manual/*.dag`; structured `TestClaimRun` verdicts; shell bridge deleted | +| Resolving lane | **Runtime/TestClaim** (primary) + **Compiler Spine** (T-22 surface) | + +**Evidence:** + +- Structural bridge: `scripts/v4-testclaim-corpus-gate.sh` + `.github/workflows/ci.yml:290`. +- Modeled runner scaffold: `src/v4/test/claim/workflow/testclaim_corpus_runner.dag:2-4` — `🟡 gated — feature:t38-testclaim-corpus-eval`. +- `src/v4/workflow/ci.dag:117` — `TestClaimCorpusEvalCommand` dissolution step declared; not yet replacing shell gate. +- `src/v4/TASKS.md:2277-2301` — T-38 close conditions 1–3 still open. + +--- + +## Predicate 6 — Hand-Rust not editable authority (reproduction) + +**Authority text:** `src/v4/TASKS.md:813` (A3 reproduction, not count). + +| Field | Value | +| ----- | ----- | +| `ship_disposition` | `GAP` | +| `engineering_state` | `PARTIAL_GATE_PRESENT` | +| Owner sub-tasks | **`T-15`**, **`T-32`**, SG-0 / INVARIANTS P5 dissolution | +| Blocking receipt | Frozen-seed rebuild reproduces pinned content hash; interim P5 harnesses dissolved; trampoline remains build-dir-transient only | +| Resolving lane | **Self-host/Release** + **Close/Receipt** (census / interrogation §2.1) | + +**Evidence:** + +- Interim harnesses enumerated in `src/v3/compiler/tests/integration/sg0_census_test.rs:839-842` (`v4_t15_self_host_fixed_point_harness_test.rs`, `v4_bin_main_dag_smoke_test.rs`) — **P5 Mechanism (b)** receipts, not reproduction proof. +- `src/v4/bin/main.dag:3` — single-line trampoline authority in `.dag`; generated `include!` target is non-authoritative build artifact per task text. +- **T-32** `src/v4/TASKS.md:2155-2216` — minimum never-hand-edited seed; design-first; blocks shrinking bootstrap seed without ratified Phase-1 definition. + +--- + +## T-15 program tracker (sub-gates) + +T-15 **program close** ≠ bin/main.dag lane structural receipt (#3897 / #3929). + +| Sub-gate | TASKS anchor | State | Owner lane | +| -------- | ------------- | ----- | ---------- | +| Structural harness + CI | `src/v4/TASKS.md:799`, closeout `docs/briefs/t15-bin-main-dag-lane-closeout-receipt.md` | **Landed** on main | Self-host/Release | +| T-37 serializer / emit viability | `src/v4/TASKS.md:2246-2271` | **DONE** (#3791) | Compiler Spine | +| P5 resolve-posture bridge removal | `src/v4/TASKS.md:191-193`, `:272` | **OPEN** | Compiler Spine / T-8 closeout | +| T-38 claim eval execution | `src/v4/TASKS.md:194`, `:2277-2309` | **OPEN** | Runtime/TestClaim | +| B1 content_hash pins in bootstrap | `src/v4/workflow/bootstrap.dag:3`, `src/v4/TASKS.md:291-293` | **OPEN** | Self-host/Release + Compiler Spine | +| T-32 footprint constructs walk | `src/v4/TASKS.md:294-295` | **OPEN** (PR #3907 in flight) | Self-host/Release | +| Predicate 1 (whole plan minus T-15) | `src/v4/TASKS.md:802-808` | **OPEN** | All lanes | + +--- + +## T-36 round-trip tracker + +| Field | Value | +| ----- | ----- | +| TASKS | `src/v4/TASKS.md:2220-2242` | +| Fixture | `src/v4/test/fixture/dag_round_trip_mvp1.dag` (landed) | +| Claim | `src/v4/test/claim/round_trip/dag_ingest_round_trip.dag` | +| Eval | `RoundTripClaim` → `Deferred` (`src/v4/compiler/05_eval.dag:1732-1736`) | +| `ship_disposition` | `GAP` | +| `engineering_state` | `SUBSTRATE_PRESENT` | +| Blocking receipt | T-38 executes round-trip claim with Pass/Fail verdict; unblocks meaningful T-15 fixpt loop | +| Resolving lane | **Compiler Spine** (T-6–T-10) + **Runtime/TestClaim** (eval) | + +--- + +## Lane routing (who resolves which predicate gap) + +```text +Predicate 1 ──► Close/Receipt (ledger) + every implementation lane +Predicate 2 ──► Compiler Spine +Predicate 3 ──► Compiler Spine + Target Realization +Predicate 4 ──► Self-host/Release + Compiler Spine + Ladder/Fixture (rung 7) +Predicate 5 ──► Runtime/TestClaim + Compiler Spine +Predicate 6 ──► Self-host/Release + Close/Receipt +``` + +**Sibling managers (coordinate on interface touch):** + +| Session | Lane | Touch predicates | +| ------- | ---- | ---------------- | +| `sharp-otter-407` | Close/Receipt | 1, 6; adjudicates this tracker | +| `keen-crab-361` | Ladder/Fixture | 4–5 (rung 7–8 receipts) | +| `proud-pike-680` | Modeling DFS | 2–3 (SG worksheets before Target Realization dispatch) | +| `smart-stag-871` | Compiler Spine | 2–4 | +| `keen-heron-687` | Target Realization | 2–3 | +| *(pending)* | Runtime/TestClaim | 5; T-36 eval | + +--- + +## PR #3938 spot-checks (manager verification pass) + +Claims checked against tree at `e332fc27b`: + +| PR #3938 claim | Verdict | Evidence | +| -------------- | ------- | -------- | +| §8.D4 — six predicates are release gate | **Confirmed** | Matches `src/v4/TASKS.md:801-813` | +| §10.0 — 0/346 PROVEN on main | **Confirmed** | `docs/audit/v4-close-interrogation-validation-2026-05-30.md:10-14` | +| §10.1 SG-1 blocks emit correctness | **Confirmed** | Open PR #3934 WIP; planning §10.1 | +| T-15 harness is structural not executable fixpt | **Confirmed** | `claim_t15_self_host_fixed_point.dag:4`, closeout brief `:31-37` | +| `RoundTripClaim` deferred | **Confirmed** | `05_eval.dag:1732-1736` | +| P5 bridge still present | **Confirmed** | `ci.yml:273`, `v4-bootstrap-resolve-posture-gate.sh:1-12` | + +**Issue surfaced to PM:** `TASKS.md:815` Close-status paragraph uses predicate numbering (1–5) that does not label the six bullets at `:802-813` inline — risks mis-read during lane dispatch. Recommend a follow-on docs PR mapping P1–P6 ↔ bullets after §8 ratification (Close/Receipt lane). + +--- + +## Next actions (this manager — pre-§8) + +1. **This doc** → PR from `session/nimble-crane-490-predicate-tracker` for operator/PM review (no worker dispatch). +2. **After §8 ratification:** refresh `TASKS.md:815` Close-status from this matrix; coordinate Runtime/TestClaim spawn for predicate 5. +3. **Standing checks:** re-run `t_15_self_host_fixed_point` on main after T-15-affecting merges; watch P5 bridge 14-day soak counter. + +## What this doc is NOT + +- Not a TASKS.md amendment and not a predicate narrowing. +- Not a worker brief — dispatch waits on §8 + DFS worksheet gates per PR #3938 §11.4. +- Not a substitute for `docs/audit/v4-close-interrogation-validation-2026-05-30.md` (346-probe ledger stays with Close/Receipt). From 9a1109ef48981841b8dc4a28c9433d0ae41dd52c Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Sat, 30 May 2026 02:28:07 +0000 Subject: [PATCH 2/5] =?UTF-8?q?docs(planning):=20note=20=C2=A78=20ratified?= =?UTF-8?q?=20(#3938)=20post-rebase=20on=20main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update tracker header and next-actions for merged correctness ladder; rebase base 55ad5f3d3. Co-authored-by: Cursor --- docs/planning/v4-done-predicate-tracker-2026-05-30.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/planning/v4-done-predicate-tracker-2026-05-30.md b/docs/planning/v4-done-predicate-tracker-2026-05-30.md index 2442e88f39c..2861746d38d 100644 --- a/docs/planning/v4-done-predicate-tracker-2026-05-30.md +++ b/docs/planning/v4-done-predicate-tracker-2026-05-30.md @@ -3,13 +3,13 @@ > **Status:** PLANNING — first artifact for Self-host/Release Manager (`nimble-crane-490`). > **Authority:** `src/v4/TASKS.md:801-815` (definition); PR [#3938](https://github.com/gunb-ai/gunbc/pull/3938) §8.D4 + §10.0 + §11.1 (disposition vocabulary + lane map). > **Session:** `nimble-crane-490` · **Parent:** `nimble-dove-733` (PM May 29) -> **Tree HEAD spot-check:** `e332fc27b` (2026-05-30) — `session/nimble-crane-490` tracking `origin/main`. +> **Tree HEAD spot-check:** `55ad5f3d3` (2026-05-30, post-#3938 `b129ce3f2` on main) — rebased `session/nimble-crane-490-predicate-tracker`. ## Non-negotiables - **Cannot narrow v4-done.** Per PR #3938 §8.D4: any predicate relaxation requires an explicit `src/v4/TASKS.md:801-815` amendment with named operator rationale — not a PM or manager call. - **Closure vocabulary (§10.0):** `ship_disposition: PROVEN` only with an executable receipt (+ falsification when the probe asks). Substrate alone → `GAP` + `engineering_state: SUBSTRATE_PRESENT` (or finer states below). -- **§8 operator gate:** No worker briefs from this tracker until §8 D1–D7 are operator-ratified on PR #3938 and (where applicable) Modeling DFS worksheets are approved. +- **§8 ratified:** PR #3938 merged (`b129ce3f2` on main); ladder + disposition vocabulary authoritative via `docs/planning/v4-correctness-ladder-2026-05-30.md`. Worker dispatch still follows per-class DFS worksheet approval (PR #3938 §11.4) — this tracker does not self-dispatch. ## Summary matrix From 4c13dc744016e4ffda22f442c33830cbaf1c36e2 Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Sat, 30 May 2026 02:28:22 +0000 Subject: [PATCH 3/5] =?UTF-8?q?docs(planning):=20align=20tracker=20footnot?= =?UTF-8?q?es=20with=20post-=C2=A78=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- docs/planning/v4-done-predicate-tracker-2026-05-30.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/planning/v4-done-predicate-tracker-2026-05-30.md b/docs/planning/v4-done-predicate-tracker-2026-05-30.md index 2861746d38d..e706eec79ba 100644 --- a/docs/planning/v4-done-predicate-tracker-2026-05-30.md +++ b/docs/planning/v4-done-predicate-tracker-2026-05-30.md @@ -241,11 +241,11 @@ Claims checked against tree at `e332fc27b`: --- -## Next actions (this manager — pre-§8) +## Next actions (this manager — post-§8) -1. **This doc** → PR from `session/nimble-crane-490-predicate-tracker` for operator/PM review (no worker dispatch). -2. **After §8 ratification:** refresh `TASKS.md:815` Close-status from this matrix; coordinate Runtime/TestClaim spawn for predicate 5. -3. **Standing checks:** re-run `t_15_self_host_fixed_point` on main after T-15-affecting merges; watch P5 bridge 14-day soak counter. +1. **#3948** — rebased onto main post-#3938; awaiting operator merge (2 dashboard APPROVE, CI green). +2. **TASKS.md:815** — numbering fix forwarded to operator via PM; land separately when assigned (Close/Receipt or operator pick). +3. **Post-merge:** refresh predicate rows from live `main`; coordinate Runtime/TestClaim spawn for predicate 5; standing `t_15_self_host_fixed_point` on T-15-affecting merges. ## What this doc is NOT From 760987fa5bfe5103b393072004033afb38a13dec Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Sat, 30 May 2026 02:28:39 +0000 Subject: [PATCH 4/5] =?UTF-8?q?WIP:=20Self-host/Release=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-15,=20the=20six=20v4-done=20pr?= =?UTF-8?q?edica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/planning/v4-done-predicate-tracker-2026-05-30.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/planning/v4-done-predicate-tracker-2026-05-30.md b/docs/planning/v4-done-predicate-tracker-2026-05-30.md index e706eec79ba..9301da3768a 100644 --- a/docs/planning/v4-done-predicate-tracker-2026-05-30.md +++ b/docs/planning/v4-done-predicate-tracker-2026-05-30.md @@ -52,7 +52,7 @@ **Landed (examples):** `T-19`, `T-29`, `T-33`, `T-34`, `T-37` marked `[DONE]` in task bodies; `T-25-core` / `T-26` `[SUBSTRATE LANDED]`. -**Note:** `TASKS.md:815` Close-status snapshot (`main@678bb8bbd`) predates current HEAD; treat this tracker + live `TASKS.md` as operational — refresh Close-status in a dedicated receipt PR after §8 ratification. +**Note:** `TASKS.md:815` Close-status snapshot (`main@678bb8bbd`) predates current HEAD; treat this tracker + live `TASKS.md` as operational — refresh Close-status when operator ratifies the P1–P6 numbering fix (forwarded via PM). --- @@ -250,5 +250,5 @@ Claims checked against tree at `e332fc27b`: ## What this doc is NOT - Not a TASKS.md amendment and not a predicate narrowing. -- Not a worker brief — dispatch waits on §8 + DFS worksheet gates per PR #3938 §11.4. +- Not a worker brief — dispatch waits on DFS worksheet approval per PR #3938 §11.4. - Not a substitute for `docs/audit/v4-close-interrogation-validation-2026-05-30.md` (346-probe ledger stays with Close/Receipt). From ea6e59f87e3d4d89df74f29827bdc1ca98cd32e6 Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Sat, 30 May 2026 02:36:59 +0000 Subject: [PATCH 5/5] fix(docs): correct TASKS.md line anchors for six v4-done predicates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per review #21394: predicate bullets are :806-:817 (not :809-:813); Close-status at :819. Aligns P2–P6 Authority text and matrix cites with INVARIANTS P2 pointer discipline. Co-authored-by: Cursor --- .../v4-done-predicate-tracker-2026-05-30.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/planning/v4-done-predicate-tracker-2026-05-30.md b/docs/planning/v4-done-predicate-tracker-2026-05-30.md index 9301da3768a..c43cdcc8685 100644 --- a/docs/planning/v4-done-predicate-tracker-2026-05-30.md +++ b/docs/planning/v4-done-predicate-tracker-2026-05-30.md @@ -1,24 +1,24 @@ # v4-done — six-predicate tracker > **Status:** PLANNING — first artifact for Self-host/Release Manager (`nimble-crane-490`). -> **Authority:** `src/v4/TASKS.md:801-815` (definition); PR [#3938](https://github.com/gunb-ai/gunbc/pull/3938) §8.D4 + §10.0 + §11.1 (disposition vocabulary + lane map). +> **Authority:** `src/v4/TASKS.md:805-817` (v4-done definition + six bullets); PR [#3938](https://github.com/gunb-ai/gunbc/pull/3938) §8.D4 + §10.0 + §11.1 (disposition vocabulary + lane map). Line anchors are to current `main` (post-#3938). > **Session:** `nimble-crane-490` · **Parent:** `nimble-dove-733` (PM May 29) > **Tree HEAD spot-check:** `55ad5f3d3` (2026-05-30, post-#3938 `b129ce3f2` on main) — rebased `session/nimble-crane-490-predicate-tracker`. ## Non-negotiables -- **Cannot narrow v4-done.** Per PR #3938 §8.D4: any predicate relaxation requires an explicit `src/v4/TASKS.md:801-815` amendment with named operator rationale — not a PM or manager call. +- **Cannot narrow v4-done.** Per PR #3938 §8.D4: any predicate relaxation requires an explicit `src/v4/TASKS.md:805-817` amendment with named operator rationale — not a PM or manager call. - **Closure vocabulary (§10.0):** `ship_disposition: PROVEN` only with an executable receipt (+ falsification when the probe asks). Substrate alone → `GAP` + `engineering_state: SUBSTRATE_PRESENT` (or finer states below). - **§8 ratified:** PR #3938 merged (`b129ce3f2` on main); ladder + disposition vocabulary authoritative via `docs/planning/v4-correctness-ladder-2026-05-30.md`. Worker dispatch still follows per-class DFS worksheet approval (PR #3938 §11.4) — this tracker does not self-dispatch. ## Summary matrix -| # | Predicate (`TASKS.md:801-815`) | `ship_disposition` | `engineering_state` | Primary TASKS anchors | Blocking receipt (close) | Resolving manager lane | +| # | Predicate (`TASKS.md:806-817`) | `ship_disposition` | `engineering_state` | Primary TASKS anchors | Blocking receipt (close) | Resolving manager lane | | - | ------------------------------ | ------------------ | --------------------- | --------------------- | ------------------------ | ---------------------- | | 1 | Every other scheduled task complete (whole plan minus T-15) | `GAP` | `CENSUS_NOT_RUN` (drift-proof; no mechanical census) | Plan graph `src/v4/TASKS.md:7-265`; Summary `src/v4/TASKS.md:1233-1239` | Per-task `DONE` / dissolution receipts against live plan at close time — not a frozen list | **Close/Receipt** (ledger) + **all lanes** (implementation) | | 2 | v4 compiles `src/v4/compiler/*.dag` end-to-end | `GAP` | `PARTIAL_GATE_PRESENT` | `T-6`…`T-10`, `T-37` `src/v4/TASKS.md:474-686`, `:2246-2271` | v4 compiler-of-record executes full `src/v4/compiler/*.dag` pipeline without v2 OOM/SIGTERM mask; P5 resolve-posture bridge deleted | **Compiler Spine** | | 3 | v4 emits Rust that compiles to a binary | `GAP` | `PARTIAL_GATE_PRESENT` | `T-10`, `T-11`, `T-20`, `T-32` `src/v4/TASKS.md:612-686`, `:1057-1078`, `:2155-2216` | Emitted Rust is `cargo`-clean for release binary; bootstrap `compiled:` under v4 emit (not v2-only structural compile) | **Compiler Spine** + **Target Realization** | -| 4 | Binary on `src/v4/compiler/*.dag` → bit-identical output (stage1==stage2) | `GAP` | `SCAFFOLD_PRESENT` | `T-15` `src/v4/TASKS.md:768-815`; `T-20`, `T-32`, `T-36` | B1 merkle `content_hash` pins replace digest placeholders; `self_host.dag` runner realized; `claim_t15` + `t_15_self_host_fixed_point` execute real fixpt (not structural-only) | **Self-host/Release** (this lane) + **Compiler Spine** | +| 4 | Binary on `src/v4/compiler/*.dag` → bit-identical output (stage1==stage2) | `GAP` | `SCAFFOLD_PRESENT` | `T-15` `src/v4/TASKS.md:768-819`; `T-20`, `T-32`, `T-36` | B1 merkle `content_hash` pins replace digest placeholders; `self_host.dag` runner realized; `claim_t15` + `t_15_self_host_fixed_point` execute real fixpt (not structural-only) | **Self-host/Release** (this lane) + **Compiler Spine** | | 5 | TestClaim suite passes | `GAP` | `PARTIAL_GATE_PRESENT` | `T-14`, `T-22`, `T-38` `src/v4/TASKS.md:734-766`, `:1130-1151`, `:2277-2309` | Modeled T-22 eval over manual corpus + structured `TestClaimRun` verdicts in CI; delete `scripts/v4-testclaim-corpus-gate.sh` | **Runtime/TestClaim** (pending spawn) + **Compiler Spine** | | 6 | Hand-authored Rust not editable authority (reproduction-proven) | `GAP` | `PARTIAL_GATE_PRESENT` | `T-15`, `T-32`, INVARIANTS A3 / P5 | Rebuild-from-(.dag + frozen seed) reproduces pinned artifact hash; SG-0 hand-test census trends to dissolution; P5 bridges removed | **Self-host/Release** + **Close/Receipt** (census ratchet) | @@ -28,7 +28,7 @@ ## Predicate 1 — Whole plan minus T-15 -**Authority text:** `src/v4/TASKS.md:802-808` — drift-proof close gate; never a hardcoded task count. +**Authority text:** `src/v4/TASKS.md:806-812` — drift-proof close gate; never a hardcoded task count. | Field | Value | | ----- | ----- | @@ -52,13 +52,13 @@ **Landed (examples):** `T-19`, `T-29`, `T-33`, `T-34`, `T-37` marked `[DONE]` in task bodies; `T-25-core` / `T-26` `[SUBSTRATE LANDED]`. -**Note:** `TASKS.md:815` Close-status snapshot (`main@678bb8bbd`) predates current HEAD; treat this tracker + live `TASKS.md` as operational — refresh Close-status when operator ratifies the P1–P6 numbering fix (forwarded via PM). +**Note:** `TASKS.md:819` Close-status snapshot (`main@678bb8bbd`) predates current HEAD; treat this tracker + live `TASKS.md` as operational — refresh Close-status when operator ratifies the P1–P6 numbering fix (forwarded via PM). --- ## Predicate 2 — Corpus compiles end-to-end -**Authority text:** `src/v4/TASKS.md:809`. +**Authority text:** `src/v4/TASKS.md:813`. | Field | Value | | ----- | ----- | @@ -81,7 +81,7 @@ ## Predicate 3 — Emitted Rust compiles to a binary -**Authority text:** `src/v4/TASKS.md:810`. +**Authority text:** `src/v4/TASKS.md:814`. | Field | Value | | ----- | ----- | @@ -101,7 +101,7 @@ ## Predicate 4 — Bit-identical self-output (stage1 == stage2) -**Authority text:** `src/v4/TASKS.md:811`; falsification probe `src/v4/TASKS.md:780-799`. +**Authority text:** `src/v4/TASKS.md:815`; falsification probe `src/v4/TASKS.md:784-801`. | Field | Value | | ----- | ----- | @@ -130,7 +130,7 @@ ## Predicate 5 — TestClaim suite passes -**Authority text:** `src/v4/TASKS.md:812`. +**Authority text:** `src/v4/TASKS.md:816`. | Field | Value | | ----- | ----- | @@ -151,7 +151,7 @@ ## Predicate 6 — Hand-Rust not editable authority (reproduction) -**Authority text:** `src/v4/TASKS.md:813` (A3 reproduction, not count). +**Authority text:** `src/v4/TASKS.md:817` (A3 reproduction, not count). | Field | Value | | ----- | ----- | @@ -181,7 +181,7 @@ T-15 **program close** ≠ bin/main.dag lane structural receipt (#3897 / #3929). | T-38 claim eval execution | `src/v4/TASKS.md:194`, `:2277-2309` | **OPEN** | Runtime/TestClaim | | B1 content_hash pins in bootstrap | `src/v4/workflow/bootstrap.dag:3`, `src/v4/TASKS.md:291-293` | **OPEN** | Self-host/Release + Compiler Spine | | T-32 footprint constructs walk | `src/v4/TASKS.md:294-295` | **OPEN** (PR #3907 in flight) | Self-host/Release | -| Predicate 1 (whole plan minus T-15) | `src/v4/TASKS.md:802-808` | **OPEN** | All lanes | +| Predicate 1 (whole plan minus T-15) | `src/v4/TASKS.md:806-812` | **OPEN** | All lanes | --- @@ -230,21 +230,21 @@ Claims checked against tree at `e332fc27b`: | PR #3938 claim | Verdict | Evidence | | -------------- | ------- | -------- | -| §8.D4 — six predicates are release gate | **Confirmed** | Matches `src/v4/TASKS.md:801-813` | +| §8.D4 — six predicates are release gate | **Confirmed** | Matches `src/v4/TASKS.md:806-817` | | §10.0 — 0/346 PROVEN on main | **Confirmed** | `docs/audit/v4-close-interrogation-validation-2026-05-30.md:10-14` | | §10.1 SG-1 blocks emit correctness | **Confirmed** | Open PR #3934 WIP; planning §10.1 | | T-15 harness is structural not executable fixpt | **Confirmed** | `claim_t15_self_host_fixed_point.dag:4`, closeout brief `:31-37` | | `RoundTripClaim` deferred | **Confirmed** | `05_eval.dag:1732-1736` | | P5 bridge still present | **Confirmed** | `ci.yml:273`, `v4-bootstrap-resolve-posture-gate.sh:1-12` | -**Issue surfaced to PM:** `TASKS.md:815` Close-status paragraph uses predicate numbering (1–5) that does not label the six bullets at `:802-813` inline — risks mis-read during lane dispatch. Recommend a follow-on docs PR mapping P1–P6 ↔ bullets after §8 ratification (Close/Receipt lane). +**Issue surfaced to PM:** `TASKS.md:819` Close-status paragraph uses predicate numbering (1–5) that does not label the six v4-done bullets at `:806-817` inline — risks mis-read during lane dispatch. Recommend a follow-on docs PR mapping P1–P6 ↔ `:806-817` (Close/Receipt lane). *(This tracker’s initial `:809-:813` authority cites were corrected in #3948 after review #21394.)* --- ## Next actions (this manager — post-§8) 1. **#3948** — rebased onto main post-#3938; awaiting operator merge (2 dashboard APPROVE, CI green). -2. **TASKS.md:815** — numbering fix forwarded to operator via PM; land separately when assigned (Close/Receipt or operator pick). +2. **TASKS.md:819** Close-status numbering fix — forwarded to operator via PM; land separately when assigned (Close/Receipt or operator pick). 3. **Post-merge:** refresh predicate rows from live `main`; coordinate Runtime/TestClaim spawn for predicate 5; standing `t_15_self_host_fixed_point` on T-15-affecting merges. ## What this doc is NOT