Make the menu pay: 10 AI skills for the menu you already print

allergen-matrix

the 14 allergens, dish by dish, in writing

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: allergen-matrix
description: Turns your recipes and your suppliers' specification sheets into a written allergen grid covering all 14 named allergens, dish by dish, with a staff version, a customer version and a named owner. Use when an environmental health officer asks for your allergen information, when you change a menu, or when the answer today is "ask the chef".
---

# Have the allergen answer in writing before anyone has to ask for it

You give this your dish list, your recipes including the sauces and the stocks, and the specification sheets or label photographs for everything you buy in. You get back a grid with the 14 named allergens across the top and every dish down the side, every cell filled with one of three answers and never left blank, plus the wording for the notice on the counter, the wording for the menu, and a named person with a date against the whole thing. It never marks a dish free from an allergen on the strength of a recipe alone.

## What it does

1. **List every dish, and every version of every dish, before looking at a single ingredient.** Start from the printed menu, then add the things that are not on it: specials, the children's menu, the Sunday roast, bar snacks, the bread and butter brought to the table, the garnish that only appears at Christmas, the sauce offered on the side, the vegan swap, the gluten-free base. Add the drinks, because sulphur dioxide lives in wine and milk lives in a flat white. Where one dish is served two ways, list it twice: a burger with a brioche bun and the same burger with a gluten-free bun are two rows, not one row with a note. A grid that covers 80% of what leaves the kitchen is more dangerous than no grid, because staff will trust it for the other 20%.

2. **Get a specification sheet for every bought-in ingredient, not a photograph of today's label.** Ask each supplier for the product specification against the supplier product code you order under. A label photograph tells you about one pack on one day; a specification covers the line. The technical guidance from the Food Standards Agency puts the duty plainly: businesses should "review ingredient information for foods provided by them and ensure that their suppliers provide them with the necessary information to meet their obligations". Where a supplier will not send one, record that in a list headed "no specification held" and keep the ingredient on it until they do. Every dish containing an ingredient on that list carries the same status through to the grid, because you cannot state what is in something nobody has told you about.

3. **Set the grid up with the 14 named allergens as columns, in the order the regulations name them.** The 14 are: celery; cereals containing gluten, namely wheat, rye, barley and oats; crustaceans; eggs; fish; lupin; milk; molluscs; mustard; peanuts; sesame; soybeans; sulphur dioxide and sulphites at more than 10mg per kilogram or 10mg per litre; and tree nuts, which the guidance itemises as "almond, hazelnut, walnut, cashew, pecan, Brazil, pistachio, Macadamia". Keep them as 14 separate columns. Never merge peanuts into nuts, because a peanut is a legume and somebody allergic to one is often fine with the other. Never merge gluten into wheat, because barley in a stock and rye in a bread are both gluten and neither is wheat.

4. **Break every dish down into its sub-recipes before filling a single cell.** The allergen is almost never in the headline ingredient. It is in the stock cube, the marinade, the dusting flour, the batter, the mayonnaise in the dressing, the anchovy in the Worcestershire sauce, the soy in the glaze, the sesame on the bun, the milk solids in the margarine, the sulphites on the dried apricot, and the oil the chips were fried in after the calamari. Write each sub-recipe out as its own row first, complete it, then roll it into every dish that uses it, so one change to the house dressing propagates everywhere it should. This is the step that finds the allergens, and a grid built straight from a menu description will miss most of them.

5. **Fill every cell with one of three answers, and leave none blank.** The three are: PRESENT, meaning the allergen is an ingredient; NOT PRESENT, meaning every ingredient and sub-recipe has been checked against a held specification and none contains it; and NOT CONFIRMED, meaning something in it has no specification, or a supplier has substituted, or nobody has checked yet. A blank cell reads as "no" to a member of staff standing in front of a customer, and that is the single most dangerous mark on the page. NOT CONFIRMED is an honest answer and it keeps someone safe; a blank is a guess wearing the appearance of a fact.

