cto/.sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-ISSUES.md
2026-05-31 20:34:10 -04:00

165 lines
6.2 KiB
Markdown

---
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.