Record Case provider decision state
This commit is contained in:
@@ -38,6 +38,7 @@ REQUIRED_FILES = [
|
||||
"sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-RECORD.md",
|
||||
]
|
||||
|
||||
REQUIRED_BRIEF_PHRASES = [
|
||||
@@ -536,6 +537,7 @@ REQUIRED_PROVIDER_DECISION_PACKET_PRD_PHRASES = [
|
||||
REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_IDS = [
|
||||
"CTO-WORK-023",
|
||||
"CTO-WORK-024",
|
||||
"CTO-WORK-025",
|
||||
]
|
||||
|
||||
REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_PHRASES = [
|
||||
@@ -561,6 +563,45 @@ REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_PHRASES = [
|
||||
"`CTO-WORK-020` remains blocked until admitted provider/model and real Stage 2 pass report exist.",
|
||||
"`CTO-WORK-022` remains blocked unless `decision_status=local_provider_required`.",
|
||||
"Real Case Stage 2 remains blocked unless `CTO_HARNESS_CASE_MODEL_ADMISSION_FILE` exists and matches `CTO_HARNESS_CASE_MODEL_PROVIDER` and `CTO_HARNESS_CASE_MODEL`.",
|
||||
"Decision record has `decision_status`: `not_decided`.",
|
||||
"Provider class, provider, model, approval source, credential source class, allowed network class, and review trigger remain empty while blocked.",
|
||||
"Record says `not_decided` means no provider/model may run.",
|
||||
"Record says it is not provider/model admission, not Stage 2 pass evidence, and not approval for external or local provider use.",
|
||||
"Record says `CTO-WORK-024` remains blocked because this record does not select `external_provider_approved` or `local_provider_required`.",
|
||||
"Record says only JP or a governed Core route may change it away from `not_decided`.",
|
||||
"Record allows only `external_provider_approved` or `local_provider_required` as future non-`not_decided` values.",
|
||||
"Record keeps `CTO-WORK-020` as provider/model admission authority.",
|
||||
"Record keeps `CTO_HARNESS_CASE_MODEL_ADMISSION_FILE` as execution admission gate.",
|
||||
"Record keeps `CTO-WORK-024` blocked while `decision_status=not_decided`.",
|
||||
"Record keeps `CTO-WORK-022` blocked unless `decision_status=local_provider_required`.",
|
||||
"Record keeps real Case Stage 2 blocked until admitted provider/model and Harness Evidence Interface pass report exist.",
|
||||
]
|
||||
|
||||
REQUIRED_PROVIDER_DECISION_RECORD_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"`decision_status`: `not_decided`.",
|
||||
"`provider_class`: empty while blocked.",
|
||||
"`provider`: empty while blocked.",
|
||||
"`model`: empty while blocked.",
|
||||
"`approval_source`: empty while blocked.",
|
||||
"`credential_source_class`: empty while blocked; no secret value.",
|
||||
"`allowed_network_class`: empty while blocked.",
|
||||
"`review_trigger`: empty while blocked.",
|
||||
"`effect`: `CTO-WORK-020 remains blocked until admitted provider/model and real Stage 2 pass report exist`.",
|
||||
"`not_decided` means no provider/model may run.",
|
||||
"not provider/model admission, not Stage 2 pass evidence, and not approval for external or local provider use",
|
||||
"`CTO-WORK-024` remains blocked because this record does not select `external_provider_approved` or `local_provider_required`.",
|
||||
"Only JP or a governed Core route may change this record away from `not_decided`.",
|
||||
"`external_provider_approved`.",
|
||||
"`local_provider_required`.",
|
||||
"No secret value may appear in SOT, task file, argv, report, trace, backend logs, generated config, or commit.",
|
||||
"No Target Repository path may be inspected or copied.",
|
||||
"`CTO-WORK-020` remains provider/model admission authority.",
|
||||
"`CTO_HARNESS_CASE_MODEL_ADMISSION_FILE` remains execution admission gate.",
|
||||
"`CTO-WORK-024` remains blocked while `decision_status=not_decided`.",
|
||||
"`CTO-WORK-022` remains blocked unless `decision_status=local_provider_required`.",
|
||||
"Real Case Stage 2 remains blocked until admitted provider/model and Harness Evidence Interface pass report exist.",
|
||||
"Existing evidence paths and commits are referenced only; runtime evidence is not copied into this record.",
|
||||
]
|
||||
|
||||
|
||||
@@ -832,6 +873,16 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_provider_decision_packet_issue_phrase:{phrase}")
|
||||
|
||||
provider_decision_record = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-RECORD.md"
|
||||
if provider_decision_record.is_file():
|
||||
text = provider_decision_record.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("provider_decision_record_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_PROVIDER_DECISION_RECORD_PHRASES:
|
||||
checked.append(f"provider_decision_record_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_provider_decision_record_phrase:{phrase}")
|
||||
|
||||
board = ROOT / "WORKBOARD.yaml"
|
||||
if board.is_file():
|
||||
text = board.read_text(encoding="utf-8")
|
||||
@@ -891,6 +942,7 @@ def main() -> int:
|
||||
"CTO-WORK-022": "blocked",
|
||||
"CTO-WORK-023": "validated",
|
||||
"CTO-WORK-024": "blocked",
|
||||
"CTO-WORK-025": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
@@ -937,6 +989,8 @@ def main() -> int:
|
||||
errors.append("workboard_missing_provider_decision_packet_prd_source")
|
||||
if "CTO-CASE-PROVIDER-DECISION-PACKET-ISSUES.md" not in text:
|
||||
errors.append("workboard_missing_provider_decision_packet_issues_source")
|
||||
if "CTO-CASE-PROVIDER-DECISION-RECORD.md" not in text:
|
||||
errors.append("workboard_missing_provider_decision_record_source")
|
||||
|
||||
payload = {
|
||||
"ok": not errors,
|
||||
|
||||
Reference in New Issue
Block a user