Record Hermes approval state evidence
This commit is contained in:
@@ -56,6 +56,7 @@ REQUIRED_FILES = [
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-WEBUI-LIVE-SMOKE-EVIDENCE.md",
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-STATE-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-STATE-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-STATE-EVIDENCE.md",
|
||||
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-APPROVAL-PACKET.md",
|
||||
@@ -222,6 +223,24 @@ REQUIRED_HERMES_APPROVAL_STATE_PHRASES = [
|
||||
"Hermes visualizes control state; CTO and Harness remain the gates.",
|
||||
]
|
||||
|
||||
REQUIRED_HERMES_APPROVAL_STATE_EVIDENCE_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"CTO-WORK-063",
|
||||
"154d835 Add CTO approval state surface",
|
||||
"approval_required",
|
||||
"approval_granted",
|
||||
"execution_allowed",
|
||||
"allowed next actions",
|
||||
"blocked next actions",
|
||||
"5 passed",
|
||||
"107 passed",
|
||||
"CONNECTION-MAP.md is fresh",
|
||||
"Case runtime default active: false",
|
||||
"target repository mutation: false",
|
||||
"upstream `hermes-webui` edited: false",
|
||||
"upstream `hermes-agent` edited: false",
|
||||
]
|
||||
|
||||
REQUIRED_HERMES_REAL_REFRESH_CONTROL_REPLAY_EVIDENCE_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"CTO-WORK-057",
|
||||
@@ -1295,6 +1314,16 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_hermes_approval_state_issue_phrase:{phrase}")
|
||||
|
||||
hermes_approval_state_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-STATE-EVIDENCE.md"
|
||||
if hermes_approval_state_evidence.is_file():
|
||||
text = hermes_approval_state_evidence.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("hermes_approval_state_evidence_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_HERMES_APPROVAL_STATE_EVIDENCE_PHRASES:
|
||||
checked.append(f"hermes_approval_state_evidence_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_hermes_approval_state_evidence_phrase:{phrase}")
|
||||
|
||||
hermes_real_refresh_control_replay_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-HERMES-REAL-REFRESH-CONTROL-REPLAY-EVIDENCE.md"
|
||||
if hermes_real_refresh_control_replay_evidence.is_file():
|
||||
text = hermes_real_refresh_control_replay_evidence.read_text(encoding="utf-8")
|
||||
@@ -1908,7 +1937,7 @@ def main() -> int:
|
||||
"CTO-WORK-060": "validated",
|
||||
"CTO-WORK-061": "validated",
|
||||
"CTO-WORK-062": "validated",
|
||||
"CTO-WORK-063": "candidate",
|
||||
"CTO-WORK-063": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
|
||||
Reference in New Issue
Block a user