Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
cf164c7
docs(roadmap): record CharClass phase-1 closure + add Class 5 Gap 3 l…
briansrls Apr 24, 2026
e9f313e
WIP: gunbc Director
briansrls Apr 24, 2026
6dcceb8
resolve merge conflict on ROADMAP.md character-level row — keep phase…
briansrls Apr 24, 2026
5a9d797
docs(roadmap): name retraction mechanism explicitly in Class 5 Gap 3 …
briansrls Apr 24, 2026
559773c
docs(roadmap): reconcile Character-level row title with body (per gpt…
briansrls Apr 24, 2026
71f46af
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
b7bb38e
docs(roadmap): correct Class 5 Gap 3 shape description + soften CharC…
briansrls Apr 24, 2026
b4ae178
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
28dfbb1
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
41f7075
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
681b34f
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
a08079c
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
7ee5e5e
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
6c060fd
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
9c54dab
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
48f35d0
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
af45162
WIP: gunbc Director
briansrls Apr 24, 2026
c99b8de
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
ec4d4c3
WIP: gunbc Director
briansrls Apr 24, 2026
cff84ef
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
4e60660
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
aa809a5
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
cb04b33
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
1687637
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
1cf073f
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
9d83c34
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
051a27f
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
eaf9383
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
6c9a062
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
cac6d78
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
47cbf6c
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
a003f01
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
ef9e322
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
ff71412
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
5d174cc
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
bc0e248
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
4115950
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
3d1c717
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
7758964
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
df35aa2
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
44ba264
WIP: gunbc Director
briansrls Apr 24, 2026
ddf3595
WIP: gunbc Director
briansrls Apr 24, 2026
3e8935e
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
985eae0
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 24, 2026
3c1e8b7
WIP: gunbc Director
briansrls Apr 24, 2026
cdb25a5
WIP: gunbc Director
briansrls Apr 25, 2026
971ac44
WIP: gunbc Director
briansrls Apr 25, 2026
7c434cc
WIP: gunbc Director
briansrls Apr 25, 2026
039f235
WIP: gunbc Director
briansrls Apr 25, 2026
7db5c91
WIP: gunbc Director
briansrls Apr 25, 2026
1e2d40c
WIP: gunbc Director
briansrls Apr 25, 2026
309ea71
WIP: gunbc Director
briansrls Apr 25, 2026
e3240a2
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
de64011
WIP: gunbc Director
briansrls Apr 25, 2026
0604ffb
WIP: gunbc Director
briansrls Apr 25, 2026
8a8c66a
WIP: gunbc Director
briansrls Apr 25, 2026
7d7c3cf
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
7c3592b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
5d6df5b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
21f3b75
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
f78916b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
d42e6a3
WIP: gunbc Director
briansrls Apr 25, 2026
02d32e9
WIP: gunbc Director
briansrls Apr 25, 2026
1582de6
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
1fa0ac7
Merge branch 'main' into session/zesty-bear-812
briansrls Apr 25, 2026
715cb49
WIP: gunbc Director
briansrls Apr 25, 2026
c88c2f3
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
436e889
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
10fb565
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
dc5835e
WIP: gunbc Director
briansrls Apr 25, 2026
2720ed7
WIP: gunbc Director
briansrls Apr 25, 2026
d4f9731
WIP: gunbc Director
briansrls Apr 25, 2026
d1d24f2
WIP: gunbc Director
briansrls Apr 25, 2026
1eced15
Merge branch 'session/zesty-bear-812' of https://github.com/gunb-ai/g…
briansrls Apr 25, 2026
0d6e7c3
WIP: gunbc Director
briansrls Apr 25, 2026
fed6b03
docs(cascade-promotion): resolve codex 4 BLOCKING findings at sha 0d6…
briansrls Apr 25, 2026
044412b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
c85e691
docs(cascade-promotion): extend cascade across THESIS.md + sibling au…
briansrls Apr 25, 2026
0fb223a
docs(cascade-promotion): correct ExecuteCommand runner-capability claim
briansrls Apr 25, 2026
ff2d48a
docs(cascade-promotion): remove competing-authority hedge in R1 self-…
briansrls Apr 25, 2026
f18c67b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
2aecbb8
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
8a91565
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
faf5ba3
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
bba190a
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
f47916c
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
c183fdc
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
f879561
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
bb12738
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
999b2d7
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
42379f1
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
b292868
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
e35103f
docs(briefs): R2 second-wave worker-escalation fixes
briansrls Apr 25, 2026
3e142d1
docs(briefs): T-Substrate cardinality-int-lit — close codex P2 on Sli…
briansrls Apr 25, 2026
8c22613
docs(briefs): T-Substrate cardinality-int-lit — close codex BLOCKING …
briansrls Apr 25, 2026
0815189
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
44d7295
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
38214c9
docs(briefs): cardinality-int-lit — close codex BLOCKING on Slice/Acc…
briansrls Apr 25, 2026
8b10193
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
61aa717
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
694bb09
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
cc26494
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
d49ce79
docs(closed-system-effects): redirect unenumerated-effects chain to c…
briansrls Apr 25, 2026
2dc656b
docs(closed-system-effects): Q5.5 — operation type-signature shape IS…
briansrls Apr 25, 2026
191be31
docs(closed-system-effects): close codex BLOCKING — honest live-state…
briansrls Apr 25, 2026
8d9b298
WIP: gunbc Director
briansrls Apr 25, 2026
f073aa9
docs(closed-system-effects): Q4.5 — load-bearing pre-conditions for c…
briansrls Apr 25, 2026
ff7cb4b
docs(closed-system-effects): align Q6 + capacity-table with Q5.5 path…
briansrls Apr 25, 2026
57a9b13
docs(closed-system-effects): close BLOCKING — P2 stale, ExecuteComman…
briansrls Apr 25, 2026
bcac41b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
ece964e
docs(closed-system-effects): close codex non-blocking — capacity-tabl…
briansrls Apr 25, 2026
c022721
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
2552ca3
docs(effects-design): fix stale ROADMAP citations 153-154 → 348-349
briansrls Apr 25, 2026
103a9cd
docs(effects-design): fix third stale ROADMAP citation at line 271
briansrls Apr 25, 2026
dac7694
docs(effects-design): clarify cross-manager note avoids 'tagging' amb…
briansrls Apr 25, 2026
fde5f7c
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
e9f4ec7
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
5551839
docs(briefs): author B1-B4 per debt-paydown synthesis #810 §5
briansrls Apr 25, 2026
c150c8f
docs(briefs): B1 — drop incoherent inner-fallback non-goal
briansrls Apr 25, 2026
c898c66
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
488f6c1
docs(briefs): B4 — fix §Frame vocabulary enumeration to canonical 6 c…
briansrls Apr 25, 2026
f52e2ce
docs(briefs): B4 — reframe B4.1 as consumer migration; cite live subs…
briansrls Apr 25, 2026
12c7e8f
docs(briefs): B4 — tighten Phase 1 umbrella sentence
briansrls Apr 25, 2026
f645205
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
03165ba
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
1aeaa9a
docs(briefs): B4 — consistency fix for 'carriers B4 lands' wording
briansrls Apr 25, 2026
ed9fee8
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
8be89c4
docs(briefs): B1 — soften regression-test requirement (3 worker bounces)
briansrls Apr 25, 2026
81f1aba
docs(briefs): B1 — convert deferred-test skip into tracked ROADMAP debt
briansrls Apr 25, 2026
5ca9f0b
docs(briefs): B1 — restore test requirement; precedent verified at em…
briansrls Apr 25, 2026
00c64cb
docs(briefs): B1 — fix test count accuracy (12 tests, 8 compile_to_da…
briansrls Apr 25, 2026
789e70c
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
3642248
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 25, 2026
809cbcf
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
9b8cfa1
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
d911d05
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
3df4d4a
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
1bf088d
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
579c71a
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
3f7a5e5
docs(briefs): R2 spin-up Wave 1 — B4.2/B4.3/B4.4 worker briefs + Phas…
briansrls Apr 26, 2026
30e03cc
WIP: gunbc Director
briansrls Apr 26, 2026
3908349
docs(briefs): R2 spin-up Wave 2 — T-Substrate sub-lane scoping briefs…
briansrls Apr 26, 2026
f19ca76
docs(briefs): R2 spin-up Wave 3 — T-Modeling worker briefs (4)
briansrls Apr 26, 2026
0dc2537
docs(briefs): R2 spin-up Wave 4 — T-ImpossibleBugs worker briefs (3)
briansrls Apr 26, 2026
b51ba3d
docs(briefs): B4.4 — tighten Slice §3 per PM review on #836
briansrls Apr 26, 2026
2e10306
docs(briefs): fix machine-specific .claude path in unenumerated-effec…
briansrls Apr 26, 2026
600f4d6
docs(briefs): fix stale src/v3/std/types.dag → dsl/std/types.dag (6 r…
briansrls Apr 26, 2026
d5a58a8
docs(briefs): nested-optional — UNGATE per design doc; substrate-cons…
briansrls Apr 26, 2026
802ea17
docs(briefs): unhandled-diagnostic — switch to totality-by-omission p…
briansrls Apr 26, 2026
17a9ec8
docs(briefs): unenumerated-effects — align with design doc Q6 8-req s…
briansrls Apr 26, 2026
7489c0a
docs(briefs): nominal-opaque-for-Secret — remove 7th-connective from …
briansrls Apr 26, 2026
28de519
docs(briefs): parametric-algebra-for-Dimensions — close as no-op (sub…
briansrls Apr 26, 2026
40e5fda
docs(briefs): cardinality-for-int-lit — close as redundant; existing …
briansrls Apr 26, 2026
2a996e3
docs(briefs): nested-optional — fix stale dag.rs:395-398 → :408-411 (…
briansrls Apr 26, 2026
886b121
docs(briefs): unhandled-diagnostic — preserve typed-split error varia…
briansrls Apr 26, 2026
68d11d3
docs(briefs): int-lit-magnitude consumer — reconcile with producer's …
briansrls Apr 26, 2026
659d02c
docs(briefs): unhandled-diagnostic — remove Option-shape worker optio…
briansrls Apr 26, 2026
823c267
docs(briefs): B4.2 — re-author per royal-badger-32 pre-flight audit (…
briansrls Apr 26, 2026
0bc7f73
docs(briefs): brief-authoring authority-audit checklist (close openai…
briansrls Apr 26, 2026
81fcb5d
docs(briefs): nominal-opaque consumer-proof + tokenizer-charclass tra…
briansrls Apr 26, 2026
f8aa1fd
docs(briefs): codex P2 fixes — unicode authority path + STOP clause t…
briansrls Apr 26, 2026
5f1dc89
Merge branch 'session/zesty-bear-812' of https://github.com/gunb-ai/g…
briansrls Apr 26, 2026
993120b
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
7667950
docs(briefs): codex BLOCKING fixes — stale citations + retain-vs-reti…
briansrls Apr 26, 2026
5d8d333
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
c013b20
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
a57126b
docs(briefs): codex BLOCKING — separate impl receipts from .dag gate …
briansrls Apr 26, 2026
78b2199
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
4594a05
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
2205371
Merge remote-tracking branch 'origin/main' into session/zesty-bear-812
briansrls Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 46 additions & 39 deletions docs/briefs/r1-surface-manager.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# R1 Surface Manager Brief

> **🔄 SUPERSEDED 2026-04-26 by [`r1-closure-manager.md`](r1-closure-manager.md).**
> R1 gate-close authority now lives with the R1 Closure Manager (PR #847)
> under strict-interpretation reading: every gate in `ROADMAP.md §"Lane
> acceptance — .dag gates"` must be a `.dag` `TestClaim` that compiles AND
> evaluates true. Implementation receipts are necessary but **not sufficient**.
> The "Working state" section below was originally written under a more
> permissive reading where receipt-landed counted as gate-closed; that
> conflation is corrected in the table — implementation receipts and `.dag`
> gate status are now tracked as separate columns. Gates remain owned by
> R1 Closure Manager lanes (R1C-A through R1C-F) until they evaluate.
> This brief stays in-tree as a historical receipt of the lane sequencing;
> new R1 dispatch happens under R1 Closure Manager, not here.

## Orient before reading

- Product direction: [PR #672](https://github.com/gunb-ai/gunbc/pull/672)
Expand Down Expand Up @@ -120,45 +133,39 @@ for a principal engineer to verify in one evening.

## Working state

Lane-owner dispatch status (update as sub-deliverables close):

**T-P0 (closed on current ancestry):**
- [x] `repeat_string` fix landed (brief: `p0-render-repeat-string.md`)
- [x] `REST_OPS` drift resolved (brief: `p0-rest-ops-drift.md`)
- [x] `no_profile_sentinel` audit completed (brief: `p0-bug-no-profile-sentinel.md`)

**T-Sub:**
- [x] `sub_match_over_user_sum` gate compiles + passes (Day-1)
(PR #702, merged 2026-04-24 — `TestClaim` + suite in
`src/v3/compiler/tests/fixtures/r1_gates.dag` run through
`TestRunner`; #690 prior receipt confirmed structural match)
- [x] `sub_type_alias_where_lowers` parse + lower receipt landed
(DB-11 parse + lower substrate landed in PR #703, 2026-04-24 —
`SurfaceItem::TypeAlias` carries `refinement`; formal `.dag`
gate remains tied to the [ext] predicate path if release wants
a first-class `TestClaim` for this surface)
- [ ] `sub_charclass_in_std_unicode` phase-2 handed off with concrete
substrate/load-set blockers
(phase-1 tokenizer half landed in PR #693 + ROADMAP row #706,
2026-04-24 — `CharClass` + `char_in_class` in `std.unicode`,
tokenizer calls `tokenize_char_class::byte_matches`; quiet-gull-882
confirmed structural `CharClass` consumption from lowered
`tokenize.dag` is blocked by top-level `ValueBody` list/sum support
plus a `std.unicode` bootstrap/load-set decision)

**T-Emit:**
- [x] Rust harden — `emit_rust_fixtures_rustc_green` gate test landed
(PR #694, merged 2026-04-24 — `#[ignore]`d named gate sweeps
9 program fixtures + 5 reflected-module fixtures through the
batched rustc roundtrip; baseline `rustc_roundtrip_*` tests all
green)
- [ ] PR #650 generic-bound fidelity — `emit_generic_bounds_survive`
passes (PR #676 in review — session `vivid-cat-794`)
- [ ] Python/Go reconcile — `emit_omni_demo_fixtures_green` passes
across all three targets (cross-target progress 2026-04-24:
`Behavior::Loop` emission for Python + Go in #692; Python
operator-realization parity for `*` / `!=` / int comparisons
in #691; omni gate still pending)
> **Reading note (2026-04-26 SUPERSEDED amendment).** Implementation receipts
> (`Impl` column) record that the underlying feature work is in-tree. `.dag`
> gate status (`Gate` column) records whether the corresponding `TestClaim`
> in `ROADMAP.md §"Lane acceptance — .dag gates"` exists, compiles, and
> evaluates true under the strict-interpretation reading. Gate columns are
> closed only when both halves are true; the implementation-only `[x]` markings
> below are deliberately separated from gate close so the conflation that
> existed before this amendment doesn't recur. Gate-close authority is
> R1 Closure Manager (`docs/briefs/r1-closure-manager.md`).

**T-P0 — implementation closed on current ancestry; `.dag` gates owned by R1 Closure R1C-B:**

| Item | Impl | Gate (`.dag` TestClaim) | Owner |
|---|---|---|---|
| `repeat_string` | [x] (brief: `p0-render-repeat-string.md`) | [ ] `p0_repeat_string_correct` `[Day 1]` | R1C-B |
| `REST_OPS` drift | [x] (brief: `p0-rest-ops-drift.md`) | [ ] `p0_rest_ops_aligned` `[ext]` | R1C-B |
| `no_profile_sentinel` | [x] (brief: `p0-bug-no-profile-sentinel.md`) | [ ] `p0_no_fabrication_sentinel` `[ext]` | R1C-B |

**T-Sub — `.dag` gates: 1 closed, 1 receipt-only, 1 substrate-deferred:**

| Item | Impl | Gate (`.dag` TestClaim) | Owner |
|---|---|---|---|
| `sub_match_over_user_sum` (Day-1) | [x] PR #702 | [x] `TestClaim` + suite in `r1_gates.dag` runs through `TestRunner` | gate evaluates; closed |
| `sub_type_alias_where_lowers` (`[ext]`) | [x] PR #703 (DB-11 parse+lower) | [ ] `[ext]` predicate path TestClaim **not yet authored** | R1C-C (#879 in flight) |
| `sub_charclass_in_std_unicode` phase-2 | [x partial] PR #693 (phase-1 tokenizer half) | [ ] reclassified to **R2 T-Substrate** per 2026-04-24 amendment (Class 5 Gap 3) — no longer an R1 gate | R2 Substrate Manager |

**T-Emit — implementation in flight; all three `.dag` gates owned by R1 Closure R1C-E:**

| Item | Impl | Gate (`.dag` TestClaim) | Owner |
|---|---|---|---|
| Rust harden | [x] PR #694 (host-harness gate test, `#[ignore]`-able sweep) | [ ] `emit_rust_fixtures_rustc_green` `[ext: ExecuteCommand]` — host harness is **not** the `.dag` gate; R1C-E wraps it | R1C-E |
| Generic-bound fidelity | [partial] PR #676 in review | [ ] `emit_generic_bounds_survive` `[ext]` | R1C-E |
| Python/Go reconcile | [partial] #691 (Python parity) + #692 (`Behavior::Loop`) | [ ] `emit_omni_demo_fixtures_green` `[ext: ForAllTargets + ExecuteCommand]` | R1C-E |

Decisions log (append as they happen):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
- **[`THESIS.md` lines 342-344](../../THESIS.md)** — class definition.
- **[`src/v3/compiler/src/dag.rs:408-411`](../../src/v3/compiler/src/dag.rs)** — `TypeConnective::Cardinality { element, bound }` first-class.
- **[`src/v3/compiler/src/dag_scalar_generated.rs:21-25`](../../src/v3/compiler/src/dag_scalar_generated.rs)** — `CardinalityBound::AtMostOne` (the carrier for `Option`).
- **[`src/v3/compiler/src/lower.rs:1949-1968, :2044-2047`](../../src/v3/compiler/src/lower.rs)** — `SurfaceType::Optional` lowering arms (call sites).
- **[`src/v3/compiler/src/infer.rs:2902-2916`](../../src/v3/compiler/src/infer.rs)** — `concretize_decl_with_subst` (the **killer construction site** per design doc — substitution path that bypasses `lower.rs`).
- **[`src/v3/compiler/src/lower.rs:2129, :2226`](../../src/v3/compiler/src/lower.rs)** — `SurfaceType::Optional` lowering arms (lowering path + TypeConnective construction). Verify by grep `SurfaceType::Optional` at HEAD before editing.
- **[`src/v3/compiler/src/infer.rs:3129`](../../src/v3/compiler/src/infer.rs)** — `concretize_decl_with_subst` definition (the **killer construction site** per design doc — substitution path that bypasses `lower.rs`); call sites at `:2643, :2645, :3104, :3152, :3162, :3190` (grep `concretize_decl_with_subst` at HEAD for the live set).
- **[`docs/modeling-discipline.md`](../modeling-discipline.md)** practice 6 — API-level enforcement over convention.
- **`feedback_state_space_vs_behavioral_invariants`** — illegal states unrepresentable, not validated.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Per design doc default: retire (path ii).

## STOP-AND-ESCALATE (per design doc Q6 STOPs)

- **OperationEffect retirement decision (path (i) vs (ii))** — if Slice §2 audit produces the existence-proof for path (ii) (any primitive whose signature doesn't structurally reveal its effect after resource-threading migration), STOP and surface retirement scope to Director. Substrate retirement (`OperationEffect` enum + `derive_op_effect` + `idempotency.dag` re-anchor) is its own dedicated sub-lane; this lane should not absorb it. If audit confirms path (i) (all primitives derive cleanly from signature shape), surface that finding for re-decision.
- **OperationEffect retirement decision (path (i) vs (ii)) is NOT a STOP — the audit verdict IS this lane's deliverable.** Slice §2 + Acceptance §2 own producing the verdict (path-i existence-proof OR path-ii existence-proof) with structural justification + per-primitive receipt in PR body. The follow-up — actual `OperationEffect` enum retirement (path ii: enum + `derive_op_effect` + `idempotency.dag` re-anchor) or normalized-derived-view authoring (path i) — dispatches as a **sibling sub-lane** to Impossible-Bugs Manager based on the verdict; Director does not need to be in the loop for the verdict itself. **STOP only if** the audit reveals a primitive whose signature shape can't be made to derive cleanly **even after resource-threading migration (Slice §3)** — i.e., a substrate gap not anticipated by the design doc Q5.5 binary. That's an unscoped substrate-shape question, not a retain-vs-retire pick.
- **Redundancy proof needs a `pure: Bool` carrier** — if the lens can't distinguish pure from impure Transforms inline, STOP. May need a sibling carrier on Transform targets. (Note: the deeper closed-system framing is that "pure" should also be derivable from signature shape — pure functions don't return modified resources — so this STOP may itself dissolve under further design.)
- **Asymmetric-tightening structural gap** — if caller can't actually pin effect-set constraints structurally today (i.e., the type system doesn't yet express "I require callee body's signature-shape composition ⊆ {read-shaped}"), STOP — that's its own substrate sub-lane.
- **Q4.5 P1 (extdeps typed-primitive bypass) — surfaced via lens findings**: lens reports structural-coverage-gap on `dsl/extdeps/llm/openai.dag:92-110`, `anthropic.dag:104-124`, `github/auth.dag:13-24` (and any others the audit finds). **NOT a STOP**; this is the lens delivering its closed-system-foundation-gap-visibility value. Director routes P1 closure to a dedicated extdeps-typed-primitive-consumption lane. Surface findings in PR body.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
- **[`THESIS.md` lines 175, 348-350, 391](../../THESIS.md)** — class definition + the "made total" branch the design doc closes against.
- **[`dsl/std/algebra.dag:182`](../../dsl/std/algebra.dag)** — `OrderedRing.div: fn(T, T) -> T` (the line to retype to total form).
- **[`src/v3/compiler/src/infer.rs:3975-3977`](../../src/v3/compiler/src/infer.rs)** — algebra-Conj dispatch site for `Int / Int`.
- **[`src/v3/spec/rust.dag:816`](../../src/v3/spec/rust.dag)** — `rust_int_div` realization (renders bare `{lhs} / {rhs}`).
- **[`src/v3/spec/go.dag:742`](../../src/v3/spec/go.dag)** — `go_int_div` realization (same shape).
- **[`src/v3/spec/python.dag:486`](../../src/v3/spec/python.dag)** — `python_int_div` realization (renders via `__v3_idiv` helper at `python_target.rs:680`; pinned by `m1_4_emit_python_test.rs:108-109`).
- **[`src/v3/spec/rust.dag:832`](../../src/v3/spec/rust.dag)** — `rust_int_div` realization (renders bare `{lhs} / {rhs}`). (`:816` is `rust_int_sub` — verify by grep `rust_int_div` at HEAD.)
- **[`src/v3/spec/go.dag:758`](../../src/v3/spec/go.dag)** — `go_int_div` realization (same shape). (`:742` is `go_int_sub`.)
- **[`src/v3/spec/python.dag:500`](../../src/v3/spec/python.dag)** — `python_int_div` realization (renders via `__v3_idiv` helper at `src/v3/compiler/src/emit/python_target.rs:680`; pinned by `m1_4_emit_python_test.rs:108-109`). (`:486` is inside `python_int_sub`.)
- **[`dsl/std/algebra.dag:477-478`](../../dsl/std/algebra.dag)** — `OrderedRing.quotient` / `OrderedRing.remainder` (separate per-class sub-lane candidates per design doc audit).
- **`feedback_totality_by_omission`** — discipline anchor: partial-op classes close by removing the partial form; coexistence-with-paired-total is the trap.

Expand All @@ -47,9 +47,9 @@ Per design doc §4: the bug class closes by **removing the partial form**. For `
2. **Per-row decision** — for `Int / Int`: pick Result-shape `Result<T, DivError>` where `DivError = DivideByZero | Overflow` (or worker-equivalent typed split that preserves distinct failure modes). **NOT a single-error `Result<T, DivideByZero>`** — signed integer division has two structurally distinct failure modes (zero divisor + signed overflow on `MIN / -1`), and collapsing them violates fail-closed C-8 (per `feedback_fail_closed_discipline`: each detectable problem is its own typed Diagnostic). **Option-shape (`Option<T>`) also rejected** for the same reason — `None` carries no failure-mode information. **STOP-AND-ESCALATE for NonZero-typed-input shape** (e.g., `a / nz` rather than `divide_nz(a, nz)`) — that's a per-operand type-variance question deferred to a separate substrate brief.
3. **Algebra retype**: one-line change at `algebra.dag:182` to the total return type. **The total return type carries a typed-split error carrier** (e.g., `DivError`) per Slice §2 — surface the carrier declaration's location (likely `dsl/std/errors.dag` or a sibling under `dsl/std/algebra.dag`).
4. **Per-target realization migration** — each target reshapes from bare division to construct the typed-split Result idiomatically; **must distinguish divide-by-zero from overflow** (do NOT collapse to a single error variant):
- `rust.dag:816` — `rust_int_div` reshapes to explicit branching: `if rhs == 0 { Err(DivError::DivideByZero) } else if /* overflow check */ { Err(DivError::Overflow) } else { Ok(lhs / rhs) }`. Note: `i64::checked_div` collapses both failures to `None`, so it's NOT a one-line `ok_or` — the realization must split the cases. Worker authors the exact Rust idiom; surface in PR.
- `go.dag:742` — `go_int_div` reshapes to Go-idiomatic typed-split Result; same case-split discipline.
- `python.dag:486` + `python_target.rs:680` helper — reshape `__v3_idiv` to return typed-split Result; update test pin at `m1_4_emit_python_test.rs:108-109`. (Python's overflow semantics differ from Rust's — surface the per-target equivalence in PR body.)
- `rust.dag:832` (`rust_int_div`) — reshapes to explicit branching: `if rhs == 0 { Err(DivError::DivideByZero) } else if /* overflow check */ { Err(DivError::Overflow) } else { Ok(lhs / rhs) }`. Note: `i64::checked_div` collapses both failures to `None`, so it's NOT a one-line `ok_or` — the realization must split the cases. Worker authors the exact Rust idiom; surface in PR.
- `go.dag:758` (`go_int_div`) — reshapes to Go-idiomatic typed-split Result; same case-split discipline.
- `python.dag:500` (`python_int_div`) + `src/v3/compiler/src/emit/python_target.rs:680` helper — reshape `__v3_idiv` to return typed-split Result; update test pin at `m1_4_emit_python_test.rs:108-109`. (Python's overflow semantics differ from Rust's — surface the per-target equivalence in PR body.)
5. **Audit fallback path** — `infer.rs:4003-4015` Rust-side primitive scaffold (general fallback for types whose `inhabits` chain doesn't reach an algebra Conj). Slice §1 audit confirms whether any types still resolve `Arithmetic(Div)` through that fallback; close those paths separately if so.
6. **Regression tests:**
- `Int / Int` returns `Result<Int, DivError>` with both `DivideByZero` and `Overflow` variants reachable.
Expand All @@ -76,7 +76,7 @@ Per design doc §4: the bug class closes by **removing the partial form**. For `
- **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`?).
- **`Result<T, DivError>` requires authoring `DivError` (with `DivideByZero | Overflow` variants) declaration** — verify the typed-split carrier doesn't exist via audit; if not, surface placement decision (`dsl/std/errors.dag`?). Single-error `Result<T, DivideByZero>` shape is explicitly rejected per Slice §2; STOP if any reading drifts back to a single-variant carrier.
- **Asymmetric-operator interaction** — if the totality migration affects symmetric operators (`>`, `<`, etc.) that DB-11 explicitly strips refinements from, surface — the design doc treats those as separate; this PR shouldn't broaden.
- **DB-8 drifts** — STOP immediately.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
- **[`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.
- **[`dsl/std/unicode.dag`](../../dsl/std/unicode.dag)** — unicode authority; charclass dependency.

## Frame

Expand Down
4 changes: 3 additions & 1 deletion docs/briefs/r2-substrate-nominal-opaque-for-secret-subset.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@

## Read first

- **[`THESIS.md`](../../THESIS.md)** §"Enumerable impossible-bug classes" — `Secret<T>` is one of the R2+ Tier 1 thesis claims; structural opacity is the impossible-bug-by-construction guarantee.
- **[`docs/r2-structure.md`](../r2-structure.md)** §Goal 2 (lines 36, 42) + §Lane structure (`Secret<T>` graduation) — locked R2 authority for the `Secret<T>` nominal-opaque graduation as a Modeling-faithfulness Tier-1 R2 commitment.
- **[`ROADMAP.md:424`](../../ROADMAP.md)** post-merge-debt row — `Secret<T>` nominal-wrapper graduation: `dsl/std/types.dag:237` declares `Secret = String` (alias); the substrate distinction between nominal-opaque and alias is the structural delta. **Cited by R2 Goal 2.**
- **[`docs/thesis/compositional-modeling.md` Part 4](../thesis/compositional-modeling.md)** — original thesis-doc surface; structural opacity argument. (THESIS.md §"Enumerable impossible-bug classes" lists `[R2+]` nested-optional / unenumerated-effects / unhandled-diagnostic-paths; `Secret<T>` is **not** in that list — claim authority lives in r2-structure.md + ROADMAP, not THESIS.md, until/unless THESIS.md adds the entry.)
- **[`dsl/std/types.dag`](../../dsl/std/types.dag)** — current type system; how named types are namespaces (`feedback_naming_is_aliasing`); how `inhabits` edges work for algebra attachment.
- **[`src/v3/std/substrate.dag`](../../src/v3/std/substrate.dag)** — live substrate authority for `TypeConnective` + Declaration shape.
- **[`src/v3/spec/v3_l1.dag`](../../src/v3/spec/v3_l1.dag)** — sentinel meta-types; precedent for cross-cutting substrate fields like `DeclarationRef`.
Expand Down
Loading