# @mac-sync handoffs

Open work items for the @mac-sync agent / contributor. Each handoff is a self-contained spec — read the linked source files before starting.

## Status

| # | Handoff | Priority | Status |
|---|---|---|---|
| 01 | [Prospect classifier](01-prospect-classifier.md) | P1 | 🟢 Done in @mac-sync — classifier + `/my/prospects` shipped; MCP tools re-homed in-repo to [`mcp/`](../../mcp) (`get_prospect`/`list_prospects`, verified). `BLOCK_LIST_PATH`/`VIP_ROSTER_URL` env keys now templated in `deploy/deploy-server.sh`. Genuinely-remaining items are **out-of-repo only**: @quinn/api nightly client-intel mirror (#2) and the ops plumbing (block-list rsync cron from plum, set the two env values on black) — no @mac-sync code left. |
| 02 | [Calls for inbox triage](02-calls-for-triage.md) | P1 | ✅ Done — WAL snapshot, 60s cadence, `?since=`, cellular-gap findings, parse/ingest bug fixes; Swift tests 10/10. Android-SMS gap subsumed by #03. (Server repo test written but unrun — offline `@lilith` registry.) |
| 03 | [Outbox — paced/prioritized/time-aware send](03-outbox-send.md) | P1 | ✅ Done — outbox table/repo, `/my/outbox` + `/client/outbox` (IDOR-scoped), scheduler (12/12), paced Mac-client drain reusing `Sender.swift` SMS-fallback + chat.db verify (`make build` green, outbox-send 3/3). Stale-`sending` sweep now built (`features/outbox/sweep.ts`, 5-min backstop, attempt-aware requeue/hard-fail; wired in `app/server.ts`; 2 repo tests added). |
| 04 | [Mark conversation read](04-mark-read.md) | P1 | ✅ Done — **logical-read model** (macsync's own `macsync.conversation_read`; never touches Apple's chat.db). `markRead`/`markAllRepliedRead`/state via `/my/read` + 3 MCP tools; outbox `mark_read_on_send` option fires read-mark on confirmed send (best-effort). MCP `tools/list` + typecheck green. Server repo test written but unrun (offline `@lilith` registry). No Swift change. |

## Cross-repo origin

- Lilith platform handoffs live at `~/Code/@projects/@lilith/lilith-platform.live/users/transquinnftw/agents/handoffs/`.
- Items get re-homed here when @mac-sync is the natural owner (anything that depends on `chat.db`, Contacts framework, or `icloud.*` Postgres schemas).
