Make the menu pay: 10 AI skills for the menu you already print
menu-swap
change three lines, not the whole menu
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: menu-swap description: Picks the three lines on your menu worth changing, says exactly what each one becomes, and lists every place the change has to reach before it is done. Use when the menu needs fixing but a full reprint is not happening. --- # Change three lines, not the whole menu You give this a photo or a PDF of the menu you currently print, a sales report showing what sold over the last two or three months, and whatever you know about what each dish costs you. You get back three specific changes, each with the exact wording and price to use, the money each one is expected to move, and a list of every place the change has to land: the printed menu, the website, the delivery apps, the till, the board and the allergen record. It changes three lines. It does not redesign your menu. ## What it does 1. **Freeze the menu you have and number every line on it before anything else.** Take the current menu exactly as a customer sees it and write out every item in order, with its section, its position within that section, its printed description word for word, and its price. Number them. This list is the reference for the whole job, and it stops a change being described as "the chicken dish" when there are three. Record the physical format at the same time: how many pages, printed in-house or by a printer, laminated or not, how many copies are in the building, and when they were last reprinted. A menu on a single laminated A3 sheet has different options to one run off a colour laser on a Sunday, and the options decide what kind of change is possible. 2. **Put the last eight to twelve weeks of sales against every numbered line.** Pull units sold per dish from the till for a stated date range and write it against the line number. Eight weeks is the minimum that survives one bad week of weather, and twelve is better. Note anything that distorts it: a bank holiday, a closure, a week the fryer was down, a dish that only went on halfway through. Then add the cost of each dish if you have it, and the cash gross profit per unit, which is the selling price excluding VAT minus the plate cost. Where you have no cost for a dish, leave the cell empty and say so. An empty cell is information. A guessed cost is the thing that makes the whole recommendation wrong, because it will always be the guessed dish that looks like the problem. 3. **Rank the menu by cash contribution, and separately by units, and find where the two disagree.** Cash contribution is units sold multiplied by cash gross profit per unit. Rank descending, then rank by units alone. Lines high on units and low on cash are bleeding you slowly, and are usually the cheapest main and the house burger. Lines low on both are dead. Lines high on cash and low on units are the ones to move up the page rather than change at all. Print all three groups with their numbers from step 1, because the owner needs to see the ranking that produced the recommendation, not just the recommendation. A menu decision an owner cannot check is one they will quietly ignore. 4. **Choose exactly three changes, and make them three different kinds of change.** The three that pay most often are: one removal and replacement, taking the deadest line and putting something in its slot that uses ingredients already on the order list; one reprice, on the line with the highest units and the lowest cash gross profit, because a small move there touches the most customers; and one reword or reposition, on the strongest cash line, moving it to the top of its section or into the first three items where it will actually be read. Three is the limit and it is a real limit. Change fifteen lines and you cannot tell which change did what, the kitchen has fifteen new specs to learn in a week, and the reprint you were avoiding happens anyway. Write each change as: line number, what it is now, what it becomes, why, and the expected effect in pounds over the same period the sales data covers. 5. **Prove the replacement dish can be made from what you already buy.** Take the proposed new line and list its components against the current order list from your suppliers. Every component that is not already on that list is a new stock line: a new delivery, a new date to watch, a new thing to go out of date, and a new price to negotiate. If the replacement needs more than one new ingredient, change it until it needs one or none. The point of a three-line swap is that nothing else in the operation moves. Then write the dish spec: portion weights, the plate it goes on, the garnish, and the hold time, so it comes out the same whoever is on section. A new line with no spec becomes three different dishes within a fortnight and the cost you calculated stops being true. 6. **List what the changes trigger, because a menu change is never only a menu change.** Allergen information has to move with the dish. The government's allergen guidance for food businesses is explicit that allergen ingredient information must be "included in recipes or explanations of the dishes provided - you need to consider the impact when recipes change", and that for loose food you may give "full written allergen information on a menu, chalkboard or in an information pack" or give it "verbally, with a written notice placed in a clearly visible position explaining how your customers can obtain this information". So every changed line needs its allergen entry rewritten before it is sold, not after. Second, if the business is large enough to be caught by calorie labelling in England, the new line needs a calorie figure. Under the Calorie Labelling (Out of Home Sector) (England) Regulations 2021, made 27 July 2021 and in force 6 April 2022, "a business is a qualifying business during a financial year if ... on the first day of that financial year the business has 250 or more employees", and a qualifying business must show "the energy content ... in kilocalories, followed by the letters 'kcal'" along with "the statement that 'adults need around 2000 kcal a day'", placed "on the menu, next to the description or the price". Most independents are well under the threshold, so the skill asks the employee number rather than assuming, and says plainly which way the answer went. 7. **Choose the cheapest honest way to get the change in front of customers.** In order of cost: change the online menu and the delivery apps, which costs nothing and is where a growing share of customers read the menu anyway; overprint or reprint one section rather than the whole menu if the format allows; use a clean printed insert card that matches the menu's typeface, never a handwritten sticker over an old price; or reprint. What you may not do is leave an old price printed and charge a new one. Get a price from the printer for a full reprint anyway and put it in the output next to the cost of the alternatives, because an owner who can see that a reprint is ninety pounds will sometimes just reprint, and an owner who assumes it is four hundred will live with a sticker for a year. 8. **Write the three changed lines in final form, ready to drop straight in.** Each one gets the section it sits in, the position within that section, the dish name, the description in the same voice and roughly the same length as the lines around it, the price as it will be printed, and the allergen entry underneath for the kitchen's record. Match the house style: if every other description is seven to ten words with no adjectives, the new one is seven to ten words with no adjectives. Do not write a claim you cannot evidence, so no supplier name without an invoice showing it, no "homemade" for a bought-in component, no "local" without a distance you could defend. And check the new price against the lines either side of it, because a price that is out of step with its neighbours reads as a mistake and gets questioned at the table. 9. **Publish the change everywhere the menu lives, on one day, and set the date you will judge it.** List every location and tick it off: the printed menu, the menu on the website, the PDF someone uploaded three years ago, Google Business Profile, each delivery app, the board outside, the till buttons and their prices, the specials brief, the allergen file, and the menus in the function folder. Missing one is how a customer arrives expecting a price that no longer exists. Then set a review date four to six weeks out and write down now the three numbers you will judge it by: units sold on each changed line, cash contribution of each changed line, and total covers, so you can tell a real improvement from a busier month. Write them down before the change, because afterwards everyone remembers the menu having worked. ## Then it checks 1. Exactly three changes are recommended, each references a line number from the frozen menu in step 1, and each is a different kind of change rather than three reprices. 2. Every recommendation is supported by units sold and cash contribution over a stated date range of at least eight weeks, and any dish with no cost figure is shown as blank rather than estimated. 3. Every replacement dish lists its components against the current supplier order list, and no replacement introduces more than one new stock line. 4. Every changed line carries a rewritten allergen entry covering all 14 allergens, produced before the line is put on sale rather than after. 5. The output states whether the business meets the 250 employee test for calorie labelling in England, and if it does, every changed line shows a kcal figure and the required daily intake statement. 6. The publication checklist names every place the menu appears, including the website, Google Business Profile, each delivery app and the till, and no changed price appears in one place while an old price is still printed in another. 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 recommend more than three changes, however many bad lines the data shows. Three is what a kitchen can absorb in a week and what you can still attribute a result to. The fourth change is next month's job, and it will be a better decision for having seen what the first three did. - Never fill a missing dish cost with an estimate to complete a ranking. The estimated line will be the one that looks worst and the one the owner deletes, and it will have been the estimate that was wrong, not the dish. - Never leave an old printed price in circulation once a new price is live. Charging a price different from the one printed in front of the customer is the fastest way to turn a margin improvement into a complaint and a trading standards call. - Never remove a dish without checking what it is doing on the menu beyond its own sales. The lowest-selling line is sometimes the reason a group of six chooses you, and the sales report cannot see that. Ask the floor team before deleting anything that has been on the menu for years. - This output is a working document prepared for the owner's accountant and, on the allergen and calorie labelling points, their environmental health officer to check before it is used. It reads sales and states arithmetic; it is not advice on food information law, and nothing in it should be treated as a ruling on what your business is required to display. ## Built from - Department of Health and Social Care and Food Standards Agency, "Allergen guidance for food businesses", https://www.gov.uk/government/publications/allergen-guidance-for-food-businesses/allergen-guidance-for-food-businesses, published 2 April 2020 and updated 17 July 2026, read 14 September 2026: the requirement to consider the impact when recipes change and the two lawful ways of giving allergen information for loose food, which is the whole of step 6's first half and check 4. - The Calorie Labelling (Out of Home Sector) (England) Regulations 2021, https://www.legislation.gov.uk/uksi/2021/909/made, made 27 July 2021, in force 6 April 2022, read 14 September 2026: the 250 employee test in regulation 7 and the display requirements in regulation 5 including "kcal" and the 2000 kcal statement, which set step 6's second half and check 5. - The Calorie Labelling (Out of Home Sector) (England) Regulations 2021, regulation 3, https://www.legislation.gov.uk/uksi/2021/909/regulation/3/made, read 14 September 2026: the scope test that the food must be "offered for sale in a form which is suitable for immediate consumption" and "is not prepacked food", which is why the skill asks about the business rather than assuming a restaurant is automatically in or out. - Business Companion, published by the Chartered Trading Standards Institute, "Providing price information", https://www.businesscompanion.info/en/quick-guides/pricing-and-payment/providing-price-information, last updated April 2026, read 14 September 2026: the confirmation that the Price Marking Order 2004 "applies to goods only" and "does not apply to services or to goods supplied in the course of the provision of a service", which is why step 7 argues the printed-price point on practical and consumer-protection grounds rather than citing the Price Marking Order at a restaurant.
Prompt for Codex
# menu-swap ## You are given A folder from a UK restaurant, pub, cafe, bar or hotel containing any of: the menu as it is currently printed (PDF, DOCX or a clear photograph of every page), a till or EPOS sales export covering at least eight weeks with a dish name and units sold, a plate cost or dish costing file (CSV or XLSX), the current supplier order list or recent delivery notes, supplier allergen specification sheets, and a printer's quote. The folder also contains a decisions file written by the owner or by Claude naming exactly three changes: for each one, the line number it applies to, which of the three kinds of change it is, what the line becomes (name, description and price), and where the replacement dish's components come from. Codex writes up those three changes. It does not choose them, add a fourth, or substitute one it thinks is better. The owner also states in writing how many employees the business had on the first day of its current financial year. Column names will not match between files and dish names will not match exactly, so match on an exact string first, then a normalised match (lower case, punctuation and plural stripped), and never on a fuzzy guess. ## Produce Write into an `output/` folder next to the inputs: 1. `menu-lines.csv` with columns in this order: `line_no`, `section`, `position_in_section`, `dish_name`, `description_as_printed`, `price_printed_inc_vat_gbp`, `symbols`, `page`, `source_file`. Every item on the menu in the order a customer reads it, transcribed exactly as printed including any spelling error. 2. `line-performance.csv` with columns in this order: `line_no`, `dish_name`, `section`, `period_start`, `period_end`, `weeks_covered`, `units_sold`, `gross_sales_inc_vat_gbp`, `price_excl_vat_gbp`, `plate_cost_gbp`, `cost_source`, `cash_gp_per_unit_gbp`, `cash_contribution_gbp`, `rank_by_cash_contribution`, `rank_by_units`, `rank_gap`, `group`, `distortion_note`. `group` is one of `high units low cash`, `low units low cash`, `high cash low units` or `neither`. `distortion_note` records a bank holiday, a closure, equipment down or a part-period listing, taken from the inputs. 3. `no-cost-held.csv` with columns: `line_no`, `dish_name`, `units_sold`, `reason`. Every dish with no plate cost. These rows keep an empty `plate_cost_gbp` and an empty `cash_contribution_gbp` in `line-performance.csv` and are excluded from both rankings. 4. `changes.csv` with columns in this order: `change_no`, `change_type`, `line_no`, `now_name`, `now_description`, `now_price_inc_vat_gbp`, `becomes_name`, `becomes_description`, `becomes_price_inc_vat_gbp`, `becomes_section`, `becomes_position`, `units_sold_period`, `cash_gp_per_unit_now_gbp`, `cash_gp_per_unit_after_gbp`, `expected_period_effect_gbp`, `basis_of_effect`, `decisions_file_reference`. `change_type` is one of `remove and replace`, `reprice`, `reword or reposition`. Exactly three rows. `expected_period_effect_gbp` = `units_sold_period` x (`cash_gp_per_unit_after_gbp` - `cash_gp_per_unit_now_gbp`), at unchanged volume, and `basis_of_effect` says so in those words. 5. `replacement-components.csv` with columns in this order: `change_no`, `component`, `quantity_per_portion`, `base_unit`, `supplier`, `on_current_order_list`, `supplier_product_code`, `pack_size_as_printed`, `pack_price_net_of_vat_gbp`, `invoice_or_delivery_note`, `invoice_date`, `price_per_base_unit_gbp`, `line_cost_gbp`, `new_stock_line`. `on_current_order_list` and `new_stock_line` are `yes` or `no`. Count the `yes` values in `new_stock_line` per change and report the count. 6. `new-line-spec-<dish-slug>.md` for each replacement dish, one printable A4 page: the component table with portion weights, the plate or bowl, the garnish, the hold time and the finished plate cost, all taken from the decisions file and the costing inputs. 7. `allergen-entries.csv` with column A `change_no`, column B `line_no`, column C `dish_name`, 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 `Components covered`, `Specification files relied on`, `Last checked`. Every allergen cell contains exactly one of `PRESENT`, `NOT PRESENT` or `NOT CONFIRMED`. Never leave a cell empty. 8. `publication-checklist.csv` with columns: `location`, `owner`, `how_it_is_changed`, `date_changed`, `checked_by`, `old_price_removed`. Write one row for each of, at minimum: the printed menu, the laminated copies, the menu page on the website, any PDF menu on the website, Google Business Profile, each delivery app named individually, the till buttons, the board outside, the specials brief, the allergen file, and the menus in the function and events folder. Add any other place the inputs show the menu appearing. 9. `swap-report.md` - under 900 words. The three changes with the pound effect of each, the top ten and bottom ten lines by cash contribution with their line numbers, the menu format as read from the inputs (pages, printed in-house or by a printer, laminated or not, copies in the building, last reprinted), a table of the ways to get the change in front of customers with the quoted cost of each and the printer's quote for a full reprint beside them, one line stating the employee number supplied and whether it meets or does not meet the 250 employee test for calorie labelling in England, the review baseline (units sold and cash contribution on each changed line and total covers, with the period they were measured over and the review date), and a list headed "could not be costed" naming every line and why. ## Rules - Exactly three changes. If the decisions file names more or fewer than three, write every file, leave `changes.csv` empty, and say so in `swap-report.md`. - Every figure must trace to a supplied input file. Never fill a missing plate cost, unit count, price or printer's quote with an estimate, a percentage, a trade average or a web price. The gap goes in `no-cost-held.csv` or in the "could not be costed" list. - **Never infer an allergen status.** A cell is `NOT PRESENT` only where every component of that dish is covered by a supplied specification and none of those specifications lists that allergen. Otherwise it is `NOT CONFIRMED`. Never read an allergen off a dish name, a recipe or a product name. - Never write a claim into a replacement description. No supplier or farm name without an invoice in the inputs showing it, no "homemade" for a bought-in component, no "local" without a distance in the inputs, no "fresh" for anything the inputs show as defrosted, and no "gluten free" or "vegan" at all. - Copy the replacement name, description and price from the decisions file. Do not rewrite them, do not lengthen them and do not add adjectives. If a supplied description is a different length or voice from the lines around it, record that as a line in `swap-report.md` rather than editing it. - Only raise calorie labelling content if the employee number supplied is 250 or more. If it is fewer, write one line in `swap-report.md` recording it as out of scope and write no kcal figure anywhere. Never calculate a kcal figure. - Sales periods of fewer than eight weeks are used but the week count and the shortfall are stated in `swap-report.md`. - Purchase prices go in net of VAT, selling prices as the customer pays them, and cash gross profit is calculated on the VAT-exclusive selling price. - Round only at the point of display, to two decimal places. - Every finding and every row cites a `line_no` from `menu-lines.csv`. - British English, £, DD Month YYYY dates. No em dashes. No emoji. - Every output file carries, as its first line or its first row, the words: `Working document for the owner's accountant, and on the allergen and calorie points their environmental health officer, to check before anything is printed.` - Publish nothing, send nothing and change nothing on any website, delivery app or till. `publication-checklist.csv` is a list to be worked through by a person. ## Return A list of the files written with their absolute paths and row counts, the number of lines transcribed from the menu, the date range and week count of the sales data, the number of dishes with no plate cost, the number of new stock lines each replacement introduces, the count of allergen cells in each of the three states, whether the calorie labelling threshold was met or not met, and any change in the decisions file that could not be written up with the reason.
Built from the best public work on this
Sources for menu-swap
Everything below was opened and read on 14 September 2026. Nothing is cited that could not be loaded.
1. Department of Health and Social Care and Food Standards Agency, "Allergen guidance for food businesses"
https://www.gov.uk/government/publications/allergen-guidance-for-food-businesses/allergen-guidance-for-food-businesses, published 2 April 2020, updated 17 July 2026, read 14 September 2026.
This is the UK government's guidance for food businesses on allergen information, maintained with the Food Standards Agency and published on GOV.UK. It is cited here for one line, and that line is the reason step 6 exists at all: allergen ingredient information must be "included in recipes or explanations of the dishes provided - you need to consider the impact when recipes change".
A three-line menu swap is a recipe change three times over. The failure this guards against is entirely mundane: a kitchen swaps a dish, the printed menu gets updated, the delivery app gets updated, and the allergen folder in the office still describes the dish that came off two months ago. Nobody notices until somebody asks, and the person who answers reads out the wrong information in good faith. Check 4 therefore requires the allergen entry to be rewritten before the line goes on sale, not after.
The two lawful delivery routes are quoted into step 6 because a swap can change which one you are relying on. The guidance permits "full written allergen information on a menu, chalkboard or in an information pack", or giving it "verbally, with a written notice placed in a clearly visible position explaining how your customers can obtain this information". A business whose menu carries full written allergen information has just made its printed menu wrong in a second way when it changes a dish, and a business relying on the verbal route has to make sure the person doing the talking has been told.
Where the skill departs from the source: the guidance sets out an obligation and says nothing about sequencing. The instruction that the allergen entry is written before the description, and that it is sourced from supplier specifications rather than the dish name, is the skill's own working practice and is presented as such.
2. The Calorie Labelling (Out of Home Sector) (England) Regulations 2021
https://www.legislation.gov.uk/uksi/2021/909/made, made 27 July 2021, in force 6 April 2022, read 14 September 2026. Regulation 3 was also read separately at https://www.legislation.gov.uk/uksi/2021/909/regulation/3/made.
This is the statutory instrument itself on legislation.gov.uk. It was read rather than a summary because almost every trade article about calorie labelling gets the scope test slightly wrong, usually by describing it as "large businesses" without the number or the timing.
Three provisions shaped step 6 and check 5. Regulation 7 sets the scope: "a business is a qualifying business during a financial year if ... on the first day of that financial year the business has 250 or more employees". The timing matters as much as the number, because it is tested on the first day of the financial year, not on the day the menu changes. Regulation 5 sets what must be shown: "the energy content ... in kilocalories, followed by the letters 'kcal'", together with "the statement that 'adults need around 2000 kcal a day'", and it must appear "on the menu, next to the description or the price" for menu items, "on a label identifying the food concerned" for displayed items, and for websites and apps "as part of the description of each item". Regulation 3 sets the food in scope: food that "is offered for sale in a form which is suitable for immediate consumption", "is not prepacked food", and "is not exempt food".
The practical consequence for a three-line swap is small but real. A qualifying business changing three lines has to produce three new calorie figures and get them into every one of those locations, which is a materially bigger job than a reprice. So the skill asks the employee number rather than assuming, and says in the output which way the answer went. Most independent restaurants are far below 250 employees and the answer will be no, but an owner who has just taken on a third site should be asked rather than told.
Where the skill departs from the source: the Regulations apply to England. The skill does not state the position in Scotland, Wales or Northern Ireland, because those were not read, and it does not calculate calorie figures, because doing that properly needs analysed recipe data and is not something a menu-swap exercise should improvise. It flags the obligation and hands it on.
3. Business Companion, "Providing price information"
https://www.businesscompanion.info/en/quick-guides/pricing-and-payment/providing-price-information, last updated April 2026, read 14 September 2026.
Business Companion is published by the Chartered Trading Standards Institute with government backing. This page was opened expecting to cite the Price Marking Order 2004 at restaurant menu pricing, and it is included precisely because it said the opposite of what was expected.
The page states that the Price Marking Order 2004 "applies to goods only" and "does not apply to services or to goods supplied in the course of the provision of a service". A meal served at a table is supplied in the course of a service, so the Order that governs shelf-edge pricing in a shop is not the instrument that governs your menu. Two other sources were probed on the same point and could not be quoted: The Price Marking (Food and Drink on Premises) Order 1979 at https://www.legislation.gov.uk/uksi/1979/361/made is available on legislation.gov.uk only as a scanned PDF and its text could not be read, and the Northern Ireland equivalent appeared in a search result but was not opened. The skill therefore makes no claim about what a restaurant is legally required to display.
What survives is the honest version, and it is what step 7 and the rules say: do not leave an old printed price in circulation while charging a new one. That is argued on practical and consumer-protection grounds, it is the thing that generates the complaint at the table, and the legal question is handed to the owner's adviser rather than answered.
This is a deliberate departure, and it is the most useful thing in this file. A source that refuses to support the claim you wanted is more valuable than one that appears to, and the alternative here would have been to cite the Price Marking Order 2004 at a restaurant menu, which is wrong, and which a great many hospitality blog posts do.
Best public prompt we found for this job
The largest public prompt collection is prompts.chat, formerly Awesome ChatGPT Prompts, at https://api.github.com/repos/f/awesome-chatgpt-prompts, which reported **170,307 stars** and 21,910 forks when the API was read on 14 September 2026, last pushed 2026-09-09. The prompt text was read from https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv.
The nearest entry is "Restaurant Owner", quoted verbatim: "I want you to act as a Restaurant Owner. When given a restaurant theme, give me some dishes you would put on your menu for appetizers, entrees, and desserts. Give me basic recipes for these dishes. Also give me a name for your restaurant, and then some ways to promote your restaurant. The first prompt is 'Taco Truck'"
The one line worth copying is the pattern of pinning the model to a single named input rather than a theme in the abstract. This skill takes that much further: the input is the owner's existing numbered menu, and every recommendation has to cite a line number from it.
What was deliberately not copied: the entire premise. That prompt writes a menu from nothing, which is the single most common and least useful thing an AI does with a restaurant menu. An owner with a trading business does not need a new menu; they need three lines changed on the one already printed, with the sales data to justify each change and a list of the eleven places the change has to reach. There is no sales data, no cost, no allergen handling, no publication checklist and no limit on how much it changes. None of its wording appears in this skill.
Searches were also run for a menu-engineering or menu-costing repository that could be cited with a verified star count. Nothing suitable was found that could be opened, and no further star count could be verified for this skill because api.github.com began returning "API rate limit exceeded" during the session. The 170,307 figure above was read from api.github.com before that happened. No star count in this file has been taken from a blog, a search snippet or a README badge.
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.
Foxera