agentleFS
mgummichmgummich/mealie-skill/skill/SKILL.md

mealie

Skill1 starsChanged 3 months agoMITView on GitHub

Maintains a Mealie instance. Improve recipes (fill empty fields, parse ingredients against the food list, translate steps, convert to metric, set an image), clean up foods and units (description, plural, label, aliases, merge duplicates), consolidate categories/tags/tools, create cookbooks, find duplicate recipes and dead links, derive diet tags, import a recipe from a URL, fill the meal plan. Use whenever the user works on their recipe library: ingredient parsing, foods, duplicates, cookbooks, tagging, planning the week's meals, adding a recipe URL — Mealie need not be named.

  • Reads credentials

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. jcsaaddupuy/badrobots★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repositoryOne other file it gives its agents.

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always three phases: ANALYSIS -> PLAN -> EXECUTION.

    line 8
  2. Distinctive:

    Never mix two kinds of task in one plan.

    line 10
  3. Distinctive:

    Read only the reference for the current mode, not all of them:

    line 14
  4. Distinctive:

    Read that file only once phase 2 is due.

    line 29
  5. Very specific:

    Read references/mcp.md whenever the mcp-mealie MCP server is connected — it changes how every other mode gathers its data.

    line 31
  6. Very specific:

    If the mcp-mealie MCP server is connected, use it instead for analysis: it answers the audit questions server-side, so the index is not …

    line 106
  7. Very specific:

    If the caveman skill is available, activate it for this workflow.

    line 115
  8. Very specific:

    All content in ${CONTENT_LANG}.

    line 135
  9. Distinctive:

    Search before creating - for foods, units and organizers alike.

    line 141
  10. Very specific:

    Keep batches small: at most 25 food/unit gaps or 5 duplicate/organizer groups per run.

    line 148

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Mealie maintenance

Always three phases: ANALYSIS -> PLAN -> EXECUTION. Nothing is written without explicit approval of the plan. Never mix two kinds of task in one plan.

Pick a mode and read the matching reference

Read only the reference for the current mode, not all of them:

TaskReference
Clean up a recipe, parse ingredients, fill fieldsreferences/recipes.md
Foods: gaps, matching, duplicatesreferences/foods.md
Units: gaps, duplicates, converting to metricreferences/units.md
Shopping-list labels: palette, gaps, axisreferences/labels.md
Consolidate categories, tags, toolsreferences/organizers.md
Create or rework a cookbookreferences/cookbooks.md
Duplicate recipes, broken ingredient lines, dead links, diet tagsreferences/maintenance.md
The extras field on recipes, foods and unitsreferences/extras.md
Meal plan, recipe import from a URL, working with the MCP serverreferences/mcp.md

The ACTIONS format is the same for every mode: references/actions.md. Read that file only once phase 2 is due.

Read references/mcp.md whenever the mcp-mealie MCP server is connected — it changes how every other mode gathers its data.

Tool

scripts/mealie_ctx.py wraps every API call. Do not read its source, call it with --help.

The path is relative to this skill directory, not to the working directory — prefix every call with it, otherwise the command is not found:

python .agents/skills/mealie/scripts/mealie_ctx.py <command>

setup [--check]                    check the connection, store credentials
index [--refresh]                  build the local recipe index
audit <what> [--limit N]           foods units labels categories tags
                                   tools recipes links extras
ctx recipe <slug> [--search T]     recipe + matching foods + organizers
                  [--full]         unabridged JSON, rarely needed
ctx <what> [--limit N] [--group G] foods units categories tags tools
                                   cookbooks diet
usage <kind> <id>                  recipes using a food/unit/category/tag/tool
convert "<amount>" [...]           non-metric amount -> metric + the
                                   Original: note; also °F and inch
rules [--init]                     house rules of this instance
seed labels|units|all [--out F]    actions for a fixed vocabulary
apply <file> [--slug S] [--dry-run]

