docs: reconcile Steev Core Seed readiness

This commit is contained in:
Svrnty
2026-06-15 00:47:38 -04:00
parent 3b926000a6
commit 121b5bb1e6
7 changed files with 251 additions and 61 deletions
+3 -2
View File
@@ -7,12 +7,13 @@ JP's personal assistant / chief of staff. Daily briefing, inbox triage, comms in
- **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.
- **Proton/rclone package candidate:** [`docs/contracts/personal-agent-proton-rclone-package.json`](docs/contracts/personal-agent-proton-rclone-package.json) — Mail, Calendar, Contacts, and Drive surfaces now linked to the child-local `proton-rclone` candidate, with Core registration and readiness still blocked. - **Proton/rclone package:** [`docs/contracts/personal-agent-proton-rclone-package.json`](docs/contracts/personal-agent-proton-rclone-package.json) — Mail, Calendar, Contacts, and Drive surfaces linked to Core S606 child-local `proton-rclone`; provider smokes and runtime readiness remain blocked.
- **Proton/rclone runtime reconciliation:** [`docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md`](docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md) — live redacted probe aligning systemd, Docker, MCP, and rclone posture. - **Proton/rclone runtime reconciliation:** [`docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md`](docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md) — live redacted probe aligning systemd, Docker, MCP, and rclone posture.
- **Secondbrain proposal/apply route:** [`docs/contracts/personal-agent-secondbrain-proposal-route.json`](docs/contracts/personal-agent-secondbrain-proposal-route.json) — proposal-only personal memory intake plus governed apply-route reference; live durable apply remains approval-gated in Secondbrain. - **Secondbrain proposal/apply route:** [`docs/contracts/personal-agent-secondbrain-proposal-route.json`](docs/contracts/personal-agent-secondbrain-proposal-route.json) — proposal-only personal memory intake plus governed apply-route reference; live durable apply remains approval-gated in Secondbrain.
- **Conductor/Curator service handoff:** [`docs/contracts/personal-agent-conductor-curator-service-handoff.json`](docs/contracts/personal-agent-conductor-curator-service-handoff.json) — redacted service map for future route selection and hygiene review pickup. - **Conductor/Curator service handoff:** [`docs/contracts/personal-agent-conductor-curator-service-handoff.json`](docs/contracts/personal-agent-conductor-curator-service-handoff.json) — redacted service map for future route selection and hygiene review pickup.
- **Runtime readiness snapshot:** [`docs/contracts/personal-agent-runtime-readiness-snapshot.json`](docs/contracts/personal-agent-runtime-readiness-snapshot.json) — redacted per-surface runtime state and gaps; aggregate readiness remains degraded. - **Runtime readiness snapshot:** [`docs/contracts/personal-agent-runtime-readiness-snapshot.json`](docs/contracts/personal-agent-runtime-readiness-snapshot.json) — redacted per-surface runtime state and gaps; Seed-local acceptance is proven, while broader readiness remains degraded.
- **Desktop exposure contract:** [`docs/contracts/personal-agent-desktop-exposure-contract.json`](docs/contracts/personal-agent-desktop-exposure-contract.json) — adapter-facing state rows for Desktop/Dashboard display; no UI wiring from this route. - **Desktop exposure contract:** [`docs/contracts/personal-agent-desktop-exposure-contract.json`](docs/contracts/personal-agent-desktop-exposure-contract.json) — adapter-facing state rows for Desktop/Dashboard display; no UI wiring from this route.
- **Current Core/Seed pickup:** [`docs/evidence/2026-06-15-personal-agent-core-seed-readiness-reconciliation.md`](docs/evidence/2026-06-15-personal-agent-core-seed-readiness-reconciliation.md) — source-locks current Core S641/S642/S643, Seed final acceptance, and remaining broader gaps.
- **Historical Steev reference redirect:** [`docs/STEEV-MASTER.md`](docs/STEEV-MASTER.md). - **Historical Steev reference redirect:** [`docs/STEEV-MASTER.md`](docs/STEEV-MASTER.md).
## Structure ## Structure
+5
View File
@@ -74,3 +74,8 @@ items:
status: complete status: complete
source: docs/contracts/personal-agent-proton-rclone-package.json source: docs/contracts/personal-agent-proton-rclone-package.json
owner: jp owner: jp
- id: PACR-014
title: Current Core Seed Readiness Reconciliation
status: complete
source: docs/evidence/2026-06-15-personal-agent-core-seed-readiness-reconciliation.md
owner: jp
@@ -4,10 +4,11 @@
"contract_id": "personal-agent-desktop-exposure-contract", "contract_id": "personal-agent-desktop-exposure-contract",
"profile_identity": "personal-agent", "profile_identity": "personal-agent",
"display_name": "Steev", "display_name": "Steev",
"observed_date": "2026-06-14", "observed_date": "2026-06-15",
"desktop_integration_claimed": false, "desktop_integration_claimed": false,
"runtime_readiness_claimed": false, "runtime_readiness_claimed": false,
"seed_readiness_claimed": false, "seed_readiness_claimed": false,
"seed_local_acceptance_claimed": true,
"core_promotion_claimed": false, "core_promotion_claimed": false,
"adapter_workspace": "../cortex-hermes-adapter", "adapter_workspace": "../cortex-hermes-adapter",
"adapter_validator_command": "python3 tools/validate_cortex_hermes_adapter_child.py", "adapter_validator_command": "python3 tools/validate_cortex_hermes_adapter_child.py",
@@ -48,7 +49,7 @@
"surface": "profile.distribution", "surface": "profile.distribution",
"state": "degraded", "state": "degraded",
"source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json", "source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"visible_reason": "Profile exists and capability contracts are present, but aggregate runtime readiness is degraded." "visible_reason": "Profile exists, capability contracts are present, and Seed-local acceptance is proven; broader runtime and product readiness remain degraded."
}, },
{ {
"row_id": "personal-agent.imessage.read", "row_id": "personal-agent.imessage.read",
@@ -64,7 +65,7 @@
"surface": "runtime.health", "surface": "runtime.health",
"state": "degraded", "state": "degraded",
"source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json", "source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"visible_reason": "Proton MCP is enabled and bridge is running, but email gate remains exited." "visible_reason": "Proton MCP is enabled and email gate is repaired child-local; provider-smoke and canonical runtime gates remain blocked."
}, },
{ {
"row_id": "personal-agent.calendar.read", "row_id": "personal-agent.calendar.read",
@@ -72,7 +73,7 @@
"surface": "runtime.health", "surface": "runtime.health",
"state": "degraded", "state": "degraded",
"source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json", "source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"visible_reason": "Calendar gate is running, but Proton/rclone package child and final runtime proof are not complete." "visible_reason": "Calendar gate is running and Proton/rclone is Core-registered child-local; provider-smoke and canonical runtime gates remain blocked."
}, },
{ {
"row_id": "personal-agent.contacts.read", "row_id": "personal-agent.contacts.read",
@@ -80,7 +81,7 @@
"surface": "runtime.health", "surface": "runtime.health",
"state": "degraded", "state": "degraded",
"source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json", "source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"visible_reason": "Proton MCP is enabled, but contacts gate remains exited." "visible_reason": "Proton MCP is enabled and contacts gate is repaired child-local; provider-smoke and canonical runtime gates remain blocked."
}, },
{ {
"row_id": "personal-agent.drive.read", "row_id": "personal-agent.drive.read",
@@ -88,7 +89,23 @@
"surface": "runtime.health", "surface": "runtime.health",
"state": "degraded", "state": "degraded",
"source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json", "source_contract": "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"visible_reason": "rclone about probe is redacted-ok, but governed wrapper and package child are not complete." "visible_reason": "rclone about probe is redacted-ok and Core S606 registered the child; governed wrapper and provider-smoke gates remain blocked."
},
{
"row_id": "personal-agent.seed-local-acceptance",
"label": "Seed local acceptance",
"surface": "package.status",
"state": "ready",
"source_contract": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-final-full-tool-acceptance-gate.json",
"visible_reason": "Seed final full-tool acceptance is complete for governed local JP scope only."
},
{
"row_id": "personal-agent.proton-suite.provider-smoke",
"label": "Proton Suite provider gate",
"surface": "runtime.health",
"state": "blocked",
"source_contract": "../proton-rclone/.sot/08-OUTPUTS/proton-suite-provider-smoke-gate-proof.json",
"visible_reason": "Provider smokes remain blocked on Proton Pass Agncy access, Keyvault parity, migration, rollback, and Conductor disclosure review."
}, },
{ {
"row_id": "personal-agent.secondbrain.proposal", "row_id": "personal-agent.secondbrain.proposal",
@@ -160,8 +177,11 @@
"remaining_gates": { "remaining_gates": {
"adapter_lane_pickup": "blocked-follow-up", "adapter_lane_pickup": "blocked-follow-up",
"desktop_ui_wiring": "blocked-follow-up", "desktop_ui_wiring": "blocked-follow-up",
"seed_package_pickup": "blocked-follow-up", "seed_local_acceptance": "complete-governed-local-jp-only",
"proton_suite_seed_package_pickup": "blocked-provider-smoke",
"secondbrain_governed_apply_route": "defined-no-live-apply", "secondbrain_governed_apply_route": "defined-no-live-apply",
"profile_exposure_route": "blocked-core-route-required",
"longer_standing_runtime_proof": "follow-up",
"runtime_readiness_finalization": "blocked-follow-up", "runtime_readiness_finalization": "blocked-follow-up",
"browser_host_runtime_approval": "blocked-follow-up", "browser_host_runtime_approval": "blocked-follow-up",
"final_acceptance_packet": "blocked-follow-up" "final_acceptance_packet": "blocked-follow-up"
@@ -1,11 +1,11 @@
{ {
"schema_version": "personal-agent-proton-rclone-package/v1", "schema_version": "personal-agent-proton-rclone-package/v1",
"status": "package-candidate-unregistered", "status": "registered-child-local-package-degraded",
"package_id": "proton-rclone", "package_id": "proton-rclone",
"profile_identity": "personal-agent", "profile_identity": "personal-agent",
"display_name": "Steev", "display_name": "Steev",
"observed_date": "2026-06-14", "observed_date": "2026-06-15",
"child_workspace_registered": false, "child_workspace_registered": true,
"child_workspace_candidate_created": true, "child_workspace_candidate_created": true,
"package_runtime_readiness_claimed": false, "package_runtime_readiness_claimed": false,
"profile_runtime_readiness_claimed": false, "profile_runtime_readiness_claimed": false,
@@ -13,22 +13,38 @@
"core_promotion_claimed": false, "core_promotion_claimed": false,
"child_workspace_candidate": { "child_workspace_candidate": {
"path": "../proton-rclone", "path": "../proton-rclone",
"commit": "7f2ee159c3c3d3f7167100c189099215bb9a02d8", "commit": "f8403f1e5927933a0a5e283d2020119336e4e5e7",
"validator_command": "python3 tools/validate_proton_rclone_child.py", "validator_command": "python3 tools/validate_proton_rclone_child.py",
"validator_result_observed": "ok", "validator_result_observed": "ok",
"core_registration_claimed": false, "core_registration_claimed": true,
"runtime_readiness_claimed": false, "runtime_readiness_claimed": false,
"core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json", "core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json",
"live_redacted_health_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-live-redacted-health.json", "live_redacted_health_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-live-redacted-health.json",
"runtime_gate_repair_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-runtime-gate-repair-proof.json", "runtime_gate_repair_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-runtime-gate-repair-proof.json",
"bridge_unit_convergence_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-bridge-unit-convergence-proof.json", "bridge_unit_convergence_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-bridge-unit-convergence-proof.json",
"current_runtime_state_reconciliation": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-current-runtime-state-reconciliation.json", "current_runtime_state_reconciliation": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-current-runtime-state-reconciliation.json",
"core_registration_pickup": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-pickup.json",
"core_s606_registration_output": "../core/.sot/08-OUTPUTS/2026-06-14-s606-proton-rclone-child-registration.json",
"core_s641_governance_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s641-proton-suite-governance-pickup.json",
"core_s642_seed_refresh_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s642-seed-proton-suite-refresh-pickup.json",
"core_s643_seed_validator_repair_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s643-seed-personal-agent-validator-repair-pickup.json",
"seed_final_acceptance_gate": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-final-full-tool-acceptance-gate.json",
"seed_boundary_decision": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-core-promotion-productization-boundary-decision.json",
"seed_objective_completion_audit": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-objective-completion-audit.json",
"source_hashes": { "source_hashes": {
"readonly_contract": "46e860c8f16ad6c327efc89ca49894f60aa69857a69247d935b21e70a335c0cb", "readonly_contract": "d233a763ddb4fa49f5ff0bff02f5ec28595539375a735585902e535452f18686",
"live_redacted_health": "eebbb75e69c407f6b1a82fc847c30185bfa3b28d95848ea501333141a3c50edf", "live_redacted_health": "eebbb75e69c407f6b1a82fc847c30185bfa3b28d95848ea501333141a3c50edf",
"runtime_gate_repair_proof": "e9ebe2268209b6e9262a2d651d0baf9170c710e425fc591891f8b4ed81f21fbb", "runtime_gate_repair_proof": "e9ebe2268209b6e9262a2d651d0baf9170c710e425fc591891f8b4ed81f21fbb",
"current_runtime_state_reconciliation": "5437470ec25331efa116c061d0b8dc97507df81d098267501cc06cd4e39112e0", "current_runtime_state_reconciliation": "4562a62053ef4805833a41e9bba744ecf5ee9698d325f90b4a98191fe7aa579c",
"bridge_unit_convergence_proof": "8a7c07e331ff3b49ff5462caa9a691fd29f6e4db7fb4c968e8a44a99b152c46b" "bridge_unit_convergence_proof": "8a7c07e331ff3b49ff5462caa9a691fd29f6e4db7fb4c968e8a44a99b152c46b",
"core_registration_pickup": "d7ebfa239026b4e6d2667f4337ae7acaf763251ee11123f8974581137f34aa46",
"core_s606_registration_output": "ff7e0f93a705ce9149d48879a4a00f30ad5abf5903d569a738ba7f26ccc60d59",
"core_s641_governance_pickup": "224b12db17306764208cc16ae6d8dc3df342c77c05c0cba65df11d7ba20b0de6",
"core_s642_seed_refresh_pickup": "b3604875422663033772ba09a1a96e6152b654bcb020d1acc2dc6ccb9f44541f",
"core_s643_seed_validator_repair_pickup": "c378f7e25c5cd2668060aada18f3a8a0ebdceb76c30431cae48e109e41610c5c",
"seed_final_acceptance_gate": "1d56599c5fbc763e95a5734fa4a507767371189c56ec26f0da36b232f12f4869",
"seed_boundary_decision": "230accd38c9608656935858db576d5b1b19d71184387ef9015d6b7945c0ae136",
"seed_objective_completion_audit": "5bda7600319daee01348870bbe3c7cb716457f5507cdac974adb614540e08951"
} }
}, },
"authority_boundary": { "authority_boundary": {
@@ -36,7 +52,7 @@
"package_candidate_owns_runtime_inventory": true, "package_candidate_owns_runtime_inventory": true,
"legacy_repositories_are_reference_only": true, "legacy_repositories_are_reference_only": true,
"duplicate_profile_local_connectors_allowed": false, "duplicate_profile_local_connectors_allowed": false,
"notes": "This contract standardizes the Proton/rclone package shape for personal-agent. A child-local candidate now exists, but Core child-workspace registration and runtime readiness remain unclaimed." "notes": "This contract standardizes the Proton/rclone package shape for personal-agent. Core S606 registers proton-rclone as child-local authority only; runtime readiness, provider smokes, and Profile Exposure remain unclaimed."
}, },
"memory_policy": { "memory_policy": {
"target": "secondbrain-personal", "target": "secondbrain-personal",
@@ -221,7 +237,7 @@
"Promote the repaired email and contacts gate bind-mount shape into a canonical runtime deployment route.", "Promote the repaired email and contacts gate bind-mount shape into a canonical runtime deployment route.",
"Keep stale native Proton Bridge user units disabled while the Docker bridge route is canonical.", "Keep stale native Proton Bridge user units disabled while the Docker bridge route is canonical.",
"Keep rclone RC/proxy units disabled unless a governed wrapper admits them.", "Keep rclone RC/proxy units disabled unless a governed wrapper admits them.",
"Promote/register proton-rclone through Core before package runtime readiness is claimed." "Keep Core S606 registration child-local only; complete Proton Suite provider-smoke and canonical runtime routes before runtime readiness is claimed."
], ],
"mcp_servers": [ "mcp_servers": [
{ {
@@ -367,11 +383,14 @@
], ],
"remaining_gates": { "remaining_gates": {
"child_workspace_candidate": "complete-child-local", "child_workspace_candidate": "complete-child-local",
"registered_child_workspace": "blocked-follow-up", "registered_child_workspace": "complete-core-s606-child-local",
"email_gate_repair": "complete-child-local", "email_gate_repair": "complete-child-local",
"contacts_gate_repair": "complete-child-local", "contacts_gate_repair": "complete-child-local",
"systemd_bridge_convergence": "complete-child-local-docker-route-active", "systemd_bridge_convergence": "complete-child-local-docker-route-active",
"seed_personal_agent_local_acceptance": "complete-governed-local-jp-only",
"proton_suite_provider_smoke": "blocked-follow-up",
"proton_suite_seed_package_pickup": "blocked-provider-smoke",
"secondbrain_durable_apply": "blocked-follow-up", "secondbrain_durable_apply": "blocked-follow-up",
"seed_package_pickup": "blocked-after-runtime-repair-source-lock-refresh" "seed_package_pickup": "complete-governed-local-personal-agent"
} }
} }
@@ -1,13 +1,14 @@
{ {
"schema_version": "personal-agent-runtime-readiness-snapshot/v1", "schema_version": "personal-agent-runtime-readiness-snapshot/v1",
"status": "active-redacted-runtime-snapshot", "status": "active-redacted-runtime-snapshot",
"snapshot_id": "personal-agent-runtime-readiness-2026-06-14", "snapshot_id": "personal-agent-runtime-readiness-2026-06-15",
"profile_identity": "personal-agent", "profile_identity": "personal-agent",
"display_name": "Steev", "display_name": "Steev",
"observed_date": "2026-06-14", "observed_date": "2026-06-15",
"aggregate_runtime_state": "degraded", "aggregate_runtime_state": "degraded",
"runtime_readiness_claimed": false, "runtime_readiness_claimed": false,
"seed_readiness_claimed": false, "seed_readiness_claimed": false,
"seed_local_acceptance_claimed": true,
"core_promotion_claimed": false, "core_promotion_claimed": false,
"memory_target": "secondbrain-personal", "memory_target": "secondbrain-personal",
"forbidden_memory_targets": [ "forbidden_memory_targets": [
@@ -28,7 +29,7 @@
"secondbrain_governed_apply_route": "defined-no-live-apply", "secondbrain_governed_apply_route": "defined-no-live-apply",
"package_runtime_claims": false "package_runtime_claims": false
}, },
"remaining_gap": "Profile aggregate runtime readiness still false until final acceptance packet and approved live apply." "remaining_gap": "Profile aggregate runtime readiness remains broader-degraded until Core Profile Exposure, durable apply, provider, productization, and longer standing-runtime gates close."
}, },
{ {
"surface": "mail.read", "surface": "mail.read",
@@ -41,10 +42,11 @@
"proton_bridge_systemd_state": "inactive-disabled", "proton_bridge_systemd_state": "inactive-disabled",
"docker_email_gate": "up", "docker_email_gate": "up",
"child_workspace_candidate_validator_ok": true, "child_workspace_candidate_validator_ok": true,
"core_child_workspace_registered": false, "core_child_workspace_registered": true,
"seed_local_acceptance": true,
"raw_mail_observed": false "raw_mail_observed": false
}, },
"remaining_gap": "Email gate and Docker Bridge route are repaired child-local; Core child registration and final runtime acceptance remain required." "remaining_gap": "Email gate and Docker Bridge route are repaired child-local; Seed-local acceptance is proven, but Proton Suite provider smokes and canonical runtime readiness remain blocked."
}, },
{ {
"surface": "calendar.read", "surface": "calendar.read",
@@ -57,10 +59,11 @@
"proton_bridge_systemd_running": false, "proton_bridge_systemd_running": false,
"proton_bridge_systemd_state": "inactive-disabled", "proton_bridge_systemd_state": "inactive-disabled",
"child_workspace_candidate_validator_ok": true, "child_workspace_candidate_validator_ok": true,
"core_child_workspace_registered": false, "core_child_workspace_registered": true,
"seed_local_acceptance": true,
"raw_calendar_events_observed": false "raw_calendar_events_observed": false
}, },
"remaining_gap": "Calendar read has service posture and child proof; Core registration and final readiness remain blocked." "remaining_gap": "Calendar read has service posture, Core S606 child registration, and Seed-local acceptance; provider-smoke and canonical runtime readiness remain blocked."
}, },
{ {
"surface": "contacts.read", "surface": "contacts.read",
@@ -71,10 +74,11 @@
"mcp_server_enabled": true, "mcp_server_enabled": true,
"docker_contacts_gate": "up", "docker_contacts_gate": "up",
"child_workspace_candidate_validator_ok": true, "child_workspace_candidate_validator_ok": true,
"core_child_workspace_registered": false, "core_child_workspace_registered": true,
"seed_local_acceptance": true,
"raw_contacts_observed": false "raw_contacts_observed": false
}, },
"remaining_gap": "Contacts gate is repaired child-local; Core child registration and final runtime acceptance remain required." "remaining_gap": "Contacts gate is repaired child-local; Seed-local acceptance is proven, but provider-smoke and canonical runtime readiness remain blocked."
}, },
{ {
"surface": "drive.read", "surface": "drive.read",
@@ -87,11 +91,12 @@
"rclone_rc_unit": "disabled", "rclone_rc_unit": "disabled",
"rclone_proxy_unit": "disabled", "rclone_proxy_unit": "disabled",
"child_workspace_candidate_validator_ok": true, "child_workspace_candidate_validator_ok": true,
"core_child_workspace_registered": false, "core_child_workspace_registered": true,
"seed_local_acceptance": true,
"drive_file_names_observed": false, "drive_file_names_observed": false,
"drive_file_contents_observed": false "drive_file_contents_observed": false
}, },
"remaining_gap": "Drive read has redacted child proof; governed wrapper and Core registration remain required before runtime readiness." "remaining_gap": "Drive read has redacted child proof and Core S606 registration; governed wrapper, provider smokes, and canonical runtime readiness remain required."
} }
], ],
"supervisor_posture": { "supervisor_posture": {
@@ -127,10 +132,34 @@
"impact": "native unit loop is resolved, but canonical runtime deployment is still not claimed" "impact": "native unit loop is resolved, but canonical runtime deployment is still not claimed"
}, },
{ {
"id": "proton-rclone-child-unregistered", "id": "proton-rclone-child-registered-core-s606",
"severity": "complete",
"state": "Core S606 registers proton-rclone as child-local capability workspace",
"impact": "Registration gap is closed; runtime readiness still depends on provider-smoke and canonical runtime gates"
},
{
"id": "seed-local-acceptance-proven",
"severity": "complete",
"state": "Seed final full-tool acceptance, boundary decision, and objective audit are green for governed local JP scope",
"impact": "Steev is accepted as a local Seed deployment, not Core-authorized or product-ready infrastructure"
},
{
"id": "proton-suite-provider-smoke-blocked",
"severity": "must-fix", "severity": "must-fix",
"state": "child-local candidate exists and validates; Core registry is not landed", "state": "Proton Suite provider-smoke gate is blocked pending local Proton Pass Agncy access, Keyvault parity, migration receipt, read-only smokes, rollback, and Conductor disclosure review",
"impact": "Proton/rclone package cannot claim runtime readiness" "impact": "Proton Suite cannot unlock provider execution, Pass access, or product readiness"
},
{
"id": "profile-exposure-route-required",
"severity": "must-fix",
"state": "Core Profile Exposure change remains blocked until a governed Core route accepts it",
"impact": "Broader tool exposure cannot be claimed from Seed-local proof"
},
{
"id": "longer-standing-runtime-proof-beyond-three-poll",
"severity": "follow-up",
"state": "Current standing rollback proof is enough for Seed-local acceptance, not a longer always-on posture claim",
"impact": "Daily-driver and production posture need a separate longer standing-runtime proof"
}, },
{ {
"id": "secondbrain-apply-blocked", "id": "secondbrain-apply-blocked",
@@ -181,7 +210,11 @@
"proton_contacts_gate_repair": "complete-child-local", "proton_contacts_gate_repair": "complete-child-local",
"proton_bridge_systemd_convergence": "complete-child-local-docker-route-active", "proton_bridge_systemd_convergence": "complete-child-local-docker-route-active",
"proton_rclone_child_candidate": "complete-child-local", "proton_rclone_child_candidate": "complete-child-local",
"proton_rclone_child_registration": "blocked-follow-up", "proton_rclone_child_registration": "complete-core-s606-child-local",
"seed_local_acceptance": "complete-governed-local-jp-only",
"proton_suite_provider_smoke": "blocked-follow-up",
"profile_exposure_route": "blocked-core-route-required",
"longer_standing_runtime_proof": "follow-up",
"secondbrain_governed_apply_route": "defined-no-live-apply", "secondbrain_governed_apply_route": "defined-no-live-apply",
"secondbrain_durable_apply": "blocked-follow-up", "secondbrain_durable_apply": "blocked-follow-up",
"desktop_adapter_exposure": "blocked-follow-up", "desktop_adapter_exposure": "blocked-follow-up",
@@ -0,0 +1,41 @@
# Personal-Agent Core Seed Readiness Reconciliation
Date: 2026-06-15
Profile identity: `personal-agent`
Display name: `Steev`
Work item: `PACR-014`
Status: complete profile-local reconciliation
## Objective
Update Steev profile distribution truth after Seed-local acceptance and Core pickup work, without claiming Core authority, Profile Exposure, durable memory, provider, product, publish, deploy, or public readiness.
## Source Locks
| Source | Commit | Path | SHA-256 |
| --- | --- | --- | --- |
| Proton/rclone current head | `f8403f1e5927933a0a5e283d2020119336e4e5e7` | `.sot/08-OUTPUTS/proton-suite-redacted-health-panel.json` | `0cb6938f00618fa794081a04a45ecc258e14e9f31ded990d67845dd35f0f1207` |
| Proton/rclone child registration pickup | `f8403f1e5927933a0a5e283d2020119336e4e5e7` | `.sot/08-OUTPUTS/proton-rclone-core-registration-pickup.json` | `d7ebfa239026b4e6d2667f4337ae7acaf763251ee11123f8974581137f34aa46` |
| Core S606 registration output | `52b2293b` | `.sot/08-OUTPUTS/2026-06-14-s606-proton-rclone-child-registration.json` | `ff7e0f93a705ce9149d48879a4a00f30ad5abf5903d569a738ba7f26ccc60d59` |
| Core S641 Proton Suite governance pickup | `52b2293b` | `.sot/08-OUTPUTS/2026-06-15-s641-proton-suite-governance-pickup.json` | `224b12db17306764208cc16ae6d8dc3df342c77c05c0cba65df11d7ba20b0de6` |
| Core S642 Seed Proton Suite refresh pickup | `52b2293b` | `.sot/08-OUTPUTS/2026-06-15-s642-seed-proton-suite-refresh-pickup.json` | `b3604875422663033772ba09a1a96e6152b654bcb020d1acc2dc6ccb9f44541f` |
| Core S643 Seed validator repair pickup | `52b2293b` | `.sot/08-OUTPUTS/2026-06-15-s643-seed-personal-agent-validator-repair-pickup.json` | `c378f7e25c5cd2668060aada18f3a8a0ebdceb76c30431cae48e109e41610c5c` |
| Seed final acceptance gate | `999f286fc7dafc5635cc72d2a63f08b7b2f98433` | `outputs/research/2026-06-14-cortex-os-seed-personal-agent-final-full-tool-acceptance-gate.json` | `1d56599c5fbc763e95a5734fa4a507767371189c56ec26f0da36b232f12f4869` |
| Seed boundary decision | `999f286fc7dafc5635cc72d2a63f08b7b2f98433` | `outputs/research/2026-06-14-cortex-os-seed-personal-agent-core-promotion-productization-boundary-decision.json` | `230accd38c9608656935858db576d5b1b19d71184387ef9015d6b7945c0ae136` |
| Seed objective audit | `999f286fc7dafc5635cc72d2a63f08b7b2f98433` | `outputs/research/2026-06-14-cortex-os-seed-personal-agent-objective-completion-audit.json` | `5bda7600319daee01348870bbe3c7cb716457f5507cdac974adb614540e08951` |
## Result
Steev is represented as Seed-local accepted for the governed JP local package scope. Proton/rclone is represented as Core S606 child-local registered. The profile distribution still reports broader aggregate runtime state as degraded.
## Remaining Gates
- `profile_exposure_route`: Core route required before broader Profile Exposure.
- `secondbrain_durable_apply`: Secondbrain route and exact approval required.
- `proton_suite_provider_smoke`: blocked on local Proton Pass Agncy access, Keyvault parity, migration receipt, read-only smokes, rollback, and Conductor disclosure review.
- `longer_standing_runtime_proof`: needed before daily-driver or production posture.
- `productization_release_distribution_lane`: separate approval and release decision required.
## False Effects
No Core mutation, Seed mutation, sibling mutation, Runtime start, Docker start, Desktop/Dashboard launch, browser control, Webwright control, secret read, provider call, Profile Exposure change, Memory Domain grant, durable Secondbrain apply, Hindsight live write, publish, deploy, public release, product readiness, production readiness, or broad goal-completion claim occurred in this Steev slice.
+96 -25
View File
@@ -25,6 +25,7 @@ REQUIRED = [
"docs/contracts/personal-agent-runtime-readiness-snapshot.json", "docs/contracts/personal-agent-runtime-readiness-snapshot.json",
"docs/contracts/personal-agent-desktop-exposure-contract.json", "docs/contracts/personal-agent-desktop-exposure-contract.json",
"docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md", "docs/evidence/2026-06-14-personal-agent-proton-rclone-runtime-reconciliation.md",
"docs/evidence/2026-06-15-personal-agent-core-seed-readiness-reconciliation.md",
"docs/prd/2026-06-14-personal-agent-context-runtime-prd.md", "docs/prd/2026-06-14-personal-agent-context-runtime-prd.md",
"docs/issues/2026-06-14-personal-agent-context-runtime-work-orders.md", "docs/issues/2026-06-14-personal-agent-context-runtime-work-orders.md",
"docs/supersession/2026-06-14-personal-agent-context-runtime-supersession-register.md", "docs/supersession/2026-06-14-personal-agent-context-runtime-supersession-register.md",
@@ -128,7 +129,11 @@ REQUIRED_RUNTIME_GAPS = {
"proton-rclone-service-posture-disabled", "proton-rclone-service-posture-disabled",
"proton-bridge-native-units-disabled-docker-route-active", "proton-bridge-native-units-disabled-docker-route-active",
"stale-protonmail-bridge-container", "stale-protonmail-bridge-container",
"proton-rclone-child-unregistered", "proton-rclone-child-registered-core-s606",
"seed-local-acceptance-proven",
"proton-suite-provider-smoke-blocked",
"profile-exposure-route-required",
"longer-standing-runtime-proof-beyond-three-poll",
"secondbrain-apply-blocked", "secondbrain-apply-blocked",
"desktop-adapter-exposure-blocked", "desktop-adapter-exposure-blocked",
} }
@@ -156,6 +161,8 @@ REQUIRED_DESKTOP_ROWS = {
"personal-agent.calendar.read", "personal-agent.calendar.read",
"personal-agent.contacts.read", "personal-agent.contacts.read",
"personal-agent.drive.read", "personal-agent.drive.read",
"personal-agent.seed-local-acceptance",
"personal-agent.proton-suite.provider-smoke",
"personal-agent.secondbrain.proposal", "personal-agent.secondbrain.proposal",
"personal-agent.browser.host-runtime", "personal-agent.browser.host-runtime",
"personal-agent.write-actions", "personal-agent.write-actions",
@@ -203,6 +210,7 @@ def main() -> int:
"PACR-011", "PACR-011",
"PACR-012", "PACR-012",
"PACR-013", "PACR-013",
"PACR-014",
"status: candidate", "status: candidate",
"owner: jp", "owner: jp",
]: ]:
@@ -344,16 +352,17 @@ def main() -> int:
if proton: if proton:
if proton.get("schema_version") != "personal-agent-proton-rclone-package/v1": if proton.get("schema_version") != "personal-agent-proton-rclone-package/v1":
errors.append("proton_rclone_schema_version_invalid") errors.append("proton_rclone_schema_version_invalid")
if proton.get("status") != "package-candidate-unregistered": if proton.get("status") != "registered-child-local-package-degraded":
errors.append("proton_rclone_status_not_package_candidate") errors.append("proton_rclone_status_not_registered_child_local_degraded")
if proton.get("package_id") != "proton-rclone": if proton.get("package_id") != "proton-rclone":
errors.append("proton_rclone_package_id_invalid") errors.append("proton_rclone_package_id_invalid")
if proton.get("profile_identity") != "personal-agent": if proton.get("profile_identity") != "personal-agent":
errors.append("proton_rclone_profile_identity_not_personal_agent") errors.append("proton_rclone_profile_identity_not_personal_agent")
if proton.get("display_name") != "Steev": if proton.get("display_name") != "Steev":
errors.append("proton_rclone_display_name_not_steev") errors.append("proton_rclone_display_name_not_steev")
if proton.get("child_workspace_registered") is not True:
errors.append("proton_rclone_child_workspace_not_registered")
for key in [ for key in [
"child_workspace_registered",
"package_runtime_readiness_claimed", "package_runtime_readiness_claimed",
"profile_runtime_readiness_claimed", "profile_runtime_readiness_claimed",
"seed_readiness_claimed", "seed_readiness_claimed",
@@ -366,7 +375,7 @@ def main() -> int:
candidate = proton.get("child_workspace_candidate", {}) candidate = proton.get("child_workspace_candidate", {})
expected_candidate = { expected_candidate = {
"path": "../proton-rclone", "path": "../proton-rclone",
"commit": "7f2ee159c3c3d3f7167100c189099215bb9a02d8", "commit": "f8403f1e5927933a0a5e283d2020119336e4e5e7",
"validator_command": "python3 tools/validate_proton_rclone_child.py", "validator_command": "python3 tools/validate_proton_rclone_child.py",
"validator_result_observed": "ok", "validator_result_observed": "ok",
"core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json", "core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json",
@@ -374,24 +383,41 @@ def main() -> int:
"runtime_gate_repair_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-runtime-gate-repair-proof.json", "runtime_gate_repair_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-runtime-gate-repair-proof.json",
"bridge_unit_convergence_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-bridge-unit-convergence-proof.json", "bridge_unit_convergence_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-bridge-unit-convergence-proof.json",
"current_runtime_state_reconciliation": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-current-runtime-state-reconciliation.json", "current_runtime_state_reconciliation": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-current-runtime-state-reconciliation.json",
"core_registration_pickup": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-pickup.json",
"core_s606_registration_output": "../core/.sot/08-OUTPUTS/2026-06-14-s606-proton-rclone-child-registration.json",
"core_s641_governance_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s641-proton-suite-governance-pickup.json",
"core_s642_seed_refresh_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s642-seed-proton-suite-refresh-pickup.json",
"core_s643_seed_validator_repair_pickup": "../core/.sot/08-OUTPUTS/2026-06-15-s643-seed-personal-agent-validator-repair-pickup.json",
"seed_final_acceptance_gate": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-final-full-tool-acceptance-gate.json",
"seed_boundary_decision": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-core-promotion-productization-boundary-decision.json",
"seed_objective_completion_audit": "../seed/outputs/research/2026-06-14-cortex-os-seed-personal-agent-objective-completion-audit.json",
} }
for key, expected in expected_candidate.items(): for key, expected in expected_candidate.items():
if candidate.get(key) != expected: if candidate.get(key) != expected:
errors.append(f"proton_rclone_child_candidate_mismatch:{key}") errors.append(f"proton_rclone_child_candidate_mismatch:{key}")
expected_hashes = { expected_hashes = {
"readonly_contract": "46e860c8f16ad6c327efc89ca49894f60aa69857a69247d935b21e70a335c0cb", "readonly_contract": "d233a763ddb4fa49f5ff0bff02f5ec28595539375a735585902e535452f18686",
"live_redacted_health": "eebbb75e69c407f6b1a82fc847c30185bfa3b28d95848ea501333141a3c50edf", "live_redacted_health": "eebbb75e69c407f6b1a82fc847c30185bfa3b28d95848ea501333141a3c50edf",
"runtime_gate_repair_proof": "e9ebe2268209b6e9262a2d651d0baf9170c710e425fc591891f8b4ed81f21fbb", "runtime_gate_repair_proof": "e9ebe2268209b6e9262a2d651d0baf9170c710e425fc591891f8b4ed81f21fbb",
"current_runtime_state_reconciliation": "5437470ec25331efa116c061d0b8dc97507df81d098267501cc06cd4e39112e0", "current_runtime_state_reconciliation": "4562a62053ef4805833a41e9bba744ecf5ee9698d325f90b4a98191fe7aa579c",
"bridge_unit_convergence_proof": "8a7c07e331ff3b49ff5462caa9a691fd29f6e4db7fb4c968e8a44a99b152c46b", "bridge_unit_convergence_proof": "8a7c07e331ff3b49ff5462caa9a691fd29f6e4db7fb4c968e8a44a99b152c46b",
"core_registration_pickup": "d7ebfa239026b4e6d2667f4337ae7acaf763251ee11123f8974581137f34aa46",
"core_s606_registration_output": "ff7e0f93a705ce9149d48879a4a00f30ad5abf5903d569a738ba7f26ccc60d59",
"core_s641_governance_pickup": "224b12db17306764208cc16ae6d8dc3df342c77c05c0cba65df11d7ba20b0de6",
"core_s642_seed_refresh_pickup": "b3604875422663033772ba09a1a96e6152b654bcb020d1acc2dc6ccb9f44541f",
"core_s643_seed_validator_repair_pickup": "c378f7e25c5cd2668060aada18f3a8a0ebdceb76c30431cae48e109e41610c5c",
"seed_final_acceptance_gate": "1d56599c5fbc763e95a5734fa4a507767371189c56ec26f0da36b232f12f4869",
"seed_boundary_decision": "230accd38c9608656935858db576d5b1b19d71184387ef9015d6b7945c0ae136",
"seed_objective_completion_audit": "5bda7600319daee01348870bbe3c7cb716457f5507cdac974adb614540e08951",
} }
hashes = candidate.get("source_hashes", {}) hashes = candidate.get("source_hashes", {})
for key, expected in expected_hashes.items(): for key, expected in expected_hashes.items():
if hashes.get(key) != expected: if hashes.get(key) != expected:
errors.append(f"proton_rclone_child_hash_mismatch:{key}") errors.append(f"proton_rclone_child_hash_mismatch:{key}")
for key in ["core_registration_claimed", "runtime_readiness_claimed"]: if candidate.get("core_registration_claimed") is not True:
if candidate.get(key) is not False: errors.append("proton_rclone_child_candidate_core_registration_not_claimed")
errors.append(f"proton_rclone_child_candidate_overclaim:{key}") if candidate.get("runtime_readiness_claimed") is not False:
errors.append("proton_rclone_child_candidate_runtime_overclaim")
boundary = proton.get("authority_boundary", {}) boundary = proton.get("authority_boundary", {})
if boundary.get("profile_owns_surface_exposure") is not True: if boundary.get("profile_owns_surface_exposure") is not True:
errors.append("proton_rclone_profile_surface_boundary_missing") errors.append("proton_rclone_profile_surface_boundary_missing")
@@ -525,19 +551,23 @@ def main() -> int:
remaining_gates = proton.get("remaining_gates", {}) remaining_gates = proton.get("remaining_gates", {})
if remaining_gates.get("child_workspace_candidate") != "complete-child-local": if remaining_gates.get("child_workspace_candidate") != "complete-child-local":
errors.append("proton_rclone_child_candidate_gate_missing") errors.append("proton_rclone_child_candidate_gate_missing")
if remaining_gates.get("registered_child_workspace") != "complete-core-s606-child-local":
errors.append("proton_rclone_registered_child_gate_missing")
if remaining_gates.get("email_gate_repair") != "complete-child-local": if remaining_gates.get("email_gate_repair") != "complete-child-local":
errors.append("proton_rclone_email_gate_repair_not_complete") errors.append("proton_rclone_email_gate_repair_not_complete")
if remaining_gates.get("contacts_gate_repair") != "complete-child-local": if remaining_gates.get("contacts_gate_repair") != "complete-child-local":
errors.append("proton_rclone_contacts_gate_repair_not_complete") errors.append("proton_rclone_contacts_gate_repair_not_complete")
for gate in [ if remaining_gates.get("seed_personal_agent_local_acceptance") != "complete-governed-local-jp-only":
"registered_child_workspace", errors.append("proton_rclone_seed_local_acceptance_gate_missing")
"secondbrain_durable_apply", if remaining_gates.get("proton_suite_provider_smoke") != "blocked-follow-up":
]: errors.append("proton_rclone_provider_smoke_gate_missing")
if remaining_gates.get(gate) != "blocked-follow-up": if remaining_gates.get("proton_suite_seed_package_pickup") != "blocked-provider-smoke":
errors.append(f"proton_rclone_remaining_gate_missing:{gate}") errors.append("proton_rclone_suite_seed_pickup_gate_missing")
if remaining_gates.get("secondbrain_durable_apply") != "blocked-follow-up":
errors.append("proton_rclone_secondbrain_durable_apply_gate_missing")
if remaining_gates.get("systemd_bridge_convergence") != "complete-child-local-docker-route-active": if remaining_gates.get("systemd_bridge_convergence") != "complete-child-local-docker-route-active":
errors.append("proton_rclone_bridge_convergence_not_complete") errors.append("proton_rclone_bridge_convergence_not_complete")
if remaining_gates.get("seed_package_pickup") != "blocked-after-runtime-repair-source-lock-refresh": if remaining_gates.get("seed_package_pickup") != "complete-governed-local-personal-agent":
errors.append("proton_rclone_seed_pickup_gate_invalid") errors.append("proton_rclone_seed_pickup_gate_invalid")
memory_route = load_json("docs/contracts/personal-agent-secondbrain-proposal-route.json", errors) memory_route = load_json("docs/contracts/personal-agent-secondbrain-proposal-route.json", errors)
@@ -890,6 +920,8 @@ def main() -> int:
for key in ["runtime_readiness_claimed", "seed_readiness_claimed", "core_promotion_claimed"]: for key in ["runtime_readiness_claimed", "seed_readiness_claimed", "core_promotion_claimed"]:
if runtime.get(key) is not False: if runtime.get(key) is not False:
errors.append(f"runtime_snapshot_overclaim:{key}") errors.append(f"runtime_snapshot_overclaim:{key}")
if runtime.get("seed_local_acceptance_claimed") is not True:
errors.append("runtime_snapshot_seed_local_acceptance_not_claimed")
if runtime.get("memory_target") != "secondbrain-personal": if runtime.get("memory_target") != "secondbrain-personal":
errors.append("runtime_snapshot_memory_target_not_secondbrain_personal") errors.append("runtime_snapshot_memory_target_not_secondbrain_personal")
if "orgbrain" not in runtime.get("forbidden_memory_targets", []): if "orgbrain" not in runtime.get("forbidden_memory_targets", []):
@@ -989,12 +1021,17 @@ def main() -> int:
errors.append("runtime_snapshot_contacts_gate_repair_not_complete") errors.append("runtime_snapshot_contacts_gate_repair_not_complete")
if remaining_gates.get("proton_bridge_systemd_convergence") != "complete-child-local-docker-route-active": if remaining_gates.get("proton_bridge_systemd_convergence") != "complete-child-local-docker-route-active":
errors.append("runtime_snapshot_bridge_convergence_not_complete") errors.append("runtime_snapshot_bridge_convergence_not_complete")
for gate in [ if remaining_gates.get("proton_rclone_child_registration") != "complete-core-s606-child-local":
"proton_rclone_child_registration", errors.append("runtime_snapshot_child_registration_gate_missing")
"secondbrain_durable_apply", if remaining_gates.get("seed_local_acceptance") != "complete-governed-local-jp-only":
"desktop_adapter_exposure", errors.append("runtime_snapshot_seed_local_acceptance_gate_missing")
"final_acceptance_packet", if remaining_gates.get("proton_suite_provider_smoke") != "blocked-follow-up":
]: errors.append("runtime_snapshot_provider_smoke_gate_missing")
if remaining_gates.get("profile_exposure_route") != "blocked-core-route-required":
errors.append("runtime_snapshot_profile_exposure_gate_missing")
if remaining_gates.get("longer_standing_runtime_proof") != "follow-up":
errors.append("runtime_snapshot_longer_standing_runtime_gate_missing")
for gate in ["secondbrain_durable_apply", "desktop_adapter_exposure", "final_acceptance_packet"]:
if remaining_gates.get(gate) != "blocked-follow-up": if remaining_gates.get(gate) != "blocked-follow-up":
errors.append(f"runtime_snapshot_remaining_gate_missing:{gate}") errors.append(f"runtime_snapshot_remaining_gate_missing:{gate}")
if remaining_gates.get("reboot_power_loss_drill") != "optional-follow-up": if remaining_gates.get("reboot_power_loss_drill") != "optional-follow-up":
@@ -1020,6 +1057,8 @@ def main() -> int:
]: ]:
if desktop.get(key) is not False: if desktop.get(key) is not False:
errors.append(f"desktop_exposure_overclaim:{key}") errors.append(f"desktop_exposure_overclaim:{key}")
if desktop.get("seed_local_acceptance_claimed") is not True:
errors.append("desktop_exposure_seed_local_acceptance_not_claimed")
if desktop.get("adapter_workspace") != "../cortex-hermes-adapter": if desktop.get("adapter_workspace") != "../cortex-hermes-adapter":
errors.append("desktop_exposure_adapter_workspace_invalid") errors.append("desktop_exposure_adapter_workspace_invalid")
if desktop.get("adapter_validator_command") != "python3 tools/validate_cortex_hermes_adapter_child.py": if desktop.get("adapter_validator_command") != "python3 tools/validate_cortex_hermes_adapter_child.py":
@@ -1065,6 +1104,8 @@ def main() -> int:
"personal-agent.calendar.read": "degraded", "personal-agent.calendar.read": "degraded",
"personal-agent.contacts.read": "degraded", "personal-agent.contacts.read": "degraded",
"personal-agent.drive.read": "degraded", "personal-agent.drive.read": "degraded",
"personal-agent.seed-local-acceptance": "ready",
"personal-agent.proton-suite.provider-smoke": "blocked",
"personal-agent.secondbrain.proposal": "pending", "personal-agent.secondbrain.proposal": "pending",
"personal-agent.browser.host-runtime": "blocked", "personal-agent.browser.host-runtime": "blocked",
"personal-agent.write-actions": "disabled", "personal-agent.write-actions": "disabled",
@@ -1127,10 +1168,17 @@ def main() -> int:
remaining_gates = desktop.get("remaining_gates", {}) remaining_gates = desktop.get("remaining_gates", {})
if remaining_gates.get("secondbrain_governed_apply_route") != "defined-no-live-apply": if remaining_gates.get("secondbrain_governed_apply_route") != "defined-no-live-apply":
errors.append("desktop_exposure_governed_apply_route_not_defined") errors.append("desktop_exposure_governed_apply_route_not_defined")
if remaining_gates.get("seed_local_acceptance") != "complete-governed-local-jp-only":
errors.append("desktop_exposure_seed_local_acceptance_gate_missing")
if remaining_gates.get("proton_suite_seed_package_pickup") != "blocked-provider-smoke":
errors.append("desktop_exposure_proton_suite_seed_pickup_gate_missing")
if remaining_gates.get("profile_exposure_route") != "blocked-core-route-required":
errors.append("desktop_exposure_profile_exposure_gate_missing")
if remaining_gates.get("longer_standing_runtime_proof") != "follow-up":
errors.append("desktop_exposure_longer_standing_runtime_gate_missing")
for gate in [ for gate in [
"adapter_lane_pickup", "adapter_lane_pickup",
"desktop_ui_wiring", "desktop_ui_wiring",
"seed_package_pickup",
"runtime_readiness_finalization", "runtime_readiness_finalization",
"browser_host_runtime_approval", "browser_host_runtime_approval",
"final_acceptance_packet", "final_acceptance_packet",
@@ -1174,9 +1222,32 @@ def main() -> int:
if stale in text: if stale in text:
errors.append(f"supersession_stale_reference:{stale}") errors.append(f"supersession_stale_reference:{stale}")
reconciliation = ROOT / "docs/evidence/2026-06-15-personal-agent-core-seed-readiness-reconciliation.md"
if reconciliation.exists():
text = reconciliation.read_text(encoding="utf-8")
for snippet in [
"PACR-014",
"f8403f1e5927933a0a5e283d2020119336e4e5e7",
"Core S606 registration output",
"Core S641 Proton Suite governance pickup",
"Core S642 Seed Proton Suite refresh pickup",
"Core S643 Seed validator repair pickup",
"Seed final acceptance gate",
"Seed boundary decision",
"Seed objective audit",
"Steev is represented as Seed-local accepted",
"`profile_exposure_route`: Core route required",
"`secondbrain_durable_apply`: Secondbrain route and exact approval required",
"`proton_suite_provider_smoke`: blocked",
"No Core mutation",
"broad goal-completion claim",
]:
if snippet not in text:
errors.append(f"reconciliation_missing:{snippet}")
result = { result = {
"ok": not errors, "ok": not errors,
"validator": "personal-agent-profile-distribution-v7", "validator": "personal-agent-profile-distribution-v8",
"checked": REQUIRED, "checked": REQUIRED,
"errors": errors, "errors": errors,
"warnings": [], "warnings": [],