{
  "id": "meal-plan-grocery-list",
  "slug": "meal-plan-grocery-list",
  "name": "Meal Plan & Grocery List",
  "tagline": "Dinner sorted for the week, and one list for one trip.",
  "description": "Plans the week's meals around your tastes, diet, budget and pantry, then builds one grocery list grouped by aisle with an estimated total.",
  "category": "Home & Money",
  "platforms": [
    "Grok Bot",
    "Muse",
    "Dots"
  ],
  "schedule": "Weekly, Sunday 10:00 AM",
  "outputType": "checklist",
  "previewImage": "previews/meal-plan-grocery-list.png",
  "installSteps": {
    "grokBot": {
      "label": "Grok Bot",
      "status": "verified",
      "steps": [
        "Copy skills/meal-plan-grocery-list/SKILL.md (the whole file, including the --- header).",
        "Open a one-to-one chat with your Grok Bot and paste the prompt below, with the file where it says.",
        "Try it once now: \"Run Meal Plan & Grocery List.\"",
        "The routine shows in the Bot's info pane (click the Bot's name in the chat header) under Routines, where you can pause or edit it."
      ],
      "prompt": "Save the following as a skill called \"Meal Plan & Grocery List\". Then create a routine called \"Weekly meal plan\" that runs it every Sunday at 10:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n<paste SKILL.md here>",
      "note": "Skills and routines are saved by asking the Bot; no settings to dig through.",
      "promptFull": "Save the following as a skill called \"Meal Plan & Grocery List\". Then create a routine called \"Weekly meal plan\" that runs it every Sunday at 10:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n---\nname: meal-plan-grocery-list\ndescription: Use when the user asks for a meal plan, what to cook this week, a grocery or shopping list, or to turn recipes into a list, or when a scheduled weekly meal-planning routine runs. Plans the week's meals around their tastes, dietary rules, budget and what's already in the pantry, then builds one grocery list grouped by aisle with an estimated cost. Never orders or buys anything.\nmetadata:\n  id: meal-plan-grocery-list\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Meal Plan & Grocery List\n\n> Dinner sorted for the week, and one list for one trip.\n\n## What it does\n\nPlans the week's meals around what you like, what you can't eat, how much time you have and what's already in the cupboard. Then it turns the plan into one grocery list, grouped by aisle, with a rough total, so the shop takes one trip and nothing goes to waste.\n\n## When to use\n\n- \"Plan my dinners this week\", \"what should I cook?\", \"make me a grocery list\", \"turn these recipes into a shopping list\".\n- A scheduled routine (default: Sundays at 10:00 AM).\n\n## Requires\n\nNothing to start: answers are kept in the assistant's memory. Optional: web access for recipes and typical prices, a notes page or doc for the pantry list, and a grocery-shopping skill if the user wants the list put into a cart they check out themselves.\n\n## Schedule\n\nDefault: Weekly, Sunday 10:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Field | Default | Notes |\n|---|---|---|\n| `meals` | Dinners, Mon\u2013Fri | Which meals and days to plan. Breakfast, lunch and weekends are opt-in. |\n| `household` | 2 people | Servings per meal. Note kids or bigger appetites. |\n| `diet` | none | Rules that must hold: vegetarian, halal, kosher, gluten-free, nut allergy, low sodium, and so on. Allergies are hard rules. |\n| `dislikes` | none | Foods to skip. |\n| `cuisines` | any | Favourite cuisines, to rotate through. |\n| `weeknight_time` | 30 minutes | Longest hands-on cooking time on a weeknight. |\n| `budget` | none | Weekly grocery budget. The plan aims to stay under it. |\n| `pantry` | ask | What's already at home. Items listed here are left off the list. |\n| `leftovers` | on | Cook once, eat twice: plan at least one leftover lunch or dinner. |\n| `store` | any | Preferred store, used only for aisle order and price estimates. |\n\nRemember the answers and last week's plan, so meals don't repeat two weeks running.\n\n## Steps\n\n1. **Check what's changed.** On a scheduled run, ask one short question only if needed (\"Anything special this week, like guests or a night out?\"). If there's no answer within the run, plan with the saved settings.\n2. **Check the pantry.** Use the saved pantry list and any items the user mentions. Plan at least one meal that uses up something already at home or about to go off.\n3. **Plan the meals.** Pick meals that meet every diet rule, fit the weeknight time, rotate cuisines, and share ingredients so little is wasted (for example, half a bunch of cilantro on Monday, the rest on Thursday). Put the longest recipe on the lightest evening.\n4. **Build the list.** Combine quantities across recipes, convert to the units a store sells (one 2 lb bag, not 0.6 lb), remove pantry items, and group by aisle: Produce, Meat & Fish, Dairy & Eggs, Bakery, Pantry, Frozen, Household.\n5. **Estimate the cost.** Use typical prices for the user's area or store. Mark it as an estimate. If it runs over the budget, offer one or two swaps that bring it under.\n6. **Report** in the format below. Offer to hand the list to a grocery-shopping skill, which fills a cart for the user to review and check out themselves.\n\n## Output format\n\n```markdown\n# Meals for {date range}\n{N} dinners \u00b7 {servings} servings \u00b7 est. {total} (budget {budget})\n\n| Day | Meal | Time | Notes |\n|---|---|---|---|\n| Mon | {meal} | {min} | {uses up / leftovers for} |\n\n## Grocery list\n**Produce:** {item} ({qty}), ...\n**Meat & Fish:** ...\n**Dairy & Eggs:** ...\n**Pantry:** ...\n**Already have:** {pantry items skipped}\n\nEstimated total: {total}. {One line: over/under budget and any swap offered.}\n```\n\n## Edge cases\n\n- **An allergy or diet rule conflicts with a recipe:** drop the recipe. Never \"mostly\" meet an allergy rule.\n- **Prices unknown:** give the plan and list without a total and say so, rather than inventing prices.\n- **User is away part of the week:** plan only the days they're home.\n- **Pantry list is stale:** ask once a month whether it's still right.\n\n## Boundaries\n\nNever orders, buys, or checks out groceries, and never signs up for a store account or delivery service. It only plans and lists. If the user wants a cart filled, it hands the list to a grocery skill that stops before checkout, and the user reviews and pays themselves. Not dietary or medical advice."
    },
    "muse": {
      "label": "Muse",
      "status": "partially-verified",
      "steps": [
        "Copy skills/meal-plan-grocery-list/SKILL.md.",
        "Open Muse and paste the prompt below with the file where it says.",
        "Try it: \"Run Meal Plan & Grocery List.\" Muse has no skill install for outside skills, so it follows the pasted instructions.",
        "Ask Muse to make it a recurring task every Sunday at 10:00 AM. It then shows under the Assistant icon > Upcoming.",
        "Muse Code (developer CLI): unzip downloads/meal-plan-grocery-list.zip, run `muse skills validate ./meal-plan-grocery-list` then `muse skills install ./meal-plan-grocery-list --scope user`. Optional: add the BotPlaza connector (https://botplaza.lol/api/mcp) under mcpServers in ~/.config/muse/settings.json."
      ],
      "sourceUrl": "https://www.meta.com/help/superintelligence/1484325780075655/",
      "note": "Recurring tasks and Muse Code skill install are documented by Meta. Installing outside skills in the Muse app is not.",
      "prompt": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nIf you can save this as a skill, please do.",
      "promptFull": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n---\nname: meal-plan-grocery-list\ndescription: Use when the user asks for a meal plan, what to cook this week, a grocery or shopping list, or to turn recipes into a list, or when a scheduled weekly meal-planning routine runs. Plans the week's meals around their tastes, dietary rules, budget and what's already in the pantry, then builds one grocery list grouped by aisle with an estimated cost. Never orders or buys anything.\nmetadata:\n  id: meal-plan-grocery-list\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Meal Plan & Grocery List\n\n> Dinner sorted for the week, and one list for one trip.\n\n## What it does\n\nPlans the week's meals around what you like, what you can't eat, how much time you have and what's already in the cupboard. Then it turns the plan into one grocery list, grouped by aisle, with a rough total, so the shop takes one trip and nothing goes to waste.\n\n## When to use\n\n- \"Plan my dinners this week\", \"what should I cook?\", \"make me a grocery list\", \"turn these recipes into a shopping list\".\n- A scheduled routine (default: Sundays at 10:00 AM).\n\n## Requires\n\nNothing to start: answers are kept in the assistant's memory. Optional: web access for recipes and typical prices, a notes page or doc for the pantry list, and a grocery-shopping skill if the user wants the list put into a cart they check out themselves.\n\n## Schedule\n\nDefault: Weekly, Sunday 10:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Field | Default | Notes |\n|---|---|---|\n| `meals` | Dinners, Mon\u2013Fri | Which meals and days to plan. Breakfast, lunch and weekends are opt-in. |\n| `household` | 2 people | Servings per meal. Note kids or bigger appetites. |\n| `diet` | none | Rules that must hold: vegetarian, halal, kosher, gluten-free, nut allergy, low sodium, and so on. Allergies are hard rules. |\n| `dislikes` | none | Foods to skip. |\n| `cuisines` | any | Favourite cuisines, to rotate through. |\n| `weeknight_time` | 30 minutes | Longest hands-on cooking time on a weeknight. |\n| `budget` | none | Weekly grocery budget. The plan aims to stay under it. |\n| `pantry` | ask | What's already at home. Items listed here are left off the list. |\n| `leftovers` | on | Cook once, eat twice: plan at least one leftover lunch or dinner. |\n| `store` | any | Preferred store, used only for aisle order and price estimates. |\n\nRemember the answers and last week's plan, so meals don't repeat two weeks running.\n\n## Steps\n\n1. **Check what's changed.** On a scheduled run, ask one short question only if needed (\"Anything special this week, like guests or a night out?\"). If there's no answer within the run, plan with the saved settings.\n2. **Check the pantry.** Use the saved pantry list and any items the user mentions. Plan at least one meal that uses up something already at home or about to go off.\n3. **Plan the meals.** Pick meals that meet every diet rule, fit the weeknight time, rotate cuisines, and share ingredients so little is wasted (for example, half a bunch of cilantro on Monday, the rest on Thursday). Put the longest recipe on the lightest evening.\n4. **Build the list.** Combine quantities across recipes, convert to the units a store sells (one 2 lb bag, not 0.6 lb), remove pantry items, and group by aisle: Produce, Meat & Fish, Dairy & Eggs, Bakery, Pantry, Frozen, Household.\n5. **Estimate the cost.** Use typical prices for the user's area or store. Mark it as an estimate. If it runs over the budget, offer one or two swaps that bring it under.\n6. **Report** in the format below. Offer to hand the list to a grocery-shopping skill, which fills a cart for the user to review and check out themselves.\n\n## Output format\n\n```markdown\n# Meals for {date range}\n{N} dinners \u00b7 {servings} servings \u00b7 est. {total} (budget {budget})\n\n| Day | Meal | Time | Notes |\n|---|---|---|---|\n| Mon | {meal} | {min} | {uses up / leftovers for} |\n\n## Grocery list\n**Produce:** {item} ({qty}), ...\n**Meat & Fish:** ...\n**Dairy & Eggs:** ...\n**Pantry:** ...\n**Already have:** {pantry items skipped}\n\nEstimated total: {total}. {One line: over/under budget and any swap offered.}\n```\n\n## Edge cases\n\n- **An allergy or diet rule conflicts with a recipe:** drop the recipe. Never \"mostly\" meet an allergy rule.\n- **Prices unknown:** give the plan and list without a total and say so, rather than inventing prices.\n- **User is away part of the week:** plan only the days they're home.\n- **Pantry list is stale:** ask once a month whether it's still right.\n\n## Boundaries\n\nNever orders, buys, or checks out groceries, and never signs up for a store account or delivery service. It only plans and lists. If the user wants a cart filled, it hands the list to a grocery skill that stops before checkout, and the user reviews and pays themselves. Not dietary or medical advice.\n\nIf you can save this as a skill, please do."
    },
    "dots": {
      "label": "Dots",
      "status": "partially-verified",
      "steps": [
        "Copy skills/meal-plan-grocery-list/SKILL.md.",
        "Paste the prompt below into your dot's conversation in ChatGPT, with the file where it says.",
        "Wait for the dot to confirm the schedule, time zone and end date.",
        "Optional: in ChatGPT, Plugins > + > Add custom MCP server with https://botplaza.lol/api/mcp (no authentication). Dots can use installed plugins, but OpenAI hasn't said whether that includes custom ones.",
        "Business, Enterprise, Healthcare and Edu workspaces can also upload downloads/meal-plan-grocery-list.zip under Plugins > Skills > Create > Upload from your computer."
      ],
      "sourceUrl": "https://learn.chatgpt.com/docs/dots",
      "note": "Dots are available on ChatGPT Pro, Business Premium and Enterprise, and are still rolling out. Pasting instructions in and scheduled check-ins are documented.",
      "prompt": "Here are instructions for a task called \"Meal Plan & Grocery List\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nCheck in every Sunday at 10:00 AM Eastern time for the next 3 months, and confirm the schedule back to me.",
      "promptFull": "Here are instructions for a task called \"Meal Plan & Grocery List\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n---\nname: meal-plan-grocery-list\ndescription: Use when the user asks for a meal plan, what to cook this week, a grocery or shopping list, or to turn recipes into a list, or when a scheduled weekly meal-planning routine runs. Plans the week's meals around their tastes, dietary rules, budget and what's already in the pantry, then builds one grocery list grouped by aisle with an estimated cost. Never orders or buys anything.\nmetadata:\n  id: meal-plan-grocery-list\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Meal Plan & Grocery List\n\n> Dinner sorted for the week, and one list for one trip.\n\n## What it does\n\nPlans the week's meals around what you like, what you can't eat, how much time you have and what's already in the cupboard. Then it turns the plan into one grocery list, grouped by aisle, with a rough total, so the shop takes one trip and nothing goes to waste.\n\n## When to use\n\n- \"Plan my dinners this week\", \"what should I cook?\", \"make me a grocery list\", \"turn these recipes into a shopping list\".\n- A scheduled routine (default: Sundays at 10:00 AM).\n\n## Requires\n\nNothing to start: answers are kept in the assistant's memory. Optional: web access for recipes and typical prices, a notes page or doc for the pantry list, and a grocery-shopping skill if the user wants the list put into a cart they check out themselves.\n\n## Schedule\n\nDefault: Weekly, Sunday 10:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Field | Default | Notes |\n|---|---|---|\n| `meals` | Dinners, Mon\u2013Fri | Which meals and days to plan. Breakfast, lunch and weekends are opt-in. |\n| `household` | 2 people | Servings per meal. Note kids or bigger appetites. |\n| `diet` | none | Rules that must hold: vegetarian, halal, kosher, gluten-free, nut allergy, low sodium, and so on. Allergies are hard rules. |\n| `dislikes` | none | Foods to skip. |\n| `cuisines` | any | Favourite cuisines, to rotate through. |\n| `weeknight_time` | 30 minutes | Longest hands-on cooking time on a weeknight. |\n| `budget` | none | Weekly grocery budget. The plan aims to stay under it. |\n| `pantry` | ask | What's already at home. Items listed here are left off the list. |\n| `leftovers` | on | Cook once, eat twice: plan at least one leftover lunch or dinner. |\n| `store` | any | Preferred store, used only for aisle order and price estimates. |\n\nRemember the answers and last week's plan, so meals don't repeat two weeks running.\n\n## Steps\n\n1. **Check what's changed.** On a scheduled run, ask one short question only if needed (\"Anything special this week, like guests or a night out?\"). If there's no answer within the run, plan with the saved settings.\n2. **Check the pantry.** Use the saved pantry list and any items the user mentions. Plan at least one meal that uses up something already at home or about to go off.\n3. **Plan the meals.** Pick meals that meet every diet rule, fit the weeknight time, rotate cuisines, and share ingredients so little is wasted (for example, half a bunch of cilantro on Monday, the rest on Thursday). Put the longest recipe on the lightest evening.\n4. **Build the list.** Combine quantities across recipes, convert to the units a store sells (one 2 lb bag, not 0.6 lb), remove pantry items, and group by aisle: Produce, Meat & Fish, Dairy & Eggs, Bakery, Pantry, Frozen, Household.\n5. **Estimate the cost.** Use typical prices for the user's area or store. Mark it as an estimate. If it runs over the budget, offer one or two swaps that bring it under.\n6. **Report** in the format below. Offer to hand the list to a grocery-shopping skill, which fills a cart for the user to review and check out themselves.\n\n## Output format\n\n```markdown\n# Meals for {date range}\n{N} dinners \u00b7 {servings} servings \u00b7 est. {total} (budget {budget})\n\n| Day | Meal | Time | Notes |\n|---|---|---|---|\n| Mon | {meal} | {min} | {uses up / leftovers for} |\n\n## Grocery list\n**Produce:** {item} ({qty}), ...\n**Meat & Fish:** ...\n**Dairy & Eggs:** ...\n**Pantry:** ...\n**Already have:** {pantry items skipped}\n\nEstimated total: {total}. {One line: over/under budget and any swap offered.}\n```\n\n## Edge cases\n\n- **An allergy or diet rule conflicts with a recipe:** drop the recipe. Never \"mostly\" meet an allergy rule.\n- **Prices unknown:** give the plan and list without a total and say so, rather than inventing prices.\n- **User is away part of the week:** plan only the days they're home.\n- **Pantry list is stale:** ask once a month whether it's still right.\n\n## Boundaries\n\nNever orders, buys, or checks out groceries, and never signs up for a store account or delivery service. It only plans and lists. If the user wants a cart filled, it hands the list to a grocery skill that stops before checkout, and the user reviews and pays themselves. Not dietary or medical advice.\n\nCheck in every Sunday at 10:00 AM Eastern time for the next 3 months, and confirm the schedule back to me."
    },
    "chatgpt": {
      "label": "ChatGPT",
      "status": "unverified",
      "verified": false,
      "steps": [
        "Download https://botplaza.lol/downloads/meal-plan-grocery-list.zip (don't unzip).",
        "ChatGPT sidebar \u2192 Plugins \u2192 Skills tab \u2192 Create \u2192 Upload from your computer.",
        "Wait for the scan; if it says Needs Review, read it and approve.",
        "Use it with @meal-plan-grocery-list or just ask.",
        "Ask ChatGPT to set a scheduled task that runs @meal-plan-grocery-list at this cadence: every Sunday at 10:00 AM. Set the time in your own time zone."
      ],
      "sourceUrl": "https://help.openai.com/en/articles/20001066-skills-in-chatgpt",
      "note": "Business, Enterprise, Edu and Healthcare plans only. Other plans fall back to pasting the prompt.",
      "prompt": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n---\nname: meal-plan-grocery-list\ndescription: Use when the user asks for a meal plan, what to cook this week, a grocery or shopping list, or to turn recipes into a list, or when a scheduled weekly meal-planning routine runs. Plans the week's meals around their tastes, dietary rules, budget and what's already in the pantry, then builds one grocery list grouped by aisle with an estimated cost. Never orders or buys anything.\nmetadata:\n  id: meal-plan-grocery-list\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Meal Plan & Grocery List\n\n> Dinner sorted for the week, and one list for one trip.\n\n## What it does\n\nPlans the week's meals around what you like, what you can't eat, how much time you have and what's already in the cupboard. Then it turns the plan into one grocery list, grouped by aisle, with a rough total, so the shop takes one trip and nothing goes to waste.\n\n## When to use\n\n- \"Plan my dinners this week\", \"what should I cook?\", \"make me a grocery list\", \"turn these recipes into a shopping list\".\n- A scheduled routine (default: Sundays at 10:00 AM).\n\n## Requires\n\nNothing to start: answers are kept in the assistant's memory. Optional: web access for recipes and typical prices, a notes page or doc for the pantry list, and a grocery-shopping skill if the user wants the list put into a cart they check out themselves.\n\n## Schedule\n\nDefault: Weekly, Sunday 10:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Field | Default | Notes |\n|---|---|---|\n| `meals` | Dinners, Mon\u2013Fri | Which meals and days to plan. Breakfast, lunch and weekends are opt-in. |\n| `household` | 2 people | Servings per meal. Note kids or bigger appetites. |\n| `diet` | none | Rules that must hold: vegetarian, halal, kosher, gluten-free, nut allergy, low sodium, and so on. Allergies are hard rules. |\n| `dislikes` | none | Foods to skip. |\n| `cuisines` | any | Favourite cuisines, to rotate through. |\n| `weeknight_time` | 30 minutes | Longest hands-on cooking time on a weeknight. |\n| `budget` | none | Weekly grocery budget. The plan aims to stay under it. |\n| `pantry` | ask | What's already at home. Items listed here are left off the list. |\n| `leftovers` | on | Cook once, eat twice: plan at least one leftover lunch or dinner. |\n| `store` | any | Preferred store, used only for aisle order and price estimates. |\n\nRemember the answers and last week's plan, so meals don't repeat two weeks running.\n\n## Steps\n\n1. **Check what's changed.** On a scheduled run, ask one short question only if needed (\"Anything special this week, like guests or a night out?\"). If there's no answer within the run, plan with the saved settings.\n2. **Check the pantry.** Use the saved pantry list and any items the user mentions. Plan at least one meal that uses up something already at home or about to go off.\n3. **Plan the meals.** Pick meals that meet every diet rule, fit the weeknight time, rotate cuisines, and share ingredients so little is wasted (for example, half a bunch of cilantro on Monday, the rest on Thursday). Put the longest recipe on the lightest evening.\n4. **Build the list.** Combine quantities across recipes, convert to the units a store sells (one 2 lb bag, not 0.6 lb), remove pantry items, and group by aisle: Produce, Meat & Fish, Dairy & Eggs, Bakery, Pantry, Frozen, Household.\n5. **Estimate the cost.** Use typical prices for the user's area or store. Mark it as an estimate. If it runs over the budget, offer one or two swaps that bring it under.\n6. **Report** in the format below. Offer to hand the list to a grocery-shopping skill, which fills a cart for the user to review and check out themselves.\n\n## Output format\n\n```markdown\n# Meals for {date range}\n{N} dinners \u00b7 {servings} servings \u00b7 est. {total} (budget {budget})\n\n| Day | Meal | Time | Notes |\n|---|---|---|---|\n| Mon | {meal} | {min} | {uses up / leftovers for} |\n\n## Grocery list\n**Produce:** {item} ({qty}), ...\n**Meat & Fish:** ...\n**Dairy & Eggs:** ...\n**Pantry:** ...\n**Already have:** {pantry items skipped}\n\nEstimated total: {total}. {One line: over/under budget and any swap offered.}\n```\n\n## Edge cases\n\n- **An allergy or diet rule conflicts with a recipe:** drop the recipe. Never \"mostly\" meet an allergy rule.\n- **Prices unknown:** give the plan and list without a total and say so, rather than inventing prices.\n- **User is away part of the week:** plan only the days they're home.\n- **Pantry list is stale:** ask once a month whether it's still right.\n\n## Boundaries\n\nNever orders, buys, or checks out groceries, and never signs up for a store account or delivery service. It only plans and lists. If the user wants a cart filled, it hands the list to a grocery skill that stops before checkout, and the user reviews and pays themselves. Not dietary or medical advice."
    },
    "gemini": {
      "label": "Gemini",
      "status": "unverified",
      "verified": false,
      "steps": [
        "gemini.google.com \u2192 Customize \u2192 Skills \u2192 Create \u2192 Upload \u2192 pick the SKILL.md at https://botplaza.lol/skills/meal-plan-grocery-list.md (or https://botplaza.lol/downloads/meal-plan-grocery-list.zip).",
        "Review, then Create.",
        "Use it with /meal-plan-grocery-list."
      ],
      "sourceUrl": "https://support.google.com/gemini/answer/17094296",
      "note": "Personal accounts 18+. Workspace users must recreate the skill in Workspace Studio.",
      "prompt": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Meal Plan & Grocery List\". Follow them whenever I say \"Run Meal Plan & Grocery List\". Ask me the setup questions first and remember my answers.\n\n---\nname: meal-plan-grocery-list\ndescription: Use when the user asks for a meal plan, what to cook this week, a grocery or shopping list, or to turn recipes into a list, or when a scheduled weekly meal-planning routine runs. Plans the week's meals around their tastes, dietary rules, budget and what's already in the pantry, then builds one grocery list grouped by aisle with an estimated cost. Never orders or buys anything.\nmetadata:\n  id: meal-plan-grocery-list\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Meal Plan & Grocery List\n\n> Dinner sorted for the week, and one list for one trip.\n\n## What it does\n\nPlans the week's meals around what you like, what you can't eat, how much time you have and what's already in the cupboard. Then it turns the plan into one grocery list, grouped by aisle, with a rough total, so the shop takes one trip and nothing goes to waste.\n\n## When to use\n\n- \"Plan my dinners this week\", \"what should I cook?\", \"make me a grocery list\", \"turn these recipes into a shopping list\".\n- A scheduled routine (default: Sundays at 10:00 AM).\n\n## Requires\n\nNothing to start: answers are kept in the assistant's memory. Optional: web access for recipes and typical prices, a notes page or doc for the pantry list, and a grocery-shopping skill if the user wants the list put into a cart they check out themselves.\n\n## Schedule\n\nDefault: Weekly, Sunday 10:00 AM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Field | Default | Notes |\n|---|---|---|\n| `meals` | Dinners, Mon\u2013Fri | Which meals and days to plan. Breakfast, lunch and weekends are opt-in. |\n| `household` | 2 people | Servings per meal. Note kids or bigger appetites. |\n| `diet` | none | Rules that must hold: vegetarian, halal, kosher, gluten-free, nut allergy, low sodium, and so on. Allergies are hard rules. |\n| `dislikes` | none | Foods to skip. |\n| `cuisines` | any | Favourite cuisines, to rotate through. |\n| `weeknight_time` | 30 minutes | Longest hands-on cooking time on a weeknight. |\n| `budget` | none | Weekly grocery budget. The plan aims to stay under it. |\n| `pantry` | ask | What's already at home. Items listed here are left off the list. |\n| `leftovers` | on | Cook once, eat twice: plan at least one leftover lunch or dinner. |\n| `store` | any | Preferred store, used only for aisle order and price estimates. |\n\nRemember the answers and last week's plan, so meals don't repeat two weeks running.\n\n## Steps\n\n1. **Check what's changed.** On a scheduled run, ask one short question only if needed (\"Anything special this week, like guests or a night out?\"). If there's no answer within the run, plan with the saved settings.\n2. **Check the pantry.** Use the saved pantry list and any items the user mentions. Plan at least one meal that uses up something already at home or about to go off.\n3. **Plan the meals.** Pick meals that meet every diet rule, fit the weeknight time, rotate cuisines, and share ingredients so little is wasted (for example, half a bunch of cilantro on Monday, the rest on Thursday). Put the longest recipe on the lightest evening.\n4. **Build the list.** Combine quantities across recipes, convert to the units a store sells (one 2 lb bag, not 0.6 lb), remove pantry items, and group by aisle: Produce, Meat & Fish, Dairy & Eggs, Bakery, Pantry, Frozen, Household.\n5. **Estimate the cost.** Use typical prices for the user's area or store. Mark it as an estimate. If it runs over the budget, offer one or two swaps that bring it under.\n6. **Report** in the format below. Offer to hand the list to a grocery-shopping skill, which fills a cart for the user to review and check out themselves.\n\n## Output format\n\n```markdown\n# Meals for {date range}\n{N} dinners \u00b7 {servings} servings \u00b7 est. {total} (budget {budget})\n\n| Day | Meal | Time | Notes |\n|---|---|---|---|\n| Mon | {meal} | {min} | {uses up / leftovers for} |\n\n## Grocery list\n**Produce:** {item} ({qty}), ...\n**Meat & Fish:** ...\n**Dairy & Eggs:** ...\n**Pantry:** ...\n**Already have:** {pantry items skipped}\n\nEstimated total: {total}. {One line: over/under budget and any swap offered.}\n```\n\n## Edge cases\n\n- **An allergy or diet rule conflicts with a recipe:** drop the recipe. Never \"mostly\" meet an allergy rule.\n- **Prices unknown:** give the plan and list without a total and say so, rather than inventing prices.\n- **User is away part of the week:** plan only the days they're home.\n- **Pantry list is stale:** ask once a month whether it's still right.\n\n## Boundaries\n\nNever orders, buys, or checks out groceries, and never signs up for a store account or delivery service. It only plans and lists. If the user wants a cart filled, it hands the list to a grocery skill that stops before checkout, and the user reviews and pays themselves. Not dietary or medical advice."
    },
    "cli": {
      "label": "Skills CLI",
      "status": "verified",
      "steps": [
        "All agents: `npx skills add https://botplaza.lol --skill meal-plan-grocery-list` (add `-a claude-code`, `-a codex`, or `-a cursor` to choose one).",
        "Claude Code marketplace: `/plugin marketplace add https://botplaza.lol/.claude-plugin/marketplace.json` then `/plugin install meal-plan-grocery-list@botplaza`.",
        "Fallback, Claude Code: `curl -fsSL https://botplaza.lol/downloads/meal-plan-grocery-list.zip -o s.zip && unzip s.zip -d ~/.claude/skills/`.",
        "Fallback, Codex and other .agents readers: `curl -fsSL https://botplaza.lol/downloads/meal-plan-grocery-list.zip -o s.zip && unzip s.zip -d ~/.agents/skills/`.",
        "Fallback, Cursor project: `curl -fsSL https://botplaza.lol/downloads/meal-plan-grocery-list.zip -o s.zip && unzip s.zip -d .cursor/skills/`."
      ],
      "sourceUrl": "https://www.skills.sh/docs",
      "note": "The skills CLI reads /.well-known/agent-skills/index.json and installs each SKILL.md. The zip fallback uses the existing downloads/<slug>.zip folder layout.",
      "prompt": "npx skills add https://botplaza.lol --skill meal-plan-grocery-list",
      "promptFull": "npx skills add https://botplaza.lol --skill meal-plan-grocery-list"
    }
  },
  "author": "BotPlaza",
  "tags": [
    "meal planning",
    "groceries",
    "recipes",
    "budget",
    "pantry",
    "weekly"
  ],
  "featured": false,
  "longDescription": "Meal Plan & Grocery List takes the nightly 'what's for dinner?' off your plate. Each Sunday it plans the week around what you like, what you can't eat, how much time you have on weeknights and what's already in the cupboard, and it reuses ingredients so little goes to waste. Then it turns the plan into one grocery list, grouped by aisle, with a rough total against your budget. It never orders: if you want a cart filled, it hands the list to a grocery skill and you check out yourself.",
  "customization": [
    {
      "key": "meals",
      "label": "Meals to plan",
      "type": "multi-toggle",
      "question": "Which meals should it plan?",
      "default": [
        "Weeknight dinners"
      ],
      "options": [
        "Weeknight dinners",
        "Weekend dinners",
        "Lunches",
        "Breakfasts"
      ]
    },
    {
      "key": "household",
      "label": "Servings",
      "type": "select",
      "question": "How many people are you cooking for?",
      "default": "2",
      "options": [
        "1",
        "2",
        "3",
        "4",
        "5+"
      ]
    },
    {
      "key": "diet",
      "label": "Dietary rules",
      "type": "multi-toggle",
      "question": "Any dietary rules or allergies it must always follow?",
      "default": [],
      "options": [
        "Vegetarian",
        "Vegan",
        "Pescatarian",
        "Halal",
        "Kosher",
        "Gluten-free",
        "Dairy-free",
        "Nut allergy",
        "Low sodium"
      ],
      "allowCustom": true
    },
    {
      "key": "dislikes",
      "label": "Foods to skip",
      "type": "text-list",
      "question": "Any foods you'd rather never see?",
      "default": []
    },
    {
      "key": "weeknightTime",
      "label": "Weeknight cooking time",
      "type": "select",
      "question": "How long can you cook on a weeknight?",
      "default": "30 minutes",
      "options": [
        "15 minutes",
        "30 minutes",
        "45 minutes",
        "1 hour"
      ]
    },
    {
      "key": "budget",
      "label": "Weekly grocery budget",
      "type": "text",
      "question": "Roughly what's your weekly grocery budget?",
      "default": ""
    },
    {
      "key": "leftovers",
      "label": "Plan leftovers",
      "type": "boolean",
      "question": "Cook once, eat twice where it works?",
      "default": true
    },
    {
      "key": "cadence",
      "label": "Delivery time",
      "type": "time",
      "question": "When should the plan arrive on Sundays?",
      "default": "10:00"
    }
  ],
  "whatYouGet": [
    "A meal plan table with cooking times",
    "Shared ingredients so little goes to waste",
    "One grocery list grouped by aisle, pantry items left off",
    "An estimated total against your budget, with swaps if it's over",
    "An optional hand-off to a grocery skill you check out yourself"
  ],
  "dataSources": [
    {
      "name": "Assistant memory (your tastes, rules and pantry)",
      "required": true
    },
    {
      "name": "Web search (recipes and typical prices)",
      "required": false
    },
    {
      "name": "A grocery-shopping skill (to fill a cart you check out)",
      "required": false
    }
  ],
  "setupTime": "3 minutes",
  "sampleOutput": "samples/meal-plan-grocery-list.md",
  "skillFile": "skills/meal-plan-grocery-list/SKILL.md",
  "version": "1.0.0",
  "license": "",
  "previewAlt": "A five-dinner meal plan table for Mon\u2013Fri with cooking times, above a grocery list grouped by aisle and an estimated $78 total under a $90 budget.",
  "writesOrSends": "Read-only. Never orders or buys groceries; you check out yourself.",
  "audience": "people",
  "setup": [
    {
      "key": "meals",
      "question": "Which meals should it plan?",
      "type": "multi-toggle",
      "default": [
        "Weeknight dinners"
      ],
      "options": [
        "Weeknight dinners",
        "Weekend dinners",
        "Lunches",
        "Breakfasts"
      ]
    },
    {
      "key": "household",
      "question": "How many people are you cooking for?",
      "type": "select",
      "default": "2",
      "options": [
        "1",
        "2",
        "3",
        "4",
        "5+"
      ]
    },
    {
      "key": "diet",
      "question": "Any dietary rules or allergies it must always follow?",
      "type": "multi-toggle",
      "default": [],
      "options": [
        "Vegetarian",
        "Vegan",
        "Pescatarian",
        "Halal",
        "Kosher",
        "Gluten-free",
        "Dairy-free",
        "Nut allergy",
        "Low sodium"
      ]
    },
    {
      "key": "dislikes",
      "question": "Any foods you'd rather never see?",
      "type": "text-list",
      "default": []
    },
    {
      "key": "weeknightTime",
      "question": "How long can you cook on a weeknight?",
      "type": "select",
      "default": "30 minutes",
      "options": [
        "15 minutes",
        "30 minutes",
        "45 minutes",
        "1 hour"
      ]
    },
    {
      "key": "budget",
      "question": "Roughly what's your weekly grocery budget?",
      "type": "text",
      "default": ""
    },
    {
      "key": "leftovers",
      "question": "Cook once, eat twice where it works?",
      "type": "boolean",
      "default": true
    },
    {
      "key": "cadence",
      "question": "When should the plan arrive on Sundays?",
      "type": "time",
      "default": "10:00"
    }
  ],
  "safety": {
    "dataAccess": [
      "Your food preferences, dietary rules, budget and pantry list (kept in memory)",
      "Public recipe pages and typical grocery prices (search and page reads)"
    ],
    "writesOrSends": "Read-only. Never orders or buys groceries; you check out yourself.",
    "estCost": "Low: ~4 runs a month.",
    "costLevel": "light",
    "warnings": [
      "Never buys, pays, cancels, returns or sends anything without your explicit OK for that item.",
      "It never orders groceries; a grocery skill can fill a cart that you check out yourself.",
      "Allergies are treated as hard rules, but check labels yourself. Not dietary or medical advice."
    ]
  },
  "checked": {
    "instructionOnly": true,
    "scripts": false,
    "runtimeFetch": false,
    "sha256": "f40682e103d1bc3094c817be7997b8cb1cf7d610c1e4a83bfd2bda41da960ca4",
    "checkedOn": "2026-10-31"
  },
  "urls": {
    "page": "https://botplaza.lol/skills/meal-plan-grocery-list/",
    "markdown": "https://botplaza.lol/skills/meal-plan-grocery-list.md",
    "skillMd": "https://botplaza.lol/skills/meal-plan-grocery-list/SKILL.md",
    "json": "https://botplaza.lol/skills/meal-plan-grocery-list.json",
    "zip": "https://botplaza.lol/downloads/meal-plan-grocery-list.zip",
    "mcp": "https://botplaza.lol/api/mcp"
  }
}