6. **Keep cross-contact separate from ingredients, in its own block underneath.** The grid records what is in the dish. What might get into it is a different statement and mixing the two makes both useless. The Food Standards Agency's best practice guidance gives usable wording for this, either specific, "May contain egg", or general, "We use peanuts, nuts, soy and wheat (gluten) in our kitchen, please speak to us so we can prepare your meal safely." Write one honest sentence about your own kitchen: the fryer shared with battered fish, the one board, the flour in the air on a baking day, the ice cream scoop. Do not write a blanket "may contain everything", because a warning that covers every dish tells a customer nothing and they will stop reading it.

7. **Write the two customer-facing sentences and put them where they are seen.** UK law allows allergen information for non-prepacked food to be given by any means including orally, but only if you point to it: the Food Information Regulations 2014 require the business to "indicate that details of that substance or product can be obtained by asking a member of staff", on a label or notice that is "readily discernible by an intending purchaser at the place where the intending purchaser chooses that food". The Food Standards Agency's best practice position goes further and is the one to follow, that allergen information should be "easily available in writing and be underpinned with a conversation". Use their wording: "We have a menu with allergen information, please speak to staff who will be happy to provide it" on the counter and the menu, and "Please talk to us if you have a food allergy, intolerance or coeliac disease. We want to cater safely for everyone."

8. **Produce a separate label for anything packed on site before it is sold.** Food you wrap, box or bag on the premises before a customer asks for it is prepacked for direct sale, defined in the technical guidance as "food that is packed before being offered for sale by the same food business to the final consumer: on the same premises; or on the same site; or on other premises if the food is offered for sale from a moveable and/or temporary premises (such as marquees, market stalls, mobile sales vehicles)". That covers the sandwich in the chiller, the boxed salad, the cake slice under the dome. It needs "the name of the food and an ingredients list including allergenic ingredients", and "the allergenic ingredients within the food must be emphasised every time they appear in the ingredients list". A dish made to order and handed over is not this, and a dish wrapped in advance is, even if it is the same dish.

9. **Name the person, date the grid, and write down what makes it wrong.** Put one name and one date at the top of every version, and list the triggers that make it out of date: a new dish, a changed recipe, a substituted delivery, a supplier changing a specification, a new supplier, a special. Beside the grid, write the two training lines the staff need, because the written grid only works with someone who can use it: the Food Standards Agency states that "staff should be sufficiently trained to have a conversation about allergens and know where to find the information they need to be able to give accurate information to the consumer". Print the staff version for the pass and the customer version for the counter, and keep the working file where the person named can change it, not on one manager's phone.

## Then it checks

1. Every dish on the printed menu, every special, every children's and vegan variant, every side, every sauce offered separately, the free bread and every drink appears as its own row, and any dish served two ways appears twice.
2. All 14 allergens appear as 14 separate columns in the order named by the regulations, with peanuts separate from tree nuts and cereals containing gluten naming wheat, rye, barley and oats.
3. No cell in the grid is blank. Every cell reads PRESENT, NOT PRESENT or NOT CONFIRMED, and every NOT CONFIRMED cell names the ingredient or the missing specification causing it.
4. Every NOT PRESENT cell is traceable to a held supplier specification for each ingredient and sub-recipe in that dish, and no dish containing an ingredient on the "no specification held" list carries a NOT PRESENT anywhere.
5. Cross-contact statements appear in their own block, separate from the grid, and describe this kitchen specifically rather than a blanket warning applied to every dish.
6. The grid carries one named person and one date, the list of triggers that invalidate it, the signposting sentence for the counter and the menu, and, where anything is packed on site before sale, a separate labelled ingredients list with the allergens emphasised.

Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop.

## Rules
- Public information only.
- Never invent a fact, a number or a quote.
- Anything sent in someone's name says whose name it is.
- Never mark a cell NOT PRESENT from a recipe, a dish name or a chef's memory. It is marked from a supplier specification for every ingredient in it, or it is marked NOT CONFIRMED, because the cells that hurt people are the confident ones.
- Never use "gluten free", "dairy free" or "nut free" as a description in this grid or on a menu unless the business can evidence the legal conditions for that claim. Those are defined terms with thresholds behind them, and an unevidenced one is both a food safety risk and a claim your local authority can act on.
- Never let one grid cover two sites. Suppliers, deliveries and kitchens differ, and a grid carried between branches becomes wrong the first time one of them takes a substitute delivery.
- Never treat this document as a substitute for the conversation. It exists so that the conversation has something accurate behind it, and the staff having that conversation still need training.
- This output is a working document prepared for the owner's environmental health officer or food safety adviser to check before it is used or displayed. It organises the information you supplied against published guidance. It is not advice on whether your business complies with food information law, and it does not certify any dish as safe for any individual.

