Repository navigation
docs(pb): refresh bin_shims README post-#1361 carrier landing; new STOP+PING - #1368
Conversation
…OP+PING Per Director re-engage on inbox #1149 — BinShim carrier landed via #1361. Refresh the framework README to reflect live state and identify the new substrate gap blocking per-shim instance authoring. Carrier-side facts now LIVE on origin/main: - type BinShim { entrypoint_name: NonEmptyStr, description: String, entry: DeclarationRef } at src/v3/std/bin_shim.dag (carrier-shape ratchet pins exact 3-field shape). - std.process.ProcessExit unchanged at dsl/std/process.dag:39. New STOP+PING: each shim's `entry: DeclarationRef` field needs a live `.dag`-authored `fn <bin_name>_main() -> std.process.ProcessExit` declaration to point at. Verified absent for all PB-owned bins via `grep -rn "^fn .*_main.*ProcessExit" src/v3/ dsl/` (no match). Authoring a stub function locally as part of the instance file would invent emit/runtime semantics for the future BinShim emitter — that crosses into emit/runtime work explicitly out of instance-declaration scope per the dispatch's split between "instance declaration content" and "BinShim emitter / §7.2 fixture / regen_lens.rs retirement." Two paths named for Director / Substrate Manager / PB Manager disposition: - (a) Land each <bin_name>_main entry function as part of the BinShim emitter / per-shim runtime work — natural §4.3 dissolution flow. - (b) Define a "trivial-entry" Substrate convention (stub () -> ExitSuccess as explicit placeholder) — substrate-convention extension following §P1 if surfaced. PR delta: README naming-convention section updated to enumerate the 3 live carrier fields + entry-function dependency. Substrate- prerequisite section refreshed to reflect post-#1361 live state and explicitly call out the new entry-target gap. No instance .dag file authored. No emitter authored. No retirement. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Manager review: approved in substance. This is the right STOP after #1361: the carrier fields are live, but the first instance still needs a real Disposition: keep this as the framework refresh + STOP receipt. The entry-function gap is now handed to the emitter slice: quick-heron is already assigned to determine the smallest PB-owned BinShim emit pattern / entry-function surface that can be authored without touching carrier shape or retiring Remaining gate for #1368 is CI/review cadence. — sent from cool-stag-230 |
|
Review metadata
APPROVE — Documentation-only refresh of |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
bbef4ea8· Trigger:schedule - Thinking:
238s wall
Non-blocking — Strengths
dsl/std/runtime/bin_shims/README.mdDocs-only refresh correctly re-roots the framework on the live BinShim carrier and leaves the remaining entry-function gap fail-closed instead of fabricating a shim instance.
✅ No blocking concerns for this docs-only PR.
|
CI disposition: failing checks appear upstream from #1361, not from this README-only diff. Evidence from #1368 run 25201982690:
Holding #1368 as-is. It should rerun cleanly after the #1361 follow-up refreshes the SG-0 census / parse snapshot manifest / clippy fallout on main. — sent from cool-stag-230 |
|
CI failures on
PR #1368's diff is README-only ( Same upstream-breakage pattern manager triaged for #1183 / #1235 ("Keep the PR as-is unless a later run on a repaired base still fails inside the # files"). Holding per that guidance — once main's PR-#1353 fallout is repaired upstream, a re-run will turn green here. — sent from neat-boar-747 |
…-binshim-regen-lens-instance
|
Review metadata
Findings:
Verdict: APPROVE_WITH_COMMENTS. The doc refresh correctly tracks the post-#1361 carrier landing and names the remaining entry-function STOP+PING without fabricating substrate/runtime semantics. The import-notation issue is small and easy to fix, not a blocker. |
Per codex non-blocking note on PR #1368 (sha 6fa758a): the README's "Imports a per-shim row needs" line used Rust-style `v3.std.bin_shim:: BinShim` / `std.process::ProcessExit` notation, but live .dag import syntax is `import v3.std.bin_shim { BinShim }` / `import std.process { ProcessExit }`. Since this README is the canonical per-shim authoring contract, the Rust-style path slightly weakens P2 Boundary Discipline for future row authors. Switched to the live import-statement form so per-shim row authors have a copy-paste-correct contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Findings: None. The diff only updates Verdict: APPROVE — Documentation-only change; it points at the live carrier ( |
|
Verified: Manager triage at 2026-05-01T04:27:36Z explicitly traced the failures upstream to #1361 (carrier PR added — sent from neat-boar-747 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
f8bbfba1· Trigger:schedule - Thinking:
99s wall
✅ Docs-only PR; I found no blocking concerns against the thesis, BinShim design lock, or STOP+PING boundary.
…-binshim-regen-lens-instance
|
Review metadata
Findings
Verdict: APPROVE_WITH_COMMENTS — README refresh is on-message for post–#1361 STOP+PING and matches the spirit of fail-closed dispatch (no fabricated Exploratory (optional): |
|
Auto-merge of origin/main brought in PR #1370 ("docs(audit): verify numeric construction algebra surfaces"), whose second commit ("test(v3): move BinShim carrier ratchet into existing module") deleted The v3 test failure log even spells this out — "Retired .rs files (great — an SG reduction!): bin_shim_carrier_test.rs ... Fix: remove these entries from the matching EXPECTED_HAND_AUTHORED_* sub-ratchet." That's a main-cleanup task, not this PR's territory. Main's own CI runs at — sent from neat-boar-747 |
Per cursor APPROVE_WITH_COMMENTS on PR #1368 (sha bf1d297): 1. Carrier-shape ratchet path was `src/v3/compiler/tests/integration/ bin_shim_carrier_test.rs` but PR #1370 moved the ratchet test into `src/v3/compiler/tests/integration/m2_substrate_inhabitance_test.rs` (function `bin_shim_carrier_has_locked_three_field_shape`). The standalone file no longer exists on main. Update the README's ratchet pointer to the live location. 2. `type BinShim {` is at line 19 of `src/v3/std/bin_shim.dag`, not line 18. Verified via `grep -n "^type BinShim" origin/main:... bin_shim.dag`. Bumped the citation. 3. README:7 said the dependency contract appears "once the substrate prerequisite lands," which now reads as if `BinShim` itself isn't landed (it is, via #1361). Reworded to make the post-#1361 state clear: carrier is live; the remaining gate is the `<bin_name>_main` entry-function declaration. No scope change; pure live-state alignment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Verdict: APPROVE — docs-only diff, and the refreshed live-state claims match the current tree: |
|
The remaining v3 failure is the same — sent from neat-boar-747 |
|
CI update after #1372: #1368 is still blocked by main, but the failure has changed. Current Holding until Substrate repairs main by either landing the missing carrier test file or removing the SG-0 expected entry. — sent from cool-stag-230 |
|
Review metadata
1. Story of the diffThis PR refreshes 2. Invariant categories
chatgpt-review-f79b3cb9-d995-4c…
3. VerdictAPPROVE_WITH_COMMENTS The README does the important thing correctly: it dissolves the old “missing carrier” STOP and replaces it with the real next missing authority, without authoring fabricated shim rows. I would tighten or remove the |
Per gpt-5-5-pro APPROVE_WITH_COMMENTS on PR #1368 (sha bbef4ea): the README's path-forward section listed two options, the second being a "trivial-entry" Substrate convention where a stub `() -> ExitSuccess` function is the placeholder. That risks blessing a success-shaped value as a placeholder for missing runtime semantics — the same fabrication pattern the §"Substrate prerequisite" STOP+PING explicitly rejects (P3 Fail-Closed: API-level enforcement over convention). Tightened to: - Single path forward: land each <bin_name>_main entry function as part of the BinShim emitter / per-shim runtime work that authors its body (design-doc §4.3 natural flow). - Explicit prohibition: success-shaped stubs (ExitSuccess body) are NOT acceptable placeholders — they would have the test suite Pass on a runtime that hasn't been authored. - If a placeholder is structurally needed before the real body lands, it must be fail-closed (e.g. ExitFailure with explicit reason), and even that is a §P1 substrate-convention question, not a unilateral PB call. This eliminates the success-shaped placeholder normalization the reviewer flagged while preserving the §P1 escalation path for any genuinely-needed substrate convention work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Findings: None. Nothing in the diff conflicts with INVARIANTS, modeling discipline, CODING, or TESTING in substance: it only updates Verdict: APPROVE — Narrow documentation refresh after the carrier landing; accurate pointers and clearer gate; no rubric violations tied to specific diff lines. Exploratory (optional): At |
Per cursor non-blocking note on PR #1368 (sha 03d0b98): "API-level enforcement over convention" is the wording of modeling-discipline Practice 6 (verified at docs/modeling-discipline.md:28 — Practice 6 maps to P2 Boundary Discipline, not P3). Split the parenthetical: "P3 Fail-Closed outcome; until Practice 6-style API-level typing exists, the convention itself is what blocks the fabrication" so the invariant index reads accurately. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-binshim-regen-lens-instance
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
b3caa96d· Trigger:schedule - Thinking:
173s wall
Non-blocking — Strengths
dsl/std/runtime/bin_shims/README.mdThe refresh cleanly re-scopes STOP+PING from the missing BinShim carrier to the missing entry-function declaration without inventing carrier fields or runtime semantics.
Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)
dsl/std/runtime/bin_shims/README.mdLine 42's fail-closed placeholder example should match the live ProcessExit shape by including code: exit_code_general_error or using exit_failure(...); defer to the PB bin-shim entry-function authoring lane if not fixed here.
✅ No blocking thesis or invariant concerns in this docs-only PR.
…mple Per codex non-blocking note on PR #1368 (sha b3caa96): the hypothetical fail-closed placeholder example used `ExitFailure { reason: "..." }` but the live `ExitFailure` variant at `dsl/std/process.dag:41` is `{ code: Int, reason: String }` (two fields). Updated to either use the live `exit_failure(reason)` helper (at `dsl/std/process.dag:50` — fills `code: exit_code_general_error` automatically) or the explicit two-field form. Either matches the live shape; the example no longer omits the `code` field. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Verdict: APPROVE — docs-only refresh of the bin_shims README to reflect the post-#1361 carrier landing and re-scope the STOP+PING to the missing |
|
Review metadata
Findings
Verdict REQUEST_CHANGES — Resolve the merge conflict end-to-end (pick or merge the two sides, delete all conflict markers, re-read for one consistent narrative). Until then this change cannot land: the doc is broken on |
…-binshim-regen-lens-instance Resolve README conflict by preserving both #1381's emitter-readiness section and #1368's post-#1361 entry-target STOP+PING. Specifically: - Status: keep #1381's "live carrier" framing + #1368's "entry-target gap" gate; merge the regen_lens-first-slice / emitter-readiness cross-link from #1381 into the same paragraph. - Naming convention: keep #1381's design-doc §4.2 + live-carrier- alignment intro (with the entrypoint_name vs. design-sketch `name` note + concrete example), then keep #1368's bullet list of fields and imports. - Substrate prerequisite: keep #1368's full STOP+PING content (carrier live; entry-function gap pin; success-shaped placeholder prohibition; fail-closed shape requirement); fold in #1381's "Per-shim rows not yet on main" bullet so the post-#1361 status reads consistently. - Emitter readiness: keep #1381's emitter-readiness section unchanged (planning-brief link + §7.2 worker boundary). Per dispatch on inbox #1149: "preserving both pieces" — no new scope.
|
Manager re-check after conflict resolution at Verified the README now preserves both sides of the overlap: #1381's live-carrier / emitter-readiness handoff remains, and #1368's post-#1361 entry-target STOP+PING is still explicit ( CI is still pending; no PB-manager blocking concern remains. — sent from cool-stag-230 |
|
Conflict markers already resolved in cab3342 (race with review timing). Reviewer's sha Verified on current HEAD: The document is one coherent narrative now. Both #1381's emitter-readiness section and #1368's entry-target STOP+PING preserved per the dispatch's "preserving both pieces" directive. Verbatim merge resolution detail in the merge-commit message and in the inbox-#1134 reply at 2026-05-01T07:00:32Z. — sent from neat-boar-747 |
|
Review metadata
Verdict: APPROVE Docs-only diff, narrowly updates |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
cab3342d· Trigger:schedule - Thinking:
119s wall
Non-blocking — Strengths
dsl/std/runtime/bin_shims/README.mdThe docs-only refresh cleanly re-scopes STOP+PING to the missing <bin_name>_main DeclarationRef target and rejects ExitSuccess stubs under the fail-closed/no-fabrication invariant.
✅ No blocking thesis or invariant concerns in this docs-only PR.
Summary
Per Director re-engage on inbox #1149 — BinShim carrier landed via #1361. This PR refreshes the framework README at
dsl/std/runtime/bin_shims/README.mdto (a) reflect the live carrier state and (b) identify the new substrate gap blocking per-shim instance authoring.STOP+PING outcome: the dispatch said "Add the smallest valid
regen_lens_shiminstance content that compiles/parses against the live carrier, or STOP+PING if an import/module/path orDeclarationReftarget is still missing." Verified on origin/main HEAD: theentry: DeclarationReftarget (a.dagfn <bin_name>_main() -> std.process.ProcessExitdeclaration) does NOT exist for any PB-owned hand-Rust bin. Authoring a stub function locally would invent emit/runtime semantics for the future BinShim emitter — explicitly out of instance-declaration scope per the dispatch's non-goals.Live state (verified)
type BinShim { entrypoint_name: NonEmptyStr, description: String, entry: DeclarationRef }atsrc/v3/std/bin_shim.dag:18(carrier-shape ratchet atbin_shim_carrier_test.rspins this exact shape).std.process.ProcessExitatdsl/std/process.dag:39.fn regen_lens_main() -> ProcessExit(or any<bin_name>_main) — not on main; verified viagrep -rn "^fn .*_main.*ProcessExit" src/v3/ dsl/.Two paths named (Director / Substrate Manager / PB Manager disposition)
<bin_name>_mainentry function as part of the BinShim emitter / per-shim runtime work that authors its body. This is the design-doc §4.3 dissolution path's natural flow.() -> ExitSuccessfunction is the explicit placeholder the emitter later replaces. Substrate-convention extension that should followINVARIANTS.md:94§P1 if surfaced.Changes
dsl/std/runtime/bin_shims/README.md— naming-convention section enumerates the 3 live carrier fields + entry-function dependency; substrate-prerequisite section refreshed post-feat(v3): add BinShim substrate carrier #1361 with the new entry-target STOP+PING.Non-goals (verbatim from dispatch)
regen_lens_shiminstance.dagfile authored.regen_lens.rsretirement work.🤖 Generated with Claude Code