Technology

Skylight MCP, Part 2: Teaching Claude How We Plan

Project docs for stores, grocery rules, meal-planning rules, and a recipe format. The rules are what make the automation actually useful.

Part 1 covered the problem and getting the Skylight MCP server connected. Connecting the tools turned out to be the easy part. The real value came from writing down how we actually plan, so Claude follows the same rules every week without me repeating myself.

Where the rules live: a Claude project

Everything lives in a Claude project called "Keto-friendly Family Menu Planning." The project has:

  • A description and instructions with the basics: family of four, sports nights, keto for me but friendly for everyone, foods to avoid, and preferred stores.
  • Four project docs that Claude reads at the start of every planning chat:
    • grocery-planning.md: where the list lives, store rules, sections, the pantry check, protein shelf life.
    • planning-rules.md: week shape, sports nights, prep timing, the starch rule, kid preferences, keepers, meal-specific notes.
    • recipe-note-format.md: the exact Apple Notes layout and the HTML that produces it.
    • skylight-config.md: frame ID, category IDs, list IDs, and API quirks.
  • The MultiPot manuals (owner's guide and quick-start PDFs).

I asked at one point whether these should be artifacts instead. They shouldn't. Project docs get read at the start of every chat, which is exactly what you want for rules. Artifacts are for things you open, share, or print, like a menu.

One pattern worked better than I expected. Every time I corrected something mid-plan ("the kids won't eat cooked peppers"), I asked Claude to write it into the right doc with the date. The docs became a running record of decisions, and the next week's plan didn't repeat the mistake. It's the same single-source-of-truth instinct I bring to work, just pointed at dinner.

Skylight configuration

The first doc Claude wrote after connecting was a config reference, so it never has to rediscover IDs. It covers:

  • Which frame to use. Our account has four frames. The doc says to always pass the family calendar's frame ID on every call, never let a tool pick a default, and lists the other frames by name with "do NOT use" next to each.
  • Event defaults. Events land on the Family profile unless I say otherwise.
  • Family-member category IDs (Family, me, my wife, each kid) for assigning events.
  • Meal category IDs for Breakfast, Lunch, Dinner, Snack (Snack is disabled on our frame).
  • List IDs for the Grocery List and the To-Do List, with a note never to put groceries on the To-Do list. Ask me how I know.

And the quirks we tripped over along the way:

  • In skylight_plan_meal, when you attach a recipe, summary must be an empty string. The meal takes the recipe's name.
  • Never set add_to_grocery_list and never use skylight_add_recipe_to_grocery_list. Claude builds the list (more on that below).
  • skylight_list_meals can miss the last day in the range, so widen it by a day when verifying.
  • skylight_create_event has no calendar parameter. To put reminders on my personal Google calendar, set the frame's default calendar to mine, create the events assigned to me, then set the default back to Family.

Grocery stores and what we buy where

I wrote down how we actually shop, in priority order. This part felt silly to write out, but it's exactly the kind of thing I was holding in my head every Sunday.

  1. Trader Joe's is first choice. Cleanest ingredients and the best prices for what we buy. Every item defaults here unless another store is clearly better or TJ's doesn't carry it. Their inventory is seasonal, so things come and go.
  2. Lowes Foods for deli, pick-n-prep, and small fill-in trips. Their pre-cut "pick-n-prep" produce (peppers, cucumbers, onions) is a big time saver. Their SausageWorks sausages are the best around (Cheesapeno, Nacho Mama, Bavarian, Star Spangler, and more), so any recipe calling for sausage or brats goes there. The meat counter works for chuck roast. That said, their whole produce is usually in rough shape and pricier, so whole produce goes elsewhere. Inventory is searchable online.
  3. Sam's Club or Walmart for bulk pantry. Snacks and baking supplies. Sam's is specifically good for pre-made meals (chicken enchiladas, twice-baked potatoes, stuffed peppers) and frozen items. Watch the sodium on Sam's chicken, which is "enhanced" with a salt solution.
  4. Publix for specialty items and the best produce. Things nobody else carries, like Mid's spaghetti sauce.
  5. Target for pantry staples and soda only, if needed.

That turns into a simple decision tree Claude applies to every item:

  1. Recipe names a store or brand (TJ's Orange Chicken, Mid's sauce, Sam's enchiladas, SausageWorks)? That store.
  2. Pre-cut produce or deli? Lowes Foods.
  3. Bulk snacks or baking? Walmart or Sam's.
  4. Whole produce TJ's doesn't have? Publix.
  5. Everything else? Trader Joe's.

The goal is the fewest stores possible in a given week.

Grocery list rules

Originally the plan was one Apple Reminders item per grocery. We switched to Skylight's own Grocery List because it has sections and it's on the kitchen frame where everyone sees it. Before the first real run, Claude cleared the old list (112 stale items, with my OK first).

The rules:

  • Claude builds the list itself from the week's recipes. Never the "add recipe to grocery list" button.
  • Sections by store: Trader Joe's, Lowes Foods, Sam's Club, Wal-Mart, Publix. Skylight doesn't have empty sections; a section appears when the first item is assigned to it.
  • Deduplicate and combine. One line per ingredient with the total amount across all recipes.
  • Read the list before writing. If an item is already there, update its quantity instead of adding a duplicate.
  • Leave off anything I already have (I keep ranch seasoning packets on hand, for example).
  • Show me the full list before writing, then a log of what changed. Deleting or clearing items needs my OK.

The Pantry Check section

This one took a couple of rounds to get right. My first instinct was "never put pantry staples on the list." But as it turns out, I actually want to know the totals, because that's how I check the pantry before shopping and before cooking.

So staples go in a Pantry Check section, labeled with the total amount and which recipes use it:

Garlic powder: 4 tsp total (Philly Cheesesteak, Pot Roast, Bacon Ranch)

On shopping day I walk the pantry, delete anything I have enough of, and move anything I need into a store section. Spices, oils, vinegars, broth, condiments, butter, flour, and sugar substitutes all live here.

Mid-week trip sections

If a late-week protein won't keep from Sunday (Part 3 has that story), it can go in a section like Trader Joes - Wednesday with a SHOP reminder on my calendar.

Meal planning rules

Week shape

We plan Sunday through Thursday dinners (Friday and Saturday only if I ask). Monday through Thursday are sports nights by default, out from about 3:45 to 7:30. Dinner is ready at 7:00 on Sunday, Monday, and Wednesday, and 7:15 on Tuesday and Thursday. Claude checks the Skylight calendar each week for anything that changes a night: no practice, a game, someone home early.

MultiPot XL on sports nights

Sports nights get MultiPot meals. The MultiPot has a 7.5-qt pot (MegaZone) and two independent 3.3-qt pots (DualZone, each with its own function and timer). DualZone is great for this family: one zone can be kid-friendly and the other adult-only.

The constraints come straight from the manual:

  • No delay start, and no smart plugs or timers. Whatever it is has to be started by 3:45 on a sports night.
  • Slow Cook LO has a 6-hour minimum, so sports-night recipes use HI.
  • Start time equals ready time minus the longest cook. Chicken breasts on HI 3:00 started at 3:45 land at 6:45, then sit on auto Keep Warm. Beef (chuck in 2-inch chunks) needs HI 4:00, so it has to start at 3:00 for a 7:00 dinner or 3:15 for 7:15. That means someone has to be home early, which Claude flags.

Prep on the calendar

Make-ahead prep happens the night before at 9:30 PM (or 2-3 nights ahead if the recipe note says it holds). Never the same day, since there's no time on a sports night.

Each dinner goes on the Skylight meal plan on its date. Each prep night gets a separate PREP entry in the Dinner slot with the actual prep steps, so whoever's in the kitchen sees it on the frame. On my own calendar I get a 9:30 PM prep reminder for each prep night, a start-time reminder for each dinner, and THAW or SHOP reminders when needed.

Pot conflicts

With three pots and back-to-back sports nights, it's easy to schedule two meals into the same pot. If Monday's dinner is sitting in the 3.3-qt pots, Tuesday's prep can't go in them Sunday night. The fix: prep the later meal into lidded containers, then wash the pots after Monday's dinner and tip it in. Claude checks pot usage across the week before finalizing. I didn't think of this one until it bit me.

The starch rule

This is the strictest rule, on purpose:

  • Meat-and-veggie meals with no starch are fine, and encouraged.
  • When a dinner has a starch, each starch type appears at most once per week: one pasta night, one rice night, one potato night, one bread night (sandwiches, buns, toast), one tortilla night.
  • Kid-swap starches count. Pasta on the side for the kids is the pasta night.
  • Breakfast for dinner (eggs, toast, bacon) counts as the bread night.

Why so strict? Breakfast and lunch planning are probably coming next, and those meals carry a lot of starch. The dinner limit holds even when it makes a week harder to fill.

Cauliflower (as mac or mash) is capped at once or twice a week, too. It's a great keto swap, but it gets old fast.

Kid preferences and keepers

No cooked peppers or onions for the kids, including in fajitas, cheesesteaks, and stuffed peppers. Those go in a separate DualZone pot or are adults-only. Raw mini peppers are fine. (Don't ask me to explain the logic, I just work here.)

Keepers are kid-approved recipes that go in rotation. Boursin Chicken & Sausage Alfredo (MultiPot) is the first one: plan it every 2-3 weeks on a sports night, and it counts as the pasta night. The doc tracks when it was last served.

Meal-specific notes

I went through our recipes with Claude and wrote down the quirks. Things like:

  • Oven-baked casseroles (Chicken & Stuffing, Dump Chicken Parmesan Pasta, Easy Lasagna) aren't sports-night meals.
  • Burgers, stovetop spaghetti and meatballs, and stovetop ravioli are non-sports nights only. Use the MultiPot versions on sports nights.
  • Sam's ready-made meals have a short fridge life and need 1 to 1.5 hours in the oven, so they go on Sunday (or Monday).
  • The spicy Peri Peri Chicken Pasta is a make-ahead adult lunch, not a kids' dinner.
  • Quick 20-30 minute nights (TJ's Orange Chicken, Kevin's Thai Coconut, soup dumplings) and order-in nights (Domino's).
  • Skylight-only placeholders for eat-out and leftover nights ("OUT - 5 Guys," "Leftovers," "Takeout") so those nights still show on the frame.

Cleaning up the Apple Notes recipes

Inventory first

Claude started by reading every note in the Mains folder (34 recipes at the time) and reporting on each one: the cooking method (based on the directions, not the title), whether it's a recipe at all (some notes were rubs or brines), format problems, ingredients missing quantities, diet flags (peas, beans, avocado, thighs, heavy starch), and how well it would convert to the MultiPot.

That turned into a to-do list:

  1. I moved the slow-cooker recipes from Mains into a new Crock Pot folder myself. The Notes connector can't move notes or create folders, which in fairness also avoids duplicates.
  2. Claude converted the best Instant Pot and Crock Pot recipes to MultiPot versions. The Instant Pot folder is a conversion source only; we don't plan from it.
  3. Every chicken thigh became a chicken breast, with extra liquid (at least 1/2 to 1 cup) so it doesn't dry out on HI 3:00.
  4. MultiPot versions are separate notes titled like "Salsa Chicken (MultiPot)," in the Multi-Pot XL folder.

One format, defined by example

The first notes Claude wrote had way too much whitespace. Instead of trying to describe what I wanted, I fixed one note by hand ("BBQ Pulled Chicken & Cauliflower Mac (MultiPot)") and told Claude: that's the format, always. Claude read it back and wrote recipe-note-format.md to capture it exactly:

  1. Title (24px bold), with the appliance tag for converted versions.
  2. NOTES: one bold line with what the meal is and any planning notes.
  3. INGREDIENTS: (18px bold), then either a single bulleted list or a bold caps header per group. DualZone recipes use groups like "ZONE 1 (BBQ CHICKEN):".
  4. ON THE SIDE (NO COOK): for raw veggies and salad.
  5. DIRECTIONS: (18px bold) with numbered subsections: NIGHT BEFORE:, START:, WHEN DONE:.
  6. SERVING: bullets like "Kid swap: ..." and "Lunches: ...".
  7. A dashed separator and a SYNC footer.
  8. A #multipot tag line for MultiPot recipes.

Single blank lines between sections, nothing extra. The doc also includes the actual HTML the Notes connector needs to produce that layout (Apple's system bold font, font sizes, <ul> vs <ol>). Showing one good example beat three rounds of describing it.

The footer is what makes Notes and Skylight work together. One field per line:

-------------------------------------------------------------------
SYNC
Skylight ID: 
Last synced: 
Serves: 4
Make-ahead: night-before | 2-3 nights | none
Appliance: MultiPot-XL | MultiPot-DualZone | Crock Pot | Stovetop | Oven
Cook: Zone 1 Slow Cook HI 3:00; Zone 2 Slow Cook HI 2:30
Use: Dinner-any | Dinner-non-sports | Make-ahead (Dinner/Lunch) | Lunch-adults | ...
Active time: 10 min night before, 15 min at dinner
Plan: yes | no

Skylight ID and Last synced link the note to its Skylight copy. If a note's modified date is newer than its last sync, the Skylight recipe gets updated. That's how Notes stays canonical.

Make-ahead, Appliance, Cook, Use, and Active time are what Claude reads when picking meals. "Use: Dinner-non-sports" keeps a recipe off Monday through Thursday without me saying so.

Plan: no keeps a note in the folder without it ever being picked.

Recipe rules baked into every note

  • Chicken breasts only. Chicken slow cooks HI 3:00 with at least 1/2 to 1 cup of liquid.
  • Beef (chuck in 2-inch chunks) slow cooks HI 4:00.
  • Raw veggies are the default side.
  • Dairy and cheese go in when it's done, not at the start (except dips built to cook).
  • No peas, beans (green beans OK), avocado, or artificial dyes. Low-sodium broth.

Connector quirks

Two Apple Notes connector quirks cost me some time:

  • add_note puts the note name on its own plain first line, so a body that also has the title shows it twice. Claude creates the note with placeholder text, then calls update_note_content with the full HTML. The first line becomes the title.
  • The #multipot tag is written as plain text. It only becomes a real Notes tag after I click at the end of the line and add a space. Worse, rewriting a note through the connector resets an active tag back to plain text. So footer rewrites (like updating Skylight IDs) get batched, and Claude reminds me to re-activate tags once at the end.

Full detail in Skylight, too

The Skylight copy of each recipe gets the full detail: every ingredient with measurements, plus the night-before, start, and when-done steps. A one-line summary isn't enough when someone's standing at the counter reading the frame.

What's next

With the rules and recipes in place, planning a week becomes a single prompt and a short back-and-forth. That's Part 3.

Comments welcome!

Read More...

2026.11 Skylight MCP, Part 1: The Problem and the SetupOur recipes live in Apple Notes, our calendar lives on a Skylight, and the glue between them was me clicking buttons. Here's how an MCP server and Claude turned that into a conversation. 2026.11 Skylight MCP, Part 3: Planning a Real WeekOne prompt, a menu table, a few rounds of corrections, and then Claude writes the recipes, the meal plan, the prep reminders, and a sectioned grocery list. 2026.11 Skylight MCP, Part 4: Chores, Stars, and RewardsPointing the same Skylight MCP server at the kids' chore chart: what the reward data really looks like, the upstream fix it needed, a star economy priced off one exchange rate, and a ledger that outlives the API.