Record Stage 6 real refresh evidence
This commit is contained in:
@@ -42,6 +42,7 @@ REQUIRED_FILES = [
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-CANDIDATE-DEFAULT-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REAL-GOVERNED-REFRESH-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REAL-GOVERNED-REFRESH-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REAL-GOVERNED-REFRESH-EVIDENCE.md",
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-CONTROL-SURFACE-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-CONTROL-SURFACE-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-PRD.md",
|
||||
@@ -131,6 +132,25 @@ REQUIRED_FIRST_REAL_WORKFLOW_APPROVAL_PACKET_PHRASES = [
|
||||
"Runtime default activation remains false.",
|
||||
]
|
||||
|
||||
REQUIRED_STAGE6_REAL_REFRESH_EVIDENCE_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"CTO-WORK-055",
|
||||
"2b6e114 Add Stage 6 real governed refresh",
|
||||
"validate-case-stage6-real-refresh.py --json",
|
||||
"stage6-real-governed-refresh-comparison.json",
|
||||
"target repository read-only check passed",
|
||||
"report shape passed",
|
||||
"event validity passed",
|
||||
"allowed-path compliance passed",
|
||||
"prior Stage 6 failure closure passed",
|
||||
"artifact completeness passed",
|
||||
"forbidden-action closure passed",
|
||||
"operator acceptance passed",
|
||||
"runtime default activation: false",
|
||||
"no target repository mutation attempted",
|
||||
"Runtime default activation remains false.",
|
||||
]
|
||||
|
||||
REQUIRED_STAGE6_REAL_REFRESH_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"CTO-WORK-049",
|
||||
@@ -1052,6 +1072,16 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage6_real_refresh_issue_phrase:{phrase}")
|
||||
|
||||
stage6_real_refresh_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REAL-GOVERNED-REFRESH-EVIDENCE.md"
|
||||
if stage6_real_refresh_evidence.is_file():
|
||||
text = stage6_real_refresh_evidence.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("stage6_real_refresh_evidence_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_STAGE6_REAL_REFRESH_EVIDENCE_PHRASES:
|
||||
checked.append(f"stage6_real_refresh_evidence_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage6_real_refresh_evidence_phrase:{phrase}")
|
||||
|
||||
prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md"
|
||||
if prd.is_file():
|
||||
text = prd.read_text(encoding="utf-8")
|
||||
@@ -1637,7 +1667,7 @@ def main() -> int:
|
||||
"CTO-WORK-052": "validated",
|
||||
"CTO-WORK-053": "validated",
|
||||
"CTO-WORK-054": "validated",
|
||||
"CTO-WORK-055": "candidate",
|
||||
"CTO-WORK-055": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
|
||||
Reference in New Issue
Block a user