DoorDash Activity Report

Spend and activity report for agent-driven DoorDash ordering - reconciles the audit log against real order history and renders totals, per-restaurant breakdown, repeat rate, and abandoned-cart rate

Prompt
ChatGPT Claude
# DoorDash Activity Report

Report period: **$ARGUMENTS** (default: `week`)

Data sources: `~/.claude/dd-guard/audit.jsonl` (written by the doordash-audit-log
hook), `~/.claude/dd-guard/ledger.jsonl` (if doordash-spend-guard is installed),
and live `dd-cli order history`.

## Current State

- Audit events: !`wc -l < ~/.claude/dd-guard/audit.jsonl 2>/dev/null || echo "0"`
- Last reconciled: !`cat ~/.claude/dd-guard/last-reconciled 2>/dev/null || echo "(never)"`

## Task

### 1. Reconcile

1. Run `dd-cli order history` and parse the entries (date, restaurant,
   total, order_uuid).
   - **Parsing fallback**: the exact output format is version-dependent. If
     you cannot parse it confidently, fall back to **intent-only mode**:
     report from the audit log alone and label the report clearly as
     "unreconciled — based on agent activity, not confirmed orders".
2. Match `checkout_url` audit events (and ledger intents) against history
   entries by date proximity and cart/order uuid where visible:
   - matched → confirmed order
   - checkout_url event with no matching order after 24h → abandoned cart
3. Update `~/.claude/dd-guard/last-reconciled` with today's date. If
   doordash-spend-guard's ledger exists, flip matched intents to `paid` /
   `abandoned` exactly as `/doordash-budget reconcile` would.

### 2. Render the report (right-sized — no dashboard theater)

```
DoorDash activity — week of 2026-07-13
  Confirmed spend:   $87.40   (prev week $52.10, +68%)
  Orders:            4 confirmed, 1 abandoned cart (20% abandon rate)
  By restaurant:     Sweetgreen $34.90 (2x) · Thai Palace $28.50 · ...
  Repeat rate:       75% of orders were reorders/playbooks
  Agent activity:    12 searches, 9 cart mutations, 5 checkout URLs
```

- Totals from history are real; totals from intents are pre-fee subtotals —
  label which is which.
- `month` argument widens the window to 30 days and adds a week-by-week
  spend line.

### 3. Answer follow-ups from data

For questions like "what did I order most?" or "how much on ramen this
month?", query the audit log with `jq` (the doordash-order-ledger skill documents
recipes) — never answer from memory.

## Rules

- Never edit audit.jsonl — it is append-only; only the hook writes it.
- Keep `cuisine-map.json` (restaurant → cuisine) next to the audit log if
  the user wants cuisine grouping; persist their corrections there.
- Privacy: these files are a local plaintext record of eating habits.
  Remind the user once to keep `~/.claude/dd-guard/` out of any repo.