--- name: cto-case-candidate-backend-issues tier: local status: draft owner: jp source: .sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md created: 2026-05-31 last_reviewed: 2026-05-31 lifecycle_classification: planning core_promotion_status: not-promoted description: Child-local issue sequence for evaluating Case as a candidate CTO backend without granting Core authority. --- # CTO Case Candidate Backend Issues Local planning SOT only. Not a Core Protocol. Not active Core authority. ## Issue Sequence ### CTO-WORK-003 - Planning Validator Coverage Type: AFK Blocked by: CTO-WORK-002 User stories covered: 1, 5, 6, 12 What to build: Extend child-local validation so the CTO workspace cannot pass planning validation if the PRD or this issue artifact is missing, stale, or authority-drifting. Acceptance criteria: - [ ] `validate_cto_child.py` requires the PRD and issue artifact. - [ ] Validator checks `core_promotion_status: not-promoted` on PRD and issue artifact. - [ ] Validator checks local-planning disclaimer on PRD and issue artifact. - [ ] Validator checks candidate-backend wording and rejects a plain default-backend claim. - [ ] Validator checks `WORKBOARD.yaml` contains PRD and issue entries. - [ ] Validation remains planning-only and does not claim backend readiness. Allowed files: CTO child workspace planning docs and local validator only. Validator: `python3 tools/validate_cto_child.py` Done evidence: validator JSON, clean worktree, commit. ### CTO-WORK-004 - Harness Evidence Interface Contract Type: AFK Blocked by: CTO-WORK-003 User stories covered: 4, 9, 10, 11 What to build: Define the stable Harness Evidence Interface that any Case adapter must satisfy before execution work starts. Acceptance criteria: - [ ] Contract names exact required artifacts: `report.json`, `report.md`, `events.normalized.jsonl`, `patch.diff`, `test.log`, `trace.jsonl`, and backend raw logs. - [ ] Contract names required `report.json` fields: run start, run end, backend exit code, changed files, blockers, pass/fail status, artifact paths, and digest manifest. - [ ] Contract requires SHA-256 digests and freshness proof. - [ ] Contract defines fail-closed semantics and nonzero exit behavior. - [ ] Contract defines approval events: `approval.requested`, `approval.granted`, `approval.denied`. Allowed files: CTO child workspace planning docs only. Validator: `python3 tools/validate_cto_child.py` Done evidence: contract artifact, validator JSON, clean worktree, commit. ### CTO-WORK-005 - Case Source Admission Record Type: AFK Blocked by: CTO-WORK-003 User stories covered: 1, 12, 13 What to build: Define and record the source admission shape required before any non-artificial Case run. Acceptance criteria: - [ ] Source admission fields include source URL, pinned commit or tag, license note, retrieval date, retrieval command, integrity hash or source-lock reference, allowed execution mode, and protected-source boundary. - [ ] Source update rule records previous and new source IDs. - [ ] Source admission remains child-local and does not mutate vendor source. - [ ] Validator checks the planning artifact exists before later Case adapter candidacy. Allowed files: CTO child workspace planning docs and local validator only. Validator: `python3 tools/validate_cto_child.py` Done evidence: source admission artifact, validator JSON, clean worktree, commit. ### CTO-WORK-006 - Case Adapter Contract And Eligibility Decision Type: AFK Blocked by: CTO-WORK-004, CTO-WORK-005 User stories covered: 3, 4, 8, 10 What to build: Define the Case adapter contract and CTO Eligibility Decision without implementing real backend execution. Acceptance criteria: - [ ] Contract requires `case` to be registered as a gated engine before execution. - [ ] Contract requires the harness to accept `--engine case` only when explicitly enabled. - [ ] Contract prevents a parallel runner path outside the existing harness seam. - [ ] Eligibility Decision records selected backend, denied backends, risk class, required gates, allowed mutation mode, reasons, and escalation path. - [ ] Case may recommend but cannot approve itself or select its own authority. Allowed files: CTO child workspace planning docs only. Validator: `python3 tools/validate_cto_child.py` Done evidence: adapter contract artifact, validator JSON, clean worktree, commit. ### CTO-WORK-007 - Case Failure Fixture Matrix Type: AFK Blocked by: CTO-WORK-004, CTO-WORK-006 User stories covered: 8, 9, 11, 13 What to build: Define the required failure fixtures for later Case adapter testing. Acceptance criteria: - [ ] Matrix includes no diff, disallowed file, failed tests, missing test command, missing event, reviewer reject, approval denied, timeout, dirty starting tree, dirty ending tree, artifact write failure, and provider unavailable. - [ ] Each row names expected blocker reason, normalized event, report status, and exit behavior. - [ ] Each row maps to the Harness Evidence Interface. - [ ] Matrix is planning-only and does not run Case. Allowed files: CTO child workspace planning docs only. Validator: `python3 tools/validate_cto_child.py` Done evidence: failure matrix artifact, validator JSON, clean worktree, commit. ### CTO-WORK-008 - Staged Proof Gate Records Type: AFK Blocked by: CTO-WORK-004, CTO-WORK-006, CTO-WORK-007 User stories covered: 5, 7, 8, 9, 13 What to build: Define per-stage entry and exit records for Case candidate progression. Acceptance criteria: - [ ] Records cover gated engine, artificial fixture, copied repo fixture, disposable sandbox repo, owned noncritical repo, and candidate default. - [ ] Each stage names allowed mutation scope, required artifacts, validator, failure modes, and promotion condition. - [ ] Candidate default requires comparison against fake, Codex, and Pi where applicable. - [ ] Records state that default status is earned, not assumed. Allowed files: CTO child workspace planning docs only. Validator: `python3 tools/validate_cto_child.py` Done evidence: staged gate artifact, validator JSON, clean worktree, commit. ## Granularity Check This sequence is intentionally planning-heavy. It avoids implementing Case until the evidence interface, source admission, adapter contract, failure matrix, and staged proof gates are explicit.