Use when initializing the Meal OS project for the first time. Triggered by "/meal-setup" or "set up meal OS" or when any other meal skill fails because docs/ directories or canonical-ingredients.yaml are missing.
Create the Meal OS directory structure, seed data/config.yaml with household preferences, and seed data/canonical-ingredients.yaml with the core ingredient set.
Announce at start: "Setting up Meal OS project..."
Check what already exists to avoid overwriting:
ls data/ 2>/dev/null && echo "data exists" || echo "data missing"
ls data/config.yaml 2>/dev/null && echo "config exists" || echo "config missing"
ls data/canonical-ingredients.yaml 2>/dev/null && echo "yaml exists" || echo "yaml missing"
Report findings to the user before proceeding.
Run:
mkdir -p data/recipes data/flyers data/meal-plans data/shopping-lists data/receipts/images/processed samples/flyers samples/meal-plans samples/shopping-lists samples/receipts
data/recipes/ holds family recipes (local household data, gitignored)data/ directories are gitignored (local household data)samples/ directories hold sanitized examples safe to commitIf CLAUDE.md already exists at repo root: Skip this step — the user may have customized it.
If it does not exist, write CLAUDE.md at the project root:
# Meal OS
Personal meal planning system for a family.
## Household Configuration
User-specific constraints (diet, excluded ingredients, stores, thresholds) live in `data/config.yaml`.
All skills read this file at startup. See `samples/config.sample.yaml` for the format and defaults.
If `data/config.yaml` is missing, run `/meal-setup` to create it.
## Directory Structure
### data/ — local household data (gitignored)
- data/config.yaml — household preferences (diet, stores, thresholds)
- data/recipes/ — one markdown file per recipe (from /meal-add)
- data/canonical-ingredients.yaml — authoritative ingredient normalization reference
- data/flyers/ — parsed weekly store flyers (from /meal-flyer)
- data/meal-plans/ — weekly meal plans (from /meal-plan)
- data/shopping-lists/ — aisle-grouped shopping lists (from /meal-plan)
- data/receipts/ — receipt images, price history ledger, and OCR aliases (from /meal-receipt)
### samples/ — sanitized examples (tracked in git)
- samples/flyers/, samples/meal-plans/, samples/shopping-lists/, samples/receipts/
## Skills
- /meal-add — recipe intake and normalization
- /meal-flyer — store flyer parsing + loss leader detection
- /meal-plan — weekly meal planning + shopping list generation
- /meal-receipt — receipt OCR, price tracking, and alias learning
If the file already exists: Ask — "data/config.yaml already exists. Overwrite with defaults (loses your customizations), or skip?"
If skip, go to Step 5.
If overwrite or creating new, ask the user these questions (use defaults if they say "use defaults"):
mediterraneanWrite data/config.yaml using the user's answers:
# Meal OS — Household Configuration
# Edit this file to customize your meal planning preferences.