Repository navigation
Implement DSL-native SDLC pipeline with interface-based architecture - #68
Merged
Merged
Conversation
Resolve the dual-execution-path problem by implementing all SDLC
pipeline logic in .dag files, eliminating the need for Rust worker
stage dispatch.
Layer 2 — Domain interfaces (Gap A, B):
interfaces/issue_provider.dag (discover, get, create, comment, set_labels, close)
interfaces/claim_store.dag (acquire, heartbeat, release)
interfaces/outcome_ledger.dag (upsert, get, list_by_issue)
interfaces/agent_provider.dag (spawn, poll, cancel, get_result)
interfaces/signal_store.dag (emit, consume, ack)
interfaces/artifact_store.dag (store, retrieve, store_marker, get_canonical_marker)
Layer 3 — Concrete implementations:
providers/github_issue_provider.dag (real GitHub REST transport, Step 6)
providers/file_claim_store.dag (local JSON files for claims)
providers/file_outcome_ledger.dag (local JSON files for outcomes)
providers/codex_agent_provider.dag (Codex CLI shell transport)
providers/stub_providers.dag (all hermetic stubs for unit_test)
Profile binding (Gap C, D, Step 7):
profiles/sdlc.dag (unit_test, local, cloud_run profiles with
match-based provider selection bridge)
Multi-stage dispatch (Steps 1-5):
funcs/sdlc_stages.dag (all 8 stage handlers: idea->done)
funcs/sdlc_worker.dag (discovery + claim + dispatch + record loop)
Pipeline update (Gap F, G, J):
pipelines/sdlc.dag (uses interfaces, param declarations,
claim/replay-check/execute/record/release stages)
Domain types:
std/types.dag (IntentSheet, IssueBinding, ClaimLease, StageOutcome,
Artifact, ArtifactMarker, Signal, SignalType, RetryPolicy,
InfraIntent, CredentialBinding, ExecutionMetrics, AuditEntry)
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6a739f598
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Delete services/sdlc/control_plane.dag (replaced by ClaimStore + OutcomeLedger interfaces)
- Delete services/agent/codex.dag (replaced by AgentProvider + codex_agent_provider.dag)
- Replace profile bridge functions with direct profile { bind } syntax
- Wire credential resolution (env/secret) into profile declarations
- Implement real code review: PR diff retrieval + LLM review via PullRequest.ListFiles/Get + Anthropic
- Implement real acceptance testing: cargo test + cargo clippy with pass/fail gating
- Migrate agent_feedback.dag to interface-based imports (IssueProvider, AgentProvider, ClaimStore)
- Migrate test_control_flow.dag to interface-based imports (IssueProvider)
- Update gap analysis: all gaps resolved (except E deferred), status upgraded to Complete
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
- Create gcs_claim_store.dag: GCS objects with x-goog-if-generation-match for multi-worker mutual exclusion (412 → conflict mapping) - Create gcs_outcome_ledger.dag: GCS objects with generation CAS for idempotent outcome upsert (404 → not-found mapping) - Update cloud_run profile to bind GCS providers with secret credentials - All 10 gaps (A-J) now resolved — zero deferred, zero bridged https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
Replace stringly-typed stage, status, and state values with their
corresponding enum types (IssueLifecycleStage, OutcomeStatus, IssueState,
AgentStatus, ApprovalMode) throughout interfaces, providers, stages,
worker, and pipeline. This makes the compiler catch mismatches instead
of relying on runtime string comparison.
Key fixes:
- Bug: agents.poll used fabricated run_id "sdlc-{number}" instead of
actual run_id from spawn; now retrieves it from outcome ledger payload
- Bug: codex_agent_provider omitted --branch flag in @shell command
- Bug: gcs_claim_store referenced non-existent input.expected_generation
- Type mismatches: stub/file providers used Json where domain types
(StageOutcome, ArtifactPayload, ArtifactMarker) were expected
- Config types: String -> NonEmptyStr for required config fields
- Removed redundant agent_feedback.dag (fully superseded by sdlc_stages)
- Removed stale imports and unused helper functions from pipeline
- Removed duplicate @contract from claim_store interface
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
…e_id format
- Add sdlc:done to worker discovery labels so handle_done (issue close) is
reachable via normal polling runs
- Gate replay-skip on prior.outcome.status == Success so Failed outcomes
allow retry instead of being silently skipped
- Change make_issue_id to return just the issue number, not the composite
owner/repo#N key, since the GitHub provider interpolates id directly
into /repos/{owner}/{repo}/issues/{id} endpoints
- Add worker_retries_failed_stage test covering the retry-on-failure path
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
Three root causes for CI passing despite test failures:
1. CI gating bug: build.dag returned output port 'success' but gunbc-ci
checked for 'overall_success'. Renamed the port so CI correctly gates
on build/test/clippy results.
2. Pipeline parser missing uses-clause support: pipeline blocks went
straight from name to '{', skipping uses/provides parsing. Added
parse_uses_provides() call and 'uses' field to PipelineDef AST.
3. DSL syntax errors in new provider files: single quotes (unsupported
by lexer), @error_map with fat-arrow syntax, pipe filters in string
interpolation, and profile/param keywords not in parser. Fixed all
.dag files to use valid syntax.
Updated all corpus test snapshots from 56 to 68 files (lex_all,
parse_all, corpus_modules, representative_ast, pipeline.rs).
All 277 tests pass (223 daglang-cli + 54 daglang-syntax).
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
Conflict resolution strategy: - Interfaces (6 files): took origin/main (richer docs, INV references, inline behavioral contracts) - sdlc_worker.dag: kept HEAD (clean interface-driven version with ClaimStore/OutcomeLedger/AgentProvider) - pipelines/sdlc.dag: took origin/main (complete 11-stage pipeline with design, review, implementation, code review, acceptance, close) - services/agent/codex.dag: kept deleted (replaced by providers/codex_agent_provider.dag) - services/sdlc/control_plane.dag: kept deleted (replaced by individual provider stores) - std/types.dag: took origin/main (95 types with branded IDs, timestamps) Additional fixes: - Profile files (cloud_run, local, unit_test): converted unsupported profile/bind syntax to comments, removed imports of deleted modules - Compile test: updated to expect PipelineDispatchOp (passthrough) instead of UnsupportedOp per new resolver behavior - All corpus snapshots updated 68 -> 73 files, 83 -> 95 types All 281 tests pass (223 daglang-cli + 58 daglang-syntax). https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
Resolve pipeline.rs conflicts by taking origin/main's filesystem-based discovery (discover_expected_module_ids) over our hardcoded lists/counts. Update two compile tests to match new resolver behavior where unknown callables and pipeline nodes resolve to PassthroughOp instead of failing or using PipelineDispatchOp. https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM
briansrls
added a commit
that referenced
this pull request
May 6, 2026
…S3∥S8 + demo as Acceptance bullets Per Substrate Mgr partition response at gunbc#846 #issuecomment-4385074769. Substrate Mgr provided clean trigger-state partition for §1 12 items + worker pins + structural corrections. Updates absorbed: S7 PR-F: worker pin narrowed to loyal-wolf-828 (per Q-PR-F bandwidth-aware routing + Substrate Mgr explicit partition); valiant-ant-72 reserved for S3 MachineConstraint<C> implementation post-design (cleaner separation of authoring vs implementation phases). S8 ApproximateField<F> Float migration: dispatch trigger updated from "post-S3 (sequential) OR parallel" → "**parallel with S3**" per Substrate Mgr correction. MachineConstraint<C> and ApproximateField<F> are INDEPENDENT axes (machine width vs algebra approximation); both Mgr-tier design now with cross-reference at brief-landing. S10 T-E-P-Producer-Broadening: worker pin = quick-koi-190 (currently on #1799 termination-contract; T-E-P consumes descent-evidence, natural follow-on). S11 Slice C: dispatch trigger refined to "post-#1795 (Slice A) + #1801 (Slice B) merge" cascade-clearance; worker pin = smart-ram-167 (Slice B precedent owner; pattern-familiar). 5 demonstration gates (#67/#68/#70/#72/#73): per Substrate Mgr structural correction — fold demonstration scope into parent worker brief Acceptance bullets, NOT separate dispatches. Each gate becomes Acceptance bullet on parent lane's brief. Worker assignment now explicit: - S5 (variant-aware projection): quiet-boar-160 (in flight) - S7 (PR-F): loyal-wolf-828 (post-#1782 merge) - S10 (T-E-P): quick-koi-190 (post-#1782 merge; post-#1799 close) - S11 (Slice C): smart-ram-167 (post-#1795 + #1801 merge) - S3 implementation: valiant-ant-72 (post-S3 design) Mgr-tier authoring queue (Substrate Mgr): S1 + S2 + S3 + S9 + brief packets for S6/S10/S11/S7. Surfaces ratification needs to PM/Director queue as canvases land. Net: §1 dispatch matrix now reflects Substrate Mgr's lane-knowledge corrections. Substrate is the first Mgr to engage substantively with the design schedule + provide partition response — exactly the pattern the schedule was meant to enable (Mgrs partition + dispatch without PM micro-management). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
May 6, 2026
…1810) * docs(r3): comprehensive R3 design schedule — per-Mgr dispatch matrix per Brian directive Per Brian directive 2026-05-06 (chat): "can we schedule all the design now?" Authors `docs/r3-design-schedule-2026-05-06.md` — central PM-tier dispatch matrix covering all 6 R3 Mgrs + cross-program / Director-tier decisions. Per-Mgr design queue: §1 Substrate Mgr (12 design items): Q-Class-2 gap-test (S1) + LBP scope- calibration canvas (S2) + MachineConstraint<C> carrier (S3) + Workflow* family (S4) + variant-aware projection (S5) + EmissionPathProjection (S6) + PR-F (S7) + ApproximateField<F> Float migration (S8) + T-Numeric- Construction brief (S9) + T-E-P-Producer-Broadening dispatch (S10) + Slice C #1795 follow-up (S11) + F2/F8 doc-sharpening (S12) + 5 demonstration gates. §2 Verification Mgr (7 design items): Pattern-A executable cluster (V1) + L4/L7 exhaustive coverage (V2) + T-Lens-Self-Application stronger demo (V3) + T-Tests-As-Data lane work (V4) + T-Free-Consequences 10 gates (V5) + bridge_retirement_ledger_zero audit gate (V6) + ValueBody isomorphism (V7). §3 PB Mgr (5 design items): T-LensProducer-Retirement (P1) + T-FixedPoint completion (P2) + T-V2-Retirement post-FP+LP (P3) + 3 PB-owned bridges (P4) + F2/F8 cross-lane (P5) + 4 demonstration gates. §4 Evaluator Mgr (5 design items): E6-G0d constructor execution (E1) + E5 Descent termination contract (E2) + E6-G1.a static lens fold (E3) + E6-G1.b generic dispatch (E4) + X1.b S1 coordination (E5). §5 Grounding Mgr (5 design items): L6 row population (G1) + T-Ground-Rust full coverage (G2) + Coercion-Fold scratch retirement (G3) + F10 cleanup (G4) + Anthropic #1702 re-dispatch (G5). §6 Debt-Paydown Mgr (5 design items): Q-Drift-Reconcile (DP1) + SG-0 CI gate (DP2) + velocity tripwire (DP3) + closure-receipt cadence (DP4) + #1566 rollup hygiene (DP5). §7 Cross-program / Director-tier (5 decisions): Q-LBP-R3-Closeability (CP1) + Q-Tier4-Inclusion (CP2) + Q-WEDGE-A framing (CP3) + Q-Class-6 (CP4) + PR #1794 merge (CP5). §8 Sequencing summary: critical path (T-E-P-Producer-Broadening → T-LBP → T-LAS||T-WAD → T-LSA) + parallel longest single-lane (T-V2-Retirement) + Verification-internal path + bottleneck escalations. §9 Status update cadence: daily Mgr-internal + weekly Mon/Wed/Fri PM compilation. Cross-Mgr coord via Director queue. §10 References: r3-structure.md / r3-program-plan.md (incl. §1.8 ledger) / audit/r3-debt-sweep-2026-05-06.md / 6 Mgr inboxes + Director + Research PM. Total design items: ~44 across 6 Mgrs + 5 Director-tier decisions. Net: per-lane Mgr design work scheduled in parallel with Brian/Director scope-calibration decisions. Mgrs do NOT wait for all decisions to resolve — design dispatches in flight as escalations resolve. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb Substrate Mgr §1 partition response — worker pins + S3∥S8 + demo as Acceptance bullets Per Substrate Mgr partition response at gunbc#846 #issuecomment-4385074769. Substrate Mgr provided clean trigger-state partition for §1 12 items + worker pins + structural corrections. Updates absorbed: S7 PR-F: worker pin narrowed to loyal-wolf-828 (per Q-PR-F bandwidth-aware routing + Substrate Mgr explicit partition); valiant-ant-72 reserved for S3 MachineConstraint<C> implementation post-design (cleaner separation of authoring vs implementation phases). S8 ApproximateField<F> Float migration: dispatch trigger updated from "post-S3 (sequential) OR parallel" → "**parallel with S3**" per Substrate Mgr correction. MachineConstraint<C> and ApproximateField<F> are INDEPENDENT axes (machine width vs algebra approximation); both Mgr-tier design now with cross-reference at brief-landing. S10 T-E-P-Producer-Broadening: worker pin = quick-koi-190 (currently on #1799 termination-contract; T-E-P consumes descent-evidence, natural follow-on). S11 Slice C: dispatch trigger refined to "post-#1795 (Slice A) + #1801 (Slice B) merge" cascade-clearance; worker pin = smart-ram-167 (Slice B precedent owner; pattern-familiar). 5 demonstration gates (#67/#68/#70/#72/#73): per Substrate Mgr structural correction — fold demonstration scope into parent worker brief Acceptance bullets, NOT separate dispatches. Each gate becomes Acceptance bullet on parent lane's brief. Worker assignment now explicit: - S5 (variant-aware projection): quiet-boar-160 (in flight) - S7 (PR-F): loyal-wolf-828 (post-#1782 merge) - S10 (T-E-P): quick-koi-190 (post-#1782 merge; post-#1799 close) - S11 (Slice C): smart-ram-167 (post-#1795 + #1801 merge) - S3 implementation: valiant-ant-72 (post-S3 design) Mgr-tier authoring queue (Substrate Mgr): S1 + S2 + S3 + S9 + brief packets for S6/S10/S11/S7. Surfaces ratification needs to PM/Director queue as canvases land. Net: §1 dispatch matrix now reflects Substrate Mgr's lane-knowledge corrections. Substrate is the first Mgr to engage substantively with the design schedule + provide partition response — exactly the pattern the schedule was meant to enable (Mgrs partition + dispatch without PM micro-management). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb Verification Mgr §2 partition — 3-track worker partition + V6 ACTIVE Per Verification Mgr partition response at gunbc#846 #issuecomment-4385074816. Second Mgr to engage substantively with design schedule. §2 header updated with 3-track worker partition table: - Track A (executable/ledger): bold-crane-790 — V1 (TC1 hold pending Q-PAFS + EVAL-3) + V6 (active) - Track B (corpus/demos/data): cool-heron-521 — V2 + V4 + V5 (post-R2- Evaluator-gated; prep now via design + skeleton) - Track C (Mgr-reserved/cross-lane): cool-owl-579 (Mgr) — V3 (post- cascade) + V7 (hold pending Director Q-ValueBody-Isomorphism scope) V6 marked ACTIVE — only Verification item proceeding without Director hold. Worker pin: bold-crane-790. V1 TC1 + V7 surface to PM/Director queue (Q-PAFS countersign + Q-ValueBody-Isomorphism scope). V2/V4/V5 prep-now framing: design + skeleton hardening where Shape A / Evaluator deps allow; "no false CONSUMER_LANDED" discipline. Per-claim gate mapping to §1.8 ledger rows #43-#52 (V5) / #84-#87 (V4) / #74 (V4 demonstration). Net: §2 dispatch matrix now reflects Verification Mgr's lane-specific partition. Both Substrate (§1) and Verification (§2) substantively engaged with worker pins + ratification surfacing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb Debt-Paydown Mgr §6 partition — DP2 IN-FLIGHT at PR #1807 Per Debt-Paydown Mgr partition response at gunbc#846 #issuecomment-4385074935. Third Mgr to engage substantively. §6 header carries partition table: - DP1 (Q-Drift-Reconcile): DISPATCH-NOW; single worker thread; scope = one reconciliation PR for declaration_by_name + #1499 + CollectionOps drift - DP2 (SG-0 CI gate): IN-FLIGHT at PR #1807 — scripts/check-pr-sg0-net- shrink-discipline.sh + workflow + template + ROADMAP. Closes §1.8 gate #75 pr_anticipation_discipline_ci_active. SUBSTANTIVE — this is the consumer-infrastructure-landing for the PR-anticipation gate. - DP3 (velocity tripwire): CONTINUOUS — recurring report; no single landed event - DP4 (closure-receipt cadence): CONTINUOUS — feeds r3_debt_paydown_zero_ remaining Pass surface - DP5 (#1566 rollup hygiene): HOLD pending DRAFT close No §6 items currently Director-blocked; clean dispatch. PR #1807 actively executing closes §1.8 gate #75 → CONSUMER_LANDED status update flows through §1.8 ledger when PR #1807 merges. Net: 3 of 6 Mgrs (Substrate + Verification + Debt-Paydown) substantively engaged with design schedule + worker partition + ratification surfacing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb PB Mgr §3 partition + ratify §2.2 sequencing as HARD DAG Per PB Mgr partition response at gunbc#846 #issuecomment-4385075315. Fourth Mgr to engage substantively + surface real PM ratification ask. §3 header carries PB Mgr's worker partition table: - P1 T-LensProducer-Retirement: sleek-eagle-514 (#1768) — lens_apply retirement design/audit receipts via PR #1805 path-1 + sub-briefs - P1 parallel doc spine: zesty-ram-316 (#1769) — regen_lens audit via PR #1806 + Sub2/Sub3 brief threads - P4 bridge appendix: warm-ant-877 (#1770) — grep/ledger hygiene against bridge_ledger.dag / r3_bridge_retirement_ledger_zero.dag / verification.dag - P5 F2+F8: PB Mgr coordinates consumer-side with Substrate S12 owner (no duplicate PR unless PM ratifies co-author shape) - P2 T-FixedPoint: HOLD until P1 + SG-0 zero per F1 sequencing - P3 T-V2-Retirement: HOLD on broad ~79 .rs sweep until P2 + LP + Int<N> triggers clear §2.2 sequencing authority RATIFIED as HARD DAG (PM disposition 2026-05-06): Per PB Mgr's surface — "staffing parallelism vs hard DAG" question explicitly resolved. r3-structure.md §"Lane structure" → T-FixedPoint row names "R2-close dependency: SG-0 zero from T-LensProducer-Retirement" as explicit dependency. SG-0 zero is structural precondition for T-FixedPoint (bit-identical compile requires no remaining hand-Rust ratchet); not just resource sequencing. T-FixedPoint cannot complete until T-LP-Retirement completes. Plan §2.2 sequence is canonical authority on this; PB Mgr's HOLD on P2 is correct discipline. Net: 4 of 6 Mgrs (Substrate + Verification + Debt-Paydown + PB) engaged substantively with worker pins + ratification surfacing. PB Mgr's HARD-DAG ratification ask resolved inline. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb Grounding Mgr §5 partition — G4 DISPATCHED + G1/G2/G3/G5 HELD on Substrate cascade Per Grounding Mgr partition response at gunbc#846 #issuecomment-4385080863. Fifth Mgr to engage substantively. §5 header carries Grounding Mgr's worker partition table. Clean dispatch shape — Grounding lane is largely consumer of Substrate work, so most items HELD until Substrate carriers land. Partition: - G1 L6 row population: HELD pending Substrate S6 EmissionPathProjection - G2 T-Ground-Rust full coverage: HELD pending Substrate S7 PR-F + S8 Float migration; #1783 remains draft as dispatch-guide staging artifact - G3 Coercion-Fold scratch retirement: HELD pending LanguageSpec projection - G4 F10 install_hint cleanup: DISPATCHED 2026-05-06 to silent-badger-711 (#1774) - G5 Anthropic #1702 re-dispatch: HELD pending Substrate S5 variant-aware projection + Q-Anthropic-Variant-Aware closure-scope No PM/Director ratification needed; G4 dispatched cleanly. Other items proceed when Substrate triggers land. Net: 5 of 6 Mgrs (Substrate + Verification + Debt-Paydown + PB + Grounding) substantively engaged. Pending: Evaluator only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): absorb Evaluator Mgr §4 partition — E1 DISPATCHED + E5 DONE; ALL 6 of 6 Mgrs engaged Per Evaluator Mgr partition response at gunbc#846 #issuecomment-4385081532. **Sixth and final Mgr to engage substantively** — all 6 of 6 R3 Mgrs now have lane-specific worker partitions in design schedule. §4 header carries Evaluator Mgr's worker partition table: - E1 E6-G0d constructor execution: DISPATCHED 2026-05-06 to valiant-carp-10 (#1767); evaluator-only src/v3/compiler/src/lib.rs; brief = #1784 - E2 E5 Descent termination contract consumer: HELD pending Substrate carrier landing (quick-koi/quick-crab path) - E3 E6-G1.a static lens fold: HELD pending Director Q-PAFS / Q-EVAL-Lens-Fold-First-Slice countersignature - E4 E6-G1.b generic dispatch: HELD post-G1.a + post-Substrate X1.b - E5 X1.b S1 TransformDispatch coordination: DONE cross-lane status sent to Substrate (#1739) Additional state notes: - #1784 G0d brief green on fmt/ci/v3; self_host_ratchet in progress post-main merge — doesn't block E1 dispatch (brief stable + approved) - #1799 E5 STOP packet green on fmt/ci/v3; held semantically behind Substrate termination contract - warm-dove #1778 passing/held; existing PR needs Director/PM disposition No PM/Director ratification needed for E1/E5. E3 still needs Director countersignature. Net: 6 of 6 Mgrs (Substrate / Verification / Debt-Paydown / PB / Grounding / Evaluator) substantively engaged with design schedule. Concrete dispatches in flight: G4 (silent-badger-711) + DP1 + DP2 (PR #1807) + E1 (valiant- carp-10) + S5 (quiet-boar-160 in flight) + Substrate Mgr-tier authoring queue (S1/S2/S3/S9). Cross-lane coord working: E5 → Substrate; G* → S* trigger-cascade. Engagement scoreboard: 100% of R3 Mgrs partitioned + dispatching per schedule. PM micro-management overhead = zero per Mgr-tier dispatch discipline. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(r3): codex BLOCKING fixes — §S4 audit-first against extdeps.github.actions + §V1 Pattern-A 5th gate routed to T-CostLens Fix 2 of 4 codex BLOCKING findings on PR #1810: 1. §S4 Workflow* family carriers (Class 4) — prepend existing-ontology audit prerequisite citing dsl/extdeps/github/actions.dag (218 lines, already declares Workflow / WorkflowTrigger / Job / Step / MatrixStrategy / RunnerSpec / WorkflowPermissions / ConcurrencySpec / DispatchInput). Reframe proposed carriers as audit targets / deltas, not fresh ontology; require Substrate Mgr audit-and-delta receipt before worker dispatch. Per feedback_audit_adjacent_authority_first + feedback_parallel_representation_debt. 2. §V1 Pattern-A executable cluster — fix count mismatch. Headline now says "4 NEW (DimensionReport-typed cluster) in V1"; explicit note that the 5th NEW Pattern-A gate (§1.8 #40 symbolic_cost_expr_equals_executable, SymbolicCost-typed) belongs to T-CostLens-Composition lane, not V1's TC cluster (per r3-program-plan.md:755 — different predicate family, distinct runner work). Closure-predicate citation updated accordingly. Findings 1 (external PM ledger) + 2 (Mgr-canvas → lane authority) rebutted on PR with grep evidence — both invalid. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 7, 2026
briansrls
added a commit
that referenced
this pull request
May 8, 2026
…product Authored against current main (squash-author per Mgr disposition (b2) at gunbc#2063 c#4403150939). Preserved branch `origin/codex/cc1-target-integer-structural-fold` is the design reference; its 3 cited tip commits were not self-contained — the underlying `AnthropicMessages200ContentBlock` coproduct was introduced by earlier preserved-branch commits not in the cited set, so a history-preserving rebase was infeasible. v2 source `dsl/extdeps/llm/anthropic.dag`: - Replace `AnthropicMessages200TextBlock` record with `AnthropicMessages200ContentBlock` coproduct (6 variants: MessagesTextBlock | MessagesThinkingBlock | MessagesRedactedThinkingBlock | MessagesToolUseBlock | MessagesServerToolUseBlock | MessagesWebSearchToolResultBlock). - Add `AnthropicServerToolName` enum (8 variants from Anthropic's generated OpenAPI SDK). - Update `AnthropicMessages200Body.content: List<AnthropicMessages200ContentBlock>`. - Add `anthropic_messages_200_content_block_wire_contract` row. - Refresh `structural_coverage_gap_anthropic_messages_200_residual` rows to track post-coproduct residuals. v3 mirror `src/v3/std/anthropic_schema.dag`: - Mirror coproduct + enum. `MessagesRedactedThinkingBlock.data` is mirrored as `redacted_data` (data is a v3 keyword); the lockstep ratchet maps that single label. Lockstep test `src/v3/compiler/tests/integration/anthropic_schema_lockstep_test.rs`: - New `assert_anthropic_disj_lockstep` helper applies the `data → redacted_data` label remap before disj-lockstep comparison. - Replace `anthropic_messages_200_text_block_lockstep` with `anthropic_messages_200_content_block_lockstep`. - New `anthropic_server_tool_name_lockstep`. Bootstrap regen + parse manifest refresh follow. §1.8 ledger: gates #29 (anthropic_wire_typed_serde_alignment) + #30 (anthropic_unit_enum_role_serialization_correct) advance via schema-mirror + lockstep extension. Gate #68 demonstration deferred to follow-up (deterministic-mock test not in scope per Mgr discretion). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 of 4 tasks
briansrls
added a commit
that referenced
this pull request
May 8, 2026
…1981 [S5 cascade cleared; ready] (#2208) * WIP: Grounding G5: Anthropic #1702 re-dispatch — recreated supersession of #1 * G5 Anthropic #1702 re-dispatch: AnthropicMessages200 content-block coproduct Authored against current main (squash-author per Mgr disposition (b2) at gunbc#2063 c#4403150939). Preserved branch `origin/codex/cc1-target-integer-structural-fold` is the design reference; its 3 cited tip commits were not self-contained — the underlying `AnthropicMessages200ContentBlock` coproduct was introduced by earlier preserved-branch commits not in the cited set, so a history-preserving rebase was infeasible. v2 source `dsl/extdeps/llm/anthropic.dag`: - Replace `AnthropicMessages200TextBlock` record with `AnthropicMessages200ContentBlock` coproduct (6 variants: MessagesTextBlock | MessagesThinkingBlock | MessagesRedactedThinkingBlock | MessagesToolUseBlock | MessagesServerToolUseBlock | MessagesWebSearchToolResultBlock). - Add `AnthropicServerToolName` enum (8 variants from Anthropic's generated OpenAPI SDK). - Update `AnthropicMessages200Body.content: List<AnthropicMessages200ContentBlock>`. - Add `anthropic_messages_200_content_block_wire_contract` row. - Refresh `structural_coverage_gap_anthropic_messages_200_residual` rows to track post-coproduct residuals. v3 mirror `src/v3/std/anthropic_schema.dag`: - Mirror coproduct + enum. `MessagesRedactedThinkingBlock.data` is mirrored as `redacted_data` (data is a v3 keyword); the lockstep ratchet maps that single label. Lockstep test `src/v3/compiler/tests/integration/anthropic_schema_lockstep_test.rs`: - New `assert_anthropic_disj_lockstep` helper applies the `data → redacted_data` label remap before disj-lockstep comparison. - Replace `anthropic_messages_200_text_block_lockstep` with `anthropic_messages_200_content_block_lockstep`. - New `anthropic_server_tool_name_lockstep`. Bootstrap regen + parse manifest refresh follow. §1.8 ledger: gates #29 (anthropic_wire_typed_serde_alignment) + #30 (anthropic_unit_enum_role_serialization_correct) advance via schema-mirror + lockstep extension. Gate #68 demonstration deferred to follow-up (deterministic-mock test not in scope per Mgr discretion). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Address PR review: add caller: Json? to MessagesWebSearchToolResultBlock Anthropic's Messages API reference lists web_search_tool_result with caller alongside content/tool_use_id/type. The initial scaffold dropped it. Add caller: Json? on both v2 source and v3 mirror; extend the residual row to track the caller-payload typing alongside the content-payload typing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Soften scaffold comment: variant-aware projection is tracked debt, not pre-merge gate Per PR review (gpt-5-5-pro exploratory observation): the scaffold trigger comment said "before this draft can merge" while the residual row at :208-213 already tracks the same item as tracked debt with an explicit trigger. Reword to point at the residual list rather than implying a pre-merge gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 9, 2026
briansrls
added a commit
that referenced
this pull request
May 10, 2026
briansrls
added a commit
that referenced
this pull request
May 10, 2026
* add anthropic wire demo * WIP: R3 gate #68: anthropic wire demonstration * trigger ci after sg0 body fix * lock anthropic demo to modeled response surface
This was referenced May 10, 2026
briansrls
added a commit
that referenced
this pull request
May 10, 2026
…sync (#2656) Sync §1.8 rows for Grounding-lane work that merged 2026-05-10: - #25 omni_openapi_backend_emission_demo: CONSUMER_LANDED → CONSUMER_LANDED + PASSING; cite PR #2587 (77678c0) backend emission demo extension; orphan PR #2410 closed as superseded - #26 omni_documentation_drift_lock_demo: DECLARED → CONSUMER_LANDED + PASSING; cite PR #2596 - #68 anthropic_wire_demonstration: DECLARED → PASSING; cite PR #2506 Per Director ratification on §1.8 #68 status-drift coordination (gunbc#828 c#4415868260) and post-merge ledger-receipt sync as Mgr-tier closing step. Refs: - gunbc#828 issuecomment-4415868260 (Director audit) - gunbc#2080 (Debt-Paydown Mgr ledger-sync check) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a complete DSL-native SDLC pipeline using a three-layer architecture (pipeline → interfaces → providers). The pipeline transitions issues through 8 lifecycle stages (idea → design → design-review → accepted → implementing → code-review → testing → done) using GitHub labels and comments as the state machine.
Key Changes
Architecture & Interfaces (Layer 2)
IssueProvider,ClaimStore,OutcomeLedger,AgentProvider,SignalStore,ArtifactStorePipeline Implementation (Layer 1)
dsl/pipelines/sdlc.dagto use interfaces instead of concrete servicesparamdeclarations forrepo_owner,repo_name,issue_number,llm_provider,llm_model,worker_idStage Handlers (New:
dsl/funcs/sdlc_stages.dag)Worker Dispatch (Updated:
dsl/funcs/sdlc_worker.dag)execute_stage()routerConcrete Providers (Layer 3)
github_issue_provider.dag: REST-based GitHub issue operationsfile_claim_store.dag: File-based distributed locking with CAS semanticsfile_outcome_ledger.dag: File-based outcome persistence with idempotent upsertcodex_agent_provider.dag: Shell-based agent dispatchstub_providers.dag: Hermetic in-memory implementations for unit testingProfile Binding (
dsl/profiles/sdlc.dag)unit_test,local,cloud_runType System Enhancements (
dsl/std/types.dag)IntentSheet,IssueBinding,ClaimLease,StageRunKey,StageOutcomeBindingStatus,IssueState,OutcomeStatusenumsDocumentation
docs/design/sdlc/sdlc.dagas canonical design documentdocs/design/sdlc/e2e-gap-analysis.mdwith DSL-native implementation statusNotable Implementation Details
Gap Analysis Coverage
Resolves gaps from e2e
https://claude.ai/code/session_015xPXWjrarnioU5XPDvr9TM