Repository navigation
gunbc Director - #903
gunbc Director#903
Conversation
…edger row (post-#693 escalation) Director-authored amendment following the 2026-04-24 escalation from PR #693 (sub-child sharp-bear-829 under Surface Manager). Two edits: 1. New "Class 5 Gap 3 — port-carried field values in data bodies" row in the 2026-04-21 post-merge-debt section. The substrate gap was documented in src/v3/DOWNSTREAM_REQUIREMENTS.md:239 but had no ROADMAP ledger row for cross-lane visibility. PR #693's execution surfaced it as the blocker on sub_charclass_in_std_unicode phase-2. 2. Retract the "ready-to-dispatch (no substrate capability gap)" claim on the Character-level row, annotate phase-1 landed via PR #693 (CharClass vocabulary + Rust-mirror structural scanner path), and point phase-2 at the new Class 5 Gap 3 row. Codifies the audit pattern: "this consumption gap has no substrate capability gap" claims must be verified by attempting the retype before the claim lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-1 status edits + char_in_class interpreter-parity sibling row from main
…audit note (PM review)
…-5.4 review) Row title still said 'consumption gap, not substrate gap' while the body block retracted that claim and cited Class 5 Gap 3 as a substrate dependency for phase-2. Title now matches body: mixed classification, consumption for steps 1+3, substrate for step 2.
…lass phase-2 blocker classification (per gpt-5.4 audit) gpt-5.4's review on 706 @ 71f46af caught that the row's "remaining gap" description was wrong: field-level shapes (nested records, list literals, declaration refs, Var refs, sum-variant literals) are supported today via FieldValue variants + lower_structural_field_value (dag.rs:328-353, lower.rs:2616+). The actual remaining gap is the top-level ValueBody boundary (non-scalar, non-record top-level bodies). The authority I cited — DOWNSTREAM_REQUIREMENTS.md:239 — is itself stale: it describes the pre-PR-B-unwind shape where FieldValue was LiteralBits-only. PR-B's unwind extended FieldValue to carry Reference / Record / List / Variant, moving the gap to ValueBody. Two fixes: 1. Rewrite the Class 5 Gap 3 row to describe the actual ValueBody boundary, point at code paths (dag.rs, lower.rs) as live authority, flag DOWNSTREAM entry as itself stale, and soften phase-2 CharClass blocker classification to "provisional pending reproduction." 2. Update the Character-level row's phase-2 block to name that the specific shape of the CharClass failure needs concrete reproduction from the escalating sub-child before the blocker is finalized. Recursive audit-pattern instance: the row I wrote to codify "verify live state before claiming substrate gap" itself failed to verify live state. Both incidents (2026-04-23 original row + 2026-04-24 my retraction row) are now cited in the audit-pattern sub-note as examples of the same discipline. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…correct §0.4 dissolution shape) royal-badger-32 (PR #834 fresh worker) caught a substantive misdiagnosis in the original B4.2 brief: the proposed fold_step_formal carrier on Instantiation memoized a fact already structural at lens_apply.rs:114 (find_fold_step_bind_via_instantiation walks fold_template_callable_formals against arguments) — borderline parallel-rep per feedback_parallel_representation_debt. Meanwhile, the actual line-38 bridge skips on accumulator/element TYPE ELIGIBILITY for R1's bounded interpreter (algebra.dag folds use List<SymbolicCost> while bounded interpreter only certifies Int + Behavior elements) — NOT step-formal binding. The two carriers address different questions; landing the original carrier would NOT close §0.4. PR #834 closed as misframed. This brief re-authored: - Frame: actual §0.4 dissolution is structural eligibility predicate on accumulator/element types (per helper's own dissolution-trigger doc: 'R1-certified step shape'). - Pre-author audit MANDATORY: read is_fold_instantiation, find_fold_step_bind_via_instantiation, eval_std_fold's supported type set, line-38 fallback semantics. Audit may show NO new substrate needed. - Slice conditional: pure-query path (preferred — likely zero new substrate) OR minimal carrier path (only if audit justifies). - Acceptance explicit: NO new substrate carrier unless audit produces structural hole + PR body documents. - STOP-AND-ESCALATE: substrate-undissolvable case routes to Substrate Manager; do not silently change fold-path semantics. Pre-flight audit credit: royal-badger-32's discipline (audit carrier shape against helper's own doc + actual call sites BEFORE 1382-site propagation) is the right feedback_design_before_implement shape. This is the eighth substantive reframe in #836's review cycle, and the first caught at WORKER pre-flight rather than reviewer post-flight. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-pro SHIP_WITH_DEBT carry-debt ask) Captures the discipline lesson from #836's review cycle (8 substantive reframes, all from the same feedback_audit_adjacent_authority_first / feedback_verify_thesis_claims failure mode) as a mandatory pre-author checklist for substrate-producer / consumer-migration / design-doc- consuming briefs. Five-question audit: 1. Does the substrate this brief assumes exist already? (grep src/v3/std/ + src/v3/spec/ + dag.rs/infer.rs) 2. Does an existing brief already cover this scope? (grep docs/briefs/) 3. Does the design-doc §Director-actionable recommendation match the brief's premise? (read in full before slicing) 4. Are the file:line citations live at HEAD? (grep verified) 5. Does the carrier shape actually dissolve the cited bridge? (read call-site + helper doc-comment) PR body audit receipt format mandated. Closes openai-pro SHIP_WITH_DEBT recommendation: 'add a brief-authoring authority-audit ratchet [...] before authoring any producer/substrate brief, grep existing docs/briefs/, docs/design-*, src/v3/std/, src/v3/spec/, and Rust mirrors.' Provenance section enumerates the 8 #836 reframes (7 reviewer-caught, 1 worker-pre-flight-caught by royal-badger-32) as the empirical basis. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…cked-bridge triple (openai-pro #836) openai-pro REQUEST_CHANGES on #836: two findings, both fixed. (1) BLOCKING — nominal-opaque-for-Secret brief authorized substrate landing without same-PR consumer proof. Per INVARIANTS P2 boundary discipline, landed boundaries need real consumers. Reframed Slice §6 + added Acceptance bullet to require Same-PR Consumer Proof in one of two shapes: - Shape A (preferred): bundle with T-Modeling Secret<T> consumer same-PR (carrier + Secret<T> + gated accessors + opacity diagnostic together). - Shape B (fallback): bundle minimal structural-walk consumer that reads the carrier + fails closed when opaque type is walked outside gated accessors. T-Modeling consumer follows up. Worker picks; surfaces choice in PR body. (2) NON-BLOCKING — tokenizer-charclass-phase-2 Acceptance allowed 'Phase-1 host-string scaffolds dropped (or named explicitly as residual with ROADMAP debt row)'. ROADMAP row alone is insufficient per INVARIANTS P5: tracked-bridge needs documented + bounded + named dissolution trigger TRIPLE. Tightened to require all three (with B4.4 shape (b) cited as precedent for the triple). Residuals without all three are now STOP-AND-ESCALATE. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 81fcb5d2b5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **[`src/v3/std/tokenize.dag`](../../src/v3/std/tokenize.dag)** — tokenizer authority; phase-1 lands the structural shape, phase-2 retypes consumers to `Char` / `List<Char>` / `CharClass`. | ||
| - **[#662](https://github.com/gunb-ai/gunbc/pull/662)** — "tokenize: reframe character-level scaffold as consumption gap" (merged); confirm phase-1 baseline. | ||
| - **[`docs/thesis/the-substrate-two-coordinated-shapes.md`](../thesis/the-substrate-two-coordinated-shapes.md)** — connective vocabulary; `Cardinality` / `Disj` semantics for charclass sum-types. | ||
| - **[`src/v3/std/unicode.dag`](../../src/v3/std/unicode.dag)** (if exists) — unicode authority; charclass dependency. |
There was a problem hiding this comment.
Fix unicode authority path in read-first prerequisites
The brief points readers to src/v3/std/unicode.dag, but this repository’s unicode authority is in dsl/std/unicode.dag. Because this section is used as the prerequisite source audit, the wrong path can make workers conclude unicode declarations are missing and escalate or scope follow-up work incorrectly. Point this reference at the live file so dispatch decisions are based on the real authority.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 5f1dc89: src/v3/std/unicode.dag → dsl/std/unicode.dag (live authority); dropped the "(if exists)" qualifier since the file is canonical.
| - **NonZero-typed-input shape chosen** (`a / nz` operator-syntax rather than `divide_nz(a, nz)` function syntax) — STOP. Per-operand type variance in algebra-operator carrier is a separate substrate brief. | ||
| - **Audit reveals additional partial forms not enumerated in design doc** — surface; queue as sibling sub-lanes; do not subsume in this PR. | ||
| - **Realization migration breaks emission for an existing target idiom** — surface; this is a target-realization design call, not a worker call. | ||
| - **`Result<T, DivideByZero>` requires authoring `DivideByZero` declaration** — verify it doesn't exist via audit; if not, surface placement decision (`std.errors.dag`?). |
There was a problem hiding this comment.
Remove single-error division shape from STOP guidance
This STOP clause still references Result<T, DivideByZero>, but the same brief’s Slice/Acceptance explicitly requires a typed-split DivError that distinguishes DivideByZero from Overflow. Keeping the old single-error shape here leaves contradictory implementation guidance and can allow an out-of-scope error model to be treated as acceptable during review. The STOP text should be consistent with the required two-variant error carrier.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
…yped-split alignment - r2-modeling-tokenizer-charclass-phase2: `src/v3/std/unicode.dag` → `dsl/std/unicode.dag` (live authority); drop "(if exists)" qualifier. - r2-impossible-bugs-unhandled-diagnostic-paths: STOP clause now refs `Result<T, DivError>` typed-split (matches Slice §2 + Acceptance); add explicit reject of single-variant `Result<T, DivideByZero>` re-drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…unbc into session/zesty-bear-812
# Conflicts: # docs/briefs/r2-impossible-bugs-unhandled-diagnostic-paths-worker.md # docs/briefs/r2-modeling-tokenizer-charclass-phase2-worker.md
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
81fcb5d2· Trigger:schedule - Thinking:
564s wall
BLOCKING (4)
Root Cause
docs/briefs/r2-impossible-bugs-unenumerated-effects-worker.mdPath (i)/(ii) is modeled as both acceptance and escalation → split audit, retirement, and lens work or name the follow-up trigger explicitly.docs/briefs/brief-authoring-checklist.mdThe new authority-audit checklist was not applied to the briefs in this same diff → run the five-question audit over every new worker brief before merge.THESIS.mdR2 Secret scope is promoted by R2 structure docs without a matching thesis claim → align THESIS.md or stop presenting it as thesis-authorized.
|
Violations (could not place on specific lines):
|
…re deliverable + Secret<T> authority Four BLOCKING findings on PR #903 (codex API review @ commit 81fcb5d): 1. **nested-optional-flatten:** `lower.rs:1949-1968, :2044-2047` → `:2129, :2226` (current `SurfaceType::Optional` arms); `infer.rs:2902-2916` → `:3129` definition + live call-site list. 2. **unhandled-diagnostic-paths:** `rust.dag:816` / `go.dag:742` / `python.dag:486` were all subtraction rows — corrected to `:832` (rust_int_div) / `:758` (go_int_div) / `:500` (python_int_div), in both Read-first and Slice §4. Python helper path expanded to `src/v3/compiler/src/emit/python_target.rs:680`. 3. **nominal-opaque-for-Secret:** THESIS.md does not list `Secret<T>` in §Enumerable impossible-bug classes; replaced with `docs/r2-structure.md` Goal 2 + `ROADMAP.md:424` post-merge-debt row + `docs/thesis/compositional-modeling.md` Part 4 (original thesis-doc surface). THESIS-add option remains open as a subsequent doc edit; brief no longer claims authority that doesn't exist. 4. **unenumerated-effects STOP §68:** retain-vs-retire verdict is the lane's deliverable (Slice §2 + Acceptance §2), not a STOP. Reworded so STOP fires only on unscoped substrate-shape gaps beyond the design doc Q5.5 binary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Response to codex BLOCKING (4) on commit
|
|
Review metadata
1. Story of the diffThis PR is a documentation/brief-correction pass, not an implementation change. It updates R2 worker briefs so the next dispatched workers are pointed at current live authorities and line numbers: nested optional flatten now points at the current 2. Invariant categories
N/A — the diff edits worker-brief prose only; it references substrate concepts such as
Compliant — fail-closed / typed-carrier discipline is strengthened:
N/A — no Rust implementation, helper placement, method/free-function shape, naming surface, or
N/A — no executable behavior changed, so no tests are expected in this PR. The test-relevant guidance remains in the worker brief itself, including the regression obligations for
Compliant — the Secret brief now explicitly names the locked R2 authority instead of over-claiming THESIS.md authority:
Compliant — the only new follow-up shape is bounded and routed: 3. VerdictAPPROVE The diff is documentation-only and mostly corrects stale authority/line references while tightening downstream worker guidance. The substantive changes improve fail-closed typed-result discipline and keep follow-up work routed as named lanes rather than undocumented scaffolding. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
5d8d333c· Trigger:schedule - Thinking:
413s wall
BLOCKING (2)
Root Cause
docs/briefs/r1-surface-manager.mdGate status conflates implementation receipts with R1 acceptance gates → split receipt progress from .dag TestClaim status and leave gates unchecked until the claim exists and evaluates, or amend ROADMAP to retire the gate.
ROADMAP — Verified
- Class 5 Gap 3: The row matches live code: FieldValue carries nested record/list/reference/variant field values, while top-level non-scalar/non-record data bodies still fall to ValueBody::Unparsed and std.unicode is outside the bootstrap fixture set.
|
Violations (could not place on specific lines):
|
…close in r1-surface-manager.md Per codex API review on commit 5d8d333 (BLOCKING #1 of 2): "Gate status conflates implementation receipts with R1 acceptance gates → split receipt progress from .dag TestClaim status and leave gates unchecked until the claim exists and evaluates." Fix: - SUPERSEDED banner at top declaring R1 Closure Manager owns gate-close authority post-PR-#847; brief stays as historical receipt. - Working state table reshaped into Impl / Gate / Owner columns: * T-P0: 3× impl [x], 3× gate [ ] (owned R1C-B) * T-Sub: match closed (impl + gate); type-alias impl [x] gate [ ] (R1C-C); charclass-2 phase-2 reclassified to R2 substrate * T-Emit: all 3 impl partial, all 3 gate [ ] (R1C-E wraps host harness via ExecuteCommand) The strict-reading R1 closure criterion (per ROADMAP single authority + THESIS "the release gate IS a .dag program") makes implementation-receipt [x] insufficient for gate close. R1 Closure Manager dispatch lanes are the actual gate-close path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Response to codex BLOCKING #1 (sha
|
Response to codex BLOCKING #2 (sha
|
Opened from session-dashboard for session
zesty-bear-812.