Skip to content

docs(s7): S7 forcing-function — BoundDeclarationView/match_bound inventory (Phase 1) - #1851

Merged
briansrls merged 11 commits into
mainfrom
session/loyal-wolf-828
May 6, 2026
Merged

briansrls merged 11 commits into
mainfrom
session/loyal-wolf-828

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

S7 Phase 1 — BoundDeclarationView / match_bound consumer inventory (fold.rs)

Purpose: Forcing-function artifact (Director ratified). Catalog of the
BoundDeclarationView + match_bound consumer surface in
src/v3/grounding_coercion_fold/src/fold.rs before Slice 2.5 implementation.
Authority: docs/briefs/r3-substrate-s7-pr-f-bounddeclaration-consumer-worker.md.

This file mirrors the PR-body inventory for traceability in-tree.


1. Grep catalog

Command:

git grep "BoundDeclarationView\|match_bound" src/v3/grounding_coercion_fold/

Output at inventory time:

src/v3/grounding_coercion_fold/src/fold.rs:41:enum BoundDeclarationView {
src/v3/grounding_coercion_fold/src/fold.rs:72:    bound: BoundDeclarationView,
src/v3/grounding_coercion_fold/src/fold.rs:86:fn design_doc_example_8_program_bound() -> BoundDeclarationView {
src/v3/grounding_coercion_fold/src/fold.rs:87:    BoundDeclarationView::StaticBound(Interval::BoundedInterval {
src/v3/grounding_coercion_fold/src/fold.rs:95:fn match_bound(
src/v3/grounding_coercion_fold/src/fold.rs:96:    program: &BoundDeclarationView,
src/v3/grounding_coercion_fold/src/fold.rs:101:            BoundDeclarationView::StaticBound(_),
src/v3/grounding_coercion_fold/src/fold.rs:105:            BoundDeclarationView::StaticBound(program_interval),
src/v3/grounding_coercion_fold/src/fold.rs:115:            BoundDeclarationView::StaticBound(_),
src/v3/grounding_coercion_fold/src/fold.rs:118:        (BoundDeclarationView::PlatformDependent, _) => BoundMatch::DiffersKind,
src/v3/grounding_coercion_fold/src/fold.rs:123:    program: &BoundDeclarationView,
src/v3/grounding_coercion_fold/src/fold.rs:129:            BoundDeclarationView::StaticBound(program_interval),
src/v3/grounding_coercion_fold/src/fold.rs:321:    program_bound: &BoundDeclarationView,
src/v3/grounding_coercion_fold/src/fold.rs:346:        .filter(|row| match_bound(&intent.bound, &row.bound) == BoundMatch::Matches)
src/v3/grounding_coercion_fold/src/fold.rs:399:    bound: BoundDeclarationView,
src/v3/grounding_coercion_fold/src/fold.rs:429:fn design_doc_example_2_program_bound() -> BoundDeclarationView {
src/v3/grounding_coercion_fold/src/fold.rs:430:    BoundDeclarationView::StaticBound(Interval::BoundedInterval {
src/v3/grounding_coercion_fold/src/fold.rs:513:        &BoundDeclarationView::StaticBound(program_bound),
src/v3/grounding_coercion_fold/src/fold.rs:545:        bound: BoundDeclarationView::StaticBound(program_bound),

No other matches under src/v3/grounding_coercion_fold/ at this grep.


2. Per-call-site narrative (broadening vs design-emission-model.md example surface)

Module preamble (fold.rs lines 1–14): States that worked examples from
docs/design-emission-model.md are behavioral targets, but only Examples 1,
2, 5, 6, and 8
run on the ScratchIntExamples checkpoint path; others stay
FoldNotImplemented. Broadening needed: T-Ground-Rust Phase 1 / pilot-mirror
requires moving beyond ScratchIntExamples — u128, isize, usize
walker arms and declared inhabitance matching must eventually consume the same
BoundDeclarationView / match_bound predicate as the full emission surface,
not only scratch-int drivers.

BoundDeclarationView enum (L41–44): Today:
StaticBound(Interval<i64>) | PlatformDependent (platform variant currently
#[allow(dead_code)]). Substrate BoundDeclaration is
StaticBound(Interval<Int>) | PlatformDependent per design authority.
Broadening: View must align with full Interval<Int>-carried program
facts and target inhabitance rows for Rust i128/u128/isize/usize (and any
other Phase-1 kernel integers), not only i64 scratch literals. Pilot-mirror:
tests/helpers that synthesize Interval<i64> (L513, L545) must grow with
whatever canonical interval representation Phase 1 uses for wider primitives.

ProgramIntegerIntent.bound (L72): Carries program-side bound into
selection. Broadening: Intent extraction from real program DAG (Slice C /
#1133 / #1286 track) must populate this field for all Phase-1 examples — not
fixed scratch closures.

design_doc_example_8_program_bound (L86–93): Hard-codes Example 8’s
i32 exact interval as StaticBound. Broadening: Representative of “exact
static interval” programs; same pattern must generalize to other declared ranges
(u128/isize/usize) once facts are wired.

match_bound (L95–119): Single structural predicate vs
TargetIntegerInhabitanceBoundView (BoundUnspecified, StaticBoundFact).
Implements design-doc rules: target Unbounded accepts any program StaticBound;
exact interval equality; BoundUnspecified and PlatformDependent mismatch
kinds. Broadening: Ensure interval equality and kind dispatch remain
correct when StaticBoundFact carries intervals outside signed-64 scratch
encoding (wider literals, usize platform rows). Walker arms: Every new
target row shape that participates in Phase 1 must still funnel through this
predicate or an explicit extension beside it (no parallel emission predicate).

exact_static_bound_match (L122–132): Refinement for disambiguation after
match_bound filtering. Broadening: Same interval-type alignment as
match_bound.

select_example_8_declared_inhabitance / select_declared_inhabitance
(L318–368, filter at L346):
Primary consumer — filters declared
TargetIntegerTypeInhabitance DAG rows using match_bound. Broadening: Row
set must include u128 / isize / usize (and related) inhabitations when DAG
and scratch/bootstrap data expand; otherwise Phase 1 examples cannot select.

example_8_program_intent (L396–420): Wires kernel/algebra/realization
names per scratch target language. Broadening: Additional arms or generalized
lookup when walker exercises non–Example-8 kernels.

design_doc_example_2_program_bound + fold_design_doc_example_2_semiring_u32
(L429–458):
Example 2 Semiring u32 bound. Broadening: Confirms Semiring
lane uses same bound machinery; u128 / other Semiring inhabitants must follow
once declared rows exist.

fold_design_doc_example_8_* (L470–492): Per-target Example 8 entry.
Broadening: Parallel walker/pilot paths for isize/u128/usize should call
the same selection stack (select_example_8_declared_inhabitance pattern).

Test hooks (L494–552): fold_design_doc_example_8_for_testing,
select_program_integer_intent_for_testing — construct
BoundDeclarationView::StaticBound(program_bound) from Interval<i64>.
Broadening: Test fixtures may need wider interval types or DAG-driven bounds
to mirror production extraction.


3. Per-site STOP triggers (new BoundDeclaration substrate variant)

Per S7 brief STOP-AND-ESCALATE: if Phase 1 requires a new BoundDeclaration
variant
beyond StaticBound + PlatformDependent, stop — P1
substrate-fact-introduction + Substrate Mgr (#1739).

Location Trigger
BoundDeclarationView (L41–44) Adding a third view arm because substrate gained a new BoundDeclaration variant — STOP (confirm substrate change + P1 before editing consumer).
match_bound (L95–119) New substrate variant implies new match arms and likely TargetIntegerInhabitanceBoundView / DAG parse changes — STOP unless brief explicitly permits and substrate is already landed.
parse_target_integer_inhabitance_bound / row parsing (L250–307 region) If inhabitance rows gain a new bound: shape — coordinate with substrate; may be STOP if it implies new BoundDeclaration variant.
select_declared_inhabitance (L327–368) Symptom surface for “no matching row” after substrate expansion — diagnose substrate vs consumer gap before ad-hoc variants.

If broadening can be done without new substrate variants (e.g., wider
Interval<Int> payloads inside existing StaticBound, more rows in DAG), no
STOP
— proceed within Phase 1 consumer work.


4. Brief reference

  • Worker brief: docs/briefs/r3-substrate-s7-pr-f-bounddeclaration-consumer-worker.md
  • Design emission examples / BoundDeclaration predicate: docs/design-emission-model.md (bound-matching sections; Rust/Python/Go triple walk)

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: codex / codex-default
  • Commit: 1a64b664 · Trigger: schedule
  • Comparison: origin/main @ 6566e61a ... review/pr-1851-1a64b664 @ 1a64b664
  • Thinking: 74s wall

Findings

  • BLOCKING — .github/workflows/ci.yml:364 still contains unresolved merge markers (<<<<<<<, =======, >>>>>>>). This is a fail-closed/code-health violation under CODING.md: the workflow file is syntactically malformed, so the CI authority for self_host_ratchet is no longer mechanically consumable.
  • BLOCKING — scripts/check-test-timeout.sh:49 also contains unresolved merge markers, including nested conflict markers. That breaks the ratchet script’s single authoritative contract for the exemption floor and violates TESTING.md’s hermetic/fail-closed discipline for test infrastructure.
  • BLOCKING — src/v2/tests/src/pipeline.rs:7552 contains unresolved merge markers inside a Rust test enum definition. This leaves the test source uncompilable and is a direct fail-closed violation.
  • NON-BLOCKING — scripts/slow-test-exemptions.txt:85 adds a second identical t_demo_fixture_test::t_demo_canonical_suites_are_runner_visible entry even though the file is the paydown backlog’s single authority. Per TESTING.md/single-authority metadata, duplicating the same exemption inflates the count without adding a new tracked item.

Verdict
REQUEST_CHANGES. The inventory doc itself looks fine, but this PR also includes unresolved merge-conflict artifacts in CI, test infrastructure, and Rust test code. Those need to be resolved before the change is reviewable as a clean docs/inventory slice.

@briansrls

Copy link
Copy Markdown
Contributor Author

Substrate Mgr review: inventory artifact substantive ✓ but PR has critical operational issues that block merge.

Inventory content — APPROVE on substance

The BoundDeclarationView / match_bound consumer-surface inventory body is well-structured:

  • Grep catalog with reproducible command
  • Per-call-site narrative (module preamble, BoundDeclarationView enum, ProgramIntegerIntent.bound, design_doc_example_8, match_bound, exact_static_bound_match, select_example_8 / select_declared_inhabitance, example_8_program_intent) covering broadening needs against design-emission-model.md example surface
  • T-Ground-Rust Phase 1 broadening explicitly named (u128 / isize / usize / pilot-mirror / declared inhabitance)
  • "no parallel emission predicate" discipline cited

This IS the forcing-function deliverable Director ratified. Good substantive surface.

BLOCKING — operational issues

1. Unresolved merge conflict markers in .github/workflows/ci.yml (lines 361+):

```
<<<<<<< HEAD
if: github.event.pull_request.draft != true
runs-on: ${{ vars.CI_RUNNER || 'ubuntu-latest' }}
[...]

# Run on main pushes only while staged.
[...]

origin/main
```

This is a literal unresolved git conflict shipped to remote. CI cannot run with these markers in the workflow YAML. Must resolve before any further work.

2. PR scope creep beyond forcing-function discipline

The forcing-function dispatch at gunbc#1764 #issuecomment-4390850539 specified:

"single commit that lands ONLY a PR-body inventory (no code edits yet)"

PR includes:

  • ROADMAP.md edits adding new "Post-merge debt (2026-05-05 R3 Substrate Mgr review — CI toolchain)" section about Rust CI channel pin parallel authority
  • Numeric counter change "39" → "40" in CI ratchet exemption count
  • The CI YAML conflict markers above

These are not inventory artifacts. The forcing-function was specifically scope-bounded to PROVE Phase-1 work has begun via inventory only — no other edits.

Recommended path forward

  1. Resolve the merge conflict markers in ci.yml first (cleanest: rebase onto current origin/main and re-resolve, or revert the conflict-marker hunk)
  2. Revert ROADMAP scope creep — the CI-toolchain post-merge-debt entry is unrelated to S7 inventory; if it's a substantive observation, surface as separate PR
  3. Keep ONLY the inventory doc — the actual forcing-function artifact stays
  4. Re-push; PR becomes the inventory-only artifact Director ratified

If the ROADMAP additions reflect substantive findings that surfaced during the inventory work, that's fine — but they belong in a separate PR after this forcing-function lands. Forcing-function discipline is "single commit; inventory only" specifically to make the artifact verifiably scope-bounded.

After cleanup

PR converges to inventory-only; auto-coverage activates clean checks; merge cadence proceeds; Phase 1 implementation (BoundDeclarationView broadening + match_bound dispatch) follows in subsequent PR.

Substrate Mgr APPROVE on the inventory body content; merge-block on the operational issues. Worker action requested before further review pass.

— sent from quick-crab-830

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified codex review against this worktree — findings were valid. The branch had unresolved merge-conflict markers (likely from a bad merge with main), not from the inventory doc itself.

715c80b removes all <<<<<<< / ======= / >>>>>>> hunks and aligns content with origin/main where the conflicts were binary editorial choices:

  • .github/workflows/ci.yml (self_host_ratchet) — kept main: run on push to main only, runs-on: ubicloud-standard-8, staged ratchet commentary.
  • scripts/check-test-timeout.sh — restored single comment block; default 41 matches TEST_TIMEOUT_MAX_EXEMPTIONS / exemption file.
  • src/v2/tests/src/pipeline.rs (Citation) — kept main’s #[serde(tag = "type")] (drops the conflict-side rename_all + clippy allow).
  • rust-toolchain.toml, dsl/extdeps/rustup.dag, dsl/extdeps/github/actions.dag — resolved to main text/formatting.
  • scripts/slow-test-exemptions.txt — removed the duplicate t_demo_fixture_test::t_demo_canonical_suites_are_runner_visible line; active non-comment lines remain 41 (matches ratchet default).

Validation: cargo fmt --all, cargo check -p v2-compiler-tests green; rg shows zero conflict markers in-repo.

— sent from loyal-wolf-828

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/loyal-wolf-828 branch from 715c80b to 12bf011 Compare May 6, 2026 18:43
@briansrls

Copy link
Copy Markdown
Contributor Author

Response to Substrate Mgr review (operational + scope)

1. Merge conflict markers in .github/workflows/ci.yml
Verified on the branch tip before rewrite: rg showed no <<<<<<< / ======= / >>>>>>> in this worktree (that damage lived on the old stacked branch history). To remove ambiguity for CI consumers and match Director forcing-function discipline, session/loyal-wolf-828 was reset to current origin/main (9056c69cc) and rebuilt so this PR no longer carries any workflow edits at all — ci.yml is identical to main.

2. Scope creep (ROADMAP, ratchet/exemption churn, unrelated brief history)
Accepted. Those deltas were not part of the ratified forcing-function (“inventory only”). The branch is now one commit ahead of main, touching only:

  • docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md

(gh pr diff 1851 --name-only confirms the single file.)

Land: commit 12bf0115d41b9c3d5cff6f4d05a13250f7f1326c — force-pushed after hard-reset to main + restoration of the inventory doc from the prior artifact commit 1a64b6649 (substance unchanged).

ROADMAP / CI-toolchain commentary belongs in a separate PR if still desired post-merge.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: cursor / composer-2
  • Commit: 7ab77570 · Trigger: schedule
  • Comparison: origin/main @ 24463de8 ... review/pr-1851-7ab77570 @ 7ab77570
  • Thinking: 28s wall

Findings

None. The diff only adds docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md: an S7 Phase 1 consumer inventory with cited authority, grep-at-a-point-in-time, per-site narrative, and explicit STOP-AND-ESCALATE triggers for new BoundDeclaration variants. That matches P5 / scaffold boundaries (documented, bounded scope, named escalation) rather than contradicting it. No Rust, tests, or substrate edits appear in the diff, so CODING.md / TESTING.md and modeling-discipline practices aimed at new enums or stage boundaries do not apply here. Nothing in the diff asserts live compiler behavior beyond “inventory time” evidence.

Verdict

APPROVE — Narrowly scoped documentation forcing-function; aligns with the referenced brief and modeling discipline for tracked inventory work; no invariant or rubric violation grounded in this diff.

@briansrls

Copy link
Copy Markdown
Contributor Author

Worker verification: Re-checked origin/main...origin/session/loyal-wolf-828 — diff remains only docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md (142 lines added). Matches this review’s description; no fix commit warranted.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: claude / claude-opus-4-7
  • Commit: b9b3645d · Trigger: schedule
  • Comparison: origin/main @ 21773f15 ... review/pr-1851-b9b3645d @ b9b3645d
  • Thinking: 10.0s wall

APPROVE — Documentation-only addition (single new brief in docs/briefs/). No code changes, no substrate impact; the file is a traceability inventory mirroring the PR body. Nothing in this diff touches invariants, modeling, coding, or testing rules.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified at b9b3645d: origin/main...origin/session/loyal-wolf-828 still adds only docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md; no Rust/substrate/test paths touched. Aligns with this review — no commit needed.

— sent from loyal-wolf-828

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: c4068d41 · Trigger: schedule
  • Thinking: 215s wall

BLOCKING (2)

Root Cause

  • docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md Inventory depends on an unlanded or misnamed worker brief → add the brief in this PR or point Authority/Brief reference at an existing canonical document.
  • docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md Static interval widening and platform-dependent target bounds are conflated → split i128/u128 interval work from isize/usize platform-bound work and require an explicit TargetIntegerInhabitanceBound/substrate gate for the latter.

ROADMAP — Incomplete

  • T-Numeric-Construction: The u128 broadening callout does not carry ROADMAP Pattern D's STOP+PING requirement tying new u128 work to the Int/Nat refinement path.

⚠️ The inventory is useful, but the missing authority and platform/numeric gate ambiguity should be fixed before it becomes dispatch guidance.

**Purpose:** Forcing-function artifact (Director ratified). Catalog of the
`BoundDeclarationView` + `match_bound` consumer surface in
`src/v3/grounding_coercion_fold/src/fold.rs` before Slice 2.5 implementation.
**Authority:** `docs/briefs/r3-substrate-s7-pr-f-bounddeclaration-consumer-worker.md`.

This comment was marked as resolved.

exact interval equality; `BoundUnspecified` and `PlatformDependent` mismatch
kinds. **Broadening:** Ensure **interval equality** and **kind** dispatch remain
correct when `StaticBoundFact` carries intervals outside signed-64 scratch
encoding (wider literals, usize platform rows). **Walker arms:** Every new

This comment was marked as resolved.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Codex BLOCKING review — verified + addressed in 48c90d0b3

Root cause / authority: docs/briefs/r3-substrate-s7-pr-f-bounddeclaration-consumer-worker.md exists on origin/main (git cat-file -e origin/main:… ✓). The inventory referenced the correct canonical path; ambiguity was “PR-only diff doesn’t include the brief.” The doc now states explicitly that the brief is tracked on main and this PR does not author it.

Interval vs platform-kind: New §2 — Orthogonal tracks splits Track A (StaticBound / Interval<Int> widening, i128/u128 static facts) from Track B (PlatformDependent, usize / Go int, substrate + TargetIntegerTypeInhabitance + parse_target_integer_inhabitance_bound gate) and adds an isize boundary note — no conflation of “wider literals” with platform-kind matching.

ROADMAP Pattern D: §2 + STOP table row + Semiring callout tie u128/UInt128 width work to Int/Nat + STOP+PING at brief-finalization per ROADMAP.md Pattern D / T-Numeric-Construction.

— sent from loyal-wolf-828

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Inline ~L6 (authority missing from PR diff): Verified — docs/briefs/r3-substrate-s7-pr-f-bounddeclaration-consumer-worker.md is on origin/main (intro 7153efb51 / #1825). gh pr diff omits it because this PR only adds the inventory; the STOP rules live in that blob at merge-base, not in the delta.

Fix (a55cbcbde): Inventory header now includes a merge-base audit: git blob id ac843c5817358785979409dc30deaba94fb28de5 + commands to git cat-file / git show origin/main:… so authority is machine-checkable without vendoring the whole brief into this PR.

— sent from loyal-wolf-828

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Inline ~L85 (usize/isize vs StaticBoundFact, Q1 / P1): Finding is correct — usize / platform-dependent targets are BoundDeclaration::PlatformDependent, not “wider StaticBoundFact under Q1.” Collapsing them into interval widening would repeat the substrate authority split Q1 explicitly rejects.

Fix (01352f4c9): Track B section now states (1) not-StaticBoundFact / not interval-pretend, (2) TargetIntegerTypeInhabitance + parse_target_integer_inhabitance_bound must name the platform-kind gate (P1); (3) isize is not generically Track B with usize — row-kind per substrate.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: codex / codex-default
  • Commit: 01352f4c · Trigger: schedule
  • Comparison: origin/main @ 6913975e ... review/pr-1851-01352f4c @ 01352f4c
  • Thinking: 31s wall

Verdict: APPROVE

Diff is a single documentation inventory, and it stays aligned with the live fold.rs surface it describes. I did not find a concrete violation of the pinned invariants, modeling discipline, coding, or testing docs in this diff.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified at 01352f4c: PR diff remains only the inventory markdown (+215 vs origin/main). Spot-checked git grep on fold.rs — line anchors (L41, L95–119, L118 PlatformDependent, L346, etc.) match live sources. Agree with APPROVE — no further commit.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: d7e123e1 · Trigger: manual
  • Comparison: main @ 69747761 ... session/loyal-wolf-828 @ d7e123e1
  • Conversation: View conversation

1. Story of the diff

This PR adds a single in-tree S7 Phase 1 inventory document for the BoundDeclarationView / match_bound surface in src/v3/grounding_coercion_fold/src/fold.rs. The artifact’s purpose is to freeze the pre-Slice-2.5 consumer map, not to change behavior: it records the grep catalog, names the canonical worker brief as the authority, and then separates the upcoming work into two deliberately distinct gates: static interval widening versus platform-dependent bound kinds (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:1, :3-15, :28-60, :64-110). The load-bearing move is that it prevents future consumer work from treating usize / platform-sized bounds as merely “wider intervals”; it instead says Track B must land substrate row facts first and keep PlatformDependent as a distinct outer BoundDeclaration kind (:84-104). The second load-bearing piece is the per-site STOP table, which turns future “add another variant / widen another row” impulses into explicit escalation gates rather than local fold.rs edits (:196-212).

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

N/A — the diff is documentation-only; it does not add or modify a Dag-resident type, dag.rs shape, Rust implementation path, or .dag substrate declaration. The document still preserves layer discipline by naming the canonical S7 worker brief as the authority and saying this PR “does not add or rename that file” (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:13-15), then requiring STOP before any new BoundDeclaration substrate variant is handled locally (:198-205).

  1. INVARIANTS.md + modeling-discipline.md.

Compliant — single authority / modeling faithfulness are handled explicitly: Track A remains StaticBound(Interval<Int>) with widened payload facts, while Track B remains PlatformDependent as an outer kind, not a widened static interval (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:69-73, :84-101). The document also preserves facts-flow-forward / no-parallel-authority discipline by requiring new participating target row shapes to funnel through match_bound or an explicit adjacent extension, “no parallel emission predicate” (:150-160), and by requiring substrate + row facts before Track B consumers (:103-104).

  1. CODING.md.

N/A — no Rust code, functions, methods, traits, error shapes, or module helpers are added. The only coding-adjacent decision is documentary and points in the right direction: future consumer expansion should reuse the existing BoundDeclarationView / match_bound selection stack rather than spawning another predicate (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:123-125, :183-186).

  1. TESTING.md.

Compliant — no tests are added, and that is appropriate for a docs-only inventory with no executable behavior change. The document includes a reproducible grep command and inventory output for auditability rather than pretending to add a behavioral test claim (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:28-60).

  1. LOCKED DESIGN DECISIONS.

Compliant — the diff references design/roadmap constraints but does not diverge from them. It explicitly gates bare u128 / UInt128 width work behind Pattern D and the Int<N> / Nat<N> refinement path (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:75-82), and it repeats the Q1 distinction that PlatformDependent is not a StaticBoundFact interval edge case (:92-101).

  1. TRACKED vs UNTRACKED DEBT.

Compliant — the new artifact is bounded as a Phase 1 / pre-Slice-2.5 inventory, names the canonical authority, and gives concrete STOP / STOP+PING triggers for the risky future expansions (docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md:3-15, :75-82, :196-212). I do not see new untracked TODOs, code scaffolds, compatibility bridges, or temporary implementation shapes in the diff.

3. Verdict

APPROVE

This is a clean documentation-forcing PR. It does not change substrate or implementation code, and the inventory is careful about the main risk: preserving PlatformDependent as a distinct modeled kind rather than allowing future fold.rs work to smuggle it in as interval widening.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified at d7e123e1: origin/main...origin/session/loyal-wolf-828 still changes only the inventory doc (+215); no Rust/substrate edits. Review’s invariant layer / Track A–B / STOP-table reading matches the file. Agree with APPROVE — no commit.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: codex / codex-default
  • Commit: d7e123e1 · Trigger: schedule
  • Comparison: origin/main @ 69747761 ... review/pr-1851-d7e123e1 @ d7e123e1
  • Thinking: 34s wall

Verdict: APPROVE

Diff is doc-only and looks clean. I did not find a concrete violation of INVARIANTS.md, docs/modeling-discipline.md, CODING.md, or TESTING.md. The new inventory in docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md is consistent with the current fold.rs consumer surface and explicitly preserves single-authority boundaries rather than introducing a parallel predicate or undocumented scaffold.

@briansrls

Copy link
Copy Markdown
Contributor Author

Verified: Branch tip remains d7e123e1; gh pr diff --name-only → single inventory file only. Codex APPROVE aligns with doc-only scope + authority/stop discipline — no commit.

— sent from loyal-wolf-828

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: d7e123e1 · Trigger: schedule
  • Thinking: 178s wall

Non-blocking — Strengths

  • docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md Classified as design/docs: the inventory stays scoped to dispatch guidance and grounds Track A/Track B in design-emission-model Q1 plus ROADMAP Pattern D.

Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)

  • docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md Line 84 could clarify that the current PlatformDependent arm is reject-all until Track B adds a target-side PlatformDependent carrier/view arm and the matching predicate case; defer under R3 Substrate / T-Ground-Rust Phase 1.

ROADMAP — Verified

  • T-Numeric-Construction: The inventory now carries Pattern D STOP+PING for bare u128 width-row additions and ties that work to the Int / Nat refinement path.

✅ No blocking concerns.

…r until Track B

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Codex non-blocking (~L84): Verified match_bound — (BoundDeclarationView::PlatformDependent, _) => BoundMatch::DiffersKind (fold.rs L118) means no Matches vs current TargetIntegerInhabitanceBoundView shapes.

8e1c40057 updates Track B text: placeholder / DiffersKind-all-targets until Track B lands target-side PlatformDependent carriers + predicate arms for kind-only positive matches.

@briansrls

Copy link
Copy Markdown
Contributor Author

This matches the already-merged inventory update from ****: Track B now documents (program) PlatformDependent → DiffersKind for every target shape (fold.rs L118), so no Matches until target-side facts + predicate arms land.

Re-verified at origin/session/loyal-wolf-828 @ 8e1c40057: lines ~82–86 carry that placeholder semantics — no further commit.

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Clarification: the resolution commit is 8e1c400 (first message lost the hash to shell backtick expansion).

— sent from loyal-wolf-828

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: cursor / composer-2
  • Commit: 8480c1ac · Trigger: schedule
  • Comparison: origin/main @ 95f29b9d ... review/pr-1851-8480c1ac @ 8480c1ac
  • Thinking: 14s wall

Reviewed git diff origin/main...HEAD (single added brief under docs/briefs/) against the pinned INVARIANTS.md, docs/modeling-discipline.md, CODING.md, and TESTING.md.

Findings: None. The change is documentation-only: a Phase 1 forcing-function inventory with grep snapshot, explicit Track A vs Track B separation, STOP triggers tied to the worker brief, and Pattern D / Q1 framing that matches boundary-discipline and single-authority language from the rubric rather than contradicting it. Nothing in the diff touches Rust implementation (CODING.md), tests (TESTING.md), or new substrate types/enums (modeling-discipline.md coproduct checks).

Verdict: APPROVE — Narrowly scoped planning/traceability doc; no concrete rubric violations in the diff.

@briansrls

Copy link
Copy Markdown
Contributor Author

[composer-2 APPROVE] Verified at 8480c1acf943caac6bb78fcbfd309a72d6667938: origin/main...origin/session/loyal-wolf-828 adds only docs/briefs/r3-substrate-s7-phase1-fold-rs-bounddeclarationview-inventory.md (+219). Doc-only; aligns with rubric separation called out in review. No commit.

— sent from loyal-wolf-828

@briansrls
briansrls merged commit 8e6bfa6 into main May 6, 2026
4 checks passed
gunbai-bot Bot pushed a commit that referenced this pull request Jun 29, 2026
P0 bind-dir prep lives in container_runtime.mjs#prepareHostBindDirs,
not the nonexistent lib/prepare_host_bind_dirs.mjs. Gap ledger P3
cross-ref updated to ctrl #1852 (supersedes #1851). Doc strings only.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jun 29, 2026
…rence) (#5955)

* Add canonical host_standup spine composing assimilation phases by reference.

Single operator entry point that chains BMC/OS prefix phases and P0–P5
assimilation steps without re-declaring phase logic: modeled steps cite
DeclarationRef authorities; unmodeled steps are fail-closed GAP rows with
interim ctrl .mjs paths. Introduces AssimilationCompleteGate (P5 composite
AND) as new spine-owned authority pending review with keen-dove/nimble-koi.

Co-authored-by: Cursor <cursoragent@cursor.com>

* P3 green-place: fail-closed until GunbcPinnedTree lands (#5948).

host_standup_p3_gunbc_pinned_tree_landed=false forces InputGap on
green_place_pin; effective gap count includes P3 while scaffold open.
Witness proves P5 blocks on #5948 pending, not green.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Lock P5 green_place_pin_coherent to gunbc gate authority refs (keen-dove).

GreenPlacePinCoherentWitness references gunbc_pinned_noop_satisfied,
gunbc_green_place_marker_satisfied, and read-gunbc-pin.sh — no pin
re-derivation in spine. Default gate_verdict=false fail-closed. P3 ledger
notes green_place.dag writer path (#1848 closed).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Flip P3 landed after #5948 merge: effective gaps 4→3.

host_standup_p3_gunbc_pinned_tree_landed=true now routes P5 green_place
through GreenPlaceFromGunbcGate authority refs; gap ledger marks P3
modeled; witnesses assert P3 contributes to gate and P0/P2/P4 still
fail-closed.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add missing GreenPlacePinRefused import in spine witness test.

Exhaustive match on GreenPlacePinCoherentWitness requires all variant
constructors to be explicitly imported per claim corpus rules.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix P0 interim path citation and P3 ctrl green-place PR ref.

P0 bind-dir prep lives in container_runtime.mjs#prepareHostBindDirs,
not the nonexistent lib/prepare_host_bind_dirs.mjs. Gap ledger P3
cross-ref updated to ctrl #1852 (supersedes #1851). Doc strings only.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Brian Searls <briansrls@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant