From ccf45bf33804679a3a3514137852d88f1d5c5aa7 Mon Sep 17 00:00:00 2001 From: Svrnty Date: Sun, 31 May 2026 23:03:46 -0400 Subject: [PATCH] Record Case Stage 2 pass evidence --- .../CTO-CASE-AGENT-PROTOCOL-BLOCKER.md | 38 +++++++++++++++++-- .../CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md | 18 ++++++++- ...TO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md | 20 +++++++++- .../CTO-CASE-PROVIDER-BUILD-ISSUES.md | 24 +++++++++++- .../CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md | 17 ++++++++- ...O-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md | 18 +++++++++ .../CTO-CASE-STAGED-PROOF-GATES.md | 13 +++++++ WORKBOARD.yaml | 32 ++++++++-------- tools/validate_cto_child.py | 12 +++--- 9 files changed, 162 insertions(+), 30 deletions(-) diff --git a/.sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md b/.sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md index fea02a1..e3d0293 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md @@ -15,7 +15,7 @@ Local planning SOT only. Not a Core Protocol. Not active Core authority. ## CTO-WORK-028 - Case Agent Result Protocol Blocker -Status: blocked. +Status: validated. Record the first admitted real Case Stage 2 run after OpenAI Codex model admission. The run proves that provider/model admission now reaches Case execution, but does @@ -317,7 +317,7 @@ Evidence: ## CTO-WORK-032 - Case Lifecycle Timeout After Valid Patch -Status: blocked. +Status: validated. The current active blocker is no longer provider admission, endpoint reachability, response shape, or absence of a patch. The active blocker is lifecycle completion @@ -352,12 +352,44 @@ Required next route: ## CTO-WORK-031 - Case Local Provider Response Shape Shim -Status: blocked. +Status: validated. Create a non-vendor compatibility route that makes the admitted local Qwen path return assistant content usable by Case/Pi result parsing, without weakening Harness evidence gates. +## Stage 2 Pass Evidence - 2026-06-01 + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- The harness now supervises Case lifecycle and stops lingering Case execution after an independently committed fixture diff appears. +- The harness sets `PYTHONDONTWRITEBYTECODE=1` for Case execution to prevent Python bytecode cache mutation. +- Focused validator passed with `lifecycle_supervision_accepts_committed_diff`. +- Focused validator artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025758Z-r1-string-slugify-2904813`. +- Pre-merge aggregate validator passed: `harness/evals/health.sh --json`. +- Pre-merge provider-adapter artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025903Z-r1-string-slugify-2911438`. +- Pre-merge matrix artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025901Z-run-all-fake-2911118`. +- Post-merge aggregate validator passed: `harness/evals/health.sh --json`. +- Post-merge provider-adapter artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025936Z-r1-string-slugify-2916003`. +- Post-merge matrix artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025934Z-run-all-fake-2915560`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Real run report status: `pass`. +- Backend exit code: `0`. +- Case process started: `true`. +- Case model provider: `qwen-local`. +- Case model: `qwen3.6-35b-a3b`. +- Case model admission status: `admitted`. +- Case runtime bridge provider: `openai`. +- Source admission status: `not_admitted`. +- Changed files: `strings.py`. +- Tests command: `python3 -m pytest -q`. +- Tests passed: `true`. +- Required events passed: `true`. +- Patch artifact: `patch.diff`. +- Lifecycle marker: `backend/provider-lifecycle-harness-completed.txt`. +- No Target Repository path was inspected or copied. +- Result: `CTO-WORK-028`, `CTO-WORK-031`, and `CTO-WORK-032` are validated for Stage 2 artificial fixture only. +- Stage 3 remains blocked until copied-repo fixture proof exists. + Acceptance: - No vendor Case source is mutated as the durable solution. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md index 3671c91..d0145e9 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md @@ -33,7 +33,7 @@ Acceptance: ## CTO-WORK-022 - Case-Compatible Local Provider Adapter Route -Status: blocked. +Status: validated. Build or supply one Case-compatible local provider adapter path after the decision record selects `local_provider_required`. @@ -59,4 +59,18 @@ Current unblock: - Decision record now selects `local_provider_required`. - Harness route blocks before `case_process_started` unless `CTO_HARNESS_CASE_LOCAL_BASE_URL` is supplied. -- Remaining blocker is `CTO-WORK-030` plus real Stage 2 pass evidence. +- Remaining blocker is cleared for Stage 2 artificial fixture only. + +Validation evidence: + +- Hermes commit: `5c5448b Bridge Case Qwen through OpenAI-compatible runtime`. +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Report status: `pass`. +- CTO admission identity: `qwen-local` / `qwen3.6-35b-a3b`. +- Case runtime bridge provider: `openai`. +- Tests passed: `true`. +- Required events passed: `true`. +- No external provider fallback was used. +- Endpoint value was runtime-only and is not recorded in SOT. +- This route remains scoped to Stage 2 artificial fixture proof. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md index 5537a3c..90a30cf 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md @@ -33,7 +33,7 @@ Acceptance: ## CTO-WORK-020 - Admit Case Model Provider For Real Stage 2 -Status: blocked. +Status: validated. Choose and admit the exact provider/model path for real Case Stage 2, then rerun Stage 2 through the Harness Evidence Interface. @@ -211,3 +211,21 @@ Acceptance: - `CTO-WORK-030` now tracks the missing Spark endpoint config required by `CTO_HARNESS_CASE_LOCAL_BASE_URL`. - Missing endpoint config blocks before `case_process_started` and writes `backend/provider-local-config-unavailable.txt`. - Endpoint presence alone is not Stage 2 pass evidence and does not unblock `CTO-WORK-020`. + +## Qwen Local Stage 2 Pass Evidence - 2026-06-01 + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Report status: `pass`. +- Case process started: `true`. +- Case model provider: `qwen-local`. +- Case model: `qwen3.6-35b-a3b`. +- Case model admission status: `admitted`. +- Admission file: `.sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json`. +- Runtime endpoint value was supplied only through environment and is not recorded in SOT. +- Report proves no fallback to `anthropic` or `claude-sonnet-4-6`. +- Changed files: `strings.py`. +- Tests passed: `true`. +- Required events passed: `true`. +- Result: `CTO-WORK-020` is validated for Stage 2 artificial fixture only. +- This does not approve copied-repo, sandbox-repo, owned-repo, default-candidate, or Core promotion stages. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md index e592db0..0a2b660 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md @@ -30,7 +30,7 @@ Acceptance: ## CTO-WORK-016 - Real Case Provider Stage 2 Run -Status: blocked. +Status: validated. Build or supply a durable admitted WorkOS Case `ca` executable, then run the existing Hermes CTO Stage 2 artificial fixture through real Case. @@ -192,6 +192,28 @@ Validation Evidence: - `CTO-WORK-016` remains blocked because no real Case Stage 2 pass report exists. - Current downstream blocker remains `CTO-WORK-028`. +## Real Case Stage 2 Pass Evidence - 2026-06-01 + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Case binary path used by harness: `/tmp/workos-case/dist/ca`. +- Case source pin for the built binary: `7959ac917cdeb0983b4aaa20bb9f42021747fed8`. +- Report status: `pass`. +- Backend exit code: `0`. +- Case process started: `true`. +- Case model provider: `qwen-local`. +- Case model: `qwen3.6-35b-a3b`. +- Case model admission status: `admitted`. +- Source admission status: `not_admitted`. +- Changed files: `strings.py`. +- Tests command: `python3 -m pytest -q`. +- Tests passed: `true`. +- Required events passed: `true`. +- Patch artifact: `patch.diff`. +- No Target Repository path was inspected or copied. +- Result: `CTO-WORK-016` is validated for Stage 2 artificial fixture only. +- This does not approve copied-repo, sandbox-repo, owned-repo, default-candidate, or Core promotion stages. + ## CTO-WORK-018 - Case Model Provider Admission Gate Status: validated. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md index 7116a8a..34907a2 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md @@ -15,7 +15,7 @@ Local planning SOT only. Not a Core Protocol. Not active Core authority. ## CTO-WORK-030 - Spark Local Provider Endpoint Config -Status: blocked. +Status: validated. Supply explicit Spark OpenAI-compatible endpoint config for the selected `qwen-local` / `qwen3.6-35b-a3b` Case path, without storing endpoint secrets in SOT or commits. @@ -122,6 +122,21 @@ Current evidence: - This does not validate `CTO-WORK-016`, `CTO-WORK-020`, `CTO-WORK-022`, `CTO-WORK-028`, or `CTO-WORK-032`. - Current active blocker is Case lifecycle timeout after valid patch evidence. +## Spark Stage 2 Pass Evidence - 2026-06-01 + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Runtime endpoint value was supplied only through environment and is not recorded in SOT. +- Report status: `pass`. +- Case process started: `true`. +- Case model provider: `qwen-local`. +- Case model: `qwen3.6-35b-a3b`. +- Case model admission status: `admitted`. +- Tests passed: `true`. +- Required events passed: `true`. +- Changed files: `strings.py`. +- Result: `CTO-WORK-030` is validated for Stage 2 artificial fixture only. + ## Hermes Case Qwen Loop Evidence - 2026-06-01 - Hermes commit: `6c453ee Add Case Qwen loop entrypoint`. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md index 3171e52..04b767e 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md @@ -51,6 +51,8 @@ Done evidence: PRD, issue artifact, validator JSON, clean worktree, commit. Type: AFK +Status: validated. + Blocked by: CTO-WORK-011 User stories covered: CTO Case Candidate Backend PRD stories 4, 5, 7, 8, 9, 10, 11, 13. @@ -81,6 +83,22 @@ Validator: `python3 harness/runner/validate-case-stage2.py --harness-root harnes Done evidence: Stage 2 pass report, failure fixture reports, artifact digests, no-mutation proof, clean worktree, commit. +Validation evidence: + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Report status: `pass`. +- Backend: `case`. +- Case model provider: `qwen-local`. +- Case model: `qwen3.6-35b-a3b`. +- Case model admission status: `admitted`. +- Changed files: `strings.py`. +- Tests passed: `true`. +- Required events passed: `true`. +- Source admission status: `not_admitted`. +- No Target Repository path was inspected or copied. +- Stage 3 remains blocked until copied-repo fixture proof exists. + ## Granularity Check This is intentionally two slices: one planning route and one executable harness route. It is not over-granular because Stage 2 is the first Case execution boundary and must be reviewed before any copied-repo work. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md index 4caab26..390869e 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md @@ -81,6 +81,8 @@ Promotion condition: ## Stage 2 - Artificial Fixture +Status: validated for Case/Qwen Stage 2 artificial fixture on 2026-06-01. + Entry gates: - Stage 1 is validated. @@ -115,6 +117,17 @@ Promotion condition: - Case adapter matches existing fake fixture behavior through the Harness Evidence Interface. +Validation evidence: + +- Hermes commit: `fc54680 Complete Case lifecycle after committed proof`. +- Real Case Qwen Stage 2 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T025817Z-r1-string-slugify-2907822`. +- Report status: `pass`. +- Changed files: `strings.py`. +- Tests passed: `true`. +- Required events passed: `true`. +- No Target Repository path was inspected or copied. +- This validates Stage 2 only. Stage 3 copied-repo fixture remains the next proof gate. + ## Stage 3 - Copied Repo Fixture Entry gates: diff --git a/WORKBOARD.yaml b/WORKBOARD.yaml index 6e15add..29af6f9 100644 --- a/WORKBOARD.yaml +++ b/WORKBOARD.yaml @@ -57,9 +57,9 @@ items: owner: "" - id: CTO-WORK-012 title: Stage 2 Harness Artificial Fixture Route - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md - owner: jp + owner: "" - id: CTO-WORK-013 title: Case Provider Admission PRD status: validated @@ -77,9 +77,9 @@ items: owner: "" - id: CTO-WORK-016 title: Real Case Provider Stage 2 Run - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md - owner: jp + owner: "" - id: CTO-WORK-017 title: Case Provider Timeout Fail-Closed Route status: validated @@ -97,9 +97,9 @@ items: owner: "" - id: CTO-WORK-020 title: Admit Case Model Provider For Real Stage 2 - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md - owner: jp + owner: "" - id: CTO-WORK-021 title: Case-Compatible Local Provider Adapter Route PRD status: validated @@ -107,9 +107,9 @@ items: owner: "" - id: CTO-WORK-022 title: Case-Compatible Local Provider Adapter Route - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md - owner: jp + owner: "" - id: CTO-WORK-023 title: Case Provider Decision Packet PRD status: validated @@ -137,9 +137,9 @@ items: owner: "" - id: CTO-WORK-028 title: Case Agent Result Protocol Blocker - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md - owner: jp + owner: "" - id: CTO-WORK-029 title: Qwen Local Case Model Admission JSON status: validated @@ -147,16 +147,16 @@ items: owner: "" - id: CTO-WORK-030 title: Spark Local Provider Endpoint Config - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md - owner: jp + owner: "" - id: CTO-WORK-031 title: Case Local Provider Response Shape Shim - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md - owner: jp + owner: "" - id: CTO-WORK-032 title: Case Lifecycle Timeout After Valid Patch - status: blocked + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md - owner: jp + owner: "" diff --git a/tools/validate_cto_child.py b/tools/validate_cto_child.py index 17288e3..db473d5 100644 --- a/tools/validate_cto_child.py +++ b/tools/validate_cto_child.py @@ -683,7 +683,7 @@ REQUIRED_SPARK_ENDPOINT_CONFIG_PRD_PHRASES = [ REQUIRED_SPARK_ENDPOINT_CONFIG_ISSUE_PHRASES = [ "CTO-WORK-030 - Spark Local Provider Endpoint Config", - "Status: blocked.", + "Status: validated.", "CTO_HARNESS_CASE_LOCAL_BASE_URL", "Missing endpoint config blocks before `case_process_started`.", "Missing endpoint config writes `backend/provider-local-config-unavailable.txt`.", @@ -1090,24 +1090,24 @@ def main() -> int: "CTO-WORK-009": "validated", "CTO-WORK-010": "validated", "CTO-WORK-011": "validated", - "CTO-WORK-012": "blocked", + "CTO-WORK-012": "validated", "CTO-WORK-013": "validated", "CTO-WORK-014": "validated", "CTO-WORK-015": "validated", - "CTO-WORK-016": "blocked", + "CTO-WORK-016": "validated", "CTO-WORK-017": "validated", "CTO-WORK-018": "validated", "CTO-WORK-019": "validated", - "CTO-WORK-020": "blocked", + "CTO-WORK-020": "validated", "CTO-WORK-021": "validated", - "CTO-WORK-022": "blocked", + "CTO-WORK-022": "validated", "CTO-WORK-023": "validated", "CTO-WORK-024": "validated", "CTO-WORK-025": "validated", "CTO-WORK-026": "validated", "CTO-WORK-027": "validated", "CTO-WORK-029": "validated", - "CTO-WORK-030": "blocked", + "CTO-WORK-030": "validated", } for issue_id, expected in expected_statuses.items(): checked.append(f"workboard_status:{issue_id}:{expected}")