From d2a99ca36efe932e142931e042083d8db82dc5f2 Mon Sep 17 00:00:00 2001 From: Svrnty Date: Sun, 14 Jun 2026 07:18:48 -0400 Subject: [PATCH] docs: plan Steev personal context runtime --- WORKBOARD.yaml | 5 + ...ev-personal-context-runtime-work-orders.md | 180 ++++++++++++++++++ ...6-14-steev-personal-context-runtime-prd.md | 143 ++++++++++++++ ...eev-personal-context-runtime-sandcastle.md | 79 ++++++++ ...l-context-runtime-supersession-register.md | 83 ++++++++ 5 files changed, 490 insertions(+) create mode 100644 docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md create mode 100644 docs/prd/2026-06-14-steev-personal-context-runtime-prd.md create mode 100644 docs/sandcastles/2026-06-14-steev-personal-context-runtime-sandcastle.md create mode 100644 docs/supersession/2026-06-14-steev-personal-context-runtime-supersession-register.md diff --git a/WORKBOARD.yaml b/WORKBOARD.yaml index fed2743..b53522d 100644 --- a/WORKBOARD.yaml +++ b/WORKBOARD.yaml @@ -4,3 +4,8 @@ items: status: candidate source: README.md owner: jp + - id: STEEV-WORK-002 + title: Personal Context Runtime PRD And Sandcastle + status: complete + source: docs/prd/2026-06-14-steev-personal-context-runtime-prd.md + owner: jp diff --git a/docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md b/docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md new file mode 100644 index 0000000..979471b --- /dev/null +++ b/docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md @@ -0,0 +1,180 @@ +--- +name: 2026-06-14-steev-personal-context-runtime-work-orders +status: active +triage: ready-for-agent +owner: jp +source: docs/prd/2026-06-14-steev-personal-context-runtime-prd.md +created: 2026-06-14 +last_reviewed: 2026-06-14 +core_promotion_status: not-promoted +description: Dependency-ordered vertical slices for Steev personal context runtime standardization. +artifact_type: work-orders +--- + +# Steev Personal Context Runtime Work Orders + +Each slice is vertical and proof-backed. Steev owns the profile contract. +BlueBubbles and Proton/rclone own capability packages. Personal context targets +personal Secondbrain only. `orgbrain`, raw payloads, and secrets are forbidden. + +## SPCR-001 Profile Authority And Surface Contract + +Type: AFK. Blocked by: None. User stories: 1-17, 21-23, 28-31. + +## What to build + +Define Steev's profile contract: surfaces, allowed effects, denied effects, +memory target, credential posture, runtime proof, and package ownership. + +## Acceptance criteria + +- [ ] Steev declares iMessage, Proton Mail, Calendar, Contacts, Drive, and future browser host surfaces. +- [ ] Required surfaces are named: `imessage.read`, Proton read/draft/propose/confirmation-write surfaces, and Drive read/confirmation-write. +- [ ] Personal Secondbrain is the only memory target; `orgbrain`, raw payloads, credentials, and secrets are denied. +- [ ] The Steev child validator passes. + +## SPCR-002 Supersession And Graph Hygiene Register + +Type: AFK. Blocked by: SPCR-001. User stories: 24-27, 29, 36. + +## What to build + +Classify older Steev, BlueBubbles, Proton, rclone, and legacy Cortex artifacts +as active, superseded, archived, legacy-reference, or blocked-follow-up. + +## Acceptance criteria + +- [ ] Every known prior workstream has a supersession state and one-line reason. +- [ ] Legacy Cortex Proton/rclone repos are marked reference-only unless promoted. +- [ ] The register names the single canonical pickup path per work area. +- [ ] The Steev child validator passes. + +## SPCR-003 BlueBubbles Capability Pickup Into Steev + +Type: AFK. Blocked by: SPCR-001, SPCR-002. User stories: 1-3, 13-18, 24-26, 32. + +## What to build + +Bind Steev's `imessage.read` surface to the existing BlueBubbles package. +Preserve read-only runtime, redacted proof, Mac Mini host ownership, and +proposal-only personal memory intake. + +## Acceptance criteria + +- [ ] Steev references BlueBubbles as package authority, not profile-local connector code. +- [ ] Sends, read receipts, mark-read, contact/chat mutation, downloads, and deletes remain denied. +- [ ] BlueBubbles health/watchdog proof remains redacted evidence. +- [ ] Steev and BlueBubbles validators pass. + +## SPCR-004 Proton And Rclone Capability Standardization + +Type: AFK. Blocked by: SPCR-001, SPCR-002. User stories: 4-12, 15-17, 19-20, 24-31. + +## What to build + +Shape a Proton/rclone capability package for Mail, Calendar, Contacts, and +Drive: surfaces, runtime path, rclone config posture, health, and write gates. + +## Acceptance criteria + +- [ ] Proton and Drive surfaces use read/draft/propose/confirmation naming. +- [ ] Docker, systemd, MCP, CLI, and rclone routes are inventoried with one chosen or pending runtime path. +- [ ] Health is redacted and per-surface, including degraded and not-running states. +- [ ] Duplicate Proton skills are consolidated or clearly superseded. + +## SPCR-005 Personal Secondbrain Proposal And Apply Route + +Type: AFK. Blocked by: SPCR-003, SPCR-004. User stories: 13-14, 16-17, 29, 32, 34. + +## What to build + +Define proposal-only memory intake for iMessage, Proton, and Drive-derived +context. Durable writes wait for the owning Secondbrain/curator apply route. + +## Acceptance criteria + +- [ ] Proposal envelopes target personal Secondbrain only. +- [ ] `orgbrain` attempts are rejected and proven. +- [ ] Proof excludes raw bodies, contacts, event details, drive names, attachments, and secrets unless later approved. +- [ ] The Steev child validator passes. + +## SPCR-006 Conductor And Curator Service Handoff + +Type: AFK. Blocked by: SPCR-001 and active conductor/curator lane release. User stories: 17, 23, 29, 33-34. + +## What to build + +Publish service identity, health shape, effects, credential posture, and +apply-envelope expectations for future conductor/curator adoption. + +## Acceptance criteria + +- [ ] Each capability has service identity, health, allowed effects, and denied effects. +- [ ] Apply expectations are redacted and personal-only. +- [ ] No conductor or curator files are mutated from Steev. +- [ ] The Steev child validator passes. + +## SPCR-007 Runtime Readiness And Always-On Proof + +Type: AFK. Blocked by: SPCR-003, SPCR-004, SPCR-006. User stories: 17-20, 28-29, 33. + +## What to build + +Prove per-surface runtime state with redacted health, supervisor posture, +restart behavior, and explicit ready/degraded/pending/blocked claims. + +## Acceptance criteria + +- [ ] iMessage, Mail, Calendar, Contacts, and Drive each have a readiness state. +- [ ] Broken, duplicate, inactive, or missing services are named as gaps. +- [ ] Optional reboot/power-loss proof is separate from normal readiness. +- [ ] The Steev child validator passes. + +## SPCR-008 Desktop Adapter Exposure Contract + +Type: AFK. Blocked by: SPCR-001 and active adapter lane release. User stories: 22, 29, 35. + +## What to build + +Prepare the desktop/adapter contract for capability readiness display. Do not +wire UI or mutate adapter code from this route. + +## Acceptance criteria + +- [ ] Desktop-visible states come from contract and redacted runtime health. +- [ ] State names are ready, degraded, pending, blocked, and disabled. +- [ ] Personal memory only and no `orgbrain` are preserved. +- [ ] The Steev child validator passes. + +## SPCR-009 Browser And Webwright Host Runtime Approval + +Type: HITL. Blocked by: SPCR-001, SPCR-002, explicit JP approval. User stories: 21, 29, 33, 35. + +## What to build + +Prepare a separate Mac Mini browser/Webwright Host Runtime approval packet. +This grants broad authenticated computer authority and must not hide inside +messaging or Proton work. + +## Acceptance criteria + +- [ ] The packet names browser session, password-manager, cookie, Google Drive, and desktop-control risks. +- [ ] Default denied effects apply until JP grants scope. +- [ ] No browser/Webwright runtime is enabled by this issue. +- [ ] JP approval is required before execution. + +## SPCR-010 Final Acceptance And Promotion Packet + +Type: HITL. Blocked by: SPCR-002 through SPCR-009. User stories: 28-36. + +## What to build + +Assemble final acceptance across profile, capability, memory, runtime, Seed, +Core, conductor/curator, desktop, and graph hygiene claims. + +## Acceptance criteria + +- [ ] Accepted, pending, and rejected claims are named with owning evidence. +- [ ] Old work is archived, superseded, or marked legacy-reference. +- [ ] Core and Seed readiness are claimed only through governed routes. +- [ ] JP can read one page and know exactly what remains. diff --git a/docs/prd/2026-06-14-steev-personal-context-runtime-prd.md b/docs/prd/2026-06-14-steev-personal-context-runtime-prd.md new file mode 100644 index 0000000..45eb8a8 --- /dev/null +++ b/docs/prd/2026-06-14-steev-personal-context-runtime-prd.md @@ -0,0 +1,143 @@ +--- +name: 2026-06-14-steev-personal-context-runtime-prd +status: active +triage: ready-for-agent +owner: jp +source: user-request-2026-06-14-steev-personal-context-runtime +created: 2026-06-14 +last_reviewed: 2026-06-14 +core_promotion_status: not-promoted +description: PRD for making Steev the governed personal context runtime over iMessage, Proton, rclone, and future host-control capabilities. +artifact_type: prd +--- + +# Steev Personal Context Runtime PRD + +## Problem Statement + +JP wants Steev, his personal-agent profile, to know him through the live +communication and personal-data surfaces that already shape his day: iMessage, +Proton Mail, Calendar, Contacts, Proton Drive through rclone, and later the Mac +Mini browser host. Today those surfaces exist in different states across +profile docs, BlueBubbles child work, Proton skills, older Cortex repositories, +Docker services, systemd units, Hermes adapters, and Secondbrain/curator lanes. + +The risk is context confusion. Future agents can mistake old work for active +authority, build duplicate connectors, route private personal context toward +the wrong memory domain, or claim runtime readiness from partial proofs. Steev +needs one clean profile contract that says which personal surfaces are active, +which capability package owns each surface, which mutations are forbidden, +which durable memory route is allowed, and which old artifacts are archived, +superseded, or legacy reference only. + +## Solution + +Make Steev a governed personal context runtime profile. The profile declares +the personal context surfaces it may observe, the capability packages that +provide those surfaces, the exact memory routing policy, the mutation policy, +and the runtime readiness gates. BlueBubbles/iMessage, Proton/rclone, and +future browser/Webwright host control stay in separate capability packages, but +Steev owns the profile-level decision that those packages belong to JP's +personal-agent and must route personal context only through governed personal +memory paths. + +The first target state is read-first and proof-backed: + +- iMessage is `imessage.read` only. +- Proton exposes read, draft, propose, and confirmation-gated write surfaces. +- Proton Drive through rclone starts as `drive.read`. +- Durable memory proposals target only personal Secondbrain storage. +- `orgbrain` is forbidden for message, mail, contact, calendar, and drive-derived personal context. +- Core stores no raw personal content, endpoint payloads, credentials, or secret values. +- Old work is classified so graph context has one canonical pickup path. + +## User Stories + +1. As JP, I want Steev to understand my recent iMessage exchanges, so that he can answer with real personal context. +2. As JP, I want Steev to read iMessages without sending, so that personal-agent context does not mutate my Messages state. +3. As JP, I want BlueBubbles to be the iMessage capability package, so that iMessage runtime work is not duplicated in Steev. +4. As JP, I want Steev to read Proton Mail, so that my personal-agent knows what people are asking me. +5. As JP, I want Steev to draft Proton replies without sending them, so that I keep final control of outbound mail. +6. As JP, I want Proton sends to require explicit confirmation, so that no agent sends mail silently. +7. As JP, I want Steev to read Proton Calendar, so that it knows my time commitments. +8. As JP, I want Steev to propose calendar changes before writing them, so that scheduling remains controlled. +9. As JP, I want Steev to read Proton Contacts, so that it can identify people across channels. +10. As JP, I want contact writes to require explicit confirmation, so that my address book is not changed silently. +11. As JP, I want Steev to read Proton Drive through rclone, so that it can find personal context when I ask. +12. As JP, I want Drive writes to be confirmation-gated, so that personal files are not changed silently. +13. As JP, I want all personal context routed to personal Secondbrain storage, so that my private life stays personal. +14. As JP, I want `orgbrain` forbidden for this data, so that personal messages and mail never become organization memory. +15. As JP, I want Steev to use Keyvault references only, so that this project does not become a credential migration. +16. As JP, I want Core to store only redacted proofs, so that governance can be reviewed without exposing personal content. +17. As JP, I want each capability to report health without leaking payloads, so that runtime readiness is observable and private. +18. As JP, I want the Mac Mini BlueBubbles runtime to stay always-on, so that iMessage context is available continuously. +19. As JP, I want Proton services to have one canonical runtime path, so that Docker, systemd, and MCP do not fight each other. +20. As JP, I want rclone to use an explicit governed config path, so that Drive access is repeatable and not ambient. +21. As JP, I want browser/Webwright Mac control separated from messaging, so that full computer authority is approved deliberately. +22. As JP, I want desktop app integration to wait for the adapter lane, so that UI work uses the right service boundary. +23. As JP, I want conductor and curator to become the standard service path, so that capabilities are centralized cleanly. +24. As JP, I want every old planning artifact classified, so that future graph context has no ambiguous authority. +25. As JP, I want superseded work marked visibly, so that agents do not revive stale plans. +26. As JP, I want active capability packages named explicitly, so that agents know where to continue work. +27. As JP, I want legacy repositories treated as reference material, so that useful code is preserved without becoming authority. +28. As JP, I want runtime readiness separated from Seed readiness, so that package claims are not inflated. +29. As JP, I want final completion to require profile, capability, runtime, memory, and graph hygiene acceptance, so that "done" has one meaning. +30. As a profile maintainer, I want Steev's manifest and disclosure to match live capability exposure, so that runtime drift is caught. +31. As a capability maintainer, I want each surface to declare allowed and forbidden effects, so that test coverage follows real risk. +32. As a Secondbrain maintainer, I want proposal-only intake before durable apply, so that memory writes remain governed. +33. As a conductor operator, I want service identity and health shapes per capability, so that the central service lane can adopt them. +34. As a curator operator, I want redacted apply envelopes, so that personal memory can be reviewed without raw payload sprawl. +35. As a desktop adapter operator, I want one profile capability contract, so that the desktop app can display personal-agent readiness without guessing. +36. As a future agent, I want a sandcastle pickup map, so that I continue vertically instead of re-planning horizontally. + +## Implementation Decisions + +- Steev owns the profile-level personal context runtime contract; individual integrations remain child capability packages. +- BlueBubbles owns the iMessage capability package. Steev consumes the package as `imessage.read` and does not implement a second connector. +- Proton/rclone must become a standardized capability package with declared surfaces for Mail, Calendar, Contacts, and Drive. +- The personal-agent memory target is personal Secondbrain storage only. `orgbrain` is a hard-denied target for this work. +- Runtime claims require redacted live proof and a local validator. Partial service availability must be named per surface. +- Mutations use surface names that encode consent: read, draft, propose, send-with-confirmation, and write-with-confirmation. +- Message sends, mail sends, mark-read/read receipts, deletes, contact mutation, calendar mutation, and file mutation are forbidden unless the surface explicitly requires confirmation and JP confirms. +- Core promotion is out of scope for the child route. Core may receive only governed promotion packets and redacted evidence. +- Seed readiness is out of scope until the Seed lane accepts a package. +- Desktop app integration must wait for the adapter lane to settle. +- Conductor and curator are the desired service and apply path, but this PRD does not mutate those workspaces. +- Browser/Webwright Mac Mini host control is a separate runtime route because it grants broader computer authority than read-only communications. +- Old work must be classified in a supersession register before final readiness claims. +- Hindsight compliance means every major decision has a durable pickup artifact, a supersession state, and a one-line reason. +- Indie-dev compliance means vertical slices stay small, demoable, and useful without adding process that does not reduce confusion or risk. + +## Testing Decisions + +- The highest profile seam is Steev's validator plus manifest/disclosure consistency. +- The highest iMessage seam is the BlueBubbles read-only runtime package and its redacted watchdog proof. +- The highest Proton seam is a redacted health check per surface: Mail, Calendar, Contacts, and Drive. +- The highest memory seam is a proposal envelope that targets personal Secondbrain storage and rejects `orgbrain`. +- The highest graph-hygiene seam is the supersession register plus graph context showing one canonical pickup path. +- The highest runtime seam is always-on supervisor posture with redacted proof, not raw payload capture. +- The highest desktop seam is a contract handoff, not UI wiring, until the adapter lane releases. +- Tests should assert external behavior: allowed reads work, denied mutations fail before transport, confirmation-gated writes cannot run silently, personal memory proposals do not become durable writes, and proof files contain no raw personal data or secrets. +- Every completed slice must leave the Steev child validator passing. + +## Out of Scope + +- Sending iMessages. +- Sending mail without explicit confirmation. +- Deleting messages, mail, calendar events, contacts, or files. +- Marking messages or mail read unless a later approved surface grants it. +- Downloading attachments unless separately approved. +- Reading or exporting password-manager contents. +- Granting browser/Webwright full computer control through this PRD. +- Writing durable Secondbrain memory directly from capability packages. +- Routing any personal context to `orgbrain`. +- Mutating Core, Seed, conductor, curator, desktop adapter, BlueBubbles, Proton, or Secondbrain workspaces from this Steev planning route. + +## Further Notes + +This PRD intentionally moves the center of gravity from individual connector +experiments to Steev's profile contract. BlueBubbles remains the concrete +iMessage package. Proton/rclone becomes the next standardized capability +package. Steev becomes the governed personal-agent profile that declares which +capabilities are allowed, how they route memory, and which old work is no +longer authoritative. diff --git a/docs/sandcastles/2026-06-14-steev-personal-context-runtime-sandcastle.md b/docs/sandcastles/2026-06-14-steev-personal-context-runtime-sandcastle.md new file mode 100644 index 0000000..0b91d09 --- /dev/null +++ b/docs/sandcastles/2026-06-14-steev-personal-context-runtime-sandcastle.md @@ -0,0 +1,79 @@ +--- +name: 2026-06-14-steev-personal-context-runtime-sandcastle +status: prepared +triage: ready-for-agent +owner: jp +source: docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md +created: 2026-06-14 +last_reviewed: 2026-06-14 +artifact_type: sandcastle-descriptor +--- + +# Steev Personal Context Runtime Sandcastle + +## Active Sandcastle Decision + +- Source repo: `/home/svrnty/workspaces/cortex-os/steev` +- Active Steev sandcastle before this work: none found +- Prepared pickup descriptor: this file +- Local issue tracker: `docs/issues/2026-06-14-steev-personal-context-runtime-work-orders.md` +- PRD: `docs/prd/2026-06-14-steev-personal-context-runtime-prd.md` +- Supersession register: `docs/supersession/2026-06-14-steev-personal-context-runtime-supersession-register.md` +- Local gate: `python3 tools/validate_steev_child.py` + +## Decision + +Use Steev as the profile-level sandcastle for personal context runtime +standardization. Do not open a competing iMessage connector, Proton connector, +rclone storage service, desktop adapter, conductor, curator, or Secondbrain +runtime from this route. + +Continue BlueBubbles-specific execution in the existing BlueBubbles completion +readiness sandcastle. Use this Steev package as the profile contract that says +which capability packages Steev may consume and how personal context must route. + +## Purpose + +Make Steev the clean personal-agent profile over JP's real personal context: +iMessage, Proton Mail, Calendar, Contacts, Proton Drive through rclone, and +future browser/Webwright host control. This sandcastle exists to remove context +confusion, classify old work, and produce vertical implementation slices. + +## Boundaries + +- No Core mutation from this route. +- No Seed readiness claim until Seed accepts a package. +- No conductor or curator mutation until their active lane releases. +- No desktop adapter mutation until the adapter lane releases. +- No second production BlueBubbles connector. +- No profile-local Proton/rclone connector rewrite before capability packaging. +- No durable Secondbrain writes; proposal/apply route only. +- No `orgbrain` target. +- No iMessage sends, read receipts, mark-read, deletes, contact mutation, or attachment download. +- No Proton send, calendar write, contact write, Drive write, move, copy, purge, or delete without an explicit confirmation surface and JP confirmation. +- No browser/Webwright full-control runtime until separate Host Runtime approval. +- No raw message bodies, mail bodies, contact details, event details, drive file names, endpoint payloads, credentials, cookies, keychain values, password-manager values, or secret values in proof artifacts. + +## Pickup Order + +- Start with `SPCR-001` to define the profile authority and surface contract. +- Then run `SPCR-002` to classify old work and prevent graph ambiguity. +- Run `SPCR-003` and `SPCR-004` in parallel only after the supersession register exists. +- Run `SPCR-005` after iMessage and Proton/rclone surfaces are clear. +- Keep `SPCR-006` blocked until conductor/curator release their lane. +- Keep `SPCR-008` blocked until the adapter lane releases. +- Keep `SPCR-009` HITL because it grants broad Mac/browser authority. +- Use `SPCR-010` only as the final acceptance gate. + +## One-Line Execution Map + +- Define Steev profile surfaces: one personal context contract. +- Classify old work: active, superseded, archived, or legacy-reference. +- Pick up BlueBubbles: `imessage.read`, read-only, personal memory only. +- Package Proton/rclone: Mail, Calendar, Contacts, Drive surfaces. +- Route memory: proposal-only to personal Secondbrain, no `orgbrain`. +- Hand off services: conductor and curator shape, no cross-route mutation. +- Prove runtime: per-surface redacted health, no payload leakage. +- Prepare desktop: adapter contract only, no early UI wiring. +- Separate host control: browser/Webwright approval packet. +- Accept final state: only evidence-backed claims become complete. diff --git a/docs/supersession/2026-06-14-steev-personal-context-runtime-supersession-register.md b/docs/supersession/2026-06-14-steev-personal-context-runtime-supersession-register.md new file mode 100644 index 0000000..9a73dad --- /dev/null +++ b/docs/supersession/2026-06-14-steev-personal-context-runtime-supersession-register.md @@ -0,0 +1,83 @@ +--- +name: 2026-06-14-steev-personal-context-runtime-supersession-register +status: active +triage: ready-for-agent +owner: jp +source: docs/prd/2026-06-14-steev-personal-context-runtime-prd.md +created: 2026-06-14 +last_reviewed: 2026-06-14 +core_promotion_status: not-promoted +description: Supersession register for personal-agent context runtime work so old artifacts do not confuse graph context. +artifact_type: supersession-register +--- + +# Steev Personal Context Runtime Supersession Register + +## Rule + +Every artifact that talks about Steev personal context, iMessage, BlueBubbles, +Proton, rclone, Secondbrain memory routing, conductor/curator routing, or +desktop exposure must be treated as one of: + +- `active-authority`: current pickup path for this route. +- `active-capability-package`: current package owned by another child route. +- `superseded`: useful history, not a pickup path. +- `legacy-reference`: source material only, not current authority. +- `blocked-follow-up`: valid work, blocked by another owning lane. + +## Canonical Pickup Paths + +| Area | Status | Canonical pickup | +| --- | --- | --- | +| Steev profile contract | active-authority | This PRD and work orders | +| BlueBubbles iMessage | active-capability-package | BlueBubbles child completion-readiness package | +| Proton Mail/Calendar/Contacts | blocked-follow-up | New Proton/rclone capability package work from `SPCR-004` | +| Proton Drive/rclone | blocked-follow-up | New Proton/rclone capability package work from `SPCR-004` | +| Personal memory route | blocked-follow-up | `SPCR-005`, then owning Secondbrain/curator route | +| Conductor/curator service routing | blocked-follow-up | `SPCR-006`, after owning lanes release | +| Desktop app exposure | blocked-follow-up | `SPCR-008`, after adapter lane release | +| Browser/Webwright host control | blocked-follow-up | `SPCR-009`, explicit approval only | + +## Known Artifacts And Supersession State + +| Artifact family | State | One-line reason | +| --- | --- | --- | +| Steev `CONTRACT.md` v1 iMessage-as-v2 wording | superseded | iMessage is now main personal context intake, not a low-priority future messaging item. | +| Steev `AGENT.md` reused-skill summary | superseded | It names useful tools but not the new governed surface model. | +| Steev `skills/steev-agent` current memory protocol | superseded | It says episodic memory only but does not encode personal Secondbrain proposal/apply routing. | +| Steev `skills/proton-tools` | active-source-to-consolidate | It contains live Proton tool knowledge but must be folded into a standardized capability package. | +| Steev `DISCLOSURE.md` Wave 8/8.5 runtime disclosure | superseded-pending-refresh | It is historical disclosure and must be refreshed after the profile capability contract changes. | +| BlueBubbles runtime-readiness PRD | active-capability-package | It remains valid for the iMessage capability package, subordinate to Steev's profile contract. | +| BlueBubbles completion-readiness PRD | active-capability-package | It remains the BlueBubbles package pickup for read-only iMessage readiness. | +| BlueBubbles Hermes connector convergence PRD | active-capability-package | It prevents duplicate connector work and remains aligned with Steev's profile contract. | +| Legacy Cortex Proton API repo | legacy-reference | It has useful Mail/Calendar/Contacts service code but is not Cortex OS child authority. | +| Legacy Cortex Proton Bridge repo | legacy-reference | It has bridge/container material but is not the canonical runtime package. | +| Legacy Cortex rclone storage repo | legacy-reference | It has Drive service and permission code but is not the canonical personal-agent package. | +| Hermes installed `proton-access` skill | superseded-pending-consolidation | It overlaps with Steev `proton-tools` and should not be a separate authority. | +| Hermes installed `proton-mail-operations` skill | superseded-pending-consolidation | It overlaps with Steev `proton-tools` and should fold into the canonical Proton package. | +| Hermes installed `proton-services` skill | superseded-pending-consolidation | It overlaps with Steev `proton-tools` and should fold into the canonical Proton package. | +| Direct rclone CLI proofs | active-evidence-source | Read-only `about` proof is useful, but runtime authority must be packaged. | +| Docker Proton Bridge and calendar gate state | active-evidence-source | Current runtime fact, not a profile contract by itself. | +| Broken user `proton-bridge.service` state | active-gap | Must be resolved or explicitly abandoned when one canonical runtime path is chosen. | +| Inactive rclone RC/proxy units | active-gap | Must stay disabled or become gated through a governed wrapper before runtime readiness. | +| Secondbrain direct-write ideas | superseded | Personal context must begin as proposal/apply, not direct durable writes. | +| Desktop integration ideas before adapter lane release | blocked-follow-up | Valid direction, but not an active mutation route. | +| Browser/Webwright full-control ideas inside messaging work | superseded | Host control needs its own approval packet because it is broader authority. | + +## Graph Hygiene Requirements + +- Graph context should expose this PRD as the Steev profile-level pickup. +- Graph context should expose BlueBubbles as the active iMessage capability package. +- Graph context should not treat legacy Cortex Proton/rclone repositories as active authority. +- Graph context should not treat duplicate Proton skills as separate current product surfaces. +- Graph context should mark browser/Webwright host control as separate HITL runtime authority. +- Graph context should preserve `secondbrain-personal` as the only allowed personal memory target. +- Graph context should preserve `orgbrain` as denied for this work. + +## Archive And Supersede Actions + +- Add visible supersession notes to Steev contract and disclosure when `SPCR-001` is implemented. +- Add package-level supersession notes to Proton/rclone artifacts when `SPCR-004` creates the child package. +- Keep BlueBubbles artifacts active but subordinate to the Steev profile contract. +- Archive or mark duplicate Proton skills after the canonical package is installed. +- Record final graph cleanup in `SPCR-010`; do not claim complete before this register matches the graph pickup state.