## Built from
- Food Standards Agency, "Allergen information for non-prepacked foods best practice", https://www.gov.uk/government/publications/allergen-information-for-non-prepacked-foods-best-practice/allergen-information-for-non-prepacked-foods-best-practice, published 24 February 2025, read 14 September 2026: the written-plus-conversation standard, the two customer-facing sentences in step 7, the cross-contact wording in step 6 and the staff training line in step 9.
- The Food Information Regulations 2014, regulation 5, https://www.legislation.gov.uk/uksi/2014/1855/regulation/5/made, read 14 September 2026: the legal minimum for non-prepacked food, the requirement to "indicate that details of that substance or product can be obtained by asking a member of staff" and the "readily discernible" test that decides where the notice goes.
- Food Standards Agency, "Food allergen labelling and information requirements technical guidance", https://www.gov.uk/government/publications/food-allergen-labelling-and-information-requirements-technical-guidance/food-allergen-labelling-and-information-requirements-technical-guidance, published 23 August 2023, last updated March 2025, read 14 September 2026: the 14 allergens and the tree nut list in step 3, the supplier information duty in step 2, and the prepacked for direct sale definition and label contents in step 8.
- Regulation (EU) No 1169/2011, Article 7, https://www.legislation.gov.uk/eur/2011/1169/article/7, read 14 September 2026: the requirement that food information "shall be accurate, clear and easy to understand for the consumer", which is why step 5 bans the blank cell and step 6 bans the blanket warning.

Prompt for Codex

# allergen-matrix

## You are given
A folder from a UK hospitality business containing any of: a menu (PDF, DOCX or text), recipe files or a recipe spreadsheet, sub-recipe sheets for stocks, sauces and dressings, supplier product specification sheets (PDF or CSV), and label photographs. Nothing is consistently named. Some ingredients will have no specification at all.

## Produce
Write into an `output/` folder next to the inputs:

1. `allergen-matrix.xlsx` with sheets `Matrix`, `Sub-recipes`, `No specification held` and `Cross contact`.
   `Matrix` has column A `Dish`, column B `Menu section`, column C `Variant` (for example "gluten-free bun"), then exactly 14 allergen columns in this order: `Celery`, `Cereals containing gluten`, `Crustaceans`, `Eggs`, `Fish`, `Lupin`, `Milk`, `Molluscs`, `Mustard`, `Peanuts`, `Sesame`, `Soybeans`, `Sulphur dioxide and sulphites`, `Tree nuts`. Then `Sub-recipes used`, `Evidence` (the specification filenames relied on) and `Last checked`.
   Every allergen cell must contain exactly one of `PRESENT`, `NOT PRESENT` or `NOT CONFIRMED`. Never leave a cell empty.
   `Sub-recipes` has the same 14 columns with a `Sub-recipe` column instead of `Dish`.
   `No specification held` has `Ingredient`, `Supplier`, `Used in` (comma separated dishes), `Requested on`.
   `Cross contact` has `Statement`, `Applies to`, `Reason` (for example "shared fryer").
2. `allergen-matrix.csv` - the `Matrix` sheet, flat.
3. `allergen-staff-sheet.md` - the matrix laid out to print on A4 landscape for the pass, plus the training note and the trigger list.
4. `allergen-customer-notice.md` - the counter and menu wording, one page.
5. `ppds-labels.csv` with `Item`, `Name of the food`, `Ingredients list` (allergens in CAPITALS every time they appear), for any item flagged as packed on site before sale.
6. `README.md` - files read, dish count, cell counts by state, and everything that could not be resolved.

## Rules
- A cell is `NOT PRESENT` only if every ingredient and every sub-recipe in that dish is covered by a supplied specification and none lists that allergen. Otherwise it is `NOT CONFIRMED`. Never infer absence from a dish name or a recipe alone.
- Keep peanuts and tree nuts as separate columns. Keep cereals containing gluten as one column and name wheat, rye, barley and oats in the `Evidence` note where relevant.
- Resolve sub-recipes first, then roll their results into every dish that uses them.
- Cross contact never goes in the 14 columns. It goes only in the `Cross contact` sheet.
- Do not write "gluten free", "dairy free" or "nut free" anywhere in the output.
- One dish served two ways is two rows.
- British English, DD Month YYYY dates. No em dashes. No emoji.