The first audit call builds the index (one pass over all recipes, takes a while depending on the size of the instance). Every later audit reads from it. After each writing apply the index is discarded and rebuilt.

Three of these replace things you would otherwise write out by hand, badly:

  • convert holds the density table and the rounding rules and returns the Original: note. Never convert an imperial amount in your head.
  • rules prints this instance's decisions - locale, category axis, container assumptions, the table resolving bare foods (pepper -> black pepper [ground]). Read it before creating or renaming anything, and add a row rather than deciding the same question twice.
  • seed writes the fixed vocabularies - the 29 labels with their zone colours, the metric unit set - as an ACTIONS file, skipping what exists.

apply logs every action to .mealie.changelog.jsonl with the state it overwrote, refuses a patch_recipe that would shorten a list field and a cookbook payload written for Mealie 1.x (one queryFilterString, never tags/categories/tools/requireAll*), and lints the plan - fatally for a non-metric unit. --dry-run runs the same checks. Details in references/actions.md.

Context commands return filtered data already. Never load full tables unfiltered, never build recipe loops by hand - that is what the index is for.

Environment variables: MEALIE_URL, MEALIE_TOKEN — MEALIE_API_TOKEN (the mcp-mealie name for the token), MEALIE_BASE_URL and MEALIE_API_KEY are read as well. If they are unset, the script reads them from .mealie.env and then from .env in the working directory. Any command that finds neither aborts with a hint to setup.

The script needs network access to the instance. In a sandboxed environment the call fails with a connection error even though URL and token are correct - that is a permission of the environment, not a bug in the configuration. Say so and let the user allow the call. Never work around it with a hand-written HTTP script: mealie_ctx.py is the only path to the API, and a second one has neither the order guard nor the dry run. Where the MCP server is connected, its calls run through the server and are not affected.

setup --check only probes the configuration and is safe to run yourself - use it once at the start of a session when the connection is unclear. Plain setup prompts for URL and token and must be run by the user, not by you: ask for it and wait. Never ask for the token in the chat and never write it into a file yourself.

If the mcp-mealie MCP server is connected, use it instead for analysis: it answers the audit questions server-side, so the index is not built at all, and it covers what this script deliberately lacks — meal plan, recipe import from a URL, interactive recipe search. The script keeps the ordered batch: plans that need ORDER or a dry run over the whole set still go through actions.json and apply. Read references/mcp.md first.

Output style: caveman

If the caveman skill is available, activate it for this workflow. Audits, plans and reports are long tabular outputs - exactly the case where compression pays off. Without the skill: answer normally, but tersely - tables instead of prose, no repetition of what the tool already printed.

Only the chat output is compressed - analysis, plan, report, your interim comments. Two things stay full ${CONTENT_LANG} prose:

  • Everything written to Mealie, i.e. everything in actions.json. It is database content, not chat; see references/actions.md.
  • Warnings about destructive operations, questions when unsure and the approval question. For a merge that rewrites 14 recipes, being unambiguous is worth more than a few saved tokens.

Rules for every mode

Invent nothing: ingredients, amounts and steps are only structured, translated and corrected, never added or dropped. Existing correct values stay.

All content in ${CONTENT_LANG}; established culinary terms (sous-vide, roux, ganache) stay as they are. Metric units.

Mark estimates in the report. When in doubt leave a field empty instead of guessing.

Search before creating - for foods, units and organizers alike. Check spelling variants, singular/plural and foreign-language equivalents too.

Mark destructive operations (merge_*, delete_organizer, retag_recipe) explicitly in the plan, with the number of affected recipes, and point out that they cannot be undone.

Keep batches small: at most 25 food/unit gaps or 5 duplicate/organizer groups per run. Recipes have their own rule - one recipe per plan for ingredients, steps and notes, any number for field-level changes; see references/recipes.md.

On an abort, no speculative repair attempts - report the state reached and ask.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.