Migrate CTO SOT route to dotpath
This commit is contained in:
+47
-47
@@ -15,30 +15,30 @@ REQUIRED_FILES = [
|
||||
"README.md",
|
||||
"WORKBOARD.yaml",
|
||||
"CONTEXT.md",
|
||||
"sot/00-START/CTO-WORKSPACE-INTENT.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-BACKEND-BRIEF.md",
|
||||
"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",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-ADAPTER-CONTRACT.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-FAILURE-FIXTURE-MATRIX.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md",
|
||||
"sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-PRD.md",
|
||||
"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",
|
||||
".sot/00-START/CTO-WORKSPACE-INTENT.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-BACKEND-BRIEF.md",
|
||||
".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",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-ADAPTER-CONTRACT.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-FAILURE-FIXTURE-MATRIX.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-PRD.md",
|
||||
".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 = [
|
||||
@@ -621,7 +621,7 @@ def main() -> int:
|
||||
if not path.is_file():
|
||||
errors.append(f"missing_required_file:{rel}")
|
||||
|
||||
brief = ROOT / "sot/03-PROTOCOLS/CTO-CASE-BACKEND-BRIEF.md"
|
||||
brief = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-BACKEND-BRIEF.md"
|
||||
if brief.is_file():
|
||||
text = brief.read_text(encoding="utf-8")
|
||||
for phrase in REQUIRED_BRIEF_PHRASES:
|
||||
@@ -631,7 +631,7 @@ def main() -> int:
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("brief_missing_not_promoted_frontmatter")
|
||||
|
||||
prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md"
|
||||
prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md"
|
||||
if prd.is_file():
|
||||
text = prd.read_text(encoding="utf-8")
|
||||
for phrase in REQUIRED_PRD_PHRASES:
|
||||
@@ -645,7 +645,7 @@ def main() -> int:
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("prd_missing_not_promoted_frontmatter")
|
||||
|
||||
issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-ISSUES.md"
|
||||
issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-ISSUES.md"
|
||||
if issues.is_file():
|
||||
text = issues.read_text(encoding="utf-8")
|
||||
if "Local planning SOT only. Not a Core Protocol. Not active Core authority." not in text:
|
||||
@@ -657,7 +657,7 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_issue_id:{issue_id}")
|
||||
|
||||
evidence_interface = ROOT / "sot/03-PROTOCOLS/CTO-HARNESS-EVIDENCE-INTERFACE-CONTRACT.md"
|
||||
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")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -667,7 +667,7 @@ 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"
|
||||
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:
|
||||
@@ -677,7 +677,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_source_admission_phrase:{phrase}")
|
||||
|
||||
adapter_contract = ROOT / "sot/03-PROTOCOLS/CTO-CASE-ADAPTER-CONTRACT.md"
|
||||
adapter_contract = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-ADAPTER-CONTRACT.md"
|
||||
if adapter_contract.is_file():
|
||||
text = adapter_contract.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -687,7 +687,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_adapter_contract_phrase:{phrase}")
|
||||
|
||||
failure_matrix = ROOT / "sot/03-PROTOCOLS/CTO-CASE-FAILURE-FIXTURE-MATRIX.md"
|
||||
failure_matrix = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-FAILURE-FIXTURE-MATRIX.md"
|
||||
if failure_matrix.is_file():
|
||||
text = failure_matrix.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -697,7 +697,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_failure_matrix_phrase:{phrase}")
|
||||
|
||||
staged_proof = ROOT / "sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md"
|
||||
staged_proof = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGED-PROOF-GATES.md"
|
||||
if staged_proof.is_file():
|
||||
text = staged_proof.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -707,7 +707,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_staged_proof_phrase:{phrase}")
|
||||
|
||||
stage1_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-PRD.md"
|
||||
stage1_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-PRD.md"
|
||||
if stage1_prd.is_file():
|
||||
text = stage1_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -717,7 +717,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage1_prd_phrase:{phrase}")
|
||||
|
||||
stage1_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-ISSUES.md"
|
||||
stage1_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE1-GATED-ENGINE-ISSUES.md"
|
||||
if stage1_issues.is_file():
|
||||
text = stage1_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -729,7 +729,7 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_stage1_issue_id:{issue_id}")
|
||||
|
||||
stage2_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-PRD.md"
|
||||
stage2_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-PRD.md"
|
||||
if stage2_prd.is_file():
|
||||
text = stage2_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -739,7 +739,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage2_prd_phrase:{phrase}")
|
||||
|
||||
stage2_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md"
|
||||
stage2_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE2-ARTIFICIAL-FIXTURE-ISSUES.md"
|
||||
if stage2_issues.is_file():
|
||||
text = stage2_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -751,7 +751,7 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_stage2_issue_id:{issue_id}")
|
||||
|
||||
provider_admission_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-PRD.md"
|
||||
provider_admission_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-PRD.md"
|
||||
if provider_admission_prd.is_file():
|
||||
text = provider_admission_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -761,7 +761,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_provider_admission_prd_phrase:{phrase}")
|
||||
|
||||
provider_admission_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-ISSUES.md"
|
||||
provider_admission_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-ADMISSION-ISSUES.md"
|
||||
if provider_admission_issues.is_file():
|
||||
text = provider_admission_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -773,7 +773,7 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_provider_admission_issue_id:{issue_id}")
|
||||
|
||||
provider_build_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-PRD.md"
|
||||
provider_build_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-PRD.md"
|
||||
if provider_build_prd.is_file():
|
||||
text = provider_build_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -783,7 +783,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_provider_build_prd_phrase:{phrase}")
|
||||
|
||||
provider_build_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md"
|
||||
provider_build_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-BUILD-ISSUES.md"
|
||||
if provider_build_issues.is_file():
|
||||
text = provider_build_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -795,7 +795,7 @@ def main() -> int:
|
||||
if issue_id not in text:
|
||||
errors.append(f"missing_provider_build_issue_id:{issue_id}")
|
||||
|
||||
model_provider_admission_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md"
|
||||
model_provider_admission_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-PRD.md"
|
||||
if model_provider_admission_prd.is_file():
|
||||
text = model_provider_admission_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -805,7 +805,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_model_provider_admission_prd_phrase:{phrase}")
|
||||
|
||||
model_provider_admission_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md"
|
||||
model_provider_admission_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION-ISSUES.md"
|
||||
if model_provider_admission_issues.is_file():
|
||||
text = model_provider_admission_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -821,7 +821,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_model_provider_admission_issue_phrase:{phrase}")
|
||||
|
||||
local_provider_route_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-PRD.md"
|
||||
local_provider_route_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-PRD.md"
|
||||
if local_provider_route_prd.is_file():
|
||||
text = local_provider_route_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -831,7 +831,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_local_provider_route_prd_phrase:{phrase}")
|
||||
|
||||
local_provider_route_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md"
|
||||
local_provider_route_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-ISSUES.md"
|
||||
if local_provider_route_issues.is_file():
|
||||
text = local_provider_route_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -847,7 +847,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_local_provider_route_issue_phrase:{phrase}")
|
||||
|
||||
provider_decision_packet_prd = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-PRD.md"
|
||||
provider_decision_packet_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-PRD.md"
|
||||
if provider_decision_packet_prd.is_file():
|
||||
text = provider_decision_packet_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -857,7 +857,7 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_provider_decision_packet_prd_phrase:{phrase}")
|
||||
|
||||
provider_decision_packet_issues = ROOT / "sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-ISSUES.md"
|
||||
provider_decision_packet_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-ISSUES.md"
|
||||
if provider_decision_packet_issues.is_file():
|
||||
text = provider_decision_packet_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
@@ -873,7 +873,7 @@ 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"
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user