Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add semperi/restaurant-marketing-skills --skill menu-descriptionsgit clone --depth 1 https://github.com/semperi/restaurant-marketing-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/semperi/restaurant-marketing-skills/menu-descriptions)<a href="https://agentmods.dev/skills/semperi/restaurant-marketing-skills/menu-descriptions"><img src="https://agentmods.dev/badge/skills/semperi/restaurant-marketing-skills/menu-descriptions/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/semperi/restaurant-marketing-skills/menu-descriptions"><img src="https://agentmods.dev/badge/skills/semperi/restaurant-marketing-skills/menu-descriptions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00070 | $0.01999 |
| Opus 5 | $0.00035 | $0.01000 |
| Sonnet 5 | $0.00014 | $0.00400 |
| Haiku 4.5 | $0.00007 | $0.00200 |
Grade A, and why
menu-descriptions scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 154 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Menu Descriptions
You get one or two lines per dish that tell a guest what they are actually getting, in the restaurant's own words. Concrete, not flowery. Built only from ingredients and preparation you gave — nothing invented, and never a dietary or allergen claim.
What to paste
| What | Where to find it | If you don't have it |
|---|---|---|
| The dish names, exactly as they appear on the menu | Your menu | Nothing to write about — paste the list first |
| What is actually in each dish | You know; the kitchen knows | Write nothing for that dish and ask; never guess an ingredient |
| How it is cooked | You know | Leave the method out — describe only what you were told |
| How the restaurant talks | The restaurant-voice.md file if one exists, or the owner's own words |
Use plain, warm, unfussy English and say so |
| A line or two guests have said about the dish | Your reviews | Write from the ingredients alone |
| The cuisine and the city | You know it | Ask once, then reuse it |
Everything in that table is the whole truth available to you — see Never do this below.
Quick start
Owner: "short rib — braised 6 hours in red wine, served on mash with gremolata"
→ Name what it is, how it is cooked, what it comes with. 15-30 words.
→ Use the owner's own dish name, unchanged.
→ No dietary claim, no price, no "our famous".
→ Show the draft → Owner approves → owner puts it on the menu.
Workflow
Step 1 — Take stock of what you were actually given
For each dish, list what you know: the name, the ingredients, the method, anything a guest has said about it. That list is your ceiling.
A dish with only a name and no ingredients cannot be described. Do not write "tender, slow-cooked perfection" to cover the gap — ask what is in it. If something is missing, note it in the output ("no ingredients given for the gnocchi — skipped") rather than guessing or failing.
Step 2 — Write fifteen to thirty words per dish
- Lead with the thing itself. What it is, then how it is cooked, then what it comes with.
- Use the ingredients as the specifics. "Braised six hours in red wine" is worth more than any adjective, and it is true.
- Keep the owner's dish name exactly as written. Do not rename the Gran Fried Rice to Grandma's Fried Rice, do not translate it, do not fix its spelling without asking.
- One sentence is usually enough. Two if the dish genuinely has two parts.
- No filler adjectives. "Delicious", "mouth-watering", "perfectly cooked", "to die for" — cut every one. They describe nothing and every menu already has them.
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 154 lines · 70 tokens per session scan A cd4466c5e063
menu-descriptions is a skill published in the GitHub repository semperi/restaurant-marketing-skills (1 stars, last pushed 1mo ago), licensed MIT. It adds 70 tokens to every session and 1,999 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
restaurant-local-seo
Local SEO audit — "best [cuisine] near me" targeting, Google Business Profile optimization, NAP consistency, citation building, restaurant schema markup.
exploratory-data-analysis
Perform bounded, local exploratory analysis of explicitly supported scientific files. Use for redacted CSV/TSV/JSON profiles; optional NumPy, HDF5, FASTA/FASTQ, and basic image metadata inspection; missingness/leakage audits; outlier and transformation sensitivity; and rigorous EDA report scaffolds. Other domain…
google-ads-audit
Google Ads account audit and business context setup. Use for account-health audits and business-context setup. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run…
data-charts-tako
Search and visualize the world's data - get charts, insights, and embeddable knowledge cards for finance, economics, demographics, sports, and more.
webhook-management
Configure and validate CCAM webhook targets across supported chat, incident, automation, and generic providers. Use when listing provider requirements, creating or updating a target, scoping it to alert rules, sending a test notification, reviewing delivery history, or deleting a target.
gesellschaftsrechtliche-satzungen-agb
Für Gesellschaftsrechtliche Satzungen AGB Abgrenzung: ordnet Norm, Beweislast und Gegenargument; Ergebnis: Prüfprodukt mit Risiko und nächstem Schritt. Fachgebiet: AGB-Recht-Prüfer. Route: gesellschaftsrechtliche-satzungen-agb.