Health & sport · A4 landscape · v0.1.0
Meal Plan
Week-at-a-glance meal plan for the fridge door: seven equal day columns crossed with breakfast, lunch, dinner and snack, plus a tickable shopping list built from those meals and an optional nutrition-target strip. Pick it when a household plans a week of cooking.
Paste the prompt into Claude (or any agent that can fetch URLs) with your content — you get back a finished, self-contained HTML file. Manifest ↗
Live preview — the example content ships with the template and is replaced by your content.
What an agent may change — and what content you should have ready. Everything outside these slots is fixed by design.
Slots
| Slot | Type | Req. | Example |
|---|---|---|---|
doc-title |
text | yes | Weekmenu — week 36, huishouden Wolters |
plan-title |
text | yes | Weekmenu |
household-line |
text | yes | Marit & Pieter Wolters · Ties (9) & Fenna (6) · Deventer |
week-label |
text | yes | Week 36 · 31 Aug – 6 Sep 2026 |
meta-note |
text | no | Shop Saturday morning · Meat-free Mon & Wed · Fenna swims Thu 17.30 |
row-breakfast |
text | yes | Breakfast |
row-lunch |
text | yes | Lunch |
row-dinner |
text | yes | Dinner |
row-snack |
text | yes | Snack |
shopping-note |
text | no | Zaterdagmarkt + supermarkt, Sat 09.00 · staples assumed in stock · budget € 135 |
target-kcal |
text | no | 2.100 kcal |
target-protein |
text | no | 110 g |
target-veg |
text | no | 400 g + 2 st |
target-note |
text | no | Pieter is five weeks out from the Rotterdam marathon — carb-heavy Saturday and Sunday, a protein source at every dinner. |
notes-text |
html | no | <ul><li>Wednesday: double pan of pompoen-linzencurry — half for Thursday.</li><li>Snert is better on day two — hold two portions back for Monday.</li></ul> |
footer-line |
text | no | Wolters household · Deventer · planned Sat 29 Aug 2026 |
Repeat: day (1–7×)
One whole day column of the week grid: the day header plus that day's four meals. Add one block per day, Monday first, at most seven — columns six and seven are automatically tinted and coloured as the weekend.
| Slot | Type | Req. | Example |
|---|---|---|---|
day-label |
text | yes | Monday |
day-date |
date | yes | 31 Aug |
day-breakfast |
html | yes | Havermout met appel<span>kaneel · walnoot</span> |
day-lunch |
html | yes | Boterhammen oude kaas<span>+ komkommer, tomaat</span> |
day-dinner |
html | yes | Courgette-ricottapasta<span>20 min · vega</span> |
day-snack |
html | yes | Appels & amandelen<span>in de broodtrommel</span> |
Repeat: shopping-item (1–40×)
One line of the shopping list: a tick box, the item and its quantity. A section header (Produce, Bakery, Dairy & eggs, Fish & meat, Pantry, Frozen — supermarket walking order) is the same block with item-qty left empty and item-name set to only '<strong>Produce</strong>' — the tick box then disappears automatically.
| Slot | Type | Req. | Example |
|---|---|---|---|
item-name |
html | yes | Courgettes |
item-qty |
text | yes | 2 st |
Optional blocks
targets— Nutrition-target strip under the header (energy, protein, vegetables plus one line of context) for households training towards something.notes— Batch-cooking, freezing and leftovers notes in three columns below the shopping list.
The authoritative fill instructions from manifest.json — the only place a template may instruct an agent (why).
Delete every data-example element first. Add ONE 'day' block per planned day, Monday first, MAXIMUM 7; columns 6 and 7 are styled as the weekend automatically. day-date runs on ('31 Aug', '1 Sep'). Each meal is a dish name UNDER ~40 CHARS plus an optional short detail in a <span> — longer names break the seven equal columns. Never invent food: if the user gives only dinners, leave breakfast, lunch and snack as '—'. Mark a reheat night explicitly, e.g. 'Leftovers — Wednesday's curry'. THEN DERIVE THE SHOPPING LIST FROM THE MEALS ACTUALLY PLANNED — this is the real work, do it slowly: walk every dish, write down each ingredient it needs, MERGE duplicates into one line with the quantities added up (one 'Eieren 18 st', not three egg lines), then sort the lines by supermarket section and open each section with a header block (item-qty empty, item-name only '<strong>Produce</strong>'). Quantities metric: '500 g', '1,2 kg', '2 st', '2 × 400 ml'. Honour every stated dietary rule (meat-free days, allergies, halal) and never claim a dish is free of an allergen. Drop the targets block unless the user gave nutrition numbers, and the notes block if there is nothing real to say. Keep unknown household details as [FAMILY NAME] or [CITY] and tell the user to correct them with the Edit button.
Published versions are immutable: /t/meal-plan@{version}/ never changes once live. /t/meal-plan/ always points at the latest.