← Projects

Family cookbook — an agentic meal planner

A household agent system built from Claude Code slash commands over a markdown recipe library. It reads the family calendar, plans the week's dinners against real constraints, writes the grocery list to Apple Reminders, and learns from ratings.

System
Claude Code slash commands orchestrating three MCP servers (Apple Calendar/Reminders, Google Docs, plus a URL-extraction CLI) over a markdown-as-database recipe library with YAML frontmatter. A ratings feedback loop biases future planning.
Stack
Claude CodeSlash commandsMCP serversAppleScript / Apple RemindersGoogle DocsNode
Validation
16 automated tests cover the supporting scripts; a purpose-built PII masker (with its own tests) scrubs session transcripts before they're published. Five logged bugs from real household use, all fixed; the bug log ships in the repo.
Outcome
Weekly meal planning went from an hour of negotiation to a five-minute review, and the ratings loop means the plans keep getting better. The full build is public, including masked session replays of the agent being built by an agent.
Links
Repository

The loop

human checkpoint

  1. /kickoff

    A one-time interview agent captures household config (diets, equipment, budget, prep-time tolerance) as structured files the other commands read.

    Claude Code

  2. /plan-week

    Reads the family calendar to see who's actually home each night, then selects recipes against dietary rules, prep time vs. that evening's schedule, budget, equipment, and recency.

    Apple Calendar MCP

  3. approve

    The proposed week is presented for a yes/edit before anything is written anywhere.

    why a human here The plan commits the household's money and evenings, and the planner can't know this week's soft context, like a kid's sudden pasta strike or a fridge already full of leftovers. One approval gate absorbs all of it.

  4. execute

    On approval, the agent writes a store-split grocery list to Apple Reminders, schedules prep reminders (defrost tonight for tomorrow), and creates a Google Doc per dinner.

    Apple Reminders MCPGoogle Docs MCP

  5. /review-recipes

    Collects 1–5 ratings after the week and writes them into each recipe's frontmatter. Future planning reads them, so the system converges on what the family actually eats.

    Claude Code

  6. /import-recipe

    Turns a URL or a photo of a cookbook page into a structured recipe file matching the library schema.

    DefuddleClaude vision

Why this project matters beyond dinner

When someone asks what “agentic” means in practice, this is the project I show them. It has the full anatomy: tools with side effects (calendar reads, reminder writes, document creation), a constraint-satisfaction step, an approval gate, and a feedback loop. Ratings written into recipe frontmatter change the next plan, so the system gets better from use without anyone retraining anything.

Design decisions worth explaining

Markdown as the database. Recipes are files with YAML frontmatter, so the entire state of the system is readable, diffable, and editable with no admin UI. At household scale, a database would have added maintenance and hidden the data.

One checkpoint, at commitment. Everything before approval is read-only; everything after it writes to the calendar, the reminders, and the docs. The gate sits on that line, same as in my client work.

The build process is part of the portfolio. The repo includes a replay gallery: PII-masked transcripts of the Claude Code sessions that built the system, rendered as browsable HTML. Specs, bug hunts, course corrections. If you want to see how I work with agents, that’s it, unedited.