Skip to content

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.