Protect Case model admission evidence
This commit is contained in:
parent
4d9ba492b0
commit
7fe25ece93
@ -57,6 +57,7 @@ Blocked by:
|
||||
## Hermes Implementation Evidence - 2026-05-31
|
||||
|
||||
- Hermes commit: `f39d8ab Require admitted Case model pair`.
|
||||
- `f39d8ab` proves admission gating implementation only; it is not a real Case Stage 2 pass.
|
||||
- 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`.
|
||||
|
||||
@ -91,6 +91,7 @@ Real Case Stage 2 remains blocked until a named provider/model is admitted, then
|
||||
## Hermes Implementation Evidence - 2026-05-31
|
||||
|
||||
- Hermes commit: `f39d8ab Require admitted Case model pair`.
|
||||
- `f39d8ab` proves admission gating implementation only; it is not a real Case Stage 2 pass.
|
||||
- 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.
|
||||
|
||||
@ -403,6 +403,28 @@ REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_IDS = [
|
||||
"CTO-WORK-020",
|
||||
]
|
||||
|
||||
REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_PHRASES = [
|
||||
"f39d8ab Require admitted Case model pair",
|
||||
"`f39d8ab` proves admission gating implementation only; it is not a real Case Stage 2 pass.",
|
||||
"CTO_HARNESS_CASE_MODEL_ADMISSION_FILE",
|
||||
"admission JSON is the authority",
|
||||
"Missing admission blocks before `case_process_started`.",
|
||||
"Mismatched admission blocks before `case_process_started`.",
|
||||
"case_model_provider",
|
||||
"case_model",
|
||||
"case_model_admission_status",
|
||||
"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 until a provider/model is explicitly approved and real Case Stage 2 produces a pass report.",
|
||||
]
|
||||
|
||||
|
||||
def workboard_status(text: str, issue_id: str) -> str | None:
|
||||
pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)"
|
||||
@ -615,6 +637,10 @@ def main() -> int:
|
||||
checked.append(f"model_provider_admission_issue_id:{issue_id}")
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_model_provider_admission_issue_id:{issue_id}")
|
||||
for phrase in REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_PHRASES:
|
||||
checked.append(f"model_provider_admission_issue_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_model_provider_admission_issue_phrase:{phrase}")
|
||||
|
||||
board = ROOT / "WORKBOARD.yaml"
|
||||
if board.is_file():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user