--- name: cto-case-stage6-candidate-default-issues tier: local status: draft owner: jp source: .sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-PRD.md created: 2026-06-01 last_reviewed: 2026-06-01 lifecycle_classification: planning core_promotion_status: not-promoted description: Child-local issue sequence for Stage 6 Case candidate-default comparison proof. --- # CTO Case Stage 6 Candidate Default Issues Local planning SOT only. Not a Core Protocol. Not active Core authority. ## Issue Sequence ### CTO-WORK-042 - Stage 6 Candidate Default PRD Type: AFK Status: validated. Blocked by: CTO-WORK-038 User stories covered: CTO Case Candidate Backend PRD stories 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13. What to build: Define the Stage 6 candidate-default comparison proof before implementation starts. Acceptance criteria: - [x] PRD states Stage 6 allowed mutation scope is `scoped real-repo use only`. - [x] PRD requires Stage 5 validation before Stage 6. - [x] PRD requires comparison against fake, Codex, and Pi where applicable. - [x] PRD requires Harness Evidence Interface comparison, not raw backend logs alone. - [x] PRD requires report shape, event validity, allowed-path compliance, failure closure, and artifact completeness comparison. - [x] PRD requires current Case source admission. - [x] PRD requires failure matrix coverage or explicit blocked rationale. - [x] PRD requires operator acceptance after comparison proof. - [x] PRD forbids treating Stage 6 as default activation, Core promotion, Runtime authorization, or permission for push, merge, deploy, close, PR open, issue close, public publication, vendor-source mutation, or unowned repository mutation. - [x] Local CTO validator checks Stage 6 PRD and issue artifact. Allowed files: CTO child workspace planning docs and local validator only. Validator: `python3 tools/validate_cto_child.py` Done evidence: PRD, issue artifact, validator JSON, clean worktree, commit. ### CTO-WORK-043 - Stage 6 Harness Candidate Default Comparison Route Type: HITL Status: validated. Blocked by: CTO-WORK-042 User stories covered: CTO Case Candidate Backend PRD stories 1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13. What to build: In `/home/svrnty/workspaces/hermes/cto/harness`, implement the Stage 6 candidate-default comparison route behind the existing Harness seam. Acceptance criteria: - [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: - 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 This is intentionally two slices: one planning route and one executable Harness comparison route. Stage 6 is not over-granular because it is the first point where Case can be discussed as candidate default, and it must separate evidence comparison from runtime default activation.