diff --git a/Chicken Burrito Bowl.md b/Chicken Burrito Bowl.md index c3fe517..b9d9852 100644 --- a/Chicken Burrito Bowl.md +++ b/Chicken Burrito Bowl.md @@ -54,5 +54,4 @@ Divide the cilantro-lime rice between bowls. Add a bed of shredded lettuce, then ## Notes - **Nice-to-haves:** pickled jalapeños - Always keep chicken in a single layer when searing — crowding the pan causes steaming instead of browning -- Cubed chicken cooks fast; don -'t walk away! \ No newline at end of file +- Cubed chicken cooks fast; don't walk away! \ No newline at end of file diff --git a/hello-fresh-import-notes.md b/hello-fresh-import-notes.md new file mode 100644 index 0000000..3804805 --- /dev/null +++ b/hello-fresh-import-notes.md @@ -0,0 +1,82 @@ +# HelloFresh → Mealie import notes + +Lessons from processing the chowder recipe. Use as a checklist when adding another HelloFresh recipe. + +## 1. Shipped quantities ≠ recipe quantities + +HelloFresh ships fixed packets, and the recipe usually uses only part of them. + +- Keep ingredient amounts as the **shipped amount**. Do not "correct" them to match the steps. +- Leftovers are expected, not a data-entry error. +- Examples from this session: + - `1 tbsp Old Bay Seasoning` — step uses "half" + `¼ tsp`; remainder is left over. + - `1 tsp sugar` — step uses `¼ tsp`; remainder is left over. +- Stock concentrate ships as packets ("2 unit Veggie Stock Concentrate"). If packets are unavailable, recording it as `2 tablespoons` is intentional and fine. + +**Rule:** before touching a quantity, ask/confirm whether it is the shipped amount. + +## 2. Servings + +- Mealie stores **one base serving count** (`recipeServings`). There is no native "2 or 4" option. +- Set the base (HelloFresh recipes here are usually **2**). Use Mealie's built-in servings selector to scale to 4. +- Mealie scales **structured ingredient quantities only**, not instruction text. +- Also set the yield text (`recipeYield`, e.g. `"2 servings"`). `recipeYieldQuantity` may stay `0`; the MCP tool does not expose it. + +## 3. Strip hardcoded multi-serving notes from instructions + +HelloFresh instructions embed scaling clauses. Remove them so the built-in scaler doesn't conflict: + +- `(... 4 TBSP for 4 servings)` +- `(... 2½ cups for 4 servings)` +- `(For 4 servings, use ½ tsp Old Bay and ½ tsp sugar.)` + +Keep the tips and the rest of the step text. The 2-serving amounts are the base and can stay. + +## 4. Times + +- HelloFresh gives **Total** and **Prep**; derive `cook = total − prep`. +- In this Mealie instance the UI showed **`performTime` as "Cook time"**, not `cookTime`. That is why setting only `cookTime` still displayed 10m. +- Set **all four**: `totalTime`, `prepTime`, `cookTime`, and `performTime` (perform = cook duration) so every view agrees. +- Sanity check: `prep + cook = total`. + +## 5. Link ingredients to steps + +- Structured ingredients already carry a `referenceId` (UUID v4). +- Add `ingredientReferences: [{ referenceId }]` to each instruction step, reusing the **exact** existing referenceId. +- This is what "organize ingredients under steps" means in Mealie: cook-mode highlighting and per-step ingredient lists. +- Do not regenerate referenceIds; that breaks the link. + +## 6. Watch parser/unit artifacts + +The NLP parser can map `unit` inconsistently (`item`, `can`, `tablespoon`). + +- Verify units against the source text (`originalText`). +- Confirm intentional choices (e.g. tbsp for stock concentrate) before "fixing" them. +- Clean food names: remove trailing spaces (e.g. `green/poblano pepper `), normalize odd capitalization. + +## 7. Sanity checks before finishing + +- [ ] Every listed ingredient is used by at least one step. +- [ ] Step quantities are consistent with the list **or** explainable as shipped leftovers. +- [ ] Times add up (prep + cook = total) and `performTime` is set. +- [ ] Servings set; yield text set. +- [ ] No hardcoded "for 4 servings" clauses left. +- [ ] Every step has the right `ingredientReferences`. +- [ ] Don't "fix" source-recipe quirks (e.g. description says "cheddar" while the ingredient is Monterey Jack) — that's HelloFresh copy, not a data-entry error. + +## 8. Tool behavior (Mealie MCP) + +- `update_recipe` **replaces** ingredient/instruction lists when provided; content changes use read-merge-write to preserve other fields. +- Omitted or `null` fields are unchanged. +- `recipeYieldQuantity` is not exposed by the tool. +- Unicode fractions and curly quotes round-trip fine. + +## 9. Suggested workflow + +1. `get_recipes(search=...)` → `get_recipe(slug)`. +2. Confirm name, source URL, and base servings. +3. Cross-check each ingredient against the steps (used / unused / shipped leftover). +4. Fix genuine errors: units, food names, times, yield — confirming shipped amounts first. +5. Remove `for 4 servings` clauses. +6. Add `ingredientReferences` to every step. +7. Re-fetch and verify times, servings, ref counts, and display strings.