165 lines
6.2 KiB
Markdown
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.
|