{"productionTouched":false,"liveReadAllowed":false,"liveWriteAllowed":false,"googleContactsReadAllowed":false,"googleContactsWriteAllowed":false,"n8nExecutionAllowed":false,"acceptedStatuses":["no-match","exact-match","possible-match","lookup-blocked"],"acceptedAdapters":["contacts-agent-read-only","google-people-read-only","local-cache-read-only"],"decisionRules":[{"lookupStatus":"no-match","outcome":"Prepare a create-contact handoff plan, but do not write until owner write approval is recorded.","nextDuplicateCheckStatus":"no-match"},{"lookupStatus":"exact-match","outcome":"Prepare an update-existing-contact handoff plan only when the operator selected one exact email or phone match.","nextDuplicateCheckStatus":"existing-contact-selected"},{"lookupStatus":"possible-match","outcome":"Block handoff until the operator resolves the possible duplicate.","nextDuplicateCheckStatus":"possible-match"},{"lookupStatus":"lookup-blocked","outcome":"Keep duplicate status as not-run and resolve lookup blockers before handoff.","nextDuplicateCheckStatus":"not-run"}],"requiredEvidence":["normalized contact preview","preview confidence","operator review confirmation","read approval reference","duplicate lookup adapter run reference","candidate references and matched field names only"],"forbiddenActions":["reading Google Contacts from this endpoint","writing Google Contacts from this endpoint","calling n8n from this endpoint","storing raw unrelated contact records","marking a write as complete without a verified Contacts Agent result"],"approvalChecklist":["The duplicate lookup result came from an owner-approved read-only adapter run.","The operator reviewed the lookup result and selected a candidate only for exact matches.","The next write operation still requires separate owner approval.","The future Contacts Agent response must return ok=true and verified=true before user-facing success."],"stopConditions":["The result lacks read approval or adapter run evidence.","The result contains possible matches that are not resolved.","An exact match has no selected candidate or was matched only by name/company.","The next action would read or write live contacts without explicit approval."]}