Adapted from the DGF Agent Basics series — consumer-first guides for working with a personal AI agent. Pick only what you need.

> Pick only what you need. This skill is individual. This is one person's thoughts, offered as a pre-configured help, not a must. Take only the value you need from it, prune it to what fits you, and leave the rest. You do not have to use what the author thinks, and you do not have to take any other skill with it.

Summary: Go from meal plan to recipes to list to cart, with quantities versus package sizes, local sales, and a cart handed over for you to review and pay yourself. Optional.

Use this skill when the user wants to shop for groceries. It covers groceries only, from meal plan to cart. If the user asks for something outside groceries, handle that as a separate task, without assuming another skill exists.

This skill stands alone. An agent that knows nothing else can follow it from the startup sequence below, then the grocery method. This skill works on its own, with no other skill needed, and no knowledge of any other skill assumed.

Startup and how to use

Start by getting your own personal agent. Get your own personal agent and set it up. Bring your own accounts and logins. Use nothing that belongs to anyone else.

Tell your agent what you care about in plain words. Name your business, your work, your family, your hobbies, or any topic you want it to follow. Talking is the setup. You do not have to set up a system first.

Ask for the plan first, before any work runs. Say the task, then ask for the exact steps it will take, what it needs from you, and anything it cannot do. Wait for you to approve or correct the plan. Review the plan like a checklist and fix a wrong step or add a missing step before work starts.

Check that your agent understood you, before it runs. Ask it to show back what it thinks you mean and what output it will give you. Correct its repeat back right there when it does not match what you pictured.

Work in small single steps. Count the steps first. Give one step, check it, then give the next step. A ten step run is a huge run for an agent, so break it down and keep each step to exactly one thing.

Show it once, then save it by name. This is how you create a new task or a new skill. Take over the browser and do the task once yourself while your agent pauses. You drive alone and your agent does not watch your clicks. There is no record button to press. After you hand control back, tell your agent the steps in chat and tell it to save them by name, such as save this as Fun Things. Later, say pull up Fun Things and it picks up where you left off.

Correct it in small plain words when it does it wrong. Do not start over. Say what to change and say to remember that correction. That preference sticks and it gets better for you specifically over time.

Let it keep learning your interests every day. Your Feed looks like a newspaper with articles and topics related to what you told it you care about, updated daily. Your Ideas look like a lightbulb with suggestions for things you might like. It is not mind reading. It learns from what you actually talk about.

Use easy first and deep only when you want it. Never require a deep setup to use a basic task. Keep the wording in plain benefits and do not lead with virtual machine or VM. Say it has its own browser and workspace built in, you do not have to set anything up, it keeps your logins safe, and it saves and remembers your stuff.

Before any search

Read the request and list every fact that decides whether a result is correct. Do not search until those facts are known or the user has said to search without them.

Ask the user for the missing deciding facts in one plain message. Ask at most three short questions at a time.

Never ask for a password or a card number in chat. Tell the user to load logins through the secure sign-in your agent shows them. If a login was not loaded securely, search public prices only and do not look inside that account.

Never spend the user's money. Building a list, building a cart, and showing a total are not an order. The user reviews the cart and pays themselves.

Groceries: meal plan to cart

Ask for the meal plan first, before any list. Ask what the user wants to eat, whether they have specific meal plan instructions to give you, how many people and days, diet and allergies, foods they will not eat, real cooking time and skill, budget, and what they already have at home.

Let specific meal plan instructions lead. Do not invent a diet for the user.

Offer recipe options that fit the plan, budget, allergies, and cooking time. Let the user pick the recipes they will actually cook. Make the grocery list only after the recipes are picked.

Turn each picked recipe into quantities with clear units. Distinguish the amount needed from the size of one package. Group the list by store section and flag items the user already has. Keep the list separate from the cart. A list is not an order.

Shop the list with the everyday goods techniques, adjusted for groceries. Check Walmart and local stores, plus local sales and weekly ads. Compare pack sizes and unit prices inside the chosen store. Compare store brand and name brand when the unit price is clearly lower. Use grocery cashback from receipts or linked loyalty accounts where it fits.

Do not split the order across stores when extra fees, minimums, or trips would cancel the saving.

Ask before any substitution that would change an allergen, an essential ingredient, or the budget.

Offer pickup or delivery and let the user pick. Use the store own pickup program where it has one, and Instacart from the chosen store where Instacart covers it. Note that Instacart does not cover every store, and Walmart runs its own grocery pickup and delivery.

Show the cart back before any payment. Show quantities, substitutions, address or pickup store, window, and final cost. The user reviews it and pays themselves.

Categories that enhance grocery shopping

Meal types: breakfast, lunch, dinner, snacks, and drinks are different lists, even for the same week. Build each meal type separately, then combine them into one store list, so nothing is missed and nothing is doubled.

