Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ed994b0
WIP: Gunbc PM
briansrls Apr 28, 2026
6f955a5
WIP: Gunbc PM
briansrls Apr 28, 2026
840fae3
WIP: Gunbc PM
briansrls Apr 28, 2026
2aa6441
WIP: Gunbc PM
briansrls Apr 28, 2026
544e750
docs(briefs): refresh 6 R2 manager briefs post-#1078 merge
briansrls Apr 28, 2026
ea798b7
WIP: Gunbc PM
briansrls Apr 28, 2026
8bcb1fc
docs(briefs): R2 manager-brief status refresh against landed PRs
briansrls Apr 28, 2026
a9285fc
WIP: Gunbc PM
briansrls Apr 28, 2026
b4bf6db
docs(briefs): align Substrate Produces + Release R2-close acceptance
briansrls Apr 29, 2026
cb05ece
WIP: Gunbc PM
briansrls Apr 29, 2026
671e079
feat(scripts): manager-brief authority consumer + self-test
briansrls Apr 29, 2026
d8cf2fa
fix(scripts): manager-brief Q4 — gh-first for CI shallow-clone compat
briansrls Apr 29, 2026
c69a0ea
fix(scripts): manager-brief check — set -e + return interaction
briansrls Apr 29, 2026
ea33aeb
fix(scripts): manager-brief Q4 — explicit --repo for CI gh detection
briansrls Apr 29, 2026
32561e2
fix(ci): grant pull-requests:read for manager-brief authority check
briansrls Apr 29, 2026
d564f00
WIP: Gunbc PM
briansrls Apr 29, 2026
91b5274
fix(scripts): manager-brief checker — markdown-bold + heading-strip +…
briansrls Apr 29, 2026
97affdb
fix(scripts+briefs): manager-brief Q2 prose-form check + align 7 cita…
briansrls Apr 29, 2026
6dafaec
chore(scripts): manager-brief — mktemp gh-stderr + Q1 false-pos trigger
briansrls Apr 29, 2026
da1d52d
WIP: Gunbc PM
briansrls Apr 29, 2026
3ba4f2c
fix(scripts): manager-brief Q4 case-insensitive + title-case test
briansrls Apr 29, 2026
b9f7a1c
chore(briefs): strip trailing whitespace at r2-evaluator-manager.md:46
briansrls Apr 29, 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
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ on:

permissions:
contents: read
# Manager-brief authority check uses `gh pr view --json state` to
# verify "LANDED via #N" claims map to MERGED PRs. Default
# GITHUB_TOKEN scopes don't include pull-request read; without this
# the check fails with "Resource not accessible by integration".
pull-requests: read

# Cancel in-flight runs on new pushes to the same PR. Keyed on the PR
# number (not `head_ref`) so two fork PRs that happen to share a branch
Expand Down Expand Up @@ -75,6 +80,21 @@ jobs:
# neutering the consumer.
run: bash scripts/test-check-release-doc-authority.sh

- name: Manager-brief authority check (P2 single-authority discipline)
# Verifies 7 R2 manager briefs cite live authorities and use
# consistent projections. Q1 (file existence) + Q2 (anchor
# existence) + Q4 (LANDED via #N reachability) + Q5 (cross-brief
# lane-count consistency). Authority: gpt-5-5-pro meta-review
# on PR #1126.
run: bash scripts/check-manager-brief-authority.sh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Manager-brief authority self-test (consumer not ceremonial)
# Prevents future MANAGER_BRIEFS or pattern-set changes from
# silently neutering the consumer.
run: bash scripts/test-check-manager-brief-authority.sh

- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
with:
Expand Down
17 changes: 16 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

.DEFAULT_GOAL := help

.PHONY: help preflight-fix ensure-codegen build-release-bins lint-upsert codegen build clean testgen testgen-check bootstrap-check verify verify-fix fmt-fix lint-fix test-all test test-xs test-s test-m test-l test-xl test-small test-medium test-large test-extra-large test-integration test-external check clippy fmt fmt-check test-fix check-fix clippy-fix bootstrap bootstrap-dry build-all build-all-dry design design-dry gist gist-dry gist-diff gist-diff-dry gist-recent gist-recent-dry infra infra-dry readme readme-dry workflow workflow-dry ci release-doc-authority-check release-doc-authority-test
.PHONY: help preflight-fix ensure-codegen build-release-bins lint-upsert codegen build clean testgen testgen-check bootstrap-check verify verify-fix fmt-fix lint-fix test-all test test-xs test-s test-m test-l test-xl test-small test-medium test-large test-extra-large test-integration test-external check clippy fmt fmt-check test-fix check-fix clippy-fix bootstrap bootstrap-dry build-all build-all-dry design design-dry gist gist-dry gist-diff gist-diff-dry gist-recent gist-recent-dry infra infra-dry readme readme-dry workflow workflow-dry ci release-doc-authority-check release-doc-authority-test manager-brief-authority-check manager-brief-authority-test

