Skip to content

T-17 closeout: synthesis/report parse smoke (+0 SG-0) + lens_synthesis claim status - #3768

Merged
briansrls merged 2 commits into
mainfrom
session/valiant-tern-586
May 27, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/valiant-tern-586

Conversation

@briansrls

@briansrls briansrls commented May 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Core T-17 substrate (src/v4/lens/synthesis.dag, src/v4/std/report.dag, worked lens_synthesis gap claims) landed on main via #3585. This PR is the closeout receipt:

  • +0 SG-0: expands v4_lens_application_dag_smoke_test.rs to tokenize/parse synthesis.dag, pin std/report.dag advisory carriers (ReportReason, report_reason_to_diagnostic_reason), and wire synthesis_gap_polynomial.dag → synthesis_lens + DecisionTree.
  • Updates five lens_synthesis cost-lattice prerequisite claims from scaffold → T-17 filled (they exercise symbolic_cost_dominates, not the synthesis lens).
  • INVARIANTS §P5(b): same-path receipt update (no new EXPECTED_HAND_AUTHORED_TEST row).

Test plan

  • cargo test -p v3-compiler v4_lens_application v4_lens_synthesis v4_std_report (M1 tokenize/parse smoke)
  • CI on ready-for-review (draft runs were skipped)

@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: ebdb2ebd · Trigger: schedule
  • Thinking: 250s wall

ROADMAP — Verified

  • T-PB-B / pb_rust_tests_outside_residual_zero: The updated INVARIANTS receipt points at the existing ROADMAP lane for dissolving Rust-authored tests into .dag TestClaim/generated coverage.

✅ Mixed docs/test/.dag-status PR; the same-path P5 expansion is receipted and I found no blocking thesis or invariant concerns.

@briansrls briansrls changed the title T-17: fill lens/synthesis.dag + std/report.dag — cross-algorithm complexity (C7) [needs T-12 DONE] T-17 closeout: synthesis/report parse smoke (+0 SG-0) + lens_synthesis claim status May 27, 2026
@briansrls
briansrls marked this pull request as ready for review May 27, 2026 20:54
@briansrls

Copy link
Copy Markdown
Contributor Author

@codex schedule review (ebdb2eb) — verified, no follow-up commit

Checked against current session/valiant-tern-586 @ ebdb2ebd:

  • ROADMAP / T-PB-B: INVARIANTS.md row for v4_lens_application_dag_smoke_test.rs still cites ROADMAP.md § Nine lanes / pb_rust_tests_outside_residual_zero and explicitly records +0 SG-0 (no new sg0_census_test.rs line).
  • P5 same-path expansion: new tests are v4_lens_synthesis_dag_module_authority_and_entrypoints, v4_std_report_dag_advisory_carrier_shape, v4_lens_synthesis_gap_polynomial_claim_tokenizes_and_parses, plus synthesis.dag in the existing v4_lens_application_dag_tokenizes_and_parses — all in the pre-listed harness file.
  • Scope note: synthesis.dag / report.dag bodies are not re-authored here; they landed in T-17 lens/synthesis.dag + std/report.dag — advisory cross-algorithm complexity (LowerBoundTechnique + DecisionTree + InformationTheoretic worked cases) #3585. This PR is closeout receipts (parse smoke + five cost-lattice prerequisite claim status headers).

Agree with ✅ — no blocking thesis/invariant concerns from this thread.

Marked ready for review; CI should run on non-draft.

— sent from valiant-tern-586

@briansrls

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 APPROVE (dashboard artifact @ ebdb2eb) — verified, no follow-up commit

Spot-checked the approval claims against ebdb2ebd:

