Record Stage 6 repeatability refresh
This commit is contained in:
@@ -81,6 +81,9 @@ REQUIRED_FILES = [
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-PRD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-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",
|
||||
@@ -1327,6 +1330,84 @@ REQUIRED_STAGE5_REPEATABILITY_PHRASES = [
|
||||
"No Core promotion occurs.",
|
||||
]
|
||||
|
||||
REQUIRED_STAGE6_REPEATABILITY_REFRESH_PRD_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"Stage 6 repeatability refresh",
|
||||
"CTO-WORK-081",
|
||||
"CTO-WORK-082",
|
||||
"CTO-WORK-083",
|
||||
"CTO-WORK-084",
|
||||
"r1-src-string-slugify",
|
||||
"r1-slugify-punctuation",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T105222Z-r1-src-string-slugify-180161/report.json",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/report.json",
|
||||
"report shape",
|
||||
"event validity",
|
||||
"allowed-path compliance",
|
||||
"failure closure",
|
||||
"failure matrix coverage carry-forward",
|
||||
"artifact completeness",
|
||||
"forbidden-action closure",
|
||||
"operator acceptance",
|
||||
"approval provenance",
|
||||
"source admission freshness",
|
||||
"repeatability_count: 2",
|
||||
"repeatability_status: pass",
|
||||
"runtime_default_activation: false",
|
||||
"core_promotion_status: not-promoted",
|
||||
]
|
||||
|
||||
REQUIRED_STAGE6_REPEATABILITY_REFRESH_ISSUE_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"Stage 6 repeatability refresh",
|
||||
"CTO-WORK-081",
|
||||
"CTO-WORK-082",
|
||||
"CTO-WORK-083",
|
||||
"CTO-WORK-084",
|
||||
"validate-case-stage6-real-refresh.py",
|
||||
"real_stage5_passes",
|
||||
"repeat_stage5_pass_report",
|
||||
"repeat_stage5_proof",
|
||||
"repeatability_required: 2",
|
||||
"repeatability_count: 2",
|
||||
"repeatability_status: pass",
|
||||
"repeatability_passed: true",
|
||||
"runtime_default_activation: false",
|
||||
"core_promotion_status: not-promoted",
|
||||
"05ab2ff",
|
||||
"40b0d9a",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T104507Z-stage6-real-governed-refresh/stage6-real-governed-refresh-comparison.json",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T104552Z-run-all-fake-2738738/webui-summary.json",
|
||||
]
|
||||
|
||||
REQUIRED_STAGE6_REPEATABILITY_REFRESH_EVIDENCE_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"Stage 6 repeatability refresh",
|
||||
"CTO-WORK-081",
|
||||
"CTO-WORK-082",
|
||||
"CTO-WORK-083",
|
||||
"CTO-WORK-084",
|
||||
"05ab2ff",
|
||||
"40b0d9a",
|
||||
"r1-slugify-punctuation",
|
||||
"2fa1601",
|
||||
"7706f99",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T104507Z-stage6-real-governed-refresh/stage6-real-governed-refresh-comparison.json",
|
||||
"/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T104552Z-run-all-fake-2738738/webui-summary.json",
|
||||
"repeatability_count: 2",
|
||||
"repeatability_status: pass",
|
||||
"runtime_default_activation: false",
|
||||
"core_promotion_status: not-promoted",
|
||||
"no target repository mutation attempted",
|
||||
"report shape: pass",
|
||||
"event validity: pass",
|
||||
"approval provenance: pass",
|
||||
"source admission freshness: current",
|
||||
"Codex lane: blocked with rationale",
|
||||
"Pi lane: blocked with rationale",
|
||||
"JP chat approval on 2026-06-01",
|
||||
]
|
||||
|
||||
|
||||
def workboard_status(text: str, issue_id: str) -> str | None:
|
||||
pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)"
|
||||
@@ -1845,6 +1926,36 @@ def main() -> int:
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage5_repeatability_evidence_phrase:{phrase}")
|
||||
|
||||
stage6_repeatability_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-PRD.md"
|
||||
if stage6_repeatability_prd.is_file():
|
||||
text = stage6_repeatability_prd.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("stage6_repeatability_prd_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_STAGE6_REPEATABILITY_REFRESH_PRD_PHRASES:
|
||||
checked.append(f"stage6_repeatability_prd_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage6_repeatability_prd_phrase:{phrase}")
|
||||
|
||||
stage6_repeatability_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-ISSUES.md"
|
||||
if stage6_repeatability_issues.is_file():
|
||||
text = stage6_repeatability_issues.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("stage6_repeatability_issues_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_STAGE6_REPEATABILITY_REFRESH_ISSUE_PHRASES:
|
||||
checked.append(f"stage6_repeatability_issue_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage6_repeatability_issue_phrase:{phrase}")
|
||||
|
||||
stage6_repeatability_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE6-REPEATABILITY-REFRESH-EVIDENCE.md"
|
||||
if stage6_repeatability_evidence.is_file():
|
||||
text = stage6_repeatability_evidence.read_text(encoding="utf-8")
|
||||
if "core_promotion_status: not-promoted" not in text:
|
||||
errors.append("stage6_repeatability_evidence_missing_not_promoted_frontmatter")
|
||||
for phrase in REQUIRED_STAGE6_REPEATABILITY_REFRESH_EVIDENCE_PHRASES:
|
||||
checked.append(f"stage6_repeatability_evidence_phrase:{phrase}")
|
||||
if phrase not in text:
|
||||
errors.append(f"missing_stage6_repeatability_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")
|
||||
@@ -2456,6 +2567,10 @@ def main() -> int:
|
||||
"CTO-WORK-078": "validated",
|
||||
"CTO-WORK-079": "validated",
|
||||
"CTO-WORK-080": "validated",
|
||||
"CTO-WORK-081": "validated",
|
||||
"CTO-WORK-082": "validated",
|
||||
"CTO-WORK-083": "validated",
|
||||
"CTO-WORK-084": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
|
||||
Reference in New Issue
Block a user