Track Spark endpoint config blocker
This commit is contained in:
@@ -41,6 +41,8 @@ REQUIRED_FILES = [
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-RECORD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.openai-codex-gpt-5.5.json",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md",
|
||||
]
|
||||
|
||||
@@ -663,6 +665,42 @@ REQUIRED_PROVIDER_DECISION_RECORD_PHRASES = [
|
||||
"Existing evidence paths and commits are referenced only; runtime evidence is not copied into this record.",
|
||||
]
|
||||
|
||||
REQUIRED_SPARK_ENDPOINT_CONFIG_PRD_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"`qwen-local` / `qwen3.6-35b-a3b` is now the selected primary Case provider policy",
|
||||
"CTO_HARNESS_CASE_LOCAL_BASE_URL",
|
||||
"missing. The harness correctly blocks before `case_process_started`",
|
||||
"Treat the endpoint value as runtime config, not SOT content.",
|
||||
"Do not store endpoint secrets or credential values in SOT, argv, task file, backend logs, report, trace, generated config, or commit.",
|
||||
"Require missing endpoint config to write `backend/provider-local-config-unavailable.txt`.",
|
||||
"Keep `CTO-WORK-020`, `CTO-WORK-016`, `CTO-WORK-022`, and Stage 2 blocked until real pass evidence exists.",
|
||||
"endpoint presence is not Stage 2 pass evidence",
|
||||
"configured endpoint alone does not validate `CTO-WORK-016`, `CTO-WORK-020`, `CTO-WORK-022`, or `CTO-WORK-028`",
|
||||
"no Target Repository path may be inspected or copied",
|
||||
"Harness Evidence Interface",
|
||||
"same-run fake baseline comparison required",
|
||||
]
|
||||
|
||||
REQUIRED_SPARK_ENDPOINT_CONFIG_ISSUE_PHRASES = [
|
||||
"CTO-WORK-030 - Spark Local Provider Endpoint Config",
|
||||
"Status: blocked.",
|
||||
"CTO_HARNESS_CASE_LOCAL_BASE_URL",
|
||||
"Missing endpoint config blocks before `case_process_started`.",
|
||||
"Missing endpoint config writes `backend/provider-local-config-unavailable.txt`.",
|
||||
"Endpoint values are not written to SOT, task file, argv, backend logs, report, trace, generated config, or commit.",
|
||||
"Harness report proves `case_model_provider`: `qwen-local`.",
|
||||
"Harness report proves `case_model`: `qwen3.6-35b-a3b`.",
|
||||
"Harness report proves `case_model_admission_status`: `admitted`.",
|
||||
"Harness report proves no fallback to `anthropic` or `claude-sonnet-4-6`.",
|
||||
"Real Case Stage 2 pass evidence exists only through the Harness Evidence Interface.",
|
||||
"A configured endpoint alone does not validate `CTO-WORK-016`, `CTO-WORK-020`, `CTO-WORK-022`, or `CTO-WORK-028`.",
|
||||
"No Target Repository path may be inspected or copied.",
|
||||
"Same-run fake baseline comparison remains required for any pass claim.",
|
||||
"`CTO-WORK-016` remains blocked until real Case Stage 2 pass evidence exists.",
|
||||
"`CTO-WORK-022` remains blocked until explicit endpoint config and real Case Stage 2 pass evidence exist.",
|
||||
"Non-secret readiness check on 2026-06-01 showed `CTO_HARNESS_CASE_LOCAL_BASE_URL=missing`.",
|
||||
]
|
||||
|
||||
|
||||
def workboard_status(text: str, issue_id: str) -> str | None:
|
||||
pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)"
|
||||
@@ -716,6 +754,22 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_issue_id:{issue_id}")
|
||||
|
||||
spark_endpoint_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-PRD.md"
|
||||
if spark_endpoint_prd.is_file():
|
||||
text = spark_endpoint_prd.read_text(encoding="utf-8")
|
||||
for phrase in REQUIRED_SPARK_ENDPOINT_CONFIG_PRD_PHRASES:
|
||||
checked.append(f"spark_endpoint_config_prd_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_spark_endpoint_config_prd_phrase:{phrase}")
|
||||
|
||||
spark_endpoint_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md"
|
||||
if spark_endpoint_issues.is_file():
|
||||
text = spark_endpoint_issues.read_text(encoding="utf-8")
|
||||
for phrase in REQUIRED_SPARK_ENDPOINT_CONFIG_ISSUE_PHRASES:
|
||||
checked.append(f"spark_endpoint_config_issue_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_spark_endpoint_config_issue_phrase:{phrase}")
|
||||
|
||||
evidence_interface = ROOT / ".sot/03-PROTOCOLS/CTO-HARNESS-EVIDENCE-INTERFACE-CONTRACT.md"
|
||||
if evidence_interface.is_file():
|
||||
text = evidence_interface.read_text(encoding="utf-8")
|
||||
@@ -1053,6 +1107,7 @@ def main() -> int:
|
||||
"CTO-WORK-026": "validated",
|
||||
"CTO-WORK-027": "validated",
|
||||
"CTO-WORK-029": "validated",
|
||||
"CTO-WORK-030": "blocked",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
@@ -1105,6 +1160,8 @@ def main() -> int:
|
||||
errors.append("workboard_missing_openai_codex_admission_json_source")
|
||||
if "CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json" not in text:
|
||||
errors.append("workboard_missing_qwen_local_admission_json_source")
|
||||
if "CTO-CASE-SPARK-ENDPOINT-CONFIG-ISSUES.md" not in text:
|
||||
errors.append("workboard_missing_spark_endpoint_config_issues_source")
|
||||
|
||||
payload = {
|
||||
"ok": not errors,
|
||||
|
||||
Reference in New Issue
Block a user