diff --git a/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md b/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md index 783bb8b..b568c59 100644 --- a/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md +++ b/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md @@ -54,3 +54,18 @@ Blocked by: - Human provider approval if an external provider such as Anthropic is selected. - A Case-compatible local provider route if external providers are not approved. +## Hermes Implementation Evidence - 2026-05-31 + +- Hermes commit: `f39d8ab Require admitted Case model pair`. +- The Hermes adapter now requires `CTO_HARNESS_CASE_MODEL_ADMISSION_FILE`. +- Env provider/model is only the requested pair; the admission JSON is the authority. +- Missing admission blocks before `case_process_started`. +- Mismatched admission blocks before `case_process_started`. +- Report evidence records `case_model_provider`, `case_model`, and `case_model_admission_status`. +- Status vocabulary includes `admitted`, `missing_admission`, `mismatch`, `invalid_admission`, and `not_admitted`. +- Secret scan covers `report.json`, `report.md`, `trace.jsonl`, backend logs, Case stdout/stderr, and generated Case config. +- Focused validator passed: `python3 harness/runner/validate-case-provider-adapter.py --harness-root harness --json`. +- Aggregate validator passed: `harness/evals/health.sh --json`. +- Focused validator artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260531T235421Z-r1-string-slugify-1875638`. +- Aggregate validator artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260531T235448Z-r1-string-slugify-1876884`. +- `CTO-WORK-020` remains blocked until a provider/model is explicitly approved and real Case Stage 2 produces a pass report. diff --git a/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md b/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md index 23b278b..cc23940 100644 --- a/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md +++ b/sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md @@ -88,3 +88,19 @@ Real Case Stage 2 remains blocked until a named provider/model is admitted, then - Model gate marker: `backend/provider-model-not-admitted.txt`. - Validator check: `model_provider_gate_blocks`. +## Hermes Implementation Evidence - 2026-05-31 + +- Hermes commit: `f39d8ab Require admitted Case model pair`. +- Admission file variable: `CTO_HARNESS_CASE_MODEL_ADMISSION_FILE`. +- Env provider/model is now a requested pair, not admission authority. +- The admission JSON is the authority for real Case Stage 2 model admission. +- The requested `CTO_HARNESS_CASE_MODEL_PROVIDER` and `CTO_HARNESS_CASE_MODEL` must match the admitted JSON provider and model. +- Admission status values: `admitted`, `missing_admission`, `mismatch`, `invalid_admission`, `not_admitted`. +- Missing admission and mismatched admission block before `case_process_started`. +- Stage 2 reports include `case_model_provider`, `case_model`, and `case_model_admission_status` for pass and blocked paths. +- Secret scan covers `report.json`, `report.md`, `trace.jsonl`, backend logs, Case stdout/stderr, and generated Case config. +- Focused Hermes validator passed: `python3 harness/runner/validate-case-provider-adapter.py --harness-root harness --json`. +- Post-merge Hermes aggregate validator passed: `harness/evals/health.sh --json`. +- Focused validator artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260531T235421Z-r1-string-slugify-1875638`. +- Aggregate validator artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260531T235448Z-r1-string-slugify-1876884`. +- `CTO-WORK-020` remains blocked because no real provider/model has been approved and no real Case Stage 2 pass report exists. diff --git a/tools/validate_cto_child.py b/tools/validate_cto_child.py index e995ab4..8c06ca4 100644 --- a/tools/validate_cto_child.py +++ b/tools/validate_cto_child.py @@ -382,6 +382,20 @@ REQUIRED_MODEL_PROVIDER_ADMISSION_PRD_PHRASES = [ "No secrets appear in task file, argv, report, trace, backend logs, SOT, or commits.", "4500082 Gate Case execution on admitted model", "model_provider_gate_blocks", + "f39d8ab Require admitted Case model pair", + "CTO_HARNESS_CASE_MODEL_ADMISSION_FILE", + "Env provider/model is now a requested pair, not admission authority.", + "The admission JSON is the authority for real Case Stage 2 model admission.", + "admitted", + "missing_admission", + "mismatch", + "invalid_admission", + "not_admitted", + "report.md", + "Case stdout/stderr", + "20260531T235421Z-r1-string-slugify-1875638", + "20260531T235448Z-r1-string-slugify-1876884", + "`CTO-WORK-020` remains blocked because no real provider/model has been approved and no real Case Stage 2 pass report exists.", ] REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_IDS = [