Record governed execution request
This commit is contained in:
parent
61b6cffa34
commit
b7a7354f97
49
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-ISSUES.md
Normal file
49
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-ISSUES.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
name: CTO Governed Execution Request Issues
|
||||||
|
status: validated
|
||||||
|
lifecycle_classification: sot
|
||||||
|
owner: jp
|
||||||
|
created: 2026-06-01
|
||||||
|
last_reviewed: 2026-06-01
|
||||||
|
core_promotion_status: not-promoted
|
||||||
|
---
|
||||||
|
|
||||||
|
# CTO Governed Execution Request Issues
|
||||||
|
|
||||||
|
Local planning SOT only. Not a Core Protocol. Not active Core authority.
|
||||||
|
|
||||||
|
## Issue: CTO-WORK-066 - Governed Execution Request PRD
|
||||||
|
|
||||||
|
Status: validated.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
- Define the governed execution request scope.
|
||||||
|
- Require a non-mutating execution request record.
|
||||||
|
- Preserve the exact approval packet, admitted target repository, allowed paths, and Harness command.
|
||||||
|
- Record `approval_granted: false`.
|
||||||
|
- Record `execution_allowed: false`.
|
||||||
|
- State: Do not execute Case.
|
||||||
|
- State: Do not activate Case as default backend.
|
||||||
|
- State: Do not mutate target repositories.
|
||||||
|
- State: Runtime default activation remains false.
|
||||||
|
- State: JP approval is still required before execution.
|
||||||
|
|
||||||
|
## Issue: CTO-WORK-067 - Governed Execution Request Record
|
||||||
|
|
||||||
|
Status: validated.
|
||||||
|
|
||||||
|
Acceptance:
|
||||||
|
|
||||||
|
- Create the governed execution request record.
|
||||||
|
- Include the admitted target repository.
|
||||||
|
- Include allowed paths.
|
||||||
|
- Include the Harness command.
|
||||||
|
- Include proof pointers from prior Harness and Hermes evidence.
|
||||||
|
- Keep `approval_granted: false`.
|
||||||
|
- Keep `execution_allowed: false`.
|
||||||
|
- State: Do not execute Case.
|
||||||
|
- State: Do not activate Case as default backend.
|
||||||
|
- State: Do not mutate target repositories.
|
||||||
|
- State: Runtime default activation remains false.
|
||||||
|
- State: JP approval is still required before execution.
|
||||||
55
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-PRD.md
Normal file
55
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-PRD.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
name: CTO Governed Execution Request PRD
|
||||||
|
status: validated
|
||||||
|
lifecycle_classification: sot
|
||||||
|
owner: jp
|
||||||
|
created: 2026-06-01
|
||||||
|
last_reviewed: 2026-06-01
|
||||||
|
core_promotion_status: not-promoted
|
||||||
|
---
|
||||||
|
|
||||||
|
# CTO Governed Execution Request PRD
|
||||||
|
|
||||||
|
Local planning SOT only. Not a Core Protocol. Not active Core authority.
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
The CTO stack has an exact approval packet and Hermes can show it, but there is no durable governed execution request that records the proposed action before any backend runs.
|
||||||
|
|
||||||
|
The next useful step is a governed execution request that creates a non-mutating execution request record. The record must preserve the exact approval packet, admitted target repository, allowed paths, Harness command, proof pointers, and blocked actions.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- Create a local CTO planning record for the approved candidate task shape.
|
||||||
|
- Keep `approval_granted: false`.
|
||||||
|
- Keep `execution_allowed: false`.
|
||||||
|
- Name the admitted target repository and allowed paths.
|
||||||
|
- Name the Harness command that would run only after approval.
|
||||||
|
- Preserve that JP approval is still required before execution.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- Do not execute Case.
|
||||||
|
- Do not activate Case as default backend.
|
||||||
|
- Do not mutate target repositories.
|
||||||
|
- Do not edit upstream `hermes-agent`.
|
||||||
|
- Do not edit upstream `hermes-webui`.
|
||||||
|
- Do not change Core authority.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- `WORKBOARD.yaml` records `CTO-WORK-066` and `CTO-WORK-067` as validated.
|
||||||
|
- The governed execution request includes `approval_granted: false`.
|
||||||
|
- The governed execution request includes `execution_allowed: false`.
|
||||||
|
- Runtime default activation remains false.
|
||||||
|
- JP approval is still required before execution.
|
||||||
|
- Local validation checks the new record and its guardrails.
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
- `python3 tools/validate_cto_child.py`
|
||||||
|
- `python3 /home/svrnty/workspaces/cortex-os/core/tools/check_s69_caveman_prose_discipline.py`
|
||||||
|
|
||||||
|
## Risk
|
||||||
|
|
||||||
|
The main risk is accidentally treating request creation as execution approval. The guardrail is explicit: Do not execute Case. Do not mutate target repositories. JP approval is still required before execution.
|
||||||
68
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-RECORD.md
Normal file
68
.sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-RECORD.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
name: CTO Governed Execution Request Record
|
||||||
|
status: validated
|
||||||
|
lifecycle_classification: sot
|
||||||
|
owner: jp
|
||||||
|
created: 2026-06-01
|
||||||
|
last_reviewed: 2026-06-01
|
||||||
|
core_promotion_status: not-promoted
|
||||||
|
---
|
||||||
|
|
||||||
|
# CTO Governed Execution Request Record
|
||||||
|
|
||||||
|
Local planning SOT only. Not a Core Protocol. Not active Core authority.
|
||||||
|
|
||||||
|
## Workboard
|
||||||
|
|
||||||
|
- `CTO-WORK-067`
|
||||||
|
|
||||||
|
## Request State
|
||||||
|
|
||||||
|
- governed execution request
|
||||||
|
- non-mutating execution request record
|
||||||
|
- approval_granted: false
|
||||||
|
- execution_allowed: false
|
||||||
|
- Runtime default activation remains false.
|
||||||
|
- JP approval is still required before execution.
|
||||||
|
|
||||||
|
## Exact Approval Packet
|
||||||
|
|
||||||
|
The exact approval packet remains the prior text:
|
||||||
|
|
||||||
|
```text
|
||||||
|
I approve CTO-WORK-049 against /home/svrnty/workspaces/cortex-os/cto-stage5-target-sandbox for the src/strings.py slugify alignment task.
|
||||||
|
```
|
||||||
|
|
||||||
|
This record does not grant that approval. It preserves the exact approval packet for later JP action.
|
||||||
|
|
||||||
|
## Admitted Target Repository
|
||||||
|
|
||||||
|
- admitted target repository: `/home/svrnty/workspaces/cortex-os/cto-stage5-target-sandbox`
|
||||||
|
|
||||||
|
## Allowed Paths
|
||||||
|
|
||||||
|
- allowed paths: `src/strings.py`
|
||||||
|
- allowed paths: `test_strings.py`
|
||||||
|
|
||||||
|
## Harness Command
|
||||||
|
|
||||||
|
- Harness command: `python3 -m pytest -q`
|
||||||
|
|
||||||
|
## Required Evidence Pointers
|
||||||
|
|
||||||
|
- Approval packet evidence: `.sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-EVIDENCE.md`
|
||||||
|
- Stage 5 report: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T105222Z-r1-src-string-slugify-180161/report.json`
|
||||||
|
- Stage 5 target proof: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T105222Z-r1-src-string-slugify-180161/stage5-owned-repo-proof.json`
|
||||||
|
- Stage 6 replay comparison: `/home/svrnty/.hermes/profiles/cto-planb/harness-runs/20260601T112448Z-stage6-real-governed-refresh/stage6-real-governed-refresh-comparison.json`
|
||||||
|
|
||||||
|
## Blocked Actions
|
||||||
|
|
||||||
|
- Do not execute Case.
|
||||||
|
- Do not activate Case as default backend.
|
||||||
|
- Do not mutate target repositories.
|
||||||
|
- Do not edit upstream `hermes-agent`.
|
||||||
|
- Do not edit upstream `hermes-webui`.
|
||||||
|
|
||||||
|
## Next Allowed Action
|
||||||
|
|
||||||
|
The next allowed action is review of this governed execution request. Actual execution requires JP approval after this record is visible and validated.
|
||||||
@ -326,3 +326,13 @@ items:
|
|||||||
status: validated
|
status: validated
|
||||||
source: .sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-ISSUES.md
|
source: .sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-ISSUES.md
|
||||||
owner: ""
|
owner: ""
|
||||||
|
- id: CTO-WORK-066
|
||||||
|
title: Governed Execution Request PRD
|
||||||
|
status: validated
|
||||||
|
source: .sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-PRD.md
|
||||||
|
owner: ""
|
||||||
|
- id: CTO-WORK-067
|
||||||
|
title: Governed Execution Request Record
|
||||||
|
status: validated
|
||||||
|
source: .sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-RECORD.md
|
||||||
|
owner: ""
|
||||||
|
|||||||
@ -60,6 +60,9 @@ REQUIRED_FILES = [
|
|||||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-PRD.md",
|
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-PRD.md",
|
||||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-ISSUES.md",
|
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-ISSUES.md",
|
||||||
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-EVIDENCE.md",
|
".sot/03-PROTOCOLS/CTO-HERMES-APPROVAL-PACKET-EVIDENCE.md",
|
||||||
|
".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-PRD.md",
|
||||||
|
".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-ISSUES.md",
|
||||||
|
".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-RECORD.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",
|
||||||
@ -278,6 +281,23 @@ REQUIRED_HERMES_APPROVAL_PACKET_EVIDENCE_PHRASES = [
|
|||||||
"Hermes prepares approval text; JP remains the approver.",
|
"Hermes prepares approval text; JP remains the approver.",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
REQUIRED_GOVERNED_EXECUTION_REQUEST_PHRASES = [
|
||||||
|
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||||
|
"governed execution request",
|
||||||
|
"non-mutating execution request record",
|
||||||
|
"exact approval packet",
|
||||||
|
"admitted target repository",
|
||||||
|
"allowed paths",
|
||||||
|
"Harness command",
|
||||||
|
"approval_granted: false",
|
||||||
|
"execution_allowed: false",
|
||||||
|
"Do not execute Case.",
|
||||||
|
"Do not activate Case as default backend.",
|
||||||
|
"Do not mutate target repositories.",
|
||||||
|
"Runtime default activation remains false.",
|
||||||
|
"JP approval is still required before execution.",
|
||||||
|
]
|
||||||
|
|
||||||
REQUIRED_HERMES_REAL_REFRESH_CONTROL_REPLAY_EVIDENCE_PHRASES = [
|
REQUIRED_HERMES_REAL_REFRESH_CONTROL_REPLAY_EVIDENCE_PHRASES = [
|
||||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||||
"CTO-WORK-057",
|
"CTO-WORK-057",
|
||||||
@ -1391,6 +1411,43 @@ def main() -> int:
|
|||||||
if phrase not in text:
|
if phrase not in text:
|
||||||
errors.append(f"missing_hermes_approval_packet_evidence_phrase:{phrase}")
|
errors.append(f"missing_hermes_approval_packet_evidence_phrase:{phrase}")
|
||||||
|
|
||||||
|
governed_execution_request_prd = ROOT / ".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-PRD.md"
|
||||||
|
if governed_execution_request_prd.is_file():
|
||||||
|
text = governed_execution_request_prd.read_text(encoding="utf-8")
|
||||||
|
if "core_promotion_status: not-promoted" not in text:
|
||||||
|
errors.append("governed_execution_request_prd_missing_not_promoted_frontmatter")
|
||||||
|
for phrase in REQUIRED_GOVERNED_EXECUTION_REQUEST_PHRASES:
|
||||||
|
checked.append(f"governed_execution_request_prd_phrase:{phrase}")
|
||||||
|
if phrase not in text:
|
||||||
|
errors.append(f"missing_governed_execution_request_prd_phrase:{phrase}")
|
||||||
|
|
||||||
|
governed_execution_request_issues = ROOT / ".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-ISSUES.md"
|
||||||
|
if governed_execution_request_issues.is_file():
|
||||||
|
text = governed_execution_request_issues.read_text(encoding="utf-8")
|
||||||
|
if "core_promotion_status: not-promoted" not in text:
|
||||||
|
errors.append("governed_execution_request_issues_missing_not_promoted_frontmatter")
|
||||||
|
for phrase in ["CTO-WORK-066", "CTO-WORK-067", *REQUIRED_GOVERNED_EXECUTION_REQUEST_PHRASES]:
|
||||||
|
checked.append(f"governed_execution_request_issue_phrase:{phrase}")
|
||||||
|
if phrase not in text:
|
||||||
|
errors.append(f"missing_governed_execution_request_issue_phrase:{phrase}")
|
||||||
|
|
||||||
|
governed_execution_request_record = ROOT / ".sot/03-PROTOCOLS/CTO-GOVERNED-EXECUTION-REQUEST-RECORD.md"
|
||||||
|
if governed_execution_request_record.is_file():
|
||||||
|
text = governed_execution_request_record.read_text(encoding="utf-8")
|
||||||
|
if "core_promotion_status: not-promoted" not in text:
|
||||||
|
errors.append("governed_execution_request_record_missing_not_promoted_frontmatter")
|
||||||
|
for phrase in [
|
||||||
|
"CTO-WORK-067",
|
||||||
|
"/home/svrnty/workspaces/cortex-os/cto-stage5-target-sandbox",
|
||||||
|
"src/strings.py",
|
||||||
|
"test_strings.py",
|
||||||
|
"python3 -m pytest -q",
|
||||||
|
*REQUIRED_GOVERNED_EXECUTION_REQUEST_PHRASES,
|
||||||
|
]:
|
||||||
|
checked.append(f"governed_execution_request_record_phrase:{phrase}")
|
||||||
|
if phrase not in text:
|
||||||
|
errors.append(f"missing_governed_execution_request_record_phrase:{phrase}")
|
||||||
|
|
||||||
hermes_real_refresh_control_replay_evidence = ROOT / ".sot/03-PROTOCOLS/CTO-HERMES-REAL-REFRESH-CONTROL-REPLAY-EVIDENCE.md"
|
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():
|
if hermes_real_refresh_control_replay_evidence.is_file():
|
||||||
text = hermes_real_refresh_control_replay_evidence.read_text(encoding="utf-8")
|
text = hermes_real_refresh_control_replay_evidence.read_text(encoding="utf-8")
|
||||||
@ -2007,6 +2064,8 @@ def main() -> int:
|
|||||||
"CTO-WORK-063": "validated",
|
"CTO-WORK-063": "validated",
|
||||||
"CTO-WORK-064": "validated",
|
"CTO-WORK-064": "validated",
|
||||||
"CTO-WORK-065": "validated",
|
"CTO-WORK-065": "validated",
|
||||||
|
"CTO-WORK-066": "validated",
|
||||||
|
"CTO-WORK-067": "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}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user