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

54 lines
2.1 KiB
Markdown

---
title: CTO Case Provider Admission Issues
status: draft
lifecycle_classification: sot
owner: jp
created: 2026-05-31
last_reviewed: 2026-05-31
core_promotion_status: not-promoted
route: cto
---
# CTO Case Provider Admission Issues
Local planning SOT only. Not a Core Protocol. Not active Core authority.
## CTO-WORK-013 - Case Provider Admission PRD
Status: validated.
Register the provider-admission product requirement that separates discovery evidence from executable admission.
Acceptance:
- Records WorkOS Case source as `https://github.com/workos/case.git`.
- Records pinned commit `7959ac917cdeb0983b4aaa20bb9f42021747fed8`.
- Records that the CLI binary is `ca`.
- Records that `case` on public npm is not WorkOS Case.
- Records that Bun and `bun run build:binary` are required for `dist/ca`.
- Records that Stage 2 must use `ca run --task <task-file>`.
## CTO-WORK-014 - Hermes Case CLI Task Adapter Route
Status: validated.
Implement the smallest Hermes CTO harness change that converts the Stage 2 artificial fixture contract into a Case task file and invokes the admitted Case provider with the correct command shape.
Acceptance:
- `CTO_HARNESS_CASE_BIN` points to an admitted `ca` executable.
- Stage 2 invokes `ca run --task <task-file>`.
- The adapter does not pass a raw prompt as argv.
- Missing provider, wrong provider, wrong command shape, or wrong task contract blocks.
- The Stage 2 pass report is produced only by real Case execution.
- Provider-unavailable fail-closed behavior remains tested.
- No Target Repository path is inspected or copied.
## Validation Evidence - 2026-05-31
- Hermes commit: `5d04515 Add Stage 2 Case task adapter contract`.
- Adapter writes Case task state for the copied artificial fixture and invokes `ca run --task <task-file> --mode unattended`.
- `validate-case-provider-adapter.py` passed with a local test double for command shape and task contract.
- `harness/evals/health.sh --json` passed after merge and includes `case_provider_adapter.passed: true`.
- `validate-case-stage2.py` remains blocked without an admitted real Case provider; this is expected and preserves fail-closed behavior.