From ae08dc446887e286bf2eb3f2f27e159e06e6847f Mon Sep 17 00:00:00 2001 From: Svrnty Date: Tue, 2 Jun 2026 06:20:42 -0400 Subject: [PATCH] Record Stage 5 repeatability proof --- ...ASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md | 70 +++++++++++++++++++ ...-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md | 63 +++++++++++++++++ ...CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md | 62 ++++++++++++++++ WORKBOARD.yaml | 15 ++++ tools/validate_cto_child.py | 61 ++++++++++++++++ 5 files changed, 271 insertions(+) create mode 100644 .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md create mode 100644 .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md create mode 100644 .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md new file mode 100644 index 0000000..63ac293 --- /dev/null +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md @@ -0,0 +1,70 @@ +--- +name: CTO Case Stage5 Repeatability Proof Evidence +status: validated +lifecycle_classification: sot +owner: jp +created: 2026-06-02 +last_reviewed: 2026-06-02 +core_promotion_status: not-promoted +--- + +# CTO Case Stage5 Repeatability Proof Evidence + +Local planning SOT only. Not a Core Protocol. Not active Core authority. + +## Workboard + +- `CTO-WORK-078` +- `CTO-WORK-079` +- `CTO-WORK-080` + +## Result + +- Stage 5 repeatability proof +- second governed Stage 5 Case run +- status: validated +- approval_source: JP chat instruction on 2026-06-02 to execute repeatability proof +- r1-slugify-punctuation +- Runtime default activation remains false. +- Do not activate Case as default backend. +- This closeout does not authorize another Case run. + +## Route Evidence + +- Harness route commit: `99000f7d249d594bfc786f00a3008457accdda11` +- Harness route short commit: `99000f7` +- Fake baseline report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101410Z-r1-slugify-punctuation-2662313/report.json` +- Harness aggregate health: `pass` +- WebUI summary validator: `ok: true` +- WebUI summary path: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101651Z-run-all-fake-2667221/webui-summary.json` + +## Execution Evidence + +- Harness report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/report.json` +- Stage 5 proof: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/stage5-owned-repo-proof.json` +- target repository: `/home/svrnty/workspaces/cortex-os/cto-stage5-target-sandbox` +- target commit: `2fa1601844c083ff1936151f9df23b94783216b8` +- target short commit: `2fa1601` +- case_process_started: true +- changed files: `src/strings.py`, `strings.py`, `test_strings.py` +- allowed paths passed: true +- forbidden paths passed: true +- no forbidden actions: true +- target repository start clean: true +- target repository ending clean: true +- operator outcome: `accepted` +- push, merge, deploy, close, PR open attempted: false +- public publication attempted: false + +## Validation Evidence + +- target command: `python3 -m pytest -q` +- target result: `11 passed` +- target child validator: `ok: true` +- Harness case validator: `passed: true` +- focused Stage 5 validator: `ok: true` +- WebUI plugin focused tests: `7 passed` + +## Guard + +No Core promotion occurs. Case remains a gated adapter behind the CTO Harness seam. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md new file mode 100644 index 0000000..03f2e12 --- /dev/null +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md @@ -0,0 +1,63 @@ +--- +name: CTO Case Stage5 Repeatability Proof Issues +status: validated +lifecycle_classification: sot +owner: jp +created: 2026-06-02 +last_reviewed: 2026-06-02 +core_promotion_status: not-promoted +--- + +# CTO Case Stage5 Repeatability Proof Issues + +Stage 5 repeatability proof. + +Local planning SOT only. Not a Core Protocol. Not active Core authority. + +## Issue: CTO-WORK-078 - Stage 5 Repeatability Proof PRD + +Status: validated. + +Acceptance: + +- Define second governed Stage 5 Case run. +- Require `r1-slugify-punctuation`. +- Require admitted target repository. +- Require allowed paths. +- Require no Core promotion. +- No Core promotion occurs. +- Require Runtime default activation remains false. + +## Issue: CTO-WORK-079 - Stage 5 Repeatability Harness Case Route + +Status: validated. + +Acceptance: + +- Add Harness case `r1-slugify-punctuation`. +- Record Harness route commit `99000f7`. +- Fake baseline passes. +- Aggregate Harness health passes. +- WebUI summary validation passes. + +## Issue: CTO-WORK-080 - Stage 5 Repeatability Evidence Closeout + +Status: validated. + +Acceptance: + +- Record second governed Stage 5 Case run. +- Record approval_source: JP chat instruction on 2026-06-02 to execute repeatability proof. +- Reference report `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/report.json`. +- Reference Stage 5 proof `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/stage5-owned-repo-proof.json`. +- Record target commit `2fa1601`. +- Record case_process_started: true. +- Record changed files: `src/strings.py`, `strings.py`, `test_strings.py`. +- Record allowed paths passed: true. +- Record forbidden paths passed: true. +- Record target repository start clean: true. +- Record target repository ending clean: true. +- Record `11 passed`. +- State: Runtime default activation remains false. +- State: Do not activate Case as default backend. +- State: This closeout does not authorize another Case run. diff --git a/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md new file mode 100644 index 0000000..56ed309 --- /dev/null +++ b/.sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md @@ -0,0 +1,62 @@ +--- +name: CTO Case Stage5 Repeatability Proof PRD +status: validated +lifecycle_classification: sot +owner: jp +created: 2026-06-02 +last_reviewed: 2026-06-02 +core_promotion_status: not-promoted +--- + +# CTO Case Stage5 Repeatability Proof PRD + +Stage 5 repeatability proof. + +Local planning SOT only. Not a Core Protocol. Not active Core authority. + +## Problem + +The first governed Stage 5 run proved one approved Case mutation. CTO still needs a second governed Stage 5 Case run to prove repeatability without activating Case as default. + +## Scope + +- Add Harness case `r1-slugify-punctuation`. +- Use admitted target repository `/home/svrnty/workspaces/cortex-os/cto-stage5-target-sandbox`. +- Limit writes to `strings.py`, `src/strings.py`, and `test_strings.py`. +- Use JP chat instruction on 2026-06-02 to execute the repeatability proof as the approval source. +- Run one Stage 5 Case Harness execution. +- Record Harness report, Stage 5 proof, target commit, validations, and WebUI summary validation. + +## Non-goals + +- Do not activate Case as default backend. +- Do not promote CTO artifacts into Core. +- No Core promotion occurs. +- Do not authorize another Case run. +- This closeout does not authorize another Case run. +- Do not push, merge, deploy, close, PR open, issue close, or publish. +- Do not store endpoint values, secret values, or credential values in SOT. + +## Acceptance Criteria + +- `CTO-WORK-078`, `CTO-WORK-079`, and `CTO-WORK-080` are validated. +- Harness route commit records `r1-slugify-punctuation`. +- Fake baseline passes. +- Live Stage 5 Case run passes. +- case_process_started: true. +- changed files: `src/strings.py`, `strings.py`, `test_strings.py`. +- allowed paths passed: true. +- forbidden paths passed: true. +- target repository start clean: true. +- target repository ending clean: true. +- target validation result is `11 passed`. +- Runtime default activation remains false. +- Harness route commit: `99000f7`. +- Target commit: `2fa1601`. +- Harness report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/report.json`. +- Stage 5 proof: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/stage5-owned-repo-proof.json`. + +## Validation + +- `python3 tools/validate_cto_child.py` +- `python3 /home/svrnty/workspaces/cortex-os/core/tools/check_s69_caveman_prose_discipline.py` diff --git a/WORKBOARD.yaml b/WORKBOARD.yaml index 115f7ac..04f7dee 100644 --- a/WORKBOARD.yaml +++ b/WORKBOARD.yaml @@ -386,3 +386,18 @@ items: status: validated source: .sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-CLOSEOUT.md owner: "" + - id: CTO-WORK-078 + title: Stage 5 Repeatability Proof PRD + status: validated + source: .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md + owner: "" + - id: CTO-WORK-079 + title: Stage 5 Repeatability Harness Case Route + status: validated + source: .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md + owner: "" + - id: CTO-WORK-080 + title: Stage 5 Repeatability Evidence Closeout + status: validated + source: .sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md + owner: "" diff --git a/tools/validate_cto_child.py b/tools/validate_cto_child.py index 92368d3..7614d4b 100644 --- a/tools/validate_cto_child.py +++ b/tools/validate_cto_child.py @@ -78,6 +78,9 @@ REQUIRED_FILES = [ ".sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-PRD.md", ".sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-ISSUES.md", ".sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-CLOSEOUT.md", + ".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-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", @@ -1299,6 +1302,31 @@ REQUIRED_SPARK_ENDPOINT_CONFIG_ISSUE_PHRASES = [ "Non-secret readiness check on 2026-06-01 showed `CTO_HARNESS_CASE_LOCAL_BASE_URL=missing`.", ] +REQUIRED_STAGE5_REPEATABILITY_PHRASES = [ + "Local planning SOT only. Not a Core Protocol. Not active Core authority.", + "CTO-WORK-078", + "CTO-WORK-079", + "CTO-WORK-080", + "Stage 5 repeatability proof", + "second governed Stage 5 Case run", + "r1-slugify-punctuation", + "99000f7", + "2fa1601", + "/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/report.json", + "/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260602T101450Z-r1-slugify-punctuation-2663598/stage5-owned-repo-proof.json", + "case_process_started: true", + "changed files: `src/strings.py`, `strings.py`, `test_strings.py`", + "allowed paths passed: true", + "forbidden paths passed: true", + "target repository start clean: true", + "target repository ending clean: true", + "11 passed", + "Runtime default activation remains false.", + "Do not activate Case as default backend.", + "This closeout does not authorize another Case run.", + "No Core promotion occurs.", +] + def workboard_status(text: str, issue_id: str) -> str | None: pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)" @@ -1787,6 +1815,36 @@ def main() -> int: if phrase not in text: errors.append(f"missing_stage6_real_refresh_evidence_phrase:{phrase}") + stage5_repeatability_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-PRD.md" + if stage5_repeatability_prd.is_file(): + text = stage5_repeatability_prd.read_text(encoding="utf-8") + if "core_promotion_status: not-promoted" not in text: + errors.append("stage5_repeatability_prd_missing_not_promoted_frontmatter") + for phrase in REQUIRED_STAGE5_REPEATABILITY_PHRASES: + checked.append(f"stage5_repeatability_prd_phrase:{phrase}") + if phrase not in text: + errors.append(f"missing_stage5_repeatability_prd_phrase:{phrase}") + + stage5_repeatability_issues = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-ISSUES.md" + if stage5_repeatability_issues.is_file(): + text = stage5_repeatability_issues.read_text(encoding="utf-8") + if "core_promotion_status: not-promoted" not in text: + errors.append("stage5_repeatability_issues_missing_not_promoted_frontmatter") + for phrase in REQUIRED_STAGE5_REPEATABILITY_PHRASES: + checked.append(f"stage5_repeatability_issue_phrase:{phrase}") + if phrase not in text: + errors.append(f"missing_stage5_repeatability_issue_phrase:{phrase}") + + stage5_repeatability_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-STAGE5-REPEATABILITY-PROOF-EVIDENCE.md" + if stage5_repeatability_evidence.is_file(): + text = stage5_repeatability_evidence.read_text(encoding="utf-8") + if "core_promotion_status: not-promoted" not in text: + errors.append("stage5_repeatability_evidence_missing_not_promoted_frontmatter") + for phrase in REQUIRED_STAGE5_REPEATABILITY_PHRASES: + checked.append(f"stage5_repeatability_evidence_phrase:{phrase}") + if phrase not in text: + errors.append(f"missing_stage5_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") @@ -2395,6 +2453,9 @@ def main() -> int: "CTO-WORK-075": "validated", "CTO-WORK-076": "validated", "CTO-WORK-077": "validated", + "CTO-WORK-078": "validated", + "CTO-WORK-079": "validated", + "CTO-WORK-080": "validated", } for issue_id, expected in expected_statuses.items(): checked.append(f"workboard_status:{issue_id}:{expected}")