diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index c0acda2..ed6e0c3 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -2,26 +2,26 @@ You are taking over a project in mid-flight. Read `docs/ORIENTATION.md` first for the high-level. This file is the deep dive: what's real, what's stubbed, where the bodies are buried, and what to do next. -**Date of handoff: 2026-05-10. Last commits before handoff:** +**Date of handoff: 2026-05-12. Last commits before handoff:** ``` +b522760 fix: cast qty/unit to str before html.escape in vote email shopping preview +dbc26bc feat: LLM-powered second-pass ingredient matcher + matcher improvements +b03e7f8 feat: Spoonacular recipe enrichment — images + descriptions for 25/30 recipes +a98f0dc docs: update HANDOFF.md for 2026-05-10 session 2373883 fix: exact-name fast path in matcher + save priceless produce in scraper -d7a3f5c fix: matcher exclusion words + precision floor for clean grocery matching -ac2b575 fix: rewrite matcher as ingredient-centric with precision×recall scoring -aeed2a4 feat: add cooking instructions to vote email; shopping list grouped by meal -59a15a2 fix: nginx DNS resolver, port 8081, seed script with real family data ``` --- ## TL;DR -The system is **fully operational end-to-end** on the Woolery family's home network. All six orchestration steps run cleanly (scrape → generate → email → reminder → deadline → finalize). Vote emails reach real inboxes with ingredient lists and collapsible cooking steps. Shopping list emails group ingredients by meal with accurate Lucky CA prices. +The system is **fully operational end-to-end** on the Woolery family's home network. Vote emails now show recipe images, descriptions, ingredient lists, cooking steps, estimated costs, and a shopping list preview. Peter confirmed the email looks polished; Julia's feedback pending. -The ingredient↔grocery matcher was completely rewritten in this session and is now ingredient-centric with precision×recall scoring, a category exclusion word list, and an exact-name fast path. Match accuracy went from ~25% correct to ~90%+ correct. +**Match accuracy:** 10,140 AUTO + 3 AUTO_LLM matches. 22 ingredients remain unmatched (genuine Lucky CA catalog gaps: olive oil, dried spices, chickpeas, etc.). -The **two approved next tasks** are: -1. **Spoonacular enrichment** — recipe images + descriptions for all 107 recipes -2. **Ollama LLM matcher** — for a second pass on ingredients Lucky CA doesn't carry in the weekly ad (e.g. Olive Oil, Corn Tortillas) +**Next tasks:** +1. **Spoonacular enrichment (5 remaining)** — run `scripts/enrich_recipes_spoonacular.py` again; 5 recipes still need images (daily quota was hit on 2026-05-11) +2. **Phase 8 Feedback UI** — `feedback` table exists; no UI reads/writes it yet --- @@ -294,4 +294,4 @@ docs/superpowers/plans/ Trust the tests. Trust the live runs. Don't trust prose claims that something is "complete" without running the verification gate yourself. -**Last updated: 2026-05-10** — Matcher rewritten, vote email enriched with cooking steps, shopping list grouped by meal, scraper saves priceless produce, Woolery family live on wt0. Next pickup: Spoonacular enrichment + Ollama LLM matcher. +**Last updated: 2026-05-12** — Spoonacular enrichment (102/107 recipes), LLM matcher built (Ollama Cloud kimi-k2.6), AUTO matcher improved (plural normalization, precision floor 0.45→0.30), vote email confirmed polished by Peter. Next: run Spoonacular script again for 5 remaining recipes; Phase 8 Feedback UI.