## Return
The absolute paths of the files written, the number of dishes and sub-recipes covered, the count of cells in each of the three states, the number of ingredients with no specification, and any dish where every cell came out `NOT CONFIRMED`.

Built from the best public work on this

Sources for allergen-matrix

Everything below was opened and read on 14 September 2026. Nothing is cited that could not be loaded.

1. Food Standards Agency, "Allergen information for non-prepacked foods best practice"

https://www.gov.uk/government/publications/allergen-information-for-non-prepacked-foods-best-practice/allergen-information-for-non-prepacked-foods-best-practice, published 24 February 2025, applies to England, Northern Ireland and Wales, read 14 September 2026.

This is the Food Standards Agency's best practice guidance for exactly the businesses this skill is written for: restaurants, cafés, takeaways, pubs and anyone selling food that is not in a sealed pack. It is the most important source in the set because it sets a standard above the legal minimum, and it says why.

Its overarching position is that allergen information should be "easily available in writing and be underpinned with a conversation", and that the written information must be "easy to use", "clear", "comprehensive" and "accurate". That single sentence is the shape of this whole skill: the grid is the writing, the trained staff member is the conversation, and neither is offered as a substitute for the other. Step 7 takes its two customer-facing sentences verbatim, "We have a menu with allergen information, please speak to staff who will be happy to provide it" and "Please talk to us if you have a food allergy, intolerance or coeliac disease. We want to cater safely for everyone", because wording drafted and published by the regulator is better than wording invented by an agent and it removes a decision the owner should not have to make at eleven o'clock at night.

Step 6 comes from its cross-contamination section, which offers both a specific form, "May contain egg", and a general one, "We use peanuts, nuts, soy and wheat (gluten) in our kitchen, please speak to us so we can prepare your meal safely." Step 9 takes its training line: "staff should be sufficiently trained to have a conversation about allergens and know where to find the information they need to be able to give accurate information to the consumer", written alongside its point that inaccurate information can be "life threatening".

Where the skill departs from the source: the guidance is best practice and is careful to say so, while this skill treats the written grid as compulsory rather than recommended. That is a deliberate hardening, and the reason is practical rather than legal. An owner who decides to answer verbally still needs the information to answer from, and the moment they write it down for their own staff they have built the grid anyway. The skill also goes beyond the guidance by refusing to allow a blank cell, which the guidance does not address, because in a real kitchen a blank is read as a no.

2. The Food Information Regulations 2014, regulation 5

https://www.legislation.gov.uk/uksi/2014/1855/regulation/5/made, SI 2014 No. 1855, read 14 September 2026.

The UK statutory instrument behind non-prepacked allergen information, headed "Foods that are not prepacked etc. containing an allergenic substance or product etc." It provides that a food business operator offering a relevant food "may make available the particulars specified in Article 9(1)(c) ... by any means the operator chooses, including ... orally", and that where the oral route is chosen the operator must "indicate that details of that substance or product can be obtained by asking a member of staff", on a label or notice "readily discernible by an intending purchaser at the place where the intending purchaser chooses that food". A relevant food is one where an Annex II ingredient or processing aid "has been used in its manufacture or preparation and that is still present in the finished product".

Two things in the skill come straight from this. First, the legal floor is genuinely low, and owners who have heard that "it can be verbal" are not wrong. Second, the part they usually have not heard is the signposting condition attached to it, and "readily discernible ... at the place where the intending purchaser chooses that food" is a location test, not a filing test. A notice in the entrance lobby when people choose at the counter does not meet it, and neither does a folder behind the bar that nobody is told about. That is why step 7 places the sentence at the point of choice rather than simply requiring that one exists.

Where the skill departs from the source: it does not stop at the legal minimum. It follows the Agency's written-plus-conversation standard instead, and says openly that this is above what regulation 5 requires. It also makes no assessment of whether any particular business meets regulation 5, which is a question for that business's environmental health officer.