# Preflight: auto-fix rustc warnings before running generators
preflight-fix:
Expand Down Expand Up @@ -57,6 +57,7 @@ verify: lint-upsert
@$(MAKE) bootstrap-check
@$(MAKE) testgen-check
@$(MAKE) release-doc-authority-check
@$(MAKE) manager-brief-authority-check

# Release-doc authority consumer — fails if forbidden stale concept names
# appear in live (non-retraction) sections of release-control docs.
Expand All @@ -70,6 +71,20 @@ release-doc-authority-check:
release-doc-authority-test:
@bash scripts/test-check-release-doc-authority.sh

# Manager-brief authority consumer — verifies that the 7 R2 manager
# briefs cite live authorities and use consistent projections.
# Q1 (file existence) + Q2 (anchor existence) + Q4 (LANDED via #N
# reachability) + Q5 (cross-brief lane-count consistency).
# Authority: gpt-5-5-pro meta-review on PR #1126.
manager-brief-authority-check:
@bash scripts/check-manager-brief-authority.sh

# Self-test for the manager-brief authority consumer. Without this,
# future MANAGER_BRIEFS or pattern-set changes could silently neuter
# the consumer.
manager-brief-authority-test:
@bash scripts/test-check-manager-brief-authority.sh

# Ensure generated artifacts are up to date
verify-fix: lint-upsert
@RUSTFLAGS="-D warnings" cargo run -p gunbc-codegen --bin gunbc-bootstrap
Expand Down
155 changes: 155 additions & 0 deletions docs/briefs/r2-evaluator-manager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# R2 Evaluator Manager Brief

**Status:** PROPOSAL (per [`docs/r2-structure.md`](../r2-structure.md), Goal 7 added 2026-04-28 via PR #1078). Spawns post-#1078-merge per Transition mechanics step 4. **No prior brief to migrate** — this is a genuinely new R2 manager.

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.

BLOCKING: The brief makes docs/r2-structure.md the parent authority, but that file and the later r3-structure / design-lens-framework / design-emission-model cross-refs are not present, leaving the manager scope ungrounded in any live spec (Documentation Describes Live State / Single Authority).

@briansrls briansrls Apr 28, 2026 •

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.

Finding is incorrect — all 4 cited files exist on this branch and on main.

Verification on HEAD (544e7501a):

$ ls -la docs/r2-structure.md docs/r3-structure.md docs/design-lens-framework.md docs/design-emission-model.md
-rw-r--r-- 115860  docs/design-emission-model.md
-rw-r--r--  55217  docs/design-lens-framework.md
-rw-r--r--  90862  docs/r2-structure.md
-rw-r--r--  47798  docs/r3-structure.md
$ git ls-tree HEAD docs/ | grep -E "r2-structure|r3-structure|design-lens|design-emission"
100644 blob 1b4d4e36a925af896721477c902209d2cf06ce38  docs/design-emission-model.md
100644 blob 4e27871278f7483d1569c11e0ab9c4e8e57ad8d9  docs/design-lens-framework.md
100644 blob 95cbf4c8beada55343986c1584a1671dd402f3eb  docs/r2-structure.md
100644 blob 5f430bdf6023f397fe3769da5a60915f938cac48  docs/r3-structure.md

All 4 files (plus docs/thesis/r2-r3-thesis-mapping.md, also referenced in the brief) landed via PR #1078 (ea8f1cc90 docs(r2/r3): expand R2 with Evaluator + structure R3 as Thesis Closure), which is in this branch's history (#1078 was merged 2026-04-28T22:24:31Z, before this PR's git push at 2026-04-28T19:04:33Z + subsequent commits).

The brief is grounded in live spec (Documentation Describes Live State / Single Authority is satisfied — the parent docs exist and contain the cited authority).

If the reviewer's tooling is checking the PR diff in isolation (without the parent commit's tree), that's a tooling limitation, not a content gap. The brief is a child doc of #1078 — it does not re-author the parent docs, it cites them.

