binky-control/integrations/paper-mail-intake.md

61 lines
3 KiB
Markdown

# Paper-Mail Intake Pipeline (AWQ-008)
> Status: designed v1 — 2026-07-16. Founder provides scanned paper mail
> ~weekly. Start manual, automate later. Weekly check is already proposed in
> activity-core (`binky-weekly-mail-intake`, disabled) and fits the rhythm
> bridge until then.
## Flow
```text
founder scans (~weekly)
└─ drop: ~/2binky/mailinbox/ (outside git — originals stay put)
└─ triage (agent, weekly; manual for now)
├─ obligation / deadline → OfficeHourQueue or DecisionQueue
│ └─ risk-relevant? → RiskRegister entry/update
├─ receipt / invoice → stage for DUO Belegablage upload
│ └─ ~/2binky/mailinbox/to-duo/ (founder uploads until
│ DUO access is agent-reachable; RISK-007)
├─ informational → archive only
└─ all items → metadata row in mailmeta/mail-log.md
└─ after triage: move file to ~/2binky/archiv/<YYMMDD><x>-<slug>/
(founder's existing archive convention)
```
## Conventions
- **Drop location:** `~/2binky/mailinbox/` — flat, PDFs only. Not in any git
repo: scan contents (bank, tax, personal data) stay off the forge; the
control plane only carries metadata.
- **File naming:** `YYMMDD-<sender>-<topic>.pdf`, matching the founder's
existing `~/2binky` dating style (e.g. `260718-finanzamt-vorauszahlung.pdf`).
Date = letter date if visible, else scan date. Unnamed drops are fine —
triage renames.
- **Metadata log:** `mailmeta/mail-log.md` in this repo. One row per item:
date, sender, type, deadline (if any), routing decision, archive location.
Never scan content, amounts only when needed for queue routing.
- **Triage questions per item (in order):**
1. Does it create an **obligation or deadline**? → queue it (OfficeHour for
external contact, DecisionQueue for founder decisions) with the deadline;
RiskRegister if missing it would hurt.
2. Is it a **receipt/invoice**? → move to `to-duo/`, note in log; founder
empties `to-duo/` into DUO Belegablage until agent access exists.
3. Neither → log + archive.
- **Cadence:** weekly, Monday (aligned with `binky-weekly-mail-intake`,
Mon 09:37 proposed). The rhythm bridge may run triage when scans are
present. Empty inbox = one log line "no mail week YYYY-WW" — silence is
not evidence.
## Automation ladder
1. **Now (manual):** agent triages during rhythm/founder sessions.
2. **Next:** OCR + classification assist (evidence-and-citation cluster);
deadline extraction into queue entries automatically.
3. **Later:** DUO Belegablage upload automated (needs mandate transition,
RISK-007, and credentials via the OpenBao lane like AWQ-007); intake
events emitted to activity-core instead of cron-checked.
## Founder setup (one-time)
`mkdir -p ~/2binky/mailinbox/to-duo` — then drop scans as they come; no
naming required, weekly triage handles the rest.