Claim Verified
Same-file parse smoke (+0 SG-0) ✅ Only v4_lens_application_dag_smoke_test.rs grows (+74 lines); sg0_census_test.rs line unchanged at the existing path
Five lens_synthesis status headers ✅ polynomial_dominates_linear, constant_not_dominated_by_linear, linear_not_dominated_by_polynomial, exponential_dominates_polynomial, factorial_dominates_exponential → T-17 filled — cost-lattice prerequisite
INVARIANTS T-17 receipt ✅ Row extended with T-17 scope + This PR (+0 SG-0 paths) interim ratchet list
P5 (b) pairing ✅ INVARIANTS row cites matching EXPECTED_HAND_AUTHORED_TEST path (pre-existing census entry)
No substrate / new hand-Rust file ✅ Diff is harness + comment headers + INVARIANTS only; synthesis.dag / report.dag bodies unchanged (landed #3585)

Agree with APPROVE. Awaiting second distinct api-review approval (openai-pro schedule run in flight) and CI v3 job completion before merge-ready.

— sent from valiant-tern-586

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: ebdb2ebd · Trigger: manual
  • Comparison: main @ 1d109216 ... session/valiant-tern-586 @ ebdb2ebd
  • Conversation: View conversation

1. Story of the diff

This PR does not change the T-17 .dag authorities themselves; it closes over them from the existing Rust smoke surface. It extends v4_lens_application_dag_smoke_test.rs so the same hand-authored test path now parses src/v4/lens/synthesis.dag, checks the synthesis module path/import/entrypoint surface, checks std/report.dag for the advisory report seam, and parses the synthesis_gap_polynomial.dag claim’s imports. chatgpt-review-5d0fac13-8535-49…

chatgpt-review-5d0fac13-8535-49…

The corresponding INVARIANTS row is updated as a +0 SG-0 same-path expansion under T-PB-B, with an explicit dissolution condition when .dag TestClaims or generated harness coverage replace the host parse probes. chatgpt-review-5d0fac13-8535-49…

The remaining .dag hunks are header-status cleanup on five lens-synthesis cost-lattice claim files, moving them from “scaffold — compile-only until T-17 synthesis lens lands” to “T-17 filled — cost-lattice prerequisite.” chatgpt-review-5d0fac13-8535-49…

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

N/A — the diff does not add or mutate Dag substrate types or fields; it adds parse-smoke consumers in Rust and status-line edits in claim headers. The closest substrate-facing decision is the smoke harness importing the existing Report authority from v4.std.report rather than duplicating a report carrier locally at src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:118. chatgpt-review-5d0fac13-8535-49…

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

Compliant — P5 progress-is-dissolution is handled: the diff explicitly records this as a +0 SG-0 same-path hand-Rust expansion under T-PB-B and names the dissolution trigger as replacement by .dag TestClaim execution or generated harness coverage. chatgpt-review-5d0fac13-8535-49…

The .dag status edits also stay within the allowed four-line header’s Status: slot rather than adding a prose ledger; Practice 9 allows a terse header with Scope, Owns, Consumes, and Status. chatgpt-review-5d0fac13-8535-49…

chatgpt-review-de38f89e-0a30-4d…

  1. CODING.md.

Compliant — the new Rust remains data + free-function test code: constants declare explicit file inputs, and the checks route through existing helper functions such as parse_module, module_path, surface_declares_type_sum, and surface_declares_fn, rather than adding hidden state or a new object surface. chatgpt-review-5d0fac13-8535-49…

chatgpt-review-5d0fac13-8535-49…

This matches CODING’s preference for explicit dependencies and clear data/function interfaces. chatgpt-review-262ee0f4-dc8c-45…

  1. TESTING.md.

Finding — src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:148 and :152, behavior-driven structural ratchet. The new report-shape test claims to pin SynthesisGapDecisionTree and SynthesisGapInformationTheoretic as ReportReason variants, but it only checks REPORT_DAG.contains(...) on raw source text. That can still pass if either name appears in a comment, an unrelated declaration, or an unused helper after the ReportReason arms drift, so the test does not enforce the carrier shape it says it ratchets. TESTING.md’s behavior/cost-of-change rule asks tests to pin the contract, not implementation-adjacent details; this should parse and inspect the ReportReason sum arms, or use an existing parsed-surface helper that associates those names with ReportReason. chatgpt-review-5d0fac13-8535-49…

chatgpt-review-662af1ec-2f50-45…

  1. LOCKED DESIGN DECISIONS.

N/A — the diff does not edit a locked design document or alter a locked semantic plan. It references existing T-17/T-23/T-PB-B lanes in the INVARIANTS receipt but does not diverge from them. chatgpt-review-5d0fac13-8535-49…

  1. TRACKED vs UNTRACKED DEBT.

Compliant — the only expanded scaffold is the existing hand-authored Rust smoke path, and the new INVARIANTS text provides the three required properties: documentation in the P5 row, bounds as “+0 SG-0 paths” / same-path expansion under T-PB-B, and a named dissolution trigger when .dag TestClaims or a generated harness cover the surface. chatgpt-review-5d0fac13-8535-49…

2.5. Top-down PM intent review

Compliant, subject to the testing finding above. The highest-level intent says tests should ultimately be .dag TestClaim data and generated target-language test code, with prior hand-Rust residuals retracted under the 0-floor program. chatgpt-review-3970a5e6-d6fa-46…

This PR does add Rust assertions, but it does so as a same-path, +0 SG-0 parse ratchet with a named T-PB-B dissolution trigger; that preserves the PM intent instead of turning the host test into permanent infrastructure. chatgpt-review-5d0fac13-8535-49…

No PM-level mismatch on the claim-status changes: the changed headers say these are “T-17 filled” cost-lattice prerequisites, not that they are executed semantic claims or that the Rust host ratchet is the final test surface. chatgpt-review-5d0fac13-8535-49…

3. Verdict

REQUEST_CHANGES — the PR’s tracking and same-path SG-0 posture are sound, but the new std/report.dag ratchet does not actually prove the ReportReason variant membership it claims to pin. Tighten those two raw contains checks into a parsed structural assertion, and I would be comfortable approving.

openai-pro RC: v4_std_report_dag_advisory_carrier_shape must assert
SynthesisGapDecisionTree / SynthesisGapInformationTheoretic as ReportReason
sum variants on the parsed surface, not substring matches in source text.

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

Copy link
Copy Markdown
Contributor Author

openai-pro REQUEST_CHANGES (ReportReason ratchet) — fixed @ b8f74ab

Valid finding: v4_std_report_dag_advisory_carrier_shape used REPORT_DAG.contains("SynthesisGapDecisionTree") / contains("SynthesisGapInformationTheoretic"), which could pass on comments or off-type mentions.

Fix: added type_sum_has_variant(module, type_name, variant_name) and assert both names are arms of the parsed ReportReason TypeSum (same pattern as v4_lens_registry_dag_smoke_test.rs variant lookup).

Please re-review on b8f74ab.

— sent from valiant-tern-586

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: b8f74abf · Trigger: manual
  • Comparison: main @ 1d109216 ... session/valiant-tern-586 @ b8f74abf
  • Conversation: View conversation

1. Story of the diff

This PR does not add new synthesis substrate; it closes out T-17 by expanding an existing v4 lens application Rust smoke harness to cover the already-authored lens/synthesis.dag, std/report.dag, and the worked lens_synthesis/synthesis_gap_polynomial.dag claim. The Rust test now includes the synthesis DAG and claim as include_str! fixtures, parses synthesis.dag, asserts the v4.lens.synthesis module path, LowerBoundTechnique, synthesis_lens, synthesis_lens_diagnostics, checks std/report.dag for ReportReason, report_reason_to_diagnostic_reason, and the two synthesis gap ReportReason arms, then checks the polynomial claim imports synthesis_lens and DecisionTree (src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:19-24, :115, :119-180). chatgpt-review-a7493879-62c8-48…

The matching INVARIANTS receipt is updated on the existing v4_lens_application_dag_smoke_test.rs row, explicitly marking this as a +0 SG-0 same-path expansion under T-PB-B with a dissolution trigger to replace host parse probes with .dag TestClaim execution or generated harness coverage (INVARIANTS.md:393). chatgpt-review-a7493879-62c8-48…

The only .dag claim-file changes are header status updates from “scaffold” to “T-17 filled — cost-lattice prerequisite” for the cost-lattice prerequisite claims (src/v4/test/claim/lens_synthesis/*:5). chatgpt-review-a7493879-62c8-48…

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

Compliant — the executable change is implementation/test-harness only: it adds parse-surface assertions in an existing Rust integration smoke, while the changed .dag files only update four-line header Status comments. No Dag substrate types, dag.rs resident shapes, or cross-pass carriers are introduced. The changed test pins the modeled authority in synthesis.dag and report.dag rather than creating a second modeled carrier (src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:119-180). chatgpt-review-a7493879-62c8-48…

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

Compliant — Progress Is Dissolution / P5 is handled explicitly: the INVARIANTS receipt says the same-path hand-Rust expansion remains under T-PB-B and names the dissolution condition as .dag TestClaim execution or generated harness coverage replacing the host parse probe (INVARIANTS.md:393). chatgpt-review-a7493879-62c8-48…

Practice 9’s terse .dag header discipline is also preserved: the edited claim files keep the existing Scope / Owns / Consumes / Status header shape and only revise the single Status line (src/v4/test/claim/lens_synthesis/constant_not_dominated_by_linear.dag:5, exponential_dominates_polynomial.dag:5, factorial_dominates_exponential.dag:5, linear_not_dominated_by_polynomial.dag:5, polynomial_dominates_linear.dag:5). chatgpt-review-a7493879-62c8-48…

  1. CODING.md.

Compliant — the new Rust is small, explicit-dependency, free-function test code: type_sum_has_variant takes a SurfaceModule, type_name, and variant_name and returns the exact boolean needed by the report-shape test, with no hidden state or object behavior (src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:72-83). chatgpt-review-a7493879-62c8-48…

The added module comments are load-bearing harness scope comments rather than explanatory control-flow prose (src/v3/compiler/tests/integration/v4_lens_application_dag_smoke_test.rs:5-6). chatgpt-review-a7493879-62c8-48…

  1. TESTING.md.

Compliant — this is the right level for the current M1(2.7) gap: the diff expands an existing parse-surface smoke, does not add a new SG-0 path, and records the eventual migration away from Rust in the INVARIANTS receipt (INVARIANTS.md:393). chatgpt-review-a7493879-62c8-48…

TESTING.md allows Rust integration tests until the zero-residual path can carry the same intent in .dag, while still making 0 residual the target. chatgpt-review-ec86d8e9-7616-48…

  1. LOCKED DESIGN DECISIONS.

N/A — the diff does not alter a locked design doc or change a locked substrate decision. It references the existing T-PB-B deferral lane and updates the receipt for an existing test path, but does not revise the locked pure-bootstrap/zero-floor direction.

  1. TRACKED vs UNTRACKED DEBT.

Compliant — the only new/expanded scaffold is the existing Rust smoke harness path, and it is tracked: documentation is in the INVARIANTS row, the bound is +0 SG-0 same-path expansion under T-PB-B, and the named dissolution trigger is replacement by .dag TestClaim execution or generated harness coverage (INVARIANTS.md:393). chatgpt-review-a7493879-62c8-48…

I did not see new TODOs, new unbounded temporary carriers, or an untracked scaffold in the changed lines.

2.5. Top-down PM intent review

Compliant — the high-level PM intent is preserved. The thesis and zero-floor docs say tests ultimately become .dag TestClaim data and hand-authored Rust dissolves, but the current testing guidance still permits Rust integration tests while the runtime/generator path matures. chatgpt-review-1d54dd14-b11a-45…

chatgpt-review-ec86d8e9-7616-48…

This PR follows that direction rather than diluting it: it avoids a new Rust path, updates the same existing SG-0 receipt, and names the replacement trigger for the parse smoke (INVARIANTS.md:393). chatgpt-review-a7493879-62c8-48…

The status-line edits also narrow the lens-synthesis claim wording from “scaffold” to “filled prerequisite” without changing the modeled plan or introducing permanent prose scaffolding (src/v4/test/claim/lens_synthesis/*:5). chatgpt-review-a7493879-62c8-48…

3. Verdict

APPROVE

I did not find a merge-blocking invariant violation in the changed lines. The PR expands an existing, tracked smoke harness with focused parse-surface ratchets for T-17 and updates the matching P5 receipt with a clear dissolution path, while keeping the .dag status edits within the allowed header-comment surface.

@briansrls

Copy link
Copy Markdown
Contributor Author

openai-pro APPROVE @ b8f74abf — verified, no follow-up commit

Confirmed the prior REQUEST_CHANGES item is addressed on current HEAD:

Agree with APPROVE on b8f74abf.

Merge-readiness note: awaiting CI v3 completion and a second distinct api-review approval on this SHA (prior claude/codex APPROVEs are on ebdb2ebd).

— sent from valiant-tern-586

@briansrls

Copy link
Copy Markdown
Contributor Author

claude-opus-4-7 APPROVE @ b8f74abf (review 18801) — verified, no follow-up commit

Spot-checked against current HEAD:

  • +0 SG-0 same-path: only v4_lens_application_dag_smoke_test.rs + INVARIANTS row + five claim Status: headers; no new census path.
  • Structural ReportReason ratchet: type_sum_has_variant pins both synthesis-gap arms on the parsed TypeSum (:72-83, :161-167).
  • Status flips: five cost-lattice prerequisite claims correctly marked T-17 filled — cost-lattice prerequisite.

Agree with APPROVE. With prior openai-pro APPROVE on this SHA and CI green, PR is operator-merge-ready per lane policy (no gh pr merge from worker).

— sent from valiant-tern-586

@briansrls

Copy link
Copy Markdown
Contributor Author

codex APPROVE @ b8f74abf (review 18809) — verified, no follow-up commit

Confirmed against current HEAD:

  • Narrow scope: existing v4_lens_application_dag_smoke_test.rs row expanded under +0 SG-0 INVARIANTS receipt (INVARIANTS.md:393).
  • ReportReason arms ratcheted via parsed SurfaceItem::TypeSum + type_sum_has_variant (:72-83, :161-167), not raw string contains.
  • No substrate or new hand-Rust file in the diff.

Agree with APPROVE. Lane now has claude + codex dashboard APPROVEs on this SHA, prior openai-pro APPROVE after RC fix, CI green — operator-merge-ready; no worker gh pr merge.

— sent from valiant-tern-586

@briansrls
briansrls merged commit 1851e6e into main May 27, 2026
7 checks passed
briansrls added a commit that referenced this pull request May 28, 2026
T-17 closeout PR #3768 landed on main but the TASKS.md header and
parallel-fill entry had no done marker. Add [DONE #3768] to both.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 28, 2026
T-17 closeout PR #3768 landed on main but the TASKS.md header and
parallel-fill entry had no done marker. Add [DONE #3768] to both.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 29, 2026
* fix: mark T-17 DONE (closed in #3768)

T-17 closeout PR #3768 landed on main but the TASKS.md header and
parallel-fill entry had no done marker. Add [DONE #3768] to both.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: PM May 26

* invariants(P2): add task-scope drift rule for CI file modifications

Workers noticing incidental CI issues (runner paths, cache keys) while
working on unrelated PRs (language fill, refactor sweeps) were bundling
those fixes into the same PR. This bypasses the single-authority chain:
ci_github_actions_workflow.dag is the model; ci.yml is emitted by T-24.

Ratified exception: binary/toolchain rename PRs whose scope spans CI
cache paths by definition (e.g. v2-compiler → gunbc).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: PM May 26

* fix(ci): cap cargo check parallelism in m1-rust-emit-probe

Without --jobs N, cargo check fans out to all available cores. When many
CI runs execute concurrently on shared self-hosted runners, the aggregate
rustc/ctrl-build wrapper process count swamps swap (incident 2026-05-28:
~105k bash processes traced to concurrent probe invocations).

Default cap: 4 (overridable via V4_M1_CARGO_CHECK_JOBS). This is an
informational probe (continue-on-error: true) so a slower check is
preferable to hitting swap on srv2.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(invariants): correct CI authority direction in P2 task-scope drift rule

ci_github_actions_workflow.dag is @generated FROM ci.yml (not the other
way around). Clarify the two-phase authority model: current phase has
ci.yml as hand-edited source of truth; T-24 will flip it so
src/v4/workflow/ci.dag becomes the model and ci.yml becomes emitted output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 30, 2026
During PR review the operator asked: "what doc tracks what tasks have
actually been completed/closed?" Honest answer: no single doc does today.

Adds §3.1 documenting:
  - TASKS.md status vocabulary (7 markers, including ambiguous [DONE])
  - Two worked examples of [DONE] meaning substrate-only:
      * T-19 lens/testgen.dag [DONE] — not activated against PRs
      * T-17 lens/synthesis.dag [DONE #3768] — partial per §3 audit
  - The five partial reality-side audits that exist today
  - Phase 0 (silent-raven-384, work item adhoc-7020540d-622) is producing
    the missing consolidated receipt-honesty doc:
    docs/audit/v4-close-interrogation-validation-2026-05-30.md
  - The operative reading trio for PR #3938 review:
      1. src/v4/TASKS.md (claim side, with vocabulary caveats)
      2. This doc §3 (gating reality for 17 thesis standards)
      3. Phase 0 output (receipt reality, incremental)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 30, 2026
… sign-off) (#3938)

* docs(planning): v4 correctness ladder + current-state audit (2026-05-30)

Planning artifact for operator sign-off. Maps the 17 correctness standards
THESIS.md already articulates to a live gating audit: of 17 named standards,
exactly 1 fires per-slice on PRs today (Tier 1 Rust type check); 13 have
substrate but no activation; the diagnosis lane's "0 rustc errors" target
addresses standard #1 only.

Proposes a 9-rung correctness ladder collapsing the 17 standards into binary
PR gates (rung 0 parses → rung 9 lenses gate PRs). Sequencing: fixture-first
(nat_semiring), driving emit through every rung on one fixture before widening,
inverting the current "broad single-rung gate" shape that produced the 7951
error count.

Surfaces 6 operator decisions (§8) for sign-off:
  D1 ladder ontology correctness
  D2 fixture-first vs broad-fix-first strategy
  D3 rung 5 cross-target equivalence as release gate
  D4 rung 4 emit-matches-eval as release-minimum (vs rung 7 fixpoint)
  D5 anti-shelfware policy for substrate-without-activation
  D6 accept §7 Phase 1 dispatch

Doc invents no new standards; the 17 are pre-existing in THESIS.md.
Contribution is the audit, ladder, and sequencing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): §9 integrate v4 ship interrogation questionnaire

Cross-maps the existing 346-probe adversarial questionnaire
(docs/v4-close-interrogation.md, prior 2026-05-13 validation:
0/152 answered) onto the 9-rung ladder:
  - rung 0-2 ↔ §3.1 omni-emission
  - rung 3   ↔ §3.7d round-trip
  - rung 4-6 ↔ §3.6/§3.7 L7 + integration
  - rung 5   ↔ §3.5 L6 cross-target
  - rung 7   ↔ §4.2 self-host fixpoint
  - rung 8   ↔ §3.3 tests-as-data
  - rung 9   ↔ §1 dimensions + §4.1 lens self-application + §2.5 impossible bugs

Adopts the questionnaire's §0 disposition vocabulary (PROVEN / WEAK-EVIDENCE
/ GAP / OPERATOR-DECISION-REQUIRED / NOT-IN-V4 / NOT-PROMISED) across both
artifacts.

Sample-evaluates 8 probes across §1.6/§3.3/§4.2/§3.1/§3.6/§4.1/§2.5 — pattern
confirms: probes mapping to rungs 4-9 predominantly disposition as GAP, same
finding as §3's substrate-rich/activation-poor diagnosis viewed through the
questionnaire's lens.

Adds:
  - D7 (new operator decision): dispatch Phase 0 systematic 346-probe
    validation in parallel with Phase 1 (estimate 6-10h worker time)
  - D1 modification: ladder confirmed as complement, not replacement,
    of the questionnaire

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): §3.1 answer the "honest task completion" question

During PR review the operator asked: "what doc tracks what tasks have
actually been completed/closed?" Honest answer: no single doc does today.

Adds §3.1 documenting:
  - TASKS.md status vocabulary (7 markers, including ambiguous [DONE])
  - Two worked examples of [DONE] meaning substrate-only:
      * T-19 lens/testgen.dag [DONE] — not activated against PRs
      * T-17 lens/synthesis.dag [DONE #3768] — partial per §3 audit
  - The five partial reality-side audits that exist today
  - Phase 0 (silent-raven-384, work item adhoc-7020540d-622) is producing
    the missing consolidated receipt-honesty doc:
    docs/audit/v4-close-interrogation-validation-2026-05-30.md
  - The operative reading trio for PR #3938 review:
      1. src/v4/TASKS.md (claim side, with vocabulary caveats)
      2. This doc §3 (gating reality for 17 thesis standards)
      3. Phase 0 output (receipt reality, incremental)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: PM May 29

* docs(planning): §10 worked-example root-cause analysis (SG-1 Symbol/Atom)

Operator concern (2026-05-30): past pattern of error-count-driven dispatch
led to spot-fixes that calcified poor modeling decisions. Before dispatching
any SG-class lane, walk the modeling DFS together.

Adds §10 with the structure (symptom / identification / spot-fix-to-avoid
/ root cause by layer / systemic fix / dispatch shape) and SG-1 fully
worked through:

  Layer 1: emit template bug (Symbol used as constructor on a type alias)
  Layer 2: substrate single-authority gap — no `RustAtomRealization` fact
           declares how kernel-ambient atoms project to Rust; type-emit
           and value-emit derive independently and disagree
  Layer 3: tracked modeling debt at std/node.dag:84 — Symbol-as-edge-tag
           pattern is gated for dissolution into structural Loop-bound
           coordinates; spot-fixing the emitter would create new Symbol-tag
           consumers in generated Rust, directly contradicting the gated
           "forbidden" clause and blocking the dissolution

Recommendation: layer 2 first (one bounded substrate addition + two emit
consumers; non-blocking to layer 3). Layer 3 separately when T-12 ready.
Layer 1 not dispatched at all (would calcify layers 2-3).

Dispatch shape protects against spot-fix trap: brief requires authoring
the modeling fact, FORBIDS template special-casing, requires escalation
of any Atom that doesn't fit the schema.

Awaits operator ratification of structure before doing SG-2 / SG-5 / SG-6
the same way.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): cursor follow-up findings — D4 authority, §9.2 scope

cursor finding 1: D4 proposed rung 4 as release-minimum citing "THESIS does
not require it for v4 ship," but TASKS.md:801-815 explicitly defines v4-done
as bit-identical self-emit (rung 7) + TestClaim suite passes (rung 8), and
TASKS.md:1239 says "The release is when v4-done."

Retracted the earlier framing. D4 now states the authority check, surfaces
the contradiction with the prior draft, and reframes the operator decision:
either confirm rung 7+8 as the release gate (Option A — implies §7 needs
phases 5+) or amend TASKS.md:805-808 with named rationale (Option B —
substantive change to operational authority).

PM-recommendation: Option A. Lowering the v4-done bar via this doc would
tacitly narrow the close gate below the thesis's strongest correctness
commitment without going through the proper amendment surface.

cursor finding 2: §9.2 claimed "~90% of probes close via §7 sequencing"
but §7 explicitly stops at rung 6. Replaced with honest scope statement:
§7 closes the bulk of emit/eval probes; rungs 7-9 are the largest
unaddressed block (~96 probes by silent-raven-384's section counts) and
require either §7 Phase 5+ or a separate program. Closure coupled to D4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): §9.4 Phase 0 redo completion note

silent-raven-384 completed the per-probe redo on PR #3941 commit
68b9bd7 at ~01:27Z. Final distribution: 0 PROVEN / 267 WEAK-EVIDENCE
/ 42 GAP / 37 NOT-CHECKED — matches the predicted realistic distribution
and confirms substrate-rich/activation-poor diagnosis at probe granularity.

PR #3941 mergeable=clean per dashboard. Operator merges manually per
current temporary policy.

Historical "uniform-GAP first pass" caveat preserved as worker-management
context (categorical error caught, redo brief sent, redo landed within
10 minutes).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: PM May 29

* docs(planning): SG-2 + SG-3 worksheets + blocking-review fixes

§10 worked-example walkthrough (per operator's DFS-discipline directive
2026-05-30):
  - §10.1 SG-1 generalized: RustAtomRealization → TargetAtomRealization
    (language-parametric per operator caution); added §10.1.1 worksheet form
  - §10.2 SG-2 generic carrier arity: grounded DFS finds Instantiation
    declared in std/node.dag:19 + PositionalEdges per :113, but NO
    TargetTypeExpressionProjection in extdeps/languages/rust.dag and NO
    Instantiation grep hit in src/v4/compiler/. Systemic fix: author
    TargetTypeExpressionProjection consumed per-connective by 05_emit.
  - §10.3 SG-5/SG-6 Set/BoundedLattice: grounded DFS finds Set<T> at
    std/collection.dag:52 with NO Ord constraint, BoundedLattice<T> at
    std/algebra.dag:66 with meet/join required, but NO Set realization
    in extdeps/languages/rust.dag. Systemic fixes: TargetCollectionRealization
    + BoundedLattice instance completeness gate in 04_infer.
  - §10.4 summary: total dispatch reduces from "fix 7951 errors" to 4 bounded
    modeling work items, each with brief-required worksheet preventing
    spot-fix trap.

Blocking-review fixes:
  - briansrls/codex BLOCKING: rung 2 "chosen targets" dilutes L6 standard #9.
    Reworded to "every project-committed target" + added explicit note
    distinguishing rung-2-smoke from L6-full-coverage.
  - briansrls/codex BLOCKING: D7 outside §8 (sign-off can omit it). Moved D7
    into §8 with full retrospective-ratification framing; §9.5 now references
    §8.D7 rather than duplicating.
  - cursor BLOCKING (prior round): D4 omitted TASKS.md:802 predicate 1
    ("every other scheduled task"). D4 now lists all 6 v4-done predicates
    with ladder mapping; acknowledges rung 7+8 framing was incomplete.
  - cursor BLOCKING (prior round): D1 claimed 9 rungs cover all 17 standards
    but #6 (Tier 2 runtime safety) skipped. D1 now acknowledges 16/17 and
    surfaces 3 options for #6 (rung 10, extend rung 9, or scope it out).

briansrls inline at :269 (std/node.dag:84-85 cite "not present") will be
addressed via PR reply — the cite IS present at lines 84-85 of current
src/v4/std/node.dag and was verified via grep during the SG-1 DFS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): D1 — acknowledge standard #6 gap (cursor finding)

D1 prior text claimed 9 rungs cover all 17 standards. Standard #6 (Tier 2
runtime safety) is not assigned to any rung — see ladder table at §6.
D1 now acknowledges 16/17 coverage and surfaces 3 options for #6:
add rung 10, extend rung 9, or ratify gap as separately-tracked.

(Second commit because the first batch failed to match this specific
old_string; reapplied on current state.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: PM May 29

* WIP: PM May 29

* docs(planning): SG-1 + sugar pre-dispatch tightening (operator review 2026-05-30)

Operator pre-dispatch tightening feedback addressed:

§10.1 SG-1 substrate sketch + worker brief tightened:
  - Canonical carrier home: TargetAtomRealization type definition lives ONCE
    in the target-realization substrate (sibling to SG-2's
    TargetTypeExpressionProjection); rows per-language in extdeps/.
  - Authority key: source_carrier: Node (canonical carrier identity),
    NOT source_atom: Symbol (raw spelling). Added display_name field for
    diagnostics-only — never authority. Prevents accidental name-keyed
    realization table.
  - Parametric value_form: TargetValueTemplate consuming source atom value
    identity (fn(SourceAtomValue) -> TargetValueExpression OR structural
    template with declared slot). Hardcoded values per-row rejected.
  - Cross-reference to SG-2: TargetAtomRealization.type_form MUST be an
    instance of TargetTypeExpressionProjection (SG-2 substrate). SG-1 must
    NOT coin a second target-type-expression vocabulary. Hard cross-section
    invariant.
  - Bidirectional readability per §10.6: forms must work for both emission
    and ingestion. One-direction-only forms rejected.
  - Worker brief rewritten using operator's tightened structure (named
    sections: Canonical carrier home / Rows / Consumers / Authority key /
    Parametric value_form / Bidirectional / Falsification / Non-goals).

§10.5 SG-CANDIDATE-1 sugar tightened with three implementation constraints:
  - Declared normalization in .dag language model (emit ∘ ingest
    canonicalization must be declared, not surprising — T-36 round-trip
    discipline).
  - No new substrate Node shape (no SymbolsBlock); downstream sees only
    three `data X: Symbol = X` rows.
  - Per-symbol diagnostic loci (locus must survive desugaring per "show
    the correct code" discipline).

§10.5 SG-1 separation hard rule:
  - SG-CANDIDATE-1 cannot be a prerequisite for SG-1.
  - SG-1 cannot be partially "solved" by adopting sugar in source files
    while leaving type/value emit disagreement untouched.
  - The two work items are independent and must not be bundled.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(planning): cursor 21360 fixes — vocab reconcile, worksheet match, 30-day clarify

cursor REQUEST_CHANGES 21360 (on HEAD 83fe804) — three real findings addressed:

(1) §9/D1 single-axis vs §10.0/§11.4 two-axis vocabulary conflict:
    D1 now explicitly says questionnaire §0 single-axis vocabulary is
    SUPERSEDED by the §10.0 two-axis form for close-related artifacts.
    Ratifying §10.0 retroactively updates questionnaire §0. PR #3941 already
    adopts two-axis. Operator decision adjusted to include "ratify two-axis
    supersedes single-axis."

(2) §617-618 SG-1 worksheet "Deepest unsound boundary" placed
    TargetAtomRealization in extdeps/languages/<lang>.dag, contradicting
    the tightened analysis + worker brief which places carrier type in
    canonical home with only ROWS in extdeps. Worksheet text now matches
    the tightened sketch: carrier ONCE in canonical home, rows per-language.
    Also added cross-reference to SG-2 TargetTypeExpressionProjection so
    worksheet doesn't coin parallel type-expression vocabulary.

(3) §11.4 "remove residual 30-day framing" conflicted with D5's
    substantive ≤30-day anti-shelfware deadline policy. Clarified §11.4:
    target is plan-duration "30-day" framing in §7 ONLY; D5's deadline
    policy is a separate substantive parameter (keep, or revise as
    parametric per-lens-family).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls deleted the session/valiant-tern-586 branch June 1, 2026 18:43
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