# ticket — handoff

> Append-only, **newest first**. What the last session did, what the next should
> pick up, what is blocked. Read this second (after `brief.md`) when orienting.
> Clear-after-read: once an entry is acted on it can be trimmed.

## 2026-09-02 — planning session: plan, caddie-feedback log, standards watch, workspace docs

**Landed:** `.logs/planning/01-plan.md` (domain model, email pipeline, AI triage,
time estimator, caddie fit, D1–D10 as proposals, M0–M4 gates, rian's open
questions §13); `.logs/planning/02-caddie-feedback.md` (standards status table +
F1–F9); `tools/caddie-watch.sh` + `caddie-snapshot.sha256` (35 files; exercised
for changed/new/gone — works); `brief.md`, `agents.md`, `CHANGELOG.md` filled;
two entries in `v8-feedback.md` (LLM key convention, no inbound-mail substrate).
Verified by reading back; no code touched, version stays 0.1.0 (scaffold is
deployed and healthy).
**In flight:** nothing.
**Next:** rian answers plan §13 (receiving layer, trusted forwarders, replies
count as time, project-vs-client, clients in v1, model cost stance) → then M0
(Postgres sidecar, managed store, vendor `caddie-ui` from easel + interaction
embryo from caddie, `project` table). Run `tools/caddie-watch.sh` first.
**Blocked/needs rian:** the §13 decisions; the inbound-mail DNS/Worker step
(network change → security review + his approval); `ANTHROPIC_API_KEY` +
`INBOUND_WEBHOOK_SECRET` placeholders in `.app.env` when M2 starts.
