Domain knowledge for assigning Mealie recipe categories and tags. USE FOR: classifying recipes; generating or reviewing tags; writing LLM prompts that assign taxonomy; migrating legacy category values; deciding which categories/tags to apply to a new or translated recipe. DO NOT USE FOR: general coding tasks; writing tests; documentation style.
Recipes are indexed across two orthogonal dimensions: categories (course / meal position) and tags (descriptive attributes).
Always read the authoritative vocabulary from docs/TAXONOMY.md — that file is the single source of truth.
The summary below is provided for quick reference.
| Field | Role | Cardinality |
|---|---|---|
categories | Course / meal position | Controlled list (~12 values) |
tags | Descriptive attributes | Open, extendable, multi-value |
breakfast · brunch · lunch · dinner · snack · dessert
appetizer · side · drink · condiment · bread · baked-goods
Migration: the legacy value
mainmust be migrated todinner.
brazilian, italian, french, japanese, mexican, portuguese, …chicken, beef, pasta, cheese, egg, potato, …vegetarian, vegan, gluten-free, dairy-free, low-carb, …baked, fried, grilled, one-pot, slow-cooked, no-cook, …sweet, savory, spicy, creamy, smoky, tangy, …quick (≤30 min), make-ahead, meal-prep, weeknight, weekend-projectpao-de-queijo, lasagna, brigadeiro, feijoada, …gluten-free, pao-de-queijo).breakfast, dinner, …) go in categories only, never tags.When generating tags with an LLM:
See tools/generate_tags.py for the reference implementation.