Skip to main content
command

doordash-lunch — Claude Code command: team DoorDash orders

A Claude slash command that turns a team lunch into a DoorDash group cart, prints a per-person split table and tracks whose turn it is to pay.

Install into Claude Code · claude-code-templates All methods and platforms ↓
npx claude-code-templates@latest --command doordash/doordash-lunch
Open on GitHub

What doordash-lunch does

Four subcommands cover the loop: order, checkout, whose-turn and roster. The first one reads the team roster in team-food.json, pulls restaurant options through dd-cli search while respecting each member's constraints and allergens, then builds a cart that remembers who asked for what. Paste a thread of requests and the command parses it instead of quizzing people one by one.

checkout repeats the cart with subtotals per person and produces the payment link. When the doordash-spend-guard skill is installed the link comes from its dd-guard.sh script; otherwise the command calls dd-cli order checkout-url. A markdown split table lands next, ready to drop into Slack. Once someone confirms the payment, a {date, order_uuid, payer, split} line is appended to .dd/rounds.jsonl.

The command is a quick entrypoint, not the whole engine: the flows live in the doordash-group-orders skill, so install that alongside. Without dd-cli nothing runs. Split figures stay pre-fee until you report the final total, and then the difference is prorated.

What it helps with

  • build one DoorDash cart for a whole team
  • keep everyone's allergens and food limits in team-food.json
  • produce a Slack-ready table of who owes what
  • work out which colleague paid last time
  • turn a pasted chat thread into cart items

Example prompts for the agent

  • Put together lunch from team-food.json, check the allergens first
  • Emit the checkout link and the split table
  • Whose turn is it to pay according to the order history?

How to install doordash-lunch

1claude-code-templates

npx claude-code-templates@latest --command doordash/doordash-lunch

2Manually: put the files in place

.claude/commands/doordash-lunch.md

Call it with /doordash-lunch. For all projects use ~/.claude/commands/

Questions about doordash-lunch

How do I install doordash-lunch in Claude Code?

Run npx claude-code-templates@latest --command doordash/doordash-lunch and confirm the file sits at .claude/commands/doordash-lunch.md.

What does doordash-lunch do?

It organizes a group food order with dd-cli, prepares a checkout with a split per participant, and keeps a payment history so the next payer is obvious.

What do I need before using it?

The dd-cli tool and a roster file named team-food.json. The detailed flows belong to the doordash-group-orders skill, which you install together with this command.

Source text

doordash-lunch.md · MIT
---
allowed-tools: Bash(dd-cli:*), Bash(cat:*), Bash(jq:*), Bash(mkdir:*), Read, Write, Edit
argument-hint: [order | checkout | whose-turn | roster]
description: Team lunch orchestration via DoorDash CLI - build a group round, emit checkout with split table, track payer rotation
---

# Team Lunch

Group order operation: **$ARGUMENTS**

Works with the `doordash-group-orders` skill (install it alongside — it defines
the full flows; this command is the quick entrypoint). State:
`team-food.json` (roster), `.dd/round-<date>.json` (active round),
`.dd/rounds.jsonl` (history).

## Current State

- Roster: !`cat team-food.json 2>/dev/null || cat ~/.claude/dd-cli/team-food.json 2>/dev/null || echo "(no roster yet)"`
- Active round: !`ls .dd/round-*.json 2>/dev/null | tail -1 || echo "(none)"`
- Rounds history: !`wc -l < .dd/rounds.jsonl 2>/dev/null || echo "0"` rounds recorded

## Task

Parse `$ARGUMENTS`:

### `order` (default)

Run Flow 1 of the doordash-group-orders skill: roster check → constraint-aware
restaurant shortlist via `dd-cli search` → per-member choices (favorites
first, one question max per member) → build cart recording person →
cart-item-id in the round ledger → show the cart grouped by person.

If the user pastes a thread of requests, parse it (Flow 2) instead of
interviewing members.

### `checkout`

1. Show the grouped cart one final time (per-person subtotals).
2. Emit the checkout URL — via `bash .claude/skills/doordash-spend-guard/scripts/dd-guard.sh checkout
   <cart-uuid>` when doordash-spend-guard is installed, otherwise
   `dd-cli order checkout-url --cart-uuid <cart-uuid>`.
3. Print a share-ready split table (markdown, ready to paste into Slack):
   person, items, subtotal share.
4. After the human confirms payment: pull order_uuid from `dd-cli order
   history`, ask who paid, append `{date, order_uuid, payer, split}` to
   `.dd/rounds.jsonl`, and offer the fee-proration fallback ("tell me the
   final total and I'll prorate the difference").

### `whose-turn`

Read `.dd/rounds.jsonl`, compute per-member (consumed − paid) balances,
name the next payer, show the balance table so the answer explains itself.

### `roster`

Show/edit `team-food.json` interactively: add/remove members, update hard
constraints, allergens (ask severity explicitly), favorites, dislikes.
Confirm the final JSON before writing.

## Rules

- Never guess an order for a member with allergens.
- cart-item-ids only from real `cart show` output — attribution depends on it.
- Splits are pre-fee until the user reports the final total; say so in the
  split table footer.

© davila7 · MIT · davila7/claude-code-templates

Similar slash commands

All slash commands for Agent setup: memory, context, orchestration →

From the same set804

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor