diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md index da6f3bc..0bf9b2f 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md @@ -52,7 +52,7 @@ Done evidence: PRD, issue artifact, validator JSON, clean worktree, commit. Type: HITL -Status: candidate. +Status: validated. Blocked by: CTO-WORK-042 @@ -62,26 +62,38 @@ What to build: In `/home/svrnty/workspaces/hermes/cto/harness`, implement the St Acceptance criteria: -- [ ] `case` remains disabled by default. -- [ ] Stage 6 requires Stage 5 proof evidence before comparison. -- [ ] Candidate-default comparison runs or imports evidence for fake, Codex, and Pi where applicable. -- [ ] Missing comparison lane is recorded as explicitly blocked with rationale, not silently ignored. -- [ ] Comparison output records report shape parity. -- [ ] Comparison output records event validity parity. -- [ ] Comparison output records allowed-path compliance parity. -- [ ] Comparison output records failure closure parity. -- [ ] Comparison output records artifact completeness parity. -- [ ] Case source admission freshness is recorded. -- [ ] Failure matrix coverage is complete or explicitly blocked with rationale. -- [ ] Operator acceptance or rejection is recorded after comparison proof. -- [ ] Candidate-default status is recorded as evidence only; no runtime default, Core promotion, push, merge, deploy, close, PR open, issue close, public publication, vendor-source mutation, or unowned repository mutation occurs. -- [ ] Fake remains the default validation lane and broad health remains green after focused Stage 6 validation. +- [x] `case` remains disabled by default. +- [x] Stage 6 requires Stage 5 proof evidence before comparison. +- [x] Candidate-default comparison runs or imports evidence for fake, Codex, and Pi where applicable. +- [x] Missing comparison lane is recorded as explicitly blocked with rationale, not silently ignored. +- [x] Comparison output records report shape parity. +- [x] Comparison output records event validity parity. +- [x] Comparison output records allowed-path compliance parity. +- [x] Comparison output records failure closure parity. +- [x] Comparison output records artifact completeness parity. +- [x] Case source admission freshness is recorded. +- [x] Failure matrix coverage is complete or explicitly blocked with rationale. +- [x] Operator acceptance or rejection is recorded after comparison proof. +- [x] Candidate-default status is recorded as evidence only; no runtime default, Core promotion, push, merge, deploy, close, PR open, issue close, public publication, vendor-source mutation, or unowned repository mutation occurs. +- [x] Fake remains the default validation lane and broad health remains green after focused Stage 6 validation. Allowed files: Hermes CTO harness comparison validator, Harness docs, and tests. WebUI, Core, Case source, vendor source, unowned repositories, critical repositories, production repositories, and external developer repositories are forbidden. Validator: `python3 harness/runner/validate-case-stage6.py --harness-root harness --json`, then `harness/evals/health.sh --json`. -Done evidence: Stage 6 comparison report, blocked-lane rationale where applicable, source freshness proof, failure matrix coverage proof, operator outcome, artifact digests, clean worktree, commit. +Done evidence: + +- Hermes commit: `ff0a008 Add Case Stage 6 candidate default comparison`. +- Focused Stage 6 validator on Hermes main: `python3 harness/runner/validate-case-stage6.py --harness-root harness --json`. +- Focused Stage 6 validator status: `ok: true`. +- Focused Stage 6 comparison report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101308Z-stage6-candidate-default-70246/stage6-candidate-default-comparison.json`. +- Post-merge aggregate Harness health: `harness/evals/health.sh --json`, status `pass`. +- Post-merge Stage 6 comparison report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101357Z-stage6-candidate-default-76795/stage6-candidate-default-comparison.json`. +- Post-merge failure closure reports: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101355Z-r1-string-slugify-76898/report.json` and `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101355Z-r1-string-slugify-76922/report.json`. +- Post-merge aggregate matrix artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101338Z-run-all-fake-74797/report.json`. +- Stage 6 checked: `fake_lane_passes`, `case_default_disabled`, `stage5_failure_closure_inherited`, `case_lane_passes`, and `candidate_default_comparison`. +- Codex and Pi lanes are recorded as explicitly blocked where not applicable to deterministic Stage 6 validation. +- Candidate-default activation remains `false`. ## Granularity Check diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md index 46cbb13..d1d6b39 100644 --- a/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md @@ -304,7 +304,7 @@ Promotion condition: ## Stage 6 - Candidate Default -Status: planned. Execution remains candidate until `CTO-WORK-043` produces Harness comparison evidence after Stage 6 PRD validation. +Status: validated for candidate-default comparison proof on 2026-06-01. Candidate-default activation remains false; this is evidence for candidacy discussion, not runtime default authority. Entry gates: @@ -344,6 +344,17 @@ Planning evidence: - Stage 6 PRD: `.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-PRD.md`. - Stage 6 issues: `.sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md`. +Validation evidence: + +- Hermes commit: `ff0a008 Add Case Stage 6 candidate default comparison`. +- Focused Stage 6 validator on Hermes main: `python3 harness/runner/validate-case-stage6.py --harness-root harness --json`. +- Focused Stage 6 validator status: `ok: true`. +- Focused Stage 6 comparison report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101308Z-stage6-candidate-default-70246/stage6-candidate-default-comparison.json`. +- Post-merge aggregate Harness health: `harness/evals/health.sh --json`, status `pass`. +- Post-merge Stage 6 comparison report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101357Z-stage6-candidate-default-76795/stage6-candidate-default-comparison.json`. +- Post-merge aggregate matrix artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T101338Z-run-all-fake-74797/report.json`. +- Candidate-default activation remains `false`. + ## Final Guard These staged proof gates do not implement Case and do not authorize execution. They define the minimum route for later implementation. diff --git a/WORKBOARD.yaml b/WORKBOARD.yaml index 48e0b5e..fc6374c 100644 --- a/WORKBOARD.yaml +++ b/WORKBOARD.yaml @@ -212,6 +212,6 @@ items: owner: "" - id: CTO-WORK-043 title: Stage 6 Harness Candidate Default Comparison Route - status: candidate + status: validated source: .sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md owner: jp diff --git a/tools/validate_cto_child.py b/tools/validate_cto_child.py index 9ea84b6..5059601 100644 --- a/tools/validate_cto_child.py +++ b/tools/validate_cto_child.py @@ -1406,7 +1406,7 @@ def main() -> int: "CTO-WORK-040": "validated", "CTO-WORK-041": "validated", "CTO-WORK-042": "validated", - "CTO-WORK-043": "candidate", + "CTO-WORK-043": "validated", } for issue_id, expected in expected_statuses.items(): checked.append(f"workboard_status:{issue_id}:{expected}")