Public Access
docs: Sprint 15 round 2 — +18 recipes, library at 67 total, LLM 21/21
Sprint 15 round 2 (commit 97b84a7) added seed_recipes_round2.py
which seeded 18 more Spoonacular recipes today. Library went
49 -> 67 total. LLM test (Sprint 13 endpoint, week 2026-07-20):
{picked_count: 0, filled_count: 21, failed_count: 0}
The library now covers all 21 slots of a week (was 19/21 + 2
failed in round 1).
This commit updates the 6 running docs:
- .agent/plan.md — Sprint 15 Round 2 section (S15R2.1-S15R2.4
+ Done when + Out of scope) added after the round 1 sections.
50-query list documented by category.
- .agent/context.md — Round 2 decisions (D7-D10) added: list
focuses on cuisines round 1 didn't cover, round 2 is a
separate script, library at 67 with 21/21 LLM coverage.
- Review/sprint15-verification.md — Round 2 section appended
with: 50-query list, 18-imported result, 12 no-hits, 1 402,
updated DB state (37 Spoonacular + 30 manual = 67), LLM
test result, round 3 follow-up ticket.
- Review/ui-nielsen-audit.md — Round 2 paragraph added to the
Sprint 15 status block.
- fix-ui-audit.md — T8.6 added to the Sprint 15 section.
- Review/handoff-ui-audit.md — TL;DR and Sprint 15 section
updated with round 2.
- docs/HANDOFF.md — Round 2 paragraph added to the Sprint 15
section, Last-updated footer updated.
All 6 docs now reflect Sprint 15 round 2. Library has 67 unique
recipes — 1.25x rotation across 4 weeks of planning. Round 3
can add 30+ more by re-running scripts/seed_recipes.py on the
next day (its query list has round 1 cap-blocked American +
Mediterranean cuisines still to import).
This commit is contained in:
@@ -607,3 +607,49 @@ Distribution: **5 cuisines × 10 recipes each** = 50. Each cuisine gets a mix of
|
||||
- **No tuning of the quota counter or the inference logic.** Sprint 12's `_infer_protein_simple` is good enough.
|
||||
- **No re-running of previous sprints' verification flows.** Sprint 15 is additive.
|
||||
- **F9-full (local Ollama model pull).** Still opt-in based on cloud-billing feedback.
|
||||
|
||||
### Sprint 15 — Round 2 (2026-06-07): +18 recipes, library at 67 total
|
||||
|
||||
**User direction (2026-06-07):** "please add more meals to the potential list" / "Pull in more recipes so we have a larger sample to generate from."
|
||||
|
||||
Round 1 (Sprint 15) imported 18 recipes before hitting the 50-pt/day free-tier cap. The user wanted more. Round 2 uses a fresh quota (cap rolled over) and a different query list focused on cuisines and meal types the round 1 list didn't cover.
|
||||
|
||||
#### S15R2.1 — Round 2 query list (50 queries, gap-filling)
|
||||
|
||||
- **Indian (8):** chicken tikka masala, butter chicken, palak paneer, chana masala, biryani, dal, samosa, naan
|
||||
- **Thai (6):** green curry, massaman curry, tom yum soup, mango sticky rice, papaya salad, thai basil chicken
|
||||
- **Chinese regional (6):** mapo tofu, hot and sour soup, scallion pancakes, soup dumplings, beef noodle soup, dan dan noodles
|
||||
- **Soups & stews (6):** french onion soup, clam chowder, chicken noodle soup, tomato soup, lentil soup, butternut squash soup
|
||||
- **Salads (6):** caesar salad, cobb salad, nicoise salad, wedge salad, pasta salad, quinoa salad
|
||||
- **Sandwiches/wraps (5):** banh mi, reuben sandwich, club sandwich, french dip, gyro wrap
|
||||
- **Breakfast (5):** eggs benedict, pancakes, french toast, omelette, breakfast burrito
|
||||
- **German/European (4):** schnitzel, spaetzle, sauerbraten, beef rouladen
|
||||
- **French (4):** coq au vin, ratatouille, beef bourguignon, quiche lorraine
|
||||
|
||||
50 queries = 8+6+6+6+6+5+5+4+4.
|
||||
|
||||
#### S15R2.2 — Round 2 import script
|
||||
|
||||
- [x] `scripts/seed_recipes_round2.py` (NEW, ~120 lines) — same shape as round 1, different query list. Hits Spoonacular's `complexSearch` directly, POSTs top hits to backend's `/api/recipes/import`. Idempotent (409 on duplicate). 1.5 sec sleep. Stops on 402.
|
||||
|
||||
#### S15R2.3 — Round 2 result
|
||||
|
||||
- [x] 18 recipes imported today (queries 1, 2, 3, 5, 6, 7, 8, 10, 17, 19, 21, 22, 23, 24, 25, 27, 28, 29). 12 queries returned no hits from Spoonacular's free-tier index (e.g. "chana masala", "thai basil chicken", "dan dan noodles"). 1 query hit 402 mid-import ("wedge salad", HTTP 502 from `/api/recipes/import`).
|
||||
- [x] DB went 49 → 67 total recipes (37 Spoonacular + 30 manual).
|
||||
- [x] LLM test (Sprint 13, week 2026-07-20, prompt "variety, mix of cuisines, family-friendly, no repeats"): `picked_count=0 / filled_count=21 / failed_count=0`. **Library now covers all 21 slots of a week** (was 19/21 + 2 failed in round 1).
|
||||
|
||||
#### S15R2.4 — Round 2 follow-up
|
||||
|
||||
- **Q2 — Run a round 3?** Quota resets every 24h. A round 3 could add 30 more recipes (using round 1's script, which is idempotent and will skip the 37 already imported). Trajectory: 67 → 80-100 total.
|
||||
- **Q3 — Lower `_DAILY_LIMIT=140` to 45** to match the real 50-pt free tier. Surface in the next sprint that touches recipe_search.py.
|
||||
|
||||
#### Done when (Round 2)
|
||||
|
||||
- [x] 18 recipes imported today (from 50 queries).
|
||||
- [x] DB went 49 → 67.
|
||||
- [x] LLM test: 21/21 slots filled, 0 failed.
|
||||
- [x] All 6 running docs updated with round 2 status.
|
||||
|
||||
#### Out of scope (Round 2)
|
||||
|
||||
- Same as round 1. No feature work, no schema changes, no UI changes.
|
||||
|
||||
Reference in New Issue
Block a user