docs: update HANDOFF for 2026-05-12 session

Spoonacular enrichment, LLM matcher, plural normalization, email confirmed polished.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-12 11:43:34 -07:00
co-authored by Claude Sonnet 4.6
parent b52276056c
commit e618b2bd5a
+11 -11
View File
@@ -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. 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 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 ## 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: **Next tasks:**
1. **Spoonacular enrichment** — recipe images + descriptions for all 107 recipes 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. **Ollama LLM matcher** — for a second pass on ingredients Lucky CA doesn't carry in the weekly ad (e.g. Olive Oil, Corn Tortillas) 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. 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.