DoorDash Order Ledger

SkillDocs & knowledge

doordash-order-ledger is a skill that adds an accountability layer to agent-driven DoorDash ordering. It works with the doordash-audit-log hook, which appends every dd-cli invocation to an append-only audit log, and with the /doordash-report command, so questions about what has been ordered and what it cost can be answered from data instead of memory.

Use DoorDash Order Ledger in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add DoorDash Order Ledger and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the DoorDash Order Ledger skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Have dd-cli available so DoorDash ordering activity can be recorded.

DoorDash Order LedgerStart free

What your AI can do with it

  • Tracks DoorDash orders placed through dd-cli by an agent
  • Works with the doordash-audit-log hook to keep an append-only audit log of every dd-cli
  • Answers what has been ordered and what it cost from recorded data
  • Pairs with the /doordash-report command to produce order and cost reports

Getting started

  1. Have dd-cli available so DoorDash ordering activity can be recorded.
  2. Set up the doordash-audit-log hook so every dd-cli invocation is appended to an append-only audit log.
  3. Add the doordash-order-ledger skill to the agent.
  4. Use the /doordash-report command to ask what has been ordered and what it cost.

What this skill tells your AI

The instructions your AI receives, as published by davila7/claude-code-templates in cli-tool/components/skills/doordash/doordash-order-ledger/SKILL.md and read by ahel’s review.

Every dd-cli command the agent runs is recorded by the doordash-audit-log hook in ~/.claude/dd-guard/audit.jsonl — one versioned JSON line per event. This skill teaches you to answer questions from that log instead of guessing.

Install the bundle: hook doordash/doordash-audit-log (the recorder), command /doordash-report (reconciled summaries), this skill (querying). Composes with doordash-spend-guard (shares the ~/.claude/dd-guard/ state directory) but runs standalone.

Line schema (v1)

{
  "v": 1,
  "ts": "2026-07-19T13:02:11",
  "session_id": "abc123",
  "cwd": "/Users/x/project",
  "command": "dd-cli search --query \"ramen near me\"",
  "event_type": "search | cart_mutation | checkout_url | history | login | other",
  "cart_uuid": "…or null",
  "order_uuid": "…or null",
  "exit_ok": true
}

Commands are secret-stripped before persisting and truncated to 500 chars. The v field guards future schema changes — check it before assuming fields.

Query recipes (jq)

Answer from data, not memory:

# What did the agent do today?
jq -r 'select(.ts >= "2026-07-19") | "\(.ts) \(.event_type) \(.command)"' ~/.claude/dd-guard/audit.jsonl

# Checkout URLs issued this week (intents, not confirmed orders)
jq -r 'select(.event_type == "checkout_url" and .ts >= "2026-07-13")' ~/.claude/dd-guard/audit.jsonl

# Activity by type
jq -s 'group_by(.event_type) | map({type: .[0].event_type, n: length})' ~/.claude/dd-guard/audit.jsonl

# Which sessions touched carts?
jq -r 'select(.event_type == "cart_mutation") | .session_id' ~/.claude/dd-guard/audit.jsonl | sort | uniq -c

# Failed dd-cli calls (agent flailing?)
jq -r 'select(.exit_ok == false) | "\(.ts) \(.command)"' ~/.claude/dd-guard/audit.jsonl

When the user asks a money question ("how much this week?"), prefer /doordash-report — it reconciles against real dd-cli order history and labels intent-only numbers honestly. Raw checkout_url counts are intents: the human may have abandoned the payment page.

Honest semantics

  • checkout_url ≠ purchase. It records that a link was issued. Only reconciliation against order history confirms money moved.
  • Subtotals (when present via doordash-spend-guard's ledger) are pre-fee.
  • The log records what went through Claude Code's Bash tool — orders placed by the human directly in a terminal or app are invisible to it.

Maintenance

  • Rotation: when audit.jsonl exceeds ~5 MB, rotate: mv audit.jsonl audit-$(date +%Y%m).jsonl && gzip audit-*.jsonl (keep the gzips; they are the history).
  • Never edit lines — append-only is the audit property. Corrections go in reports, not in the log.
  • Privacy: this is a plaintext record of eating habits and schedules. Keep ~/.claude/dd-guard/ out of repos and backups you share. Mention this to the user the first time you query the log in a session.

Signals

GitHub stars
32k
Forks
4k
Last commit
Oct 2026

Questions

What has my AI been ordering and what did it cost?
The skill answers this from the append-only audit log written by the doordash-audit-log hook, using the /doordash-report command, rather than relying on the agent's memory.
How does it record ordering activity?
The doordash-audit-log hook appends every dd-cli invocation to an append-only audit log, which the skill uses as its source of data.
Can it change or delete past log entries?
No. The audit log is append-only, so entries are added, not edited or removed.
Advanced
Item type
skill
Key
doordash-order-ledger
Source
github.com/davila7/claude-code-templates