From 26051aaa8a6a2fd2249a4b926849548104aa501b Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Fri, 24 Apr 2026 22:42:07 -0400 Subject: [PATCH] docs(briefs): PB-1 non-goals revised under 0-floor (Pre-promotion Deliverable 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-promotion Deliverable 2 for docs/design-pure-bootstrap-zero.md (PROPOSAL). Authored by the Zero-Floor Program Manager (session stern-swift-335; parallel to R2). Three of PB-1's prior non-goals invert under the 0-floor target: - "Not deleting tokenize/parse/lower/infer/emit" — those files retire under PB-4/5/6 and PB-* parse/tokenize sub-lanes. PB-1 itself still doesn't delete them, but no longer asserts they remain. - "Not a format change for Dag at runtime" — dag.rs itself is generated from substrate.dag under PB-Substrate; the runtime format evolves with the substrate model. - "Not changing the Dag builder API" — dag/builder.rs retires under PB-Tier1-Sweep; the API is no longer a fixed surface. Two non-goals retained as PB-1's bounded scope within the chain: constructor-emission over binary blob, and no .dag user-facing syntax changes. Adds top-of-doc scope note pointing PB-1 lane-owners at the Zero-Floor Manager as their reporting channel. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/briefs/pb-1-data-driven-bootstrap.md | 33 +++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/docs/briefs/pb-1-data-driven-bootstrap.md b/docs/briefs/pb-1-data-driven-bootstrap.md index 2762a0cabb5..2abfdde1106 100644 --- a/docs/briefs/pb-1-data-driven-bootstrap.md +++ b/docs/briefs/pb-1-data-driven-bootstrap.md @@ -1,5 +1,15 @@ # PB-1 — Data-driven bootstrap loader `(XXL)` +> **Scope note (Pre-promotion Deliverable 2 amendment, 2026-04-24).** PB-1 +> is **subsumed under the Pure Bootstrap to Zero program** per +> [`docs/design-pure-bootstrap-zero.md`](../design-pure-bootstrap-zero.md) +> §"Subsumed lanes". Lane-owners report through the +> [Zero-Floor Program Manager](pure-bootstrap-zero-manager.md) (parallel to +> R2). PB-1's per-sub-lane work (a-e) is unchanged; the **non-goals +> below are revised** so PB-1's downstream consumers see the 0-floor +> framing rather than the prior ≤5-floor framing. See "Non-goals" below +> for the inversion. + ## Context Today `Dag::new()` runs the full compiler pipeline (tokenize + parse + lower) on `include_str!`'d `.dag` source files every time a `Dag` is constructed. This means: @@ -83,11 +93,24 @@ Once PB-1-a through PB-1-d land: ## Non-goals -- **Not deleting `tokenize.rs` / `parse.rs` / `lower.rs` / `infer.rs` / `emit.rs`** — PB-1 removes runtime-at-bootstrap *use* of them. Their dissolution as files is separate work (SG-2b, SG-3b proper, SG-4, Lane 1e). -- **Not a format change for the `Dag` at runtime** — generated constructors produce the same `Dag` structure the runtime parse produces. -- **Not a binary blob format** — emitted Rust source (matches v2's proven pattern). The design doc explicitly notes blob was considered and rejected. -- **Not touching `.dag` user-facing syntax** — this is a stage0 runtime change only. -- **Not changing the `Dag` builder API** — TM-1's builders are the surface; PB-1 uses them as-is. +> **Revised under 0-floor (Pre-promotion Deliverable 2, 2026-04-24).** Three +> non-goals from the ≤5-floor era invert under +> [`design-pure-bootstrap-zero.md`](../design-pure-bootstrap-zero.md). PB-1 +> is now the **first phase of a chain that ends with all of those files +> generated**. The retained non-goals below preserve PB-1's bounded scope +> within the chain; the inverted non-goals are absorbed into sibling +> PB-* program lanes. + +**Inverted (absorbed into sibling Zero-Floor lanes):** + +- ~~**Not deleting `tokenize.rs` / `parse.rs` / `lower.rs` / `infer.rs` / `emit.rs`**~~ — under 0-floor these files **do** retire. Out-of-scope for PB-1 but **in-scope for the Zero-Floor program**: lowering retires under PB-4, inference under PB-5, emit cluster under PB-6, parse/tokenize under their own PB-* sub-lanes (per [`design-pure-bootstrap-zero-audit.md`](../design-pure-bootstrap-zero-audit.md) lane assignments). PB-1 still doesn't delete them itself, but no longer asserts they remain as a long-term shape. +- ~~**Not a format change for the `Dag` at runtime**~~ — under 0-floor `dag.rs` itself is **generated from `src/v3/std/substrate.dag`** (PB-Substrate lane). The `Dag` runtime format is allowed to evolve as the substrate model evolves; PB-1's generated constructors must keep pace with whatever shape PB-Substrate emits. Cross-manager substrate-shape coordination is the Zero-Floor Manager's responsibility per the brief's bidirectional Grounding-coordination protocol. +- ~~**Not changing the `Dag` builder API**~~ — under 0-floor `dag/builder.rs` is in PB-Tier1-Sweep (regenerates with substrate types). PB-1's sub-lanes use whatever builder API exists at their landing time; the API is no longer load-bearing as a fixed surface. + +**Retained (PB-1's bounded scope within the chain):** + +- **Not a binary blob format** — emitted Rust source (matches v2's proven pattern). PB-1 specifically chooses constructor-emission over binary serialization. The Zero-Floor program does not revisit this; binary-blob remains rejected for PB-1's authority migration. +- **Not touching `.dag` user-facing syntax** — PB-1 is a stage0 runtime change only. User-facing `.dag` surface evolves under R1 T-Sub / T-P0 (already-landed) and future surface programs, not under PB-1. ## Size