From a761caa3d0cddf171309e0bfacf5f95681905b78 Mon Sep 17 00:00:00 2001 From: Keysat Date: Sat, 20 Jun 2026 13:18:53 -0500 Subject: [PATCH] Lock #7 in-app card intake decisions (app_card / form-edits / member) --- docs/handoffs/in-app-card-intake-plan.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/handoffs/in-app-card-intake-plan.md b/docs/handoffs/in-app-card-intake-plan.md index 6395f01..c269682 100644 --- a/docs/handoffs/in-app-card-intake-plan.md +++ b/docs/handoffs/in-app-card-intake-plan.md @@ -1,6 +1,6 @@ # Plan: in-app business-card intake (mobile camera → transcribe → approve) -**Status:** PLAN — awaiting Grant's go-ahead before building (requested 2026-06-20). +**Status:** PLAN — decisions locked 2026-06-20 (see end); awaiting Grant's go-ahead to build. **Goal:** a camera button in the mobile top bar (left of the quick-log pencil) → take a photo or pick one from the library → the **same** vision-transcribe → parse → fuzzy-match → edit/approve/reject flow the Matrix card intake runs (M3), surfaced as an inline mobile sheet instead of a Matrix thread. @@ -118,11 +118,16 @@ sheet patterns (8g). (4) the `parse`/`spark` import must be lazy/guarded so a dev `./start.sh` without Spark reachable still boots (the endpoint just 502s) — mirror the existing lazy `import llm` at `server.py:6485`. -## Open questions for Grant (resolve before building) +## Decisions (locked, Grant 2026-06-20) -1. **Provenance tag** — `source="app_card"` OK (distinct from `matrix_card`)? -2. **v1 = form-field edits only** (no conversational NL-edit on the card) — agreed? NL-edit can - follow if wanted. -3. **Who can use it** — any authenticated member (recommended), or restrict? -4. **Ships in the s9pk** (server endpoint + frontend) — so it needs a version bump + build + install, - unlike the bot-only M3. Confirm that's the intended delivery path. +1. **Provenance tag = `source="app_card"`** — distinct from `matrix_card` / `matrix_intake`. +2. **v1 = editable form fields only** — no conversational NL-edit on the card (no + `/api/intake/card/revise`); the user taps a field and fixes it in the sheet. NL-edit can follow + later if it proves wanted. +3. **Access = any authenticated member** — the camera button + `POST /api/intake/card` use the + standard authenticated gate (not admin-only, not bot-gated); a human still approves every write. +4. **Delivery = the s9pk** (server endpoint + frontend) — a normal version bump → build → box + install, like v99 (NOT bot-only like the Matrix M3). + +Build scope is otherwise as specified above. Mobile-only (top-bar button); same captured fields + +literal-in-source integrity rule as the Matrix card flow.