Skip to content

Tighten SDLC design gaps for dry-run deployment readiness - #66

Merged
briansrls merged 1 commit into
mainfrom
claude/sdlc-design-gaps-ST6Kf
Feb 21, 2026
Merged

briansrls merged 1 commit into
mainfrom
claude/sdlc-design-gaps-ST6Kf

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Add dry-run readiness analysis (Sections 7-9) to e2e-gap-analysis.md:

  • Define what a successful local dry-run means (Section 7.1)
  • Document the dual-execution-path problem: Rust worker vs compiled DAG (7.2)
  • Gap-by-gap blocking assessment with specific file:line references (7.3-7.4)
  • Identify divergent pipeline definitions and resolution plan (7.5)
  • Observability and test coverage gap matrices (7.6-7.7)
  • Concrete 5-step unblocking plan for minimum viable dry-run (8.1)
  • Risk register for dry-run work (Section 9)

Add Sprint 11.5 (DR-1..DR-5) to tasks.md for dry-run unblocking
work that bridges Sprint 11 (done) and Sprint 12 (domain interfaces).

https://claude.ai/code/session_01WVFSaJnLad8x7qbXATuDkk

Add dry-run readiness analysis (Sections 7-9) to e2e-gap-analysis.md:
- Define what a successful local dry-run means (Section 7.1)
- Document the dual-execution-path problem: Rust worker vs compiled DAG (7.2)
- Gap-by-gap blocking assessment with specific file:line references (7.3-7.4)
- Identify divergent pipeline definitions and resolution plan (7.5)
- Observability and test coverage gap matrices (7.6-7.7)
- Concrete 5-step unblocking plan for minimum viable dry-run (8.1)
- Risk register for dry-run work (Section 9)

Add Sprint 11.5 (DR-1..DR-5) to tasks.md for dry-run unblocking
work that bridges Sprint 11 (done) and Sprint 12 (domain interfaces).

