{"readyForOwnerApprovedSmoke":false,"readyForProduction":false,"summary":"The product is not production-ready; clear blocked and hardening gates first.","gates":[{"id":"staging-credentials","title":"Staging credentials","status":"blocked","detail":"4 required credential areas are not ready.","nextAction":"Create or identify Telegram, Gmail, Google Calendar, and Google Contacts staging credentials."},{"id":"staging-smoke-tests","title":"Staging smoke tests","status":"blocked","detail":"6 smoke-test steps are still blocked by credentials.","nextAction":"Clear credential blockers before running Telegram, mail, calendar, or contacts tests."},{"id":"audit-and-approval-storage","title":"Audit and approval storage","status":"needs-hardening","detail":"Audit and approval state is currently in-memory and is suitable only for local/staging product work.","nextAction":"Add durable PostgreSQL-backed audit and approval tables before production."},{"id":"operator-auth","title":"Operator authentication","status":"needs-hardening","detail":"Approval decisions currently accept a typed operator name and are not authenticated.","nextAction":"Add authenticated operator identity before production approval flows."},{"id":"n8n-execution-adapter","title":"n8n execution adapter","status":"needs-hardening","detail":"The product shell plans and records actions but does not execute n8n workflows.","nextAction":"Add a controlled n8n adapter only after staging credentials and smoke tests are ready."},{"id":"contact-capture-ocr-provider","title":"Contact Capture OCR provider","status":"owner-approval-required","detail":"Contact Capture OCR provider remains default-off; live provider execution, HTTP runtime wiring, raw image handling, credential/token access, and post-OCR verification still require separate Strict Control approval.","nextAction":"Review the OCR live-window runbook before enabling feature flags, wiring the OCR adapter, accessing credentials, or executing a provider."},{"id":"contact-capture-duplicate-read-adapter","title":"Contact Capture duplicate-read adapter","status":"owner-approval-required","detail":"Contact Capture duplicate-read adapter remains default-off; CONTACT_CAPTURE_DUPLICATE_READ_ADAPTER_ENABLED, adapter enablement, Google Contacts read runtime, credential/token access, exact-query/personFields review, post-read verification, and duplicate-result intake still require separate Strict Control approval.","nextAction":"Review the duplicate-read live-window runbook before enabling CONTACT_CAPTURE_DUPLICATE_READ_ADAPTER_ENABLED, enabling the adapter, accessing credentials, or reading Google Contacts."},{"id":"contact-capture-durable-result-storage","title":"Contact Capture durable result storage","status":"owner-approval-required","detail":"Contact Capture durable result storage remains default-off; migration apply, runtime adapter switching, durable result writes, result repository persistence, completion proof, post-write verification, and notification handoff still require separate Strict Control approval.","nextAction":"Review the durable result storage live-window runbook before applying migrations, switching adapters, writing durable results, or claiming completion proof."},{"id":"completion-notification-sender","title":"Completion notification sender","status":"owner-approval-required","detail":"Completion notification sender remains default-off; live transport wiring and post-send verification still require separate Strict Control approval.","nextAction":"Review the Notification Sender Strict Control request before enabling feature flags, wiring Telegram/email transport, or sending notifications."},{"id":"production-cutover","title":"Production cutover","status":"owner-approval-required","detail":"A cutover plan exists and still requires explicit owner approval.","nextAction":"Review the cutover plan with the owner before touching production."}]}