{"productionTouched":false,"databaseTouched":false,"liveReadAllowed":false,"liveWriteAllowed":false,"n8nExecutionAllowed":false,"googleContactsReadAllowed":false,"googleContactsWriteAllowed":false,"rawImageStorageAllowed":false,"rawContactStorageAllowed":false,"rawPipelineStorageAllowed":false,"rawExecutionPayloadStorageAllowed":false,"localBrowserOnly":true,"clientQrDecodeAllowed":true,"cameraAccessRequiresOperatorGesture":true,"rawImageBackendUploadAllowed":false,"cameraAccessStarted":false,"cloudOcrAllowed":false,"endpoints":[{"method":"GET","path":"/contact-capture/scanner","effect":"render-local-ui"},{"method":"GET","path":"/contact-capture/scanner-shell-policy","effect":"read-policy"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-operator-handoff-review","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-operator-handoff-review-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-operator-handoff-review-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result-review","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result-review-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-submit-result-review-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-submit","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-submit-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-submit-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-result","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-result-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-intake-result-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-submit","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-submit-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-submit-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-result","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-result-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-verified-result-storage-result-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-implementation-request-review","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-implementation-request-review-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-implementation-request-review-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-owner-decision-review","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-owner-decision-review-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-owner-decision-review-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-request","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-request-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-request-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-result-review","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-result-review-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-adapter-implementation-check-result-review-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-request","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-request-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-request-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-owner-handoff","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-owner-handoff-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-strict-control-owner-handoff-plan","effect":"plan-only"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-live-window-runbook","effect":"navigate-local"},{"method":"GET","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-live-window-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/mobile-assistant-gesture-capture-ocr-downstream-target-route-durable-result-storage-live-window-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-adapter-plan","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-intake-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-field-extraction-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-field-extraction-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-correction-handoff-acknowledgement-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-correction-handoff-acknowledgement-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/upload-ocr-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/upload-ocr-approval-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-provider-adapter-skeleton-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-adapter-skeleton-check","effect":"check-only"},{"method":"GET","path":"/contact-capture/ocr-provider-implementation-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-implementation-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-provider-implementation-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-implementation-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-provider-adapter-implementation-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-adapter-implementation-check","effect":"check-only"},{"method":"GET","path":"/contact-capture/ocr-provider-strict-control-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-strict-control-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-provider-strict-control-owner-handoff-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-strict-control-owner-handoff-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/ocr-provider-live-window-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/ocr-provider-live-window-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/browser-qr-library-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/browser-qr-library-implementation-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/browser-qr-library-readiness-template","effect":"read-policy"},{"method":"POST","path":"/contact-capture/browser-qr-library-readiness-gate","effect":"plan-only"},{"method":"GET","path":"/contact-capture/qr-decoder-adapter-contract-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/qr-decoder-adapter-contract-check","effect":"check-only"},{"method":"GET","path":"/contact-capture/qr-scanner-dependency-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/qr-scanner-dependency-approval-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/qr-scanner-install-preflight-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/qr-scanner-install-preflight-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/qr-scanner-install-owner-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/qr-scanner-install-owner-approval-plan","effect":"plan-only"},{"method":"POST","path":"/contact-capture/preview","effect":"plan-only"},{"method":"POST","path":"/contact-capture/scanner-to-preview-case-flow-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-pipeline-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/case-pipeline-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-store-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/case-store-record-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/durable-case-state-adapter-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/durable-case-state-adapter-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-state-repository-policy","effect":"read-policy"},{"method":"GET","path":"/contact-capture/case-state-repository-adapter-wiring-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/case-state-repository-adapter-wiring-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-state-repository-adapter-factory-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/case-state-repository-adapter-factory-dry-run","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-state-repository-adapter-factory-interface-status","effect":"read-status"},{"method":"POST","path":"/contact-capture/case-state-repository-adapter-factory-interface-check","effect":"check-only"},{"method":"POST","path":"/contact-capture/case-state-repository/cases","effect":"write-memory"},{"method":"GET","path":"/contact-capture/case-state-repository/cases","effect":"read-memory"},{"method":"GET","path":"/contact-capture/case-state-repository/cases/:caseReference","effect":"read-memory"},{"method":"GET","path":"/contact-capture/operator-review-ui-contract","effect":"read-policy"},{"method":"POST","path":"/contact-capture/operator-review-correction-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-read-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-read-approval-packet-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-lookup-simulator-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-lookup-simulator-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-read-adapter-hardening-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-read-adapter-hardening-check","effect":"check-only"},{"method":"GET","path":"/contact-capture/duplicate-read-adapter-strict-control-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-read-adapter-strict-control-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-read-adapter-strict-control-owner-handoff-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-read-adapter-strict-control-owner-handoff-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-read-adapter-live-window-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-read-adapter-live-window-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/duplicate-result-review-ui-contract","effect":"read-policy"},{"method":"POST","path":"/contact-capture/duplicate-result-resolution-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/write-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/write-approval-packet-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/owner-write-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/owner-write-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-create-payload-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-create-payload-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-gate-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-disabled-live-adapter-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-disabled-live-adapter-dry-run","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-implementation-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-implementation-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-skeleton-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-skeleton-check","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-created-person-result-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-created-person-result-check","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-adapter-integration-harness-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-adapter-integration-harness-check","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-handoff-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-handoff-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-owner-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-owner-approval-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-token-provider-contract-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-token-provider-contract-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-scaffold-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-scaffold-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-live-adapter-strict-control-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-live-adapter-strict-control-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-strict-control-runbook-review-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-strict-control-runbook-review-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-default-off-implementation-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-default-off-implementation-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-default-off-implementation-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-default-off-implementation-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/google-contacts-default-off-adapter-implementation-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/google-contacts-default-off-adapter-implementation-check","effect":"plan-only"},{"method":"POST","path":"/contact-capture/contacts-agent-execution-gate-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/verified-result-intake-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/verified-result-intake-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/verified-result-storage-adapter-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/verified-result-storage-adapter-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/durable-result-storage-implementation-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/durable-result-storage-implementation-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/durable-result-storage-implementation-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/durable-result-storage-implementation-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/durable-result-storage-adapter-implementation-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/durable-result-storage-adapter-implementation-check","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-preflight-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-preflight-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-execution-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-execution-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-strict-control-checklist-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-strict-control-checklist-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-shell-instruction-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-shell-instruction-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-owner-run-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-owner-run-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-pre-shell-evidence-review-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-pre-shell-evidence-review-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-shell-run-approval-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-shell-run-approval-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-shell-result-evidence-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-shell-result-evidence-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-result-review-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-result-review-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-storage-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-storage-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-storage-request-consistency-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-storage-request-consistency-check","effect":"check-only"},{"method":"GET","path":"/contact-capture/execution-results-migration-rehearsal-storage-owner-decision-handoff-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/execution-results-migration-rehearsal-storage-owner-decision-handoff-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/result-storage-repository-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/result-storage-repository/results","effect":"write-memory"},{"method":"GET","path":"/contact-capture/result-storage-repository/results","effect":"read-memory"},{"method":"GET","path":"/contact-capture/result-storage-repository/results/:executionReference","effect":"read-memory"},{"method":"GET","path":"/contact-capture/completion-notification-gate-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-gate-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-send-implementation-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-send-implementation-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-send-implementation-owner-decision-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-send-implementation-owner-decision-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-sender-implementation-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-sender-implementation-check","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-sender-strict-control-request-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-sender-strict-control-request-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-post-send-verification-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-post-send-verification-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/completion-notification-live-send-runbook-policy","effect":"read-policy"},{"method":"POST","path":"/contact-capture/completion-notification-live-send-runbook-plan","effect":"plan-only"},{"method":"GET","path":"/contact-capture/case-console","effect":"read-policy"},{"method":"GET","path":"/operator","effect":"navigate-local"}],"stopConditions":["The browser shell would start camera access without a user gesture.","The browser shell would upload raw image bytes to the backend.","The browser shell would treat an upload/OCR approval packet as permission to upload, store, or run OCR.","The browser shell would install a QR scanner dependency or load scanner code from a runtime CDN.","The browser shell would treat a QR library review packet as permission to implement or enable the dependency.","The browser shell would treat a QR dependency approval plan as permission to install the package.","The browser shell would treat a QR install preflight packet as permission to install the package.","The browser shell would treat a QR install owner approval packet as permission to install the package.","The browser shell would call n8n, Contacts Agent, Google Contacts, Telegram, or production.","The browser shell would persist raw contact, raw image, raw pipeline, or raw execution payload data.","The browser shell would skip operator review before duplicate planning.","The browser shell would run duplicate lookup without owner read approval evidence.","The browser shell would treat a local duplicate lookup simulator result as a verified live Google Contacts read.","The browser shell would treat duplicate read approval as write approval.","The browser shell would treat duplicate-read adapter hardening or Strict Control request planning as permission for live Google Contacts read, feature flag enablement, credential access, n8n execution, production, or completion notification.","The browser shell would skip owner write approval after duplicate result resolution.","The browser shell would treat an owner write decision plan or execution gate plan as a live write.","The browser shell would treat Google Contacts payload preview as a live contact create.","The browser shell would treat a Google Contacts live adapter gate plan as permission to call Google Contacts.","The browser shell would treat a disabled live adapter dry-run or mock response as a real Google Contacts result.","The browser shell would treat a live adapter implementation plan as permission to enable the adapter.","The browser shell would treat an adapter skeleton check as permission to enable the adapter.","The browser shell would treat a local created Person parser fixture as a live Google Contacts result.","The browser shell would treat the adapter integration harness as permission to send a completion notification.","The browser shell would treat a live adapter handoff packet as permission to enable or execute the adapter.","The browser shell would treat a live adapter owner approval packet as permission for live execution.","The browser shell would treat a token provider contract as permission to access OAuth tokens.","The browser shell would treat a default-off adapter scaffold as permission to wire HTTP or run Google Contacts.","The browser shell would treat a Strict Control runbook as permission for live adapter implementation, credentials, token lookup, Telegram smoke tests, n8n execution, production, or Google Contacts reads/writes.","The browser shell would treat Strict Control runbook owner review as permission for live implementation or live execution.","The browser shell would treat an implementation request owner decision as permission for feature enablement or live execution.","The browser shell would treat a default-off adapter implementation check as permission for feature enablement or live execution.","The browser shell would treat result intake planning as a completion notification or durable state write.","The browser shell would treat verified result storage planning as a database write or completion notification.","The browser shell would treat a durable result storage implementation request as permission to implement, migrate, write a database, switch adapters, or send notifications.","The browser shell would treat durable result storage owner decision as permission to implement, migrate, write a database, switch adapters, or send notifications.","The browser shell would treat a durable result storage adapter check as permission to wire a database client, apply migrations, switch adapters, write durable results, or send notifications.","The browser shell would treat a migration rehearsal storage request handoff as permission to implement storage, run migrations, write durable results, or send notifications.","The browser shell would treat a migration rehearsal storage request consistency check as owner approval, implementation approval, migration approval, durable write evidence, or notification approval.","The browser shell would treat a migration rehearsal storage owner decision handoff as a recorded owner decision, implementation approval, migration approval, durable write evidence, or notification approval.","The browser shell would treat memory result repository storage as durable write evidence or notification approval.","The browser shell would treat notification gate planning as a Telegram, email, or user-facing send action.","The browser shell would treat a notification owner decision as permission to send Telegram or email.","The browser shell would treat a notification send implementation request as permission to implement or send Telegram/email.","The browser shell would treat a notification send implementation owner decision as permission to implement, enable, or send Telegram/email.","The browser shell would treat a notification sender default-off implementation check as permission to enable a sender or send Telegram/email.","The browser shell would treat a notification sender Strict Control request as permission to enable a sender, wire transport, or send Telegram/email.","The browser shell would treat post-send verification planning as proof of a live notification send from this endpoint or as permission to store raw transport payloads.","The browser shell would treat a live-send runbook as owner approval, sender enablement, transport wiring, credential access, Telegram/email send, durable write evidence, or production permission.","The browser shell would treat a reviewed manual target-open packet as automatic route opening, target POST permission, live duplicate read permission, Google Contacts access, n8n execution, or completion notification proof.","The browser shell would treat a manual target-route submit packet as a target endpoint call, live duplicate read, Google Contacts access, n8n execution, completion notification proof, or production permission.","The browser shell would treat a manual submit result intake packet as completion proof, a live service result, a Google Contacts write, durable storage evidence, notification permission, or production permission.","The browser shell would treat a verified result review packet as completion proof, live service execution, durable write evidence, raw payload storage, notification permission, or production permission.","The browser shell would treat a verified-result intake submit packet as an actual verified-result intake call, completion proof, durable write evidence, raw payload storage, notification permission, or production permission.","The browser shell would treat a durable implementation request review packet as owner approval, implementation start, database access, migration apply, adapter switch, durable write evidence, notification permission, or production permission.","The browser shell would treat a durable adapter check request packet as an adapter check endpoint call, owner approval persistence, implementation start, database access, migration apply, adapter switch, durable write evidence, notification permission, or production permission.","The browser shell would treat a durable result storage live-window runbook as owner approval capture, owner approval persistence, migration apply, adapter switch, durable write evidence, completion proof, notification permission, live execution, or production permission.","The browser shell would treat a case store plan as a durable database write.","The browser shell would send a completion notification before a verified Contacts Agent result.","The UI would report a live Google Contacts write as complete from a local repository or simulator result."],"nextStep":"Use this shell for local scanner, operator review, reviewed manual target-open visibility, manual target-route submit planning, manual submit result intake, verified result review bridge, verified-result intake submit packet planning, durable implementation request review, durable owner decision review, durable adapter check request planning, durable result storage live-window runbook planning, upload/OCR approval packet planning, default-off OCR provider skeleton checking, QR library review evidence, QR dependency approval planning, duplicate read approval, duplicate-read adapter hardening, duplicate-read Strict Control request planning, local duplicate lookup simulation, duplicate result, owner write approval, Google Contacts payload preview, live adapter gate planning, disabled live adapter dry-run, live adapter implementation planning, adapter skeleton checks, created Person result parser checks, adapter integration harness checks, Strict Control runbook planning and owner review, default-off adapter implementation checks, disabled execution gate, verified result intake/storage planning, durable result storage implementation request/owner decision planning, durable result storage adapter checks, migration rehearsal storage request handoff visibility, storage request consistency checking, storage owner decision handoff planning, memory-only result repository rehearsal, notification gate planning, notification owner-decision planning, notification send implementation request/owner-decision planning, notification sender Strict Control request planning, post-send verification evidence intake planning, live-send runbook owner-review planning, redacted case-store path, and image fallback planning while keeping live handoff blocked."}