Weekly meal planning, shopping list generation, and pantry aware grocery runs. Produces a plant based, seasonal, batch prep friendly meal plan for the week, plus a consolidated shopping list grouped by store. Use this skill whenever the user mentions meal planning, wants to plan the week's food, asks for a shopping list, wants help figuring out what to cook, mentions batch prep, macros, recipes, a grocery run, a Sprouts or Costco trip, or says things like "back on the healthy eating train" or "kick the takeout habit." Also trigger for "/assist:meals", "meals for the week", or "what should I cook". Prefer invoking this skill even when the user's ask is oblique (e.g., "I want to stop eating out" or "I need to hit my macros this week") since meal planning is usually the underlying need.
Help Forni plan a week of plant based, seasonal, batch prep friendly meals and produce a single primary shopping list. The goal is less decision fatigue mid week and more momentum on the healthy eating front.
Forni's 2026 growth edge is eliminating overconsumption. The most visible form is defaulting to takeout when the week gets tired. A good meal plan removes the decision and the cravings compound. A bad plan (boring, unrealistic, mismatched to his week) is worse than no plan; it generates friction and a story to push against. Aim for plans he wants to eat, sized to his actual week, using ingredients he actually has or can easily get.
The shopping list is the primary artifact. The meal plan exists mostly to produce a good list and to guide batch prep day.
~/Eudaimonia/Constitution/Nutrition/README.md — daily macro targets, meal budgets, supplement stack~/Eudaimonia/Constitution/Nutrition/staples.md — brand preferences, Yuka scores, store groupings~/Eudaimonia/Constitution/Nutrition/pantry.md — current on hand inventory~/Eudaimonia/Constitution/Nutrition/plans/ (sort by filename) for format reference and to see what we just atedate +"%G-W%V" for the week identifier.| File | Purpose |
|---|---|
Constitution/Nutrition/README.md | Daily macros and meal slot budgets |
Constitution/Nutrition/staples.md | What brand to buy for recurring items |
Constitution/Nutrition/pantry.md | What is already on hand |
Constitution/Nutrition/plans/* | Prior weekly plans (format reference) |
references/recipe-sources.md | Approved recipe sites and historical ratings |
learned-rules.md | Corrections learned through use |
The weekly plan file format mirrors Constitution/Nutrition/plans/2026-W14-meal-plan.md. Do not invent a new format unless the user asks.
transparency: "transparent" (free/informational) eventsPresent the week back as a simple list of planned vs skipped meal slots. Ask Forni if anything is missing before continuing.
pantry.md fullystaples.md and build a short list of items that likely need a restock. Favor items that get used heavily week to week (tofu, soy milk, kimchi, hummus, greens, lentils, rice, oats) and items the user has mentioned running low.pantry.md with his answers before generating the plan. This is worth the small extra write; the pantry gets more accurate over time.2026-W14-meal-plan.md:
Present the draft plan inline before saving. Let Forni redirect before committing to the shopping list.
The shopping list is the primary artifact. Group by section and store.
## Shopping List
### Sprouts (Wed or Fri after High Noon)
#### Produce
- [ ] Asparagus, 1 bunch
...
#### Refrigerated
...
### Costco (if due for a run)
...
### Already Stocked (from pantry.md)
...
Rules for the list:
pantry.mdstaples.md that are likely low (ask "are we low on tofu?" style) and include them if Forni confirmsstaples.md where one is specifiedrecipe specific subsection so it's easy to skip if Forni decides to cut that meal~/Eudaimonia/Constitution/Nutrition/plans/YYYY-WNN-meal-plan.md (ISO week). Do not overwrite an existing plan for the same week without confirmation.references/recipe-sources.md under "Recipes Used" with week, site, and rating left blank (Forni fills the rating in later).Forni's shopping list is pushed into the Apple Reminders "Groceries" list so it shows up natively on his phone during the shopping run. Reminders auto groups the list into store sections (Produce, Dairy, Pantry, etc.) when the list type is set to Grocery.
Use AppleScript via osascript with a heredoc:
osascript <<'APPLESCRIPT'
tell application "Reminders"
tell list "Groceries"
make new reminder with properties {name:"Asparagus, 1 bunch"}
make new reminder with properties {name:"Snap peas, 1 lb"}
# one line per item
end tell
end tell
APPLESCRIPT
Notes:
"Sweet potatoes, 4 large". Quantities help the checkout/counting moment."Pearl couscous, Bob's Red Mill tri color".Match Constitution/Nutrition/plans/2026-W14-meal-plan.md. Key sections in order:
# Meal Plan: Week NN (Mon Date – Sun Date, YYYY)## Daily Macro Budget table## Meal Structure with IF window and meal slots## Batch Prep with grains/legumes, proteins, vegetables, sauces## Daily Meals with breakfast description, lunch table, dinner table### Daily Macro Summary table## Shopping List grouped by store and sectionKeep notes and variances in italic after tables. Call out gaps (e.g., "Fat is ~7g under target. Add extra tahini or nuts to close the gap.")
See references/recipe-sources.md for the full list and ratings history. Primary sites:
When you introduce a new recipe, add a row to the "Recipes Used" table with the week, recipe title, site, and a blank rating. Forni fills ratings in over time. If a recipe turns into a repeat favorite, note it in the "Favorites" section.
Feel free to suggest new sites similar in vibe (plant based, seasonal, approachable). Add candidates to the "Candidate Sites to Try" section rather than introducing them directly.
When Forni mentions outside this skill that he bought or finished something (e.g., "grabbed two blocks of tofu at Sprouts"), update pantry.md directly. This keeps the inventory accurate without needing a formal mode. When running the plan, always re read pantry.md fresh rather than trusting cached state.
Durable constraints (unlikely to change without Forni flagging):
Current weekly pattern (things that can go stale as jobs and seasons change — always verify against the calendar pulled in Phase 1, and update the date stamp below when confirmed or corrected):
The calendar is the source of truth. These patterns are hints for interpreting calendar events, not substitutes for them.
See learned-rules.md. Append to that file when Forni corrects a choice (wrong recipe type, too many chickpeas, missed a staple, etc.) so the skill improves over time.