https://claude.ai/code/session_01WVFSaJnLad8x7qbXATuDkk
@briansrls
briansrls merged commit cf3d119 into main Feb 21, 2026
1 check passed
briansrls added a commit that referenced this pull request May 10, 2026
Promotes 4 §1.8 rows with PR-evidence on main. PB Mgr post-merge
ledger-receipt sync per Director ratification at gunbc#828
(c#4415884211; same pattern as PR #2399).

Promotions:
- #6  lens_testgen_dot_rs_retired                     DECLARED -> CONSUMER_LANDED + PASSING
       (PR #2392 producer + PR #2594 regression-guard; lens_testgen.rs
        absent on disk; consumer-side ratchet test landed)
- #33 bridge_canonical_lens_name_dispatch_retired     DECLARED -> CONSUMER_LANDED
       (PR #2449)
- #34 bridge_include_str_side_channels_retired        DECLARED -> CONSUMER_LANDED (slice scope)
       (PR #2459 pipeline.dag slice; standalone closure brief #1976
        STOP-BLOCKED on Substrate T1)
- #66 lens_producer_retirement_executable_witness     Notes-update only
       (PR #2595 substrate-impl landed: TestRunner executes .dag PB
        census claim and reports residual; closure-receipt remains
        F3-DEFERRED per PB Mgr disposition)

Excluded (out of charter):
- #31 -> Substrate (#2068)
- #36 -> Verification (#2075)

Excluded (T-V2-Retirement HELD on PM-authored S-1 brief #1974):
- #41 / #42 / #60 / #71

Pre-authored brief at docs/briefs/r3-pb-status-drift-sweep-post-tlp.md
covers the post-T-LP cascade wave (G5/G7/G8).

Closes PB Mgr drift-sweep obligation for already-merged evidence;
G5/G7/G8 remain queued per pre-authored brief.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 10, 2026
Per cursor/composer-2 review on PR #2631: brief table + dispatch-trigger
parenthetical labeled lens_producer_retirement_executable_witness as
gate #64. Authoritative §1.8 row is #66; #64 is
substrate_gap_reflection_closure_closed (separate predicate).

Aligns brief with r3-program-plan.md §1.8 row identity per
INVARIANTS.md P1 (single authoritative facts).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 10, 2026
Per codex/codex-default review on PR #2631 (REQUEST_CHANGES, review
9150): leaving row #66 at DECLARED while the Notes cell describes an
executable consumer that runs through TestRunner contradicts the §1.7
status taxonomy and INVARIANTS P2 single-authority discipline.

Promoting #66 to CONSUMER_LANDED with explicit PASSING gate on
residual = 0 (cascades from T-LensProducer-Retirement gates
#5 + #6 + #7). The F3 deferral is on PASSING, not CONSUMER_LANDED;
the executable receipt
src/v3/compiler/tests/integration/r3_lens_producer_retirement_executable_witness_test.rs
already exists and runs the .dag PB census claim through TestRunner.

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

* docs(audit): land R-3 + R-7 ratifications (T-Tier3 perf budget)

§5.1 designation in canonical-bench-host-decision-matrix: Option A
ubicloud-standard-2 ratified 2026-05-08 per PB Manager (warm-dove-618);
Director ratification at gunbc#828 c#4403509523.

§2 capture procedure: multi-run discipline addendum — N=5 preferred,
median-of-medians for median_ns, max-p99-across-runs for p99_ns,
per-run intermediates committed alongside final tier3_baseline.json.

Both lines unblock #2204 slice dispatch (Substrate-side PerfWithinBaseline
variant + PerfBaselineMeasurement carrier); PB consumer slice queues
post-#2204 land.

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

* PB Item 5 brief — encode substrate disposition (#2068 P1 RATIFIED)

Substrate Mgr (warm-wolf-698) ratified §7.3 disposition at gunbc#2068
c#4411574142: shape (b) CensusSubsetCount filter with closed predicate
BinShimFilesSubsetPredicate, mirroring existing LensProducerFilesSubsetPredicate
precedent. Per feedback_strict_mirror_vs_novel_substrate_fact, strict-mirror
ratifies directly (no canvas needed).

Updates r3-pb-binshim-retirement-worker.md:
- New §"Substrate landings (locked shape)" with the 4 required artifacts
  (substrate marker type + value, runtime predicate body, dispatch branch).
- §7.3 acceptance now authorable; locked TestClaim shape recorded.
- Dispatch precondition (5): unauthorable → RESOLVED.
- STOP condition: §7.3 disposition not-yet-live → drift-detection.
- Status header: PROPOSAL → READY-FOR-DISPATCH posture (pending only the
  standard R2/R2-Evaluator close signal; both Item-4 sub-gates met via
  PR #2282 / #2227 close).

Bin-shim file inventory at main 5a13ed8: 9 files in src/v3/compiler/src/bin/;
closure when CensusSubsetCount predicate count == 0.

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

* WIP: R3 PB Mgr — lane through R3 close

* brief: clarify §7.3 TestClaim is zero-only (not schedule-bound)

Addresses non-blocking improvement on PR #2334 (codex review sha=68977425):
the prior wording called CensusSubsetCount a schedule-bound gate, but the
runtime predicate (test_runner.rs:3290-3296) is zero-only — Pass iff
count==0. Interim per-PR shrink receipts are PR-level milestones outside
this TestClaim, not TestClaim verdicts.

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

* brief: reconcile §"Substrate landings" with Non-goals (PB strict-mirror authoring authorized post-#2068)

Addresses non-blocking improvement on PR #2334 (codex review sha=363cf799):
the new §"Substrate landings (locked shape)" worker-owned list contradicted
the unchanged "out of scope" entries that still said PB lane does not author
§7.3 substrate shape.

Resolution: per #2068 c#4411574142 ratification + feedback_strict_mirror_vs_
novel_substrate_fact, strict-mirror declarations (mirroring the existing
LensProducerFilesSubsetPredicate precedent) are PB-lane-authorable. The
non-goal still applies to *novel* shape (extra fields, alternative
coproducts) which would re-escalate to Substrate Mgr.

Updates:
- "PB does not own and must not edit" entry (line 29): clarifies shape
  question is Substrate-territory but strict-mirror authoring is authorized.
- Non-goals (line 155): same reconciliation; novel shape still gates back
  to Substrate Mgr.

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

* PB Item 5 follow-on brief — batch retirement for 8 remaining bin-shims

Director re-task at gunbc#828 c#4413892216 Task A: author per-shim retirement
worker briefs for the 9 bin-shims; 1 covered by gate #7 (warm-crab-600 working
regen_lens.rs); 8 unscoped (emit_method_template_projection, r1c_e_emit_gates,
regen_bootstrap, regen_parse, regen_parse_tables, regen_tokenize, regen_v3,
self_host_fixed_point).

This brief governs the 8-shim batch follow-on against the canonical
r3-pb-binshim-retirement-worker.md template. Status PROPOSAL —
dispatch-gated on:
- smart-tern-649 Stage A landing (BinShimFilesSubsetPredicate carriers + runtime predicate)
- warm-crab-600 gate #7 first-cut precedent on main

Three staging shapes documented (mega-PR / serial-per-shim / batched-2-3);
PB Mgr leans batched-by-regen-family. Worker chooses at dispatch.

STOP-AND-PING conditions enumerated (substrate-carrier absent / carrier shape
pressure / emit-pattern divergence / substrate-grep mismatch).

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

* fix-forward (PR #2471 codex REQUEST_CHANGES)

Two findings addressed:

1. Carrier-shape mismatch (line 43): brief template said `name:` but the
   locked BinShim carrier per design-pb-runtime-interpreter.md:200-204 uses
   `entrypoint_name`, `description`, `entry`. P2 single-authority violation
   would have routed workers against wrong shape. Fixed: template now
   matches locked shape verbatim with explicit no-additional-fields clause.

2. Dispatch-gate dilution (lines 33, 98): brief reduced operative dispatch
   gate to "Stage A landing + gate #7 precedent" but parent brief enumerates
   5 preconditions (R2 close + R2-Evaluator landed + Item 4 sub-gate green
   + BinShim carrier live + §7.3 disposition). P5 fail-closed violation.
   Fixed: full readiness prerequisite inherited verbatim from parent brief;
   gate #7 precedent demoted to implementation-pattern reference (not gate).

Worker dispatch posture updated to require all 5 preconditions verified
on main at dispatch time per feedback_substrate_grep_before_authoring.

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

* WIP: R3 PB Mgr — lane through R3 close

* docs(r3): §1.8 ledger Status drift sweep — post-T-LP / T-Bridge wave

Promotes 4 §1.8 rows with PR-evidence on main. PB Mgr post-merge
ledger-receipt sync per Director ratification at gunbc#828
(c#4415884211; same pattern as PR #2399).

Promotions:
- #6  lens_testgen_dot_rs_retired                     DECLARED -> CONSUMER_LANDED + PASSING
       (PR #2392 producer + PR #2594 regression-guard; lens_testgen.rs
        absent on disk; consumer-side ratchet test landed)
- #33 bridge_canonical_lens_name_dispatch_retired     DECLARED -> CONSUMER_LANDED
       (PR #2449)
- #34 bridge_include_str_side_channels_retired        DECLARED -> CONSUMER_LANDED (slice scope)
       (PR #2459 pipeline.dag slice; standalone closure brief #1976
        STOP-BLOCKED on Substrate T1)
- #66 lens_producer_retirement_executable_witness     Notes-update only
       (PR #2595 substrate-impl landed: TestRunner executes .dag PB
        census claim and reports residual; closure-receipt remains
        F3-DEFERRED per PB Mgr disposition)

Excluded (out of charter):
- #31 -> Substrate (#2068)
- #36 -> Verification (#2075)

Excluded (T-V2-Retirement HELD on PM-authored S-1 brief #1974):
- #41 / #42 / #60 / #71

Pre-authored brief at docs/briefs/r3-pb-status-drift-sweep-post-tlp.md
covers the post-T-LP cascade wave (G5/G7/G8).

Closes PB Mgr drift-sweep obligation for already-merged evidence;
G5/G7/G8 remain queued per pre-authored brief.

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

* docs(briefs): fix gate #64 → #66 mislabel in drift-sweep brief

Per cursor/composer-2 review on PR #2631: brief table + dispatch-trigger
parenthetical labeled lens_producer_retirement_executable_witness as
gate #64. Authoritative §1.8 row is #66; #64 is
substrate_gap_reflection_closure_closed (separate predicate).

Aligns brief with r3-program-plan.md §1.8 row identity per
INVARIANTS.md P1 (single authoritative facts).

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

* docs(r3): row #66 DECLARED → CONSUMER_LANDED per §1.7 taxonomy

Per codex/codex-default review on PR #2631 (REQUEST_CHANGES, review
9150): leaving row #66 at DECLARED while the Notes cell describes an
executable consumer that runs through TestRunner contradicts the §1.7
status taxonomy and INVARIANTS P2 single-authority discipline.

Promoting #66 to CONSUMER_LANDED with explicit PASSING gate on
residual = 0 (cascades from T-LensProducer-Retirement gates
#5 + #6 + #7). The F3 deferral is on PASSING, not CONSUMER_LANDED;
the executable receipt
src/v3/compiler/tests/integration/r3_lens_producer_retirement_executable_witness_test.rs
already exists and runs the .dag PB census claim through TestRunner.

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 added a commit that referenced this pull request May 10, 2026
…2657)

acceptance per r3-structure.md:184

Reverts row #66 lens_producer_retirement_executable_witness in
docs/r3-program-plan.md from CONSUMER_LANDED back to DECLARED with
explicit canonical-acceptance framing.

Per briansrls + codex/codex-default BLOCKING reviews on merged PR #2631
(post-merge inline + main review at 2026-05-10T20:15Z): the
lens_producer_files_remaining census check shipped via PR #2595 is
the r3-structure.md:184 "near-term demo = retirement state-check +
doc receipts" placeholder, NOT the canonical demonstration consumer.

The canonical Pass-condition is "lens_apply reflection routes via
PB-Runtime on representative lens program" with execution-ready
witness DEFERRED to Row-4 equivalence receipt + Item 4 landing per
docs/design-pb-runtime-interpreter.md §5.1.

Promoting row #66 to CONSUMER_LANDED on the basis of substrate
plumbing dilutes the demonstration gate against INVARIANTS.md P2
single-authority discipline. Status re-promotes only when Row-4 +
Item 4 receipts land.

Also removes #66 from the post-T-LP drift-sweep brief's promotion
set with explicit exclusion-by-canonical-acceptance-scope rationale.

Other promotions in PR #2631 (#6 PASSING, #33 / #34 CONSUMER_LANDED)
stand — those rows have canonical-fit consumers landed.

Refs: PR #2631 #issuecomment thread (briansrls inline reviews +
codex review at sha 18d279c); r3-structure.md:184; design-pb-runtime
-interpreter.md §5.1.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 13, 2026
Codex blocking review: `lens_producer_files_remaining` must count the bounded
lens host until PB-Runtime dissolution, not only `regen_lens.rs`, so a rename
from `lens_apply.rs` cannot read as census progress. Document the predicate at
`is_lens_producer_census_path`; align gate #64/#66 witnesses and PB census
harness expectations to residual 2.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request May 13, 2026
…ucer census unchanged) (#2812)

* WIP: T-LP-Retirement gate #5 — lens_apply.rs producer-retirement (per docs/br

* WIP: T-LP-Retirement gate #5 — lens_apply.rs producer-retirement (per docs/br

* WIP: T-LP-Retirement gate #5 — lens_apply.rs producer-retirement (per docs/br

* fix: keep lens_declaration_apply in lens-producer census subset

Codex blocking review: `lens_producer_files_remaining` must count the bounded
lens host until PB-Runtime dissolution, not only `regen_lens.rs`, so a rename
from `lens_apply.rs` cannot read as census progress. Document the predicate at
`is_lens_producer_census_path`; align gate #64/#66 witnesses and PB census
harness expectations to residual 2.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request May 14, 2026
Codex REQUEST_CHANGES on PR #3083: retiring src/bin/regen_lens.rs must not
shrink lens_producer_files_remaining — count regen_lens_driver.rs and
regen_lens_entry.rs alongside lens_declaration_apply.rs (live residual 3).
Update gate #66/#64 witness strings and PB census predicate dispatch test.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request May 14, 2026
#3105)

Gate #5 `lens_apply_dot_rs_retired` closed at HEAD 2026-05-14 (PR #2812);
`src/v3/compiler/src/lens_apply.rs` is absent and the live
`is_lens_producer_census_path` allowlist in
`src/v3/compiler/src/test_runner.rs` now covers two paths
(`lens_declaration_apply.rs` + `bin/regen_lens.rs`).

The §1.8 row #64/#66 Notes still cited the pre-gate-#5 residual count
of 3 (drift); both executable receipts already track
`CURRENT_RESIDUAL_COUNT = 2` /
`CURRENT_REFLECTION_RESIDUAL_COUNT = 2`. Sync the Notes so the ledger
matches the executable witnesses.

Per "Post-merge §1.8 ledger-receipt sync as Mgr-tier closing step"
discipline.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 14, 2026
)

* WIP: R3 gate #7: regen_lens_dot_rs_retired (T-LensProducer-Retirement)

* WIP: R3 gate #7: regen_lens_dot_rs_retired (T-LensProducer-Retirement)

* fix(R3): complete gate #7 census + SG-6 bin ratchet

- Add P5 INVARIANTS rows for regen_lens_driver.rs and regen_lens_entry.rs
- Gate #7 retirement test, lens-producer residual count 1, test_runner subset
- Restore gunbc_ci.rs in SG-6 expected bin set; fix sg6 assertion message

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

* fix(R3): lens-producer census counts regen_lens after gate #7 split

Codex REQUEST_CHANGES on PR #3083: retiring src/bin/regen_lens.rs must not
shrink lens_producer_files_remaining — count regen_lens_driver.rs and
regen_lens_entry.rs alongside lens_declaration_apply.rs (live residual 3).
Update gate #66/#64 witness strings and PB census predicate dispatch test.

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

* ci: add SG-0 PR-body append for #3083 census net +1

PR edits sg0_census_test.rs with net +1 hand path (removed bin/regen_lens.rs,
added regen_lens_driver + entry). Prepend machine pairing (a) for CI
check-pr-sg0-net-shrink-discipline.sh.

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

* docs(v3-compiler): trim chatty rustdoc on lens-producer census predicate

Adopt cursor/composer-2 exploratory: drop PR-number review citation; keep
the gate #7 rationale in neutral prose.

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

* docs(v3-compiler): clarify regen_lens_main Dag binding in rustdoc

Cursor/composer-2 exploratory: describe local let + &dag vs misleading &Dag::new().

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

* fix(v3): satisfy clippy manual_clamp in regen_lens entry

CI v3 job runs clippy with -D warnings; manual max/min triggered
clippy::manual_clamp on the failure exit path. Use i64::clamp(1, 255)
so the self_host_ratchet gate passes when v3 is green.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls deleted the claude/sdlc-design-gaps-ST6Kf branch June 1, 2026 18:41
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.

2 participants