Add Steev agent contract blocks

This commit is contained in:
Svrnty
2026-06-17 19:06:30 -04:00
parent 6edcaaff33
commit 0e194f64f2
4 changed files with 84 additions and 2 deletions
+14
View File
@@ -8,6 +8,20 @@ Authority boundary: child-local personal-agent profile workspace only; not Core
Validator: `python3 tools/validate_steev_child.py`. Validator: `python3 tools/validate_steev_child.py`.
Legacy-work relation: old Steev/personal-agent, BlueBubbles, Proton/rclone, Secondbrain, Conductor/Curator handoff, desktop exposure, and runtime-readiness work is reference-only through current contracts and evidence unless a governed route admits it. Preserve redacted refs; do not import message bodies, mail bodies, contacts, calendar details, drive names, credentials, or implementation mass because they exist. Legacy-work relation: old Steev/personal-agent, BlueBubbles, Proton/rclone, Secondbrain, Conductor/Curator handoff, desktop exposure, and runtime-readiness work is reference-only through current contracts and evidence unless a governed route admits it. Preserve redacted refs; do not import message bodies, mail bodies, contacts, calendar details, drive names, credentials, or implementation mass because they exist.
## Universal Cortex OS Agent Contract
- Treat this file as route-local instruction after parent `AGENTS.md` files and before chat memory.
- Start broad or ambiguous work with `cortex graph context`; use it only as Derived State, then read this repo's local files.
- Before edits, read `AGENTS.md`, `README.md`, and `WORKBOARD.yaml`; keep writes route-local unless a governed Core route explicitly authorizes promotion.
- Run this repo's named validator before handoff or done claims; use stronger proof only for runtime, provider, secret, memory, profile exposure, branch, release, or readiness effects.
- Record proof and handoffs as refs-only artifacts. Do not write Hindsight memory, Core SOT, sibling repos, live runtime state, or personal payloads unless explicitly authorized by the owning route.
## Repo-Custom Agent Contract
Steev is a child-local personal-agent profile workspace. It owns profile identity, role and boundary docs, personal-surface contracts, redacted proof packets, proposal-only memory routing records, desktop exposure contracts, runtime-readiness snapshots, validators, and handoff references. It is not Cortex OS Core authority, Runtime authority, Profile Exposure authority, credential authority, provider authority, send authority, memory-domain authority, browser-host authority, public product authority, release authority, production-readiness authority, or autonomous execution authority.
Do not install or start Steev, mutate `~/.hermes`, run browser-host automation, read credentials, read raw messages, read mail bodies, read contacts, read calendar details, read drive names, send messages, write calendar/contact/drive data, write durable memory, broaden Profile Exposure, call providers, mutate Core/Seed/sibling/OpenDesign repos, or claim readiness from this workspace without explicit governed approval.
This workspace is a child-local profile-workspace under the Cortex OS umbrella. This workspace is a child-local profile-workspace under the Cortex OS umbrella.
It is not Cortex OS Core authority. It is not a Cortex OS Instance. It is not a Runtime unless a governed Core route says so. It is not Cortex OS Core authority. It is not a Cortex OS Instance. It is not a Runtime unless a governed Core route says so.
+17
View File
@@ -4,6 +4,23 @@
JP's personal assistant / chief of staff. Daily briefing, inbox triage, comms in JP's voice, business delegation to CEO. French/English bilingual. JP's personal assistant / chief of staff. Daily briefing, inbox triage, comms in JP's voice, business delegation to CEO. French/English bilingual.
## Cortex OS Boundary
Steev is a child-local personal-agent profile workspace. It owns profile
identity, role and boundary docs, personal-surface contracts, redacted proof
packets, proposal-only memory routing records, desktop exposure contracts,
runtime-readiness snapshots, validators, and handoff references, but it does not
own Core truth, Runtime authority, Profile Exposure authority, credential
authority, provider authority, send authority, memory-domain authority,
browser-host authority, public product authority, release authority, production
readiness, or autonomous execution authority.
Do not install or start Steev, mutate `~/.hermes`, run browser-host automation,
read credentials, read raw messages, read mail bodies, read contacts, read
calendar details, read drive names, send messages, write durable memory,
broaden Profile Exposure, call providers, or claim readiness from this cleanup
route without explicit governed approval.
- **Identity:** [`AGENT.md`](AGENT.md) — role, mission, boundaries. - **Identity:** [`AGENT.md`](AGENT.md) — role, mission, boundaries.
- **Profile surface contract:** [`docs/contracts/personal-agent-profile-surface-contract.json`](docs/contracts/personal-agent-profile-surface-contract.json) — canonical surfaces, effects, memory route, and proof policy. - **Profile surface contract:** [`docs/contracts/personal-agent-profile-surface-contract.json`](docs/contracts/personal-agent-profile-surface-contract.json) — canonical surfaces, effects, memory route, and proof policy.
- **BlueBubbles binding:** [`docs/contracts/personal-agent-bluebubbles-binding.json`](docs/contracts/personal-agent-bluebubbles-binding.json) — `imessage.read` binds to the existing BlueBubbles package without a duplicate connector. - **BlueBubbles binding:** [`docs/contracts/personal-agent-bluebubbles-binding.json`](docs/contracts/personal-agent-bluebubbles-binding.json) — `imessage.read` binds to the existing BlueBubbles package without a duplicate connector.
+5
View File
@@ -84,3 +84,8 @@ items:
status: complete status: complete
source: docs/evidence/2026-06-15-personal-agent-current-governed-boundary.md source: docs/evidence/2026-06-15-personal-agent-current-governed-boundary.md
owner: "" owner: ""
- id: STEEV-WORK-003
title: Steev Agent Contract Enforcement
status: validated
source: AGENTS.md
owner: ""
+48 -2
View File
@@ -4,6 +4,7 @@ from __future__ import annotations
import hashlib import hashlib
import json import json
import re
from pathlib import Path from pathlib import Path
import yaml import yaml
@@ -199,6 +200,42 @@ GOVERNED_BOUNDARY_SNIPPETS = [
"broad goal-completion claim", "broad goal-completion claim",
] ]
AGENT_CONTRACT_SNIPPETS = [
"# Steev Profile Endgoal",
"## Universal Cortex OS Agent Contract",
"## Repo-Custom Agent Contract",
"child-local personal-agent profile workspace",
"not Cortex OS Core authority",
"Profile Exposure authority",
"memory-domain authority",
"browser-host authority",
"Do not install or start Steev",
"read raw messages",
"read mail bodies",
"write durable memory",
"python3 tools/validate_steev_child.py",
]
README_CONTRACT_SNIPPETS = [
"## Cortex OS Boundary",
"child-local personal-agent profile workspace",
"does not own Core truth",
"Profile Exposure authority",
"credential authority",
"send authority",
"memory-domain authority",
"Do not install or start Steev",
"mutate `~/.hermes`",
"read raw messages",
"write durable memory",
]
def has_snippet(text: str, snippet: str) -> bool:
normalized_text = re.sub(r"\s+", " ", text)
normalized_snippet = re.sub(r"\s+", " ", snippet)
return normalized_snippet in normalized_text
def read_text(rel: str) -> str: def read_text(rel: str) -> str:
return (ROOT / rel).read_text(encoding="utf-8") return (ROOT / rel).read_text(encoding="utf-8")
@@ -260,6 +297,9 @@ def main() -> int:
"PACR-013", "PACR-013",
"PACR-014", "PACR-014",
"PACR-015", "PACR-015",
"STEEV-WORK-003",
"Steev Agent Contract Enforcement",
"status: validated",
"status: candidate", "status: candidate",
"owner: jp", "owner: jp",
]: ]:
@@ -268,9 +308,15 @@ def main() -> int:
agents = ROOT / "AGENTS.md" agents = ROOT / "AGENTS.md"
if agents.exists(): if agents.exists():
text = agents.read_text(encoding="utf-8") text = agents.read_text(encoding="utf-8")
for snippet in ["child-local", "not Cortex OS Core authority", "python3 tools/validate_steev_child.py"]: for snippet in AGENT_CONTRACT_SNIPPETS:
if snippet not in text: if not has_snippet(text, snippet):
errors.append(f"agents_missing:{snippet}") errors.append(f"agents_missing:{snippet}")
readme = ROOT / "README.md"
if readme.exists():
text = readme.read_text(encoding="utf-8")
for snippet in README_CONTRACT_SNIPPETS:
if not has_snippet(text, snippet):
errors.append(f"readme_missing:{snippet}")
manifest = ROOT / "manifest.yaml" manifest = ROOT / "manifest.yaml"
if manifest.exists(): if manifest.exists():