Food groups: produce, meat and seafood, dairy and eggs, bakery, pantry staples, frozen, beverages, and household are different store sections. Group the list by section, in store order when known, so shopping is one pass, not back and forth.

Diet and allergy categories: vegetarian, vegan, gluten free, dairy free, nut free, low sugar, low sodium, and any allergy the user names are filters, not preferences. Filter every recipe and every substitution through them, and ask before any change that touches them.

Freshness and storage: fresh, frozen, canned, and dried versions of the same food are different products, with different prices, shelf lives, and cooking times. State which version the recipe needs, and how long leftovers and pantry items will keep.

Bulk and pack size: bulk, family pack, single serve, and regular pack are different totals. Compare unit price, not pack price, and check whether the user has storage space and will use the amount before it spoils.

Brand and store brand: name brand, store brand, organic, and conventional are different products with different prices. Compare them by unit price and by taste or quality the user cares about, and let the user pick, not the price alone.

Local and seasonal: local produce, seasonal produce, and imported produce differ in price, freshness, and availability. Check what is in season and on sale locally this week, and offer seasonal swaps that keep the recipe working.

Special occasions and batch cooking: holiday meals, party food, meal prep, and batch cooking need larger quantities, different storage, and a different timeline. Ask whether the week includes any of these, before the list is made.

Household and non food: cleaning, paper goods, personal care, and pet supplies are often bought with groceries, but they are not food. Keep them as a separate section of the same cart, so food totals and household totals stay clear.

Waste and leftovers: check what can be reused across recipes, what leftovers will become, and what will spoil first. A list that reuses ingredients across the week wastes less and costs less, and that saving should be shown plainly.

Hand over the deliverable: cart set, user just pays

At the end, hand the user a finished cart, not just a list. The user should be able to go from your message to paying, with no shopping left to do.

Hand it over in one of two ways, whichever fits the store. First, through the your agent browser: prepare the browser task with the grocery list in the store's cart, quantities, substitutions, and pickup or delivery choice set, cart page loaded, and hand control to the user in browser takeover, so they review and pay themselves. Second, with the exact URL: give the exact cart or checkout link for that store, verified to open to that cart with those items and quantities, not a generic store homepage.

Before handing it over, check the cart against the decisions made. Check item, quantity, pack size, substitution, pickup store or delivery address, window, and final cost, line by line. If anything differs from what the user decided, fix it before handing it over, and say what changed.

State plainly what is set and what is not set. State when the cart is set and ready to pay, when a link is a product page that still needs the user to add it to cart, and when a store has no cart link and the user must add items themselves, with exact steps and exact product links. Never claim a cart is set when it is not.

Your agent never pays. The user reviews the cart, enters payment themselves, and places the order themselves. Handing over a ready cart is not placing an order.

Diverse, not concrete: let the user prune

Do not make this skill concrete, narrow, or one size fits all. Present a diverse set of options first, across price, style, risk, format, and approach, so different people can see themselves in it.

Let the user prune. Ask what to cut, what to keep, and what to change, and then narrow to what they kept. Pruning is the user's job, not your agent's guess. Do not prune for them before they have seen the options.

Do not lock a single choice early. Offer at least two or three meaningfully different options at each decision point, with the trade for each, unless the user already locked that choice themselves.

Keep options that do not fit one person, because they may fit another person using the same skill. A skill that only works for one kind of person is too concrete to reuse.

When the user prunes, save the pruned version by name when they want to repeat it, so their version starts from what they kept, not from the full diverse set again.

Present the result

Lead with the recommendation or the trade, in plain words. Keep the reply short and name only the decisive difference between the top choices.

State every price as a delivered total when a total decides the choice. Include delivery fees, minimums, and tips when they are known, and say when a fee is unknown instead of guessing it.

State what you could not verify. State when a price is stale, a store was blocked, a membership was not loaded, or a substitution is provisional.

Stop after a denial. Do not re-pitch a rejected option in new words.

Available connectors

Use your agent's connector and skill search, if it has one, to find other connectors and related skills.

If nothing here fits, look on the web for a maintained API or MCP server and set it up with your agent's custom connector setup, if it has one, or build a custom connector.

When available

These connectors depend on the user's channel or devices. Your agent's connector search shows which ones this session has, if it has one.

[Instacart](/opt/hatch/connectors/instacart/CONNECTOR.md) for grocery search, carts, and checkout links at the user's chosen store.

Websites

[Walmart](https://www.walmart.com/) for grocery delivery and pickup in the US, which Instacart does not cover.

[Target](https://www.target.com/) for general goods and local pickup in the US. Verify availability and pickup terms on its own page.

Alternatives for better results

Offer pickup when delivery fees, minimum orders, or tips outweigh the convenience of delivery.

Suggest a store brand or a larger pack when its unit price is clearly lower and the user is flexible.