Record Stage 5 repeatability proof

This commit is contained in:
Svrnty 2026-06-02 06:20:42 -04:00
parent facca7f743
commit ae08dc4468
5 changed files with 271 additions and 0 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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`

View File

@ -386,3 +386,18 @@ items:
status: validated status: validated
source: .sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-CLOSEOUT.md source: .sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-CLOSEOUT.md
owner: "" 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: ""

View File

@ -78,6 +78,9 @@ REQUIRED_FILES = [
".sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-PRD.md", ".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-ISSUES.md",
".sot/03-PROTOCOLS/CTO-ENDGOAL-COMPLETION-AUDIT-CLOSEOUT.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-PRD.md",
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-ISSUES.md", ".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-ISSUES.md",
".sot/03-PROTOCOLS/CTO-FIRST-REAL-GOVERNED-WORKFLOW-APPROVAL-PACKET.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`.", "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: def workboard_status(text: str, issue_id: str) -> str | None:
pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)" pattern = rf"- id: {re.escape(issue_id)}\n(?: .+\n)*? status: ([^\n]+)"
@ -1787,6 +1815,36 @@ def main() -> int:
if phrase not in text: if phrase not in text:
errors.append(f"missing_stage6_real_refresh_evidence_phrase:{phrase}") 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" prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-CANDIDATE-BACKEND-PRD.md"
if prd.is_file(): if prd.is_file():
text = prd.read_text(encoding="utf-8") text = prd.read_text(encoding="utf-8")
@ -2395,6 +2453,9 @@ def main() -> int:
"CTO-WORK-075": "validated", "CTO-WORK-075": "validated",
"CTO-WORK-076": "validated", "CTO-WORK-076": "validated",
"CTO-WORK-077": "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(): for issue_id, expected in expected_statuses.items():
checked.append(f"workboard_status:{issue_id}:{expected}") checked.append(f"workboard_status:{issue_id}:{expected}")