Generate weekly meal plans and shopping lists from Obsidian recipe notes. Creates meal preferences, plans balanced weeks, and compiles ingredient lists.
<essential_principles>
~/obsidian-sync/Personal~/obsidian-sync/Personal/03. Resources/Cooking/*.md~/obsidian-sync/Personal/03. Resources/Cooking/meal-preferences.yaml~/obsidian-sync/Personal/03. Resources/Cooking/Meal Plans/~/code/meal-planner/Always run from ~/code/meal-planner/ using uv run:
# Generate meal plan (JSON for processing, markdown for display)
uv run meal-planner plan --days 7 --format json
uv run meal-planner plan --days 7 --calories 2200 --protein 150 --format markdown
# Get recipe suggestions for swaps
uv run meal-planner suggest --meal-type dinner --max-time 30 --limit 5 --format json
# Generate shopping list from plan
uv run meal-planner plan --days 7 --format json | uv run meal-planner shopping-list
# Scale a recipe
uv run meal-planner scale "Chicken Biryani" --servings 3
<process>
</process>
[[Recipe Name]] wikilinks for recipe references- [ ] checkboxes for shopping list itemstype: meal-plan</essential_principles>
Read ~/obsidian-sync/Personal/03. Resources/Cooking/meal-preferences.yaml to understand defaults. Tell the user their current settings briefly:
Ask the user (concisely) if they want to change anything for this week:
If the user says "just go" or similar, use defaults as-is.
Run the plan command with any overrides:
cd ~/code/meal-planner && uv run meal-planner plan --days 7 --format json
Parse the JSON output. Present the plan to the user as a readable markdown table showing each day's meals, calories, and protein. Include daily totals and weekly averages.
Ask: "Want to swap any meals?"
If the user wants to swap a recipe:
suggest with appropriate filters to find alternativesRepeat until the user is satisfied.
Once the plan is approved, generate the shopping list:
echo '<plan-json>' | cd ~/code/meal-planner && uv run meal-planner shopping-list
Present the shopping list grouped by store section with checkboxes.
Write the final plan to ~/obsidian-sync/Personal/03. Resources/Cooking/Meal Plans/ as a markdown file named YYYY-MM-DD Meal Plan.md (using the plan's start date).
Use the output template below. The note should include:
<output_template>
---
Toast — restaurant POS, orders, menus, employees, revenue centers, and reporting.