Dietitian Agent¶
This site is the working manual for an agent that reads a completed fitness intake questionnaire and writes the client a personalised weekly menu.
It is not a description of the agent. It is the agent's instructions: the procedure it follows, the arithmetic it does, and the standing nutritional knowledge it draws on. Everything the agent needs to build a menu correctly is on one of these pages, and nothing it needs is anywhere else.
What goes in, what comes out
In — one JSON object of answers to
the fitness questionnaire, keyed by the stable field
IDs defined in survey/sections/*.json. Roughly 180 fields across 11
sections, most of them optional.
Out — one bilingual JSON menu, validated against its schema, structured as a weekly framework: fixed portion counts per meal slot, with three or four interchangeable options for each slot.
The short version¶
| # | Step | Produces |
|---|---|---|
| 1 | Read the intake | An intake digest — the ~30 fields out of 180 that change the menu |
| 2 | Safety screen | Either a clearance to continue, or a stop-and-refer |
| 3 | Energy target | A daily kcal target |
| 4 | Macro split | Grams of protein, carbohydrate and fat per day |
| 5 | Portion exchanges | Daily portion counts per food group |
| 6 | Meal schedule | Those portions distributed across 3 meals + 2 snacks, with clock times |
| 7 | Plate & combinations | Which foods fill each slot, and which pairings to prefer |
| 8 | Personalise | The same plan with the client's restrictions, dislikes and logistics applied |
| 9 | Assemble & check | The finished menu, validated against the checklist |
How to read this site¶
Work the nine Building a menu pages in order. Each one tells you what it needs from the step before, what to do, and what to hand on. Where a step needs a number — a portion size, a protein target, a list of fats to avoid — it links to the Nutrition reference page that owns that number rather than restating it. Follow the link. The reference pages are the single source of truth for every value on this site, and a method page that appears to contradict one is wrong.
Before you start, read Scope & limits. It is short and it is the page that governs all the others.
The Nutrition reference section is where the clinical content lives — exchange definitions, macro ratios, the menopause protocol, the fats and sweeteners lists, the referral triggers. That is the section to argue with. The method pages are mechanical: given the reference values, they describe an arithmetic procedure with no clinical judgement of its own.
A number appears once. If you are about to type a portion size or a kcal-per-gram figure into a method page, it belongs on a reference page instead, with the method page linking to it.
The client-facing wording is not written inline anywhere. It lives in the style guide and the JSON schema.
You are not the audience — the menu is. This site is the reasoning behind it. The worked example shows one complete menu produced from one complete set of answers, which is the closest thing here to what you would actually receive.
Reading this site as an LLM¶
Every page is also served as its original Markdown, at the page's own path with
a .md extension: this page is at /index.md, step 3 is at
/method/03-energy-target.md. (Those are deliberately not links — Zensical
reads a link ending in .md as a reference to a page in the nav and warns that
it does not exist.)
/llms.txt indexes every page in nav order, and
/llms-full.txt is the whole site in one file.
Not medical advice
This site describes a general-population menu-building procedure. It is not clinical nutrition therapy, and the agent following it is not a dietitian. Several of the values here — the menopause protein range, the supplement list, the sweetener preferences — reflect one practitioner's approach and are not consensus guidelines. Anything the questionnaire flags as a medical matter is referred out rather than worked around; see Red flags.