docs: link imessage intake to secondbrain route

This commit is contained in:
Svrnty
2026-06-14 09:08:42 -04:00
parent 8c8d005fe8
commit 389bd1e89d
2 changed files with 16 additions and 1 deletions
@@ -30,6 +30,7 @@
"source_surface": "imessage.read",
"capability_package": "bluebubbles",
"proposal_type": "secondbrain.memory.propose_create_from_imessage",
"secondbrain_intake_contract": "../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-intake-contract.md",
"target_lifecycle_state": "inbox",
"allowed_effects": [
"emit_redacted_proposal",
@@ -151,6 +152,7 @@
"apply_allowed_now": false,
"requires_secondbrain_validator": "python3 tools/validate_secondbrain_child.py",
"requires_focused_secondbrain_gate": true,
"focused_secondbrain_gate_command": "python3 tools/check_secondbrain_personal_agent_imessage_intake.py",
"requires_human_or_governed_approval": true,
"requires_local_evidence_and_handoff": true,
"push_allowed": false
@@ -186,7 +188,9 @@
"../secondbrain/docs/integration/2026-06-09-secondbrain-governed-agent-retrieval-contract.md",
"../secondbrain/docs/integration/2026-06-09-secondbrain-governed-memory-write-path-contract.md",
"../secondbrain/docs/integration/2026-06-09-secondbrain-curator-hygiene-queue-contract.md",
"../secondbrain/docs/integration/2026-06-09-secondbrain-hermes-runtime-boundary.md"
"../secondbrain/docs/integration/2026-06-09-secondbrain-hermes-runtime-boundary.md",
"../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-intake-contract.md",
"../secondbrain/docs/evidence/2026-06-14-secondbrain-personal-agent-imessage-intake-proof.md"
],
"proof_policy": {
"mode": "redacted-only",
@@ -208,6 +212,7 @@
]
},
"remaining_gates": {
"secondbrain_imessage_intake_contract": "ready",
"secondbrain_durable_apply": "blocked-follow-up",
"curator_hygiene_apply_review": "blocked-follow-up",
"desktop_adapter_exposure": "blocked-follow-up",
+10
View File
@@ -550,6 +550,12 @@ def main() -> int:
errors.append(f"memory_route_bad_proposal_type:{surface}")
if route.get("target_lifecycle_state") != "inbox":
errors.append(f"memory_route_lifecycle_not_inbox:{surface}")
if (
surface == "imessage.read"
and route.get("secondbrain_intake_contract")
!= "../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-intake-contract.md"
):
errors.append("memory_route_imessage_intake_contract_missing")
allowed = route.get("allowed_effects")
if not isinstance(allowed, list) or "emit_redacted_proposal" not in allowed:
errors.append(f"memory_route_redacted_proposal_not_allowed:{surface}")
@@ -582,6 +588,8 @@ def main() -> int:
errors.append("memory_route_apply_allowed_now")
if apply_policy.get("requires_secondbrain_validator") != "python3 tools/validate_secondbrain_child.py":
errors.append("memory_route_secondbrain_validator_missing")
if apply_policy.get("focused_secondbrain_gate_command") != "python3 tools/check_secondbrain_personal_agent_imessage_intake.py":
errors.append("memory_route_focused_secondbrain_gate_command_missing")
for key in [
"requires_focused_secondbrain_gate",
"requires_human_or_governed_approval",
@@ -608,6 +616,8 @@ def main() -> int:
"../secondbrain/docs/integration/2026-06-09-secondbrain-governed-memory-write-path-contract.md",
"../secondbrain/docs/integration/2026-06-09-secondbrain-curator-hygiene-queue-contract.md",
"../secondbrain/docs/integration/2026-06-09-secondbrain-hermes-runtime-boundary.md",
"../secondbrain/docs/integration/2026-06-14-secondbrain-personal-agent-imessage-intake-contract.md",
"../secondbrain/docs/evidence/2026-06-14-secondbrain-personal-agent-imessage-intake-proof.md",
]:
if ref not in refs:
errors.append(f"memory_route_secondbrain_ref_missing:{ref}")