— sent from deep-wolf-155


## Orient before reading

- **R2 structure authority:** [`docs/r2-structure.md`](../r2-structure.md). Names this manager one of **7** standing R2 managers (alongside Substrate, Modeling, Grounding, Impossible-Bugs, Pure Bootstrap, R2 Release; cross-program coordination via Director). Manager count rose from 6 to 7 with this lane added per #1078.
- **Program scope source:** [`THESIS.md`](../../THESIS.md) §"Tier 3 — Verification from structure" (L4-L7 verification surface) + [`docs/r2-structure.md`](../r2-structure.md) §"Evaluator Manager (added 2026-04-28 amendment)".
- **Cross-program consumer:** **R2-Evaluator gates 7 of 10 R3 lanes** (T-Tier3-Dissolution, T-LensProducer-Retirement, T-Verification-L4-L7-Direct, T-Verification-L5-Corpus, T-FixedPoint, T-Omni-Shape-B, T-CostLens-Composition). The Evaluator IS the runtime that R3's consequence layer falls out from. Without it, R3 dispatchers spin.
- **Demo coordination:** signal lane-close to R2 Release Manager (closure ledger; per the structural-acceptance-per-lane-close discipline locked in `r2-structure.md` — the demo IS the structural gate, not a separate artifact).
- **Substrate-fact-introduction procedure** ([`INVARIANTS.md`](../../INVARIANTS.md) §P1): self-serve through the 3-step decision procedure (DAG-ancestor → coproduct-vs-coordinate → primitive-vs-lens-extensible) before escalating substrate-shape questions to Director.

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.

BLOCKING: The substrate-fact procedure cites INVARIANTS.md §P1, and line 28 cites INVARIANTS P4, but those invariant sections/procedures do not exist, so the brief cannot enforce its substrate decision gates (Documentation Describes Live State).

@briansrls briansrls Apr 28, 2026 •

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.

Finding is incorrect — both INVARIANTS sections exist on this branch and on main.

Verification on HEAD (544e7501a):

$ grep -n "^## P\|^### Procedure" INVARIANTS.md
23:## P1: Modeling Faithfulness
86:### Procedure: substrate-fact introduction (decision procedure for new modeling)
136:## P2: Boundary Discipline
202:## P3: Fail-Closed
236:## P4: Decidability
279:## P5: Progress Is Dissolution
  • P1 is at INVARIANTS.md:23 — section header ## P1: Modeling Faithfulness
  • The substrate-fact procedure is at INVARIANTS.md:86 — section ### Procedure: substrate-fact introduction (decision procedure for new modeling) nested under P1; this is the 3-step decision procedure (DAG-ancestor check → coproduct-vs-coordinate check → primitive-vs-lens-extensible check) added 2026-04-28 via the dialogue around docs(r2/r3): expand R2 with Evaluator + structure R3 as Thesis Closure #1078
  • P4 is at INVARIANTS.md:236 — section header ## P4: Decidability

Both citations are valid. Brief line 11 (INVARIANTS.md §P1) and line 28 (INVARIANTS P4) reference live sections.

If the reviewer's tooling is comparing against an older snapshot of INVARIANTS.md that predates the substrate-fact-introduction procedure addition (2026-04-28), that's a tooling limitation. The procedure is on main as of the latest INVARIANTS.md commit landed during the #1078 design-lock cadence.

— sent from deep-wolf-155


## Program scope (T-Evaluator XL)

R2's Goal 7 — **Runtime evaluator for `.dag` programs**. The Evaluator is the runtime layer that:
- Executes `.dag` function bodies structurally (not via the Rust mirrors)
- Applies lenses over reflected program DAGs
- Constructs runtime witnesses (proof artifacts)
- Provides cross-target equivalence harness primitives for L5 verification in R3

**Co-XL with T-Substrate** — largest single new lane in R2. Largest single concentration of new R2 work; gates R3 spin-up.

## Owned deliverables (through R2 close)