3. Food Standards Agency, "Food allergen labelling and information requirements technical guidance"

https://www.gov.uk/government/publications/food-allergen-labelling-and-information-requirements-technical-guidance/food-allergen-labelling-and-information-requirements-technical-guidance, published 23 August 2023, last updated March 2025, read 14 September 2026.

The long technical guidance, and the source for the parts of the skill that have to be exactly right. The 14 allergens in step 3 are taken from it, including the itemised tree nut list, "almond, hazelnut, walnut, cashew, pecan, Brazil, pistachio, Macadamia", the gluten entry naming "wheat (such as spelt and Khorasan wheat), rye, barley, oats", and the sulphites threshold of 10 mg/kg or 10 mg/litre. That level of detail is why the skill insists on 14 separate columns: the guidance treats peanuts and tree nuts as two separate entries and a grid that merges them has destroyed the distinction a customer's life may depend on.

Step 8 is built on its definition of prepacked for direct sale, "food that is packed before being offered for sale by the same food business to the final consumer: on the same premises; or on the same site; or on other premises if the food is offered for sale from a moveable and/or temporary premises (such as marquees, market stalls, mobile sales vehicles)", and on the label requirement that PPDS food must show "the name of the food and an ingredients list including allergenic ingredients" with "the allergenic ingredients within the food ... emphasised every time they appear in the ingredients list". Step 2 comes from its statement that businesses should "review ingredient information for foods provided by them and ensure that their suppliers provide them with the necessary information to meet their obligations" and "ensure that the allergen information is current and accurate".

Where the skill departs from the source: the technical guidance is long, covers manufacturers and distance selling as well as caterers, and is written for people who read regulations. The skill takes the caterer's slice of it and nothing else, and it does not attempt to summarise the exemptions, the distance selling rules or the manufacturing provisions. Anything outside a kitchen making food for people in front of it is out of scope and is handed to the owner's food safety adviser.

4. Regulation (EU) No 1169/2011, Article 7, "Fair information practices"

https://www.legislation.gov.uk/eur/2011/1169/article/7, read 14 September 2026.

The retained food information regulation, Article 7, which provides that food information "shall not be misleading, particularly ... as to the characteristics of the food and, in particular, as to its nature, identity, properties, composition", and that it "shall be accurate, clear and easy to understand for the consumer". Article 7(4) extends all of this to advertising and to the presentation of food.

It is quoted here for one narrow purpose, and it is the purpose behind two of the skill's hardest rules. A blank cell in an allergen grid is information that is neither accurate nor clear, and it will be read as a statement that the allergen is absent. A blanket "may contain all 14 allergens" printed against every dish is the same failure from the opposite direction: it is technically unfalsifiable, it protects the business rather than the customer, and after a week nobody reads it. Both are covered by "accurate, clear and easy to understand", and Article 7 is what the skill points at when it refuses them.

Where the skill departs from the source: Article 7 is a general fairness provision aimed mostly at labelling and marketing, and it is used in the next skill in this pack for that job. Here it is used only as the standard the grid is held to, and the skill makes no assessment of whether any particular wording breaches it.

Best public prompt we found for this job

The closest public artefact is the `compliance-tracking` skill in Anthropic's `knowledge-work-plugins` repository, https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/operations/skills/compliance-tracking/SKILL.md. The repository has 24,016 stars, read from api.github.com. It is a corporate controls tracker rather than anything to do with food, but its central discipline is the one an allergen grid lives or dies by. The lines worth copying are its evidence requirements:

What evidence is needed for each control ... Where evidence is stored ... When evidence was last collected

Transposed: which supplier specification supports this cell, where that specification is kept, and when it was last checked. That is the whole of steps 2 and 9, and it is what separates a grid an environmental health officer accepts from a grid that is a typed-up memory.

What was not copied: its remediation framing, which assumes a gap can sit in a prioritised plan with a timeline to compliance. An allergen gap cannot wait for a quarter. The skill handles a gap by marking the cell NOT CONFIRMED immediately, which changes what staff say to a customer that same service, rather than logging it as an item for later. Its control ownership model was also left out in favour of one named person and one date on the document itself, because a hospitality business does not have a controls register and asking it to build one is how the grid never gets written at all.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.