Local gesture OCR text intake

Contact Capture Gesture Capture OCR Text Intake

Prepare the no-storage handoff for already extracted OCR text before local field extraction review. This page does not store OCR text, upload images, execute OCR providers, store provider payloads, read or write Google Contacts, execute n8n, persist owner approval, touch production, build, deploy, or send notifications.

Text-only intake
Mode No raw OCR storage
Stage T-273 after T-272
Blocked No provider extraction
Input ready-for-ocr-text-extraction-request

Intake Outcome

  • 1ready-for-ocr-field-extraction-intake prepares a handoff template for /contact-capture/ocr-field-extraction-plan.
  • 2ready-for-manual-field-entry-intake keeps the fallback operator-entered text path open.
  • 3ready-for-more-ocr-text-review keeps local text review active.
  • !blocked-provider-extraction-request and blocked-gesture-capture-ocr-text-intake stop the chain.

OCR Request Evidence

  • 1ocrExtractionRequestStatus must be ready-for-ocr-text-extraction-request.
  • 2ocrExtractionRequestReference and ocrExtractionRequestFingerprintReference are reference-only.
  • 3postReviewRequestReference, textSourceReference, and redactedOcrTextReference must be reviewed.
  • !fieldExtractionContractReference must point to /contact-capture/ocr-field-extraction-plan.

Decision Options

  • 1prepare-ocr-field-extraction-intake prepares the text-only field extraction handoff.
  • 2prepare-manual-field-entry-intake prepares the manual fallback path.
  • 3continue-ocr-text-review asks for another local text review pass.
  • !request-provider-extraction is blocked by this endpoint.

Handoff Template

  • 1handoffEndpoint is /contact-capture/ocr-field-extraction-plan.
  • 2handoffPayloadTemplate uses <operator-pastes-already-extracted-ocr-text-at-submit-time> as a placeholder.
  • 3requiredHandoffFields are ocrText, sourceReference, and operatorName.
  • !forbiddenHandoffFields include rawImage, imageBytes, providerPayload, credential, token, googleContactId, and n8nExecutionId.

Safety Confirmations

  • 1intakeOnly, ocrExtractionRequestAccepted, textOnly, and operatorTextReviewRequired stay true.
  • 2noRawOcrTextStorage, noImageUpload, noRawImageStorage, noLiveOcr, and noOcrProviderExecution stay true.
  • 3noGoogleContactsRead, noGoogleContactsWrite, noN8nExecution, noCredentialAccess, and noProductionAccess stay true.
  • !noDurableWrite, noRawProviderPayloadStorage, noRawPayloadStorage, noNotificationSend, and separateApprovalRequired remain true.

Owner Decision Gates

  • 1decision-gesture-ocr-text-intake-owner.
  • 2decision-gesture-ocr-text-only-handoff-owner.
  • 3decision-gesture-ocr-no-raw-text-storage-owner.
  • 4decision-gesture-ocr-no-provider-extraction-owner.
  • !decision-provider-extraction-strict-control-owner requires a different path.

Stop Rules

  • !No intake if ocrExtractionRequestStatus is not ready-for-ocr-text-extraction-request.
  • !No intake if request, fingerprint, text source, redacted OCR text, field-extraction contract, owner decision, or acknowledgement evidence is missing.
  • !No raw OCR text storage, image upload/storage, provider execution, provider payload storage, credentials, Google Contacts, n8n, or notifications.
  • !No native build, package build, deploy, hosting/DNS change, production, durable write, or raw payload storage.

Local Endpoints

  • 1/mobile-assistant-gesture-capture-ocr-text-intake-policy lists no-storage intake guardrails.
  • 2/mobile-assistant-gesture-capture-ocr-text-intake-plan classifies the intake without storing OCR text.
  • 3/contact-capture/ocr-field-extraction-plan remains the text-only downstream plan.
  • 4npm run verify:mobile-assistant-gesture-capture-ocr-text-intake-browser checks this page visually.