Files
steev/docs/contracts/personal-agent-conductor-curator-service-handoff.json
T

210 lines
7.0 KiB
JSON

{
"schema_version": "personal-agent-conductor-curator-service-handoff/v1",
"status": "active-profile-service-handoff",
"handoff_id": "personal-agent-conductor-curator-service-handoff",
"profile_identity": "personal-agent",
"display_name": "Steev",
"observed_date": "2026-06-14",
"core_promotion_claimed": false,
"seed_readiness_claimed": false,
"runtime_readiness_claimed": false,
"desktop_integration_claimed": false,
"authority_boundary": {
"profile_owns_capability_surface_contract": true,
"conductor_owns_future_route_selection_and_worker_contracts": true,
"curator_owns_future_hygiene_review_queue": true,
"secondbrain_owns_personal_memory_domain_apply": true,
"capability_packages_own_runtime_health": true,
"notes": "This handoff gives Conductor and Curator a redacted service map. It does not mutate those workspaces or claim they have adopted it."
},
"memory_policy": {
"target": "secondbrain-personal",
"target_domain_term": "Personal Memory Domain",
"forbidden": [
"orgbrain"
],
"durable_write_policy": "proposal-only-until-governed-secondbrain-curator-apply-route"
},
"service_identities": [
{
"service_id": "personal-agent.imessage.bluebubbles.readonly",
"capability_package": "bluebubbles",
"owner_route": "bluebubbles",
"surface": "imessage.read",
"health_shape": "redacted-readonly-runtime-health",
"readiness_state": "package-ready-profile-bound",
"allowed_effects": [
"read_message_stream",
"read_conversation_history",
"emit_redacted_health",
"emit_secondbrain_personal_proposal"
],
"denied_effects": [
"send_message",
"delete_message",
"mark_read",
"read_receipt",
"attachment_download",
"orgbrain_write",
"durable_memory_write"
]
},
{
"service_id": "personal-agent.proton-rclone.package-candidate",
"capability_package": "proton-rclone",
"owner_route": "proton-rclone",
"surface": "mail.calendar.contacts.drive",
"health_shape": "child-local-redacted-runtime-health",
"readiness_state": "degraded-child-candidate-core-registration-pending",
"allowed_effects": [
"emit_mail_health",
"emit_calendar_health",
"emit_contacts_health",
"emit_drive_health",
"emit_secondbrain_personal_proposal"
],
"denied_effects": [
"send_without_confirmation",
"calendar_write_without_confirmation",
"contact_mutation_without_confirmation",
"drive_write_without_confirmation",
"drive_delete",
"orgbrain_write",
"durable_memory_write"
]
},
{
"service_id": "personal-agent.secondbrain.proposal-route",
"capability_package": "personal-agent-profile",
"owner_route": "steev",
"surface": "secondbrain.memory.proposal",
"health_shape": "redacted-proposal-envelope-contract",
"readiness_state": "profile-contract-ready-governed-apply-defined",
"allowed_effects": [
"emit_redacted_proposal",
"emit_source_handle",
"emit_content_digest",
"reference_governed_apply_route"
],
"denied_effects": [
"secondbrain_apply",
"direct_memory_write",
"orgbrain_write",
"raw_payload_in_proof"
]
}
],
"conductor_handoff": {
"target_workspace": "../conductor",
"target_role": "future-route-selection-and-worker-contract-owner",
"adoption_status": "pending-conductor-lane-pickup",
"validator_command": "python3 tools/validate_conductor_child.py",
"validator_result_observed": "ok",
"required_route_decision_inputs": [
"profile_identity",
"requested_surface",
"capability_package",
"owner_route",
"allowed_effects",
"denied_effects",
"validator_command",
"evidence_expectation",
"approval_required"
],
"forbidden_conductor_effects": [
"runtime_start",
"runtime_stop",
"desktop_integration",
"core_mutation",
"seed_completion_claim",
"secret_read",
"raw_payload_import",
"sibling_mutation_without_worker_route"
],
"worker_contract_expectations": [
"one route per worker",
"one bounded goal",
"workspace-local validator",
"redacted evidence",
"no raw personal payloads",
"no unapproved runtime lifecycle"
]
},
"curator_handoff": {
"target_workspace": "../curator",
"target_role": "future-personal-memory-hygiene-review-queue",
"adoption_status": "pending-curator-lane-pickup",
"validator_command": "python3 tools/validate_curator_child.py",
"validator_result_observed": "ok",
"allowed_future_reviews": [
"novelty_candidate",
"stale_candidate",
"duplicate_candidate",
"supersession_candidate",
"archive_candidate",
"provenance_gap",
"contradiction_candidate"
],
"forbidden_curator_effects": [
"direct_memory_write",
"raw_payload_import",
"orgbrain_write",
"profile_exposure_broadening",
"runtime_activation",
"secret_read",
"core_mutation",
"seed_mutation"
]
},
"apply_expectations": {
"target": "secondbrain-personal",
"apply_owner": "secondbrain",
"hygiene_owner": "curator",
"apply_route_defined": true,
"apply_route_contract": "../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-apply-contract.md",
"apply_allowed_now": false,
"live_apply_executed": false,
"durable_apply_without_approval": false,
"requires_proposal_envelope": true,
"requires_approval": true,
"requires_secondbrain_validator": "python3 tools/validate_secondbrain_child.py",
"requires_redacted_evidence": true,
"forbidden_targets": [
"orgbrain"
]
},
"source_contracts": [
"docs/contracts/personal-agent-profile-surface-contract.json",
"docs/contracts/personal-agent-bluebubbles-binding.json",
"docs/contracts/personal-agent-proton-rclone-package.json",
"docs/contracts/personal-agent-secondbrain-proposal-route.json",
"../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-apply-contract.md"
],
"proof_policy": {
"mode": "redacted-only",
"forbidden_fields": [
"raw_messages",
"message_text",
"mail_bodies",
"mail_subjects",
"contact_details",
"calendar_event_details",
"drive_file_names",
"drive_file_contents",
"endpoint_payloads",
"credentials",
"secret_values",
"raw_transcripts"
]
},
"remaining_gates": {
"conductor_lane_pickup": "blocked-follow-up",
"curator_personal_memory_hygiene_lane_pickup": "blocked-follow-up",
"secondbrain_governed_apply_route": "defined-no-live-apply",
"secondbrain_durable_apply": "blocked-follow-up",
"runtime_health_proof": "complete-child-local",
"desktop_adapter_exposure": "blocked-follow-up",
"seed_package_pickup": "blocked-follow-up"
}
}