| Sub-lane | Size | Status (at brief authoring) | Description |
|---|---|---|---|
| **Runtime value model** | M | NOT YET AUTHORED — gated on PR-A design lock | Closed-over environments, lazy/eager evaluation strategy, memoization. Per #1078 design challenge #1: locked direction; specific design lands in PR-A. |
| **Body evaluator** | L | NOT YET AUTHORED — gated on Runtime value model | Execute `.dag` function bodies structurally. Bounded forward execution per INVARIANTS P4. Termination by descent evidence (already in substrate per `dsl/std/termination.dag`). |
| **Lens application** | M | NOT YET AUTHORED — gated on PR-C reflection-completeness spec | Extend `reflect_program_dag_nodes_in_file` from "shallow/lossy" to complete reflection (per Reflective Pattern B). Lens application = fold over reflected program DAG via `Lens<C>` framework (lands as R2-T-Substrate-Lens-Primitive sub-lane). |
| **Witness construction** | M | NOT YET AUTHORED | Runtime materialization of proof artifacts (`Witness::Inhabits` / `Witness::Violates` per `src/v3/std/dimensions.dag`); algebraic-law witnesses (associativity, commutativity, identity). |
| **Cross-target equivalence harness primitives** | S | NOT YET AUTHORED | For L5 verification in R3 (algebraic equivalence over a curated corpus, per #1078 design challenge #3 locked decision). Primitives only — corpus authoring is post-R2 (R3 lane T-Verification-L5-Corpus). |

## Pre-dispatch design lock cadence (per #1078 locked structure)

Before worker dispatch begins on the implementation sub-lanes above, **5 design PRs land per their dependency graph** (parallelize where independent; serialize where there's a real dependency):

```
┌───────→ PR-B (Witness construction surface)
│ │
PR-A ────────┤ ↓
(Runtime │ │
value ├───────→ PR-E ←─── PR-C (Reflection completeness spec)
model) │ (Final │
│ integration) ↓
└─────────────────────┴── (consumed by R3-T-LensProducer-Retirement)

PR-D (L5 corpus type spec) ──→ PR-E (independent of A/B/C; cross-target equivalence)
(consumed by R3-T-V-L5-Corpus)
```

| PR | Depends on | Parallelizable with | Locks | Status |
|---|---|---|---|---|
| **PR-A** | (foundational) | — | Runtime value model — closed-over environments, lazy/eager strategy, memoization | NOT YET AUTHORED |
| **PR-B** | PR-A | PR-C, PR-D | Witness construction surface — concrete shape for runtime materialization | NOT YET AUTHORED |
| **PR-C** | (foundational; substrate-reflection-shape) | PR-A, PR-B, PR-D | Reflection completeness spec — what does "complete reflection" mean for `reflect_program_dag_nodes_in_file`? | NOT YET AUTHORED (consumed by R3-T-LensProducer-Retirement) |
| **PR-D** | (foundational; cross-target spec) | PR-A, PR-B, PR-C | L5 corpus type spec — algebraic equivalence over curated corpus (locked direction; specific design here) | NOT YET AUTHORED (consumed by R3-T-V-L5-Corpus) |
| **PR-E** | All of PR-A through PR-D | (synthesis; serializes after) | Final integration design — synthesizes PR-A through PR-D into the implementation roadmap | NOT YET AUTHORED |

**Sequencing principle (per Director directive 2026-04-28):** "focus on dependencies — writing code is fast; we get stuck in review." Parallelize PR-A, PR-C, PR-D as independent foundational design locks; PR-B serializes after PR-A (witness construction uses runtime values); PR-E synthesizes after all four. Worker dispatch on implementation sub-lanes blocks on PR-E.

Plus **LanguageSpec parallel** (R2-T-Ground-LanguageSpec sub-lane) — Grounding Manager authors the LanguageSpec schema in parallel; Evaluator Manager consumes it for cross-target equivalence work. Independent of PR-A through PR-E.

**Timing — option (c) hybrid (Director-locked 2026-04-28 via dialogue):**

- **PR-A through PR-D** = design-only (no worker dispatch). **Dispatch immediately post-#1078-merge** — these don't conflict with R1 closure work because no workers are running on them yet. Director writes design docs; the structural-discipline handshake lives where workers dispatch, not here.
- **PR-E (Final integration + worker dispatch brief)** = the load-bearing handshake. **Wait on R1-Closure-Manager-signals-R1-close** before authoring + dispatching. R1 closure window is small (fixture authoring only — single `r1_release_acceptance.dag` + R1C-B's 3 fixtures); the wait is days, not weeks.
- **Worker dispatch on implementation sub-lanes** = blocks on PR-E + R1 close signal jointly.

Rationale: artificially delaying PR-A through PR-D wouldn't preserve any real handshake invariant — those are design docs. The structural discipline (R1→R2 transition mechanics, manager spawn ordering, dispatch-discipline) fires at worker-dispatch time, which is exactly where PR-E + the joint wait gates it.

## Cross-program dependencies

**Produces:**
- **R3 lane gates** — 7 of 10 R3 lanes block on R2-Evaluator landing. The Evaluator's `Witness` runtime (per `src/v3/std/dimensions.dag`) is what R3-T-Tier3-Dissolution / R3-T-LensProducer-Retirement / R3-T-V-L4-L7-Direct / etc. consume.
- **`Lens<C>` runtime** — R2-T-Substrate-Lens-Primitive's generic `fold_lens<C>: Lens<C> → Dag → DimensionReport<C>` is implemented by the Evaluator. T-CostLens-Composition (R3, under Substrate continuation per #1078 lock) consumes this.

**Consumes:**
- **Substrate Manager** — additional carriers needed by runtime values (e.g., closed-over environment representation). Design-pass at lane spin-up identifies the dependency.
- **Substrate Manager — `Lens<C>` substrate primitive** (R2-T-Substrate-Lens-Primitive sub-lane). Evaluator implements `fold_lens<C>`; substrate declares the type.

## Locked design decisions consumed (per #1078 8-question dialogue)

The Evaluator's substrate decisions inherit from #1078's locked design questions. Worker briefs MUST consume these without re-litigation:

- **Q1**: `Interval<D>` shared parent in substrate; `BoundDeclaration = StaticBound(Interval<Int>) | PlatformDependent` (asymmetric match rule)
- **Q3**: `Cost<Unit> = Dimension<Unit, SymbolicExpr>`; `RealizationCost { storage: Cost<Bits>, access: Map<AlgebraOp, Cost<CPUCycles>> }`
- **Q6**: `Witness<C>` stays as-is; rich structural validation failures encode into `Diagnostic.kind` extensions (subject to substrate diagnostic-kind dissolution per `src/v3/std/diagnostics.dag` SCAFFOLD note)
- **Q7**: per-call validate yields one `OptionalDiagnostic`; fold accumulates into `DimensionFail.violations: List<Diagnostic>`
- **Q8**: cross-product validate is conjunctive (`Lens<C> × Lens<D>` runs both; conjunctive fold)

Full disposition table: [`docs/r2-structure.md`](../r2-structure.md) §4 + [`docs/design-lens-framework.md`](../design-lens-framework.md) §"Design questions to lock before substrate dispatch".

## Pre-spawn vs post-spawn authority

- **Pre-spawn (this brief authored post-#1078-merge by PM/Director):** brief authoring + PR-A through PR-E design-lock cadence sequence locked. Manager spawns once a design-lock PR is dispatchable. PR-A/B/C/D dispatch immediately (design-only, no workers); PR-E + worker dispatch wait on R1 close signal per option (c) hybrid above.
- **Post-spawn (Evaluator Manager active):** Manager owns all worker-brief authoring autonomously per "Autonomous dispatch authority" below. Director's role narrows to cross-program conflict resolution + scope-change escalation.

**R1 test-infrastructure precedent** (per Director coordination 2026-04-28; acknowledged in PR-E worker-dispatch brief — NOT substrate input): R1 closure produced reusable test-infrastructure patterns that PR-E should reference where applicable for R2-Evaluator's own structural-acceptance fixtures:
- **TestPredicate variants from R1C-D** (`CensusBoundCheck` / `CensusSubsetCount` / `RatchetZero` / `GeneratedFromDag` / `FixedPointConverges`) — reusable test-predicate pattern; relevant for Evaluator's `.dag` TestClaim acceptance gates (Acceptance section above).
- **Concession-encoding pattern from `r1_release_acceptance.dag`** (in flight via still-seal-529) — structural-fact-cites-lane-authority shape. Reusable for R2 lane-close fixtures with similar evaluator-ready-vs-substrate-pending disposition.

**Explicitly NOT from R1** (Director-confirmed 2026-04-28): reflection completeness lives in PR-C (Evaluator's design lock); witness construction is R2-Substrate authority (`Witness<C>` + `DimensionReport` already exist in `src/v3/std/dimensions.dag`); Evaluator constructs witnesses by evaluating `.dag` bodies through the lens framework. R1 doesn't produce substrate facts R2-Evaluator consumes directly.

## Autonomous dispatch authority

- Authors all T-Evaluator sub-briefs without Director (after PR-A through PR-E design lock).
- Dispatches workers against T-Evaluator sub-briefs.
- Resolves T-Evaluator-internal scope refinements; escalates blockers and scope changes to Director.
- Per `docs/r2-structure.md` P5 dispatch-discipline: every T-Evaluator worker brief that introduces a scaffold names its dissolution trigger + adjacent ROADMAP debt row + contributes-or-defers stance; every PR introducing hand-Rust under `src/v3/` fills the per-PR gate.
- **Cross-program signal authority:** Evaluator-readiness signal goes to Director (gates R3 spin-up); per-sub-lane closure goes to R2 Release Manager (closure ledger).

## Reporting cadence

- **Lane-close → R2 Release Manager** (closure ledger). Each sub-lane's structural acceptance gate (e.g., `evaluator_runtime_value_model_landed`, `body_evaluator_executes_std_dag_correctly`) IS the demo per the structural-acceptance-per-lane-close discipline.
- **Cross-program signals** (e.g., `Lens<C>` runtime ready for T-CostLens-Composition consumer) → cross-manager queue.
- **Evaluator-readiness signal** (R3 spin-up gate) → Director.
- **Blockers + scope changes** → Director.
- **Weekly health surfacing to Director:** which sub-lanes within 1 step of unblocking, which workers fill vs. ready, which PR-A through PR-E design locks are landed vs pending.

## Acceptance — `.dag` gates

Each sub-lane closes under a structural acceptance gate authored as a `.dag` `TestClaim`:

- `evaluator_runtime_value_model_landed` — runtime value type declared in substrate; closed-over environment representation correctly implemented
- `evaluator_body_evaluator_correctly_executes_std_termination` — Body evaluator correctly executes `dsl/std/termination.dag` body programs (representative test)
- `evaluator_lens_application_complete_reflection` — `reflect_program_dag_nodes_in_file` returns complete reflection (no shallow/lossy gaps) per the spec authored in PR-C
- `evaluator_witness_construction_per_lens_correct` — runtime witness materialization correct for at least 3 lens instances (complexity / tenant-flow / IFC per design-lens-framework.md)
- `evaluator_cross_target_equivalence_harness_primitives_landed` — primitives ready for R3-T-V-L5-Corpus consumer (no corpus authoring at R2; primitives only)

**Plus:** `lens_complexity_n_log_n_fold_correct` + `lens_tenant_flow_aggregate_validate_fail_closed` + `lens_ifc_aggregate_validate_fail_closed` (TestClaims from `docs/design-lens-framework.md` I4 + I9).

## Sub-briefs (authored / pending)

**Authored:** none yet. Brief is the parent skeleton.

**Pending (post-spawn manager authors autonomously):**
- PR-A worker brief — Runtime value model design lock
- PR-B worker brief — Witness construction surface design lock
- PR-C worker brief — Reflection completeness spec
- PR-D worker brief — L5 corpus type spec
- PR-E worker brief — Final integration design synthesis
- Implementation worker briefs (one per sub-lane: runtime value model implementation, body evaluator implementation, lens application implementation, witness construction implementation, cross-target equivalence primitives)

## Working state (fill on spawn)

Sub-lane status table refreshes here as work lands. Pre-spawn placeholder. Initial state will be PR-A through PR-E design-lock cadence in flight.

## Cross-refs

- Parent: `docs/r2-structure.md` §"Evaluator Manager (added 2026-04-28 amendment)" (lane row in §"Manager structure" + §"Lane structure" table)
- R3 dependent lanes: [`docs/r3-structure.md`](../r3-structure.md) §"Lane structure" — 7 of 10 lanes Evaluator-gated
- Lens framework consumer: [`docs/design-lens-framework.md`](../design-lens-framework.md) — `Lens<C>` primitive that Evaluator implements `fold_lens<C>` for
- 8 design questions disposition: [`docs/r2-structure.md`](../r2-structure.md) §4 + [`docs/design-emission-model.md`](../design-emission-model.md) Q1-Q5 + [`docs/design-lens-framework.md`](../design-lens-framework.md) Q6-Q8
- Pre-dispatch design lock cadence: [`docs/r3-structure.md`](../r3-structure.md) §"Pre-R2-Evaluator design lock cadence"
- INVARIANTS substrate-fact-introduction procedure: [`INVARIANTS.md`](../../INVARIANTS.md) §P1
Loading
Loading