Add CTO Case source admission record
This commit is contained in:
@@ -19,6 +19,7 @@ REQUIRED_FILES = [
|
||||
"sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-HARNESS-EVIDENCE-INTERFACE-CONTRACT.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-SOURCE-ADMISSION-RECORD.md",
|
||||
]
|
||||
|
||||
REQUIRED_BRIEF_PHRASES = [
|
||||
@@ -80,6 +81,22 @@ REQUIRED_EVIDENCE_INTERFACE_PHRASES = [
|
||||
"fail closed",
|
||||
]
|
||||
|
||||
REQUIRED_SOURCE_ADMISSION_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"This record does not authorize Runtime behavior",
|
||||
"https://github.com/workos/case.git",
|
||||
"7959ac917cdeb0983b4aaa20bb9f42021747fed8",
|
||||
"2026-05-31",
|
||||
"git clone --depth 1 https://github.com/workos/case.git",
|
||||
"License status is unresolved.",
|
||||
"package private: true",
|
||||
"Status: not admitted for execution.",
|
||||
"Current allowed execution mode: planning-only.",
|
||||
"do not mutate the Case repository",
|
||||
"do not vendor Case source into Cortex OS Core",
|
||||
"No moving branch reference may be used as proof without a pinned commit or tag.",
|
||||
]
|
||||
|
||||
|
||||
def main() -> int:
|
||||
checked: list[str] = []
|
||||
@@ -137,6 +154,16 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_evidence_interface_phrase:{phrase}")
|
||||
|
||||
source_admission = ROOT / "sot/03-PROTOCOLS/CTO-CASE-SOURCE-ADMISSION-RECORD.md"
|
||||
if source_admission.is_file():
|
||||
text = source_admission.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("source_admission_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_SOURCE_ADMISSION_PHRASES:
|
||||
checked.append(f"source_admission_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_source_admission_phrase:{phrase}")
|
||||
|
||||
board = ROOT / "WORKBOARD.yaml"
|
||||
if board.is_file():
|
||||
text = board.read_text(encoding="utf-8")
|
||||
@@ -148,6 +175,8 @@ def main() -> int:
|
||||
errors.append("workboard_missing_evidence_interface_contract_source")
|
||||
if "CTO-WORK-004" in text and "status: validated" not in text:
|
||||
errors.append("workboard_cto_work_004_not_validated")
|
||||
if "CTO-CASE-SOURCE-ADMISSION-RECORD.md" not in text:
|
||||
errors.append("workboard_missing_source_admission_record_source")
|
||||
|
||||
payload = {
|
||||
"ok": not errors,
|
||||
|
||||
Reference in New Issue
Block a user