Record Case Stage 4 pass evidence

This commit is contained in:
Svrnty 2026-05-31 23:38:22 -04:00
parent f5680290b0
commit ba0499802c
4 changed files with 40 additions and 19 deletions

View File

@ -51,7 +51,7 @@ Done evidence: PRD, issue artifact, validator JSON, clean worktree, commit.
Type: AFK
Status: blocked.
Status: validated.
Blocked by: CTO-WORK-035
@ -61,25 +61,34 @@ What to build: In `/home/svrnty/workspaces/hermes/cto/harness`, implement the St
Acceptance criteria:
- [ ] `case` remains disabled by default.
- [ ] `CTO_HARNESS_ALLOW_CASE=1` remains required.
- [ ] `CTO_HARNESS_CASE_STAGE=4` is required before disposable sandbox Case execution.
- [ ] Missing Stage 4 gate emits blocked evidence and does not run Case.
- [ ] Approval denied blocks before mutation.
- [ ] Approval granted is recorded before mutation.
- [ ] Branch policy proof is recorded.
- [ ] Case mutates only the disposable repository.
- [ ] No Target Repository path is inspected or copied.
- [ ] No push, merge, deploy, close, PR open, or public publication occurs by default.
- [ ] Required artifacts include approval proof, branch proof, sandbox disposal or retention note, `report.json`, `report.md`, `events.normalized.jsonl`, `trace.jsonl`, `patch.diff`, `test.log`, and backend logs.
- [ ] Failure fixtures fail closed for approval denied, reviewer reject, timeout, provider unavailable, dirty ending tree, and disallowed file.
- [ ] Fake remains the default validation lane and broad health remains green after focused Stage 4 validation.
- [x] `case` remains disabled by default.
- [x] `CTO_HARNESS_ALLOW_CASE=1` remains required.
- [x] `CTO_HARNESS_CASE_STAGE=4` is required before disposable sandbox Case execution.
- [x] Missing Stage 4 gate emits blocked evidence and does not run Case.
- [x] Approval denied blocks before mutation.
- [x] Approval granted is recorded before mutation.
- [x] Branch policy proof is recorded.
- [x] Case mutates only the disposable repository.
- [x] No Target Repository path is inspected or copied.
- [x] No push, merge, deploy, close, PR open, or public publication occurs by default.
- [x] Required artifacts include approval proof, branch proof, sandbox disposal or retention note, `report.json`, `report.md`, `events.normalized.jsonl`, `trace.jsonl`, `patch.diff`, `test.log`, and backend logs.
- [x] Failure fixtures fail closed for approval denied, reviewer reject, timeout, provider unavailable, dirty ending tree, and disallowed file.
- [x] Fake remains the default validation lane and broad health remains green after focused Stage 4 validation.
Allowed files: Hermes CTO harness engine, disposable sandbox fixtures, focused Stage 4 validator, harness docs, and tests. WebUI, Core, Case source, vendor source, source repository, Target Repository, owned noncritical repositories, production repositories, and external developer repositories are forbidden.
Validator: `python3 harness/runner/validate-case-stage4.py --harness-root harness --json`, then `harness/evals/health.sh --json`.
Done evidence: Stage 4 pass report, failure fixture reports, approval proof, branch proof, sandbox disposal or retention note, artifact digests, clean worktree, commit.
Done evidence:
- Hermes commit: `033fec8 Add Case Stage 4 disposable sandbox proof`.
- Focused Stage 4 validator on Hermes main: `python3 harness/runner/validate-case-stage4.py --harness-root harness --json`.
- Focused Stage 4 validator status: `ok: true`.
- Stage 4 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3113348`.
- Stage 4 proof artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3113348/stage4-disposable-sandbox-proof.json`.
- Failure fixture reports: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3112997/report.json` and `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3113296/report.json`.
- Post-merge aggregate Harness health: `harness/evals/health.sh --json`, status `pass`.
- Aggregate matrix artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033659Z-run-all-fake-3114983/report.json`.
## Granularity Check

View File

@ -185,7 +185,7 @@ Promotion condition:
## Stage 4 - Disposable Sandbox Repo
Status: planned. Execution remains blocked until `CTO-WORK-036` produces Harness Evidence Interface pass evidence.
Status: validated for disposable sandbox repository proof on 2026-06-01.
Entry gates:
@ -208,6 +208,18 @@ Planning evidence:
- Stage 4 PRD: `.sot/03-PROTOCOLS/CTO-CASE-STAGE4-DISPOSABLE-SANDBOX-PRD.md`.
- Stage 4 issues: `.sot/03-PROTOCOLS/CTO-CASE-STAGE4-DISPOSABLE-SANDBOX-ISSUES.md`.
Validation evidence:
- Hermes commit: `033fec8 Add Case Stage 4 disposable sandbox proof`.
- Focused Stage 4 validator: `python3 harness/runner/validate-case-stage4.py --harness-root harness --json`.
- Focused Stage 4 validator status: `ok: true`.
- Stage 4 pass artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3113348`.
- Stage 4 proof artifact: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T033647Z-r1-string-slugify-3113348/stage4-disposable-sandbox-proof.json`.
- Approval denied failure fixture blocked before Case execution.
- Missing Stage 4 gate failure fixture blocked before Case execution.
- Aggregate harness health status: `pass`.
- This validates Stage 4 only. Stage 5 owned noncritical repository remains the next proof gate.
Validator expectation:
- mutation occurs only in disposable repository;

View File

@ -177,6 +177,6 @@ items:
owner: ""
- id: CTO-WORK-036
title: Stage 4 Harness Disposable Sandbox Route
status: blocked
status: validated
source: .sot/03-PROTOCOLS/CTO-CASE-STAGE4-DISPOSABLE-SANDBOX-ISSUES.md
owner: jp
owner: ""

View File

@ -1204,7 +1204,7 @@ def main() -> int:
"CTO-WORK-033": "validated",
"CTO-WORK-034": "validated",
"CTO-WORK-035": "validated",
"CTO-WORK-036": "blocked",
"CTO-WORK-036": "validated",
}
for issue_id, expected in expected_statuses.items():
checked.append(f"workboard_status:{issue_id}:{expected}")