Maestro task 243a6812-f52b-4215-a4a2-8eb599914f7e. The second idea generator: the Quick dinners screen's two tabs. POST /api/v1/ideas/quick {kind, exclude[]} returns 202 {jobId} and fills progressively, exactly as ideas_from_ingredients does — same harness skill interface, same prompt/checksum registration, same grounding, per-idea publication, failed-result projection and job shape, so there stays one architecture.
Enforced in code, from grounded facts:crockpot keeps dinners whose grounded method is crockpot/slow cooker; under30 keeps minutes_total ≤ 30. The model's own estimate never decides, and non-compliant ideas are dropped after grounding rather than relabelled. The skill over-generates so a page has up to six survivors, and fewer than six is returned honestly rather than padded. exclude names are never returned, using the harness's existing normalization rather than a second comparator.
What the Quick dinners screen (next tasks) consumes: each idea carries name, uses, missing, summary, method, minutes_total, difficulty, quick, recipe_id, photo_url, source_url, site_name; minutes_total can be null for the crock-pot tab but never for the 30-minute tab, so the row meta must handle "Crock pot · Medium" without a time. "↻ Show me more" posts the same kind with exclude set to every name shown so far on that tab; no_ideas_found on a later page means nothing more is left.
The developer reports the Go quality floor passing and the four tests named in the done-condition. No web file is in this delta.
## quick_ideas skill and job (Feature 18, task 2)
Maestro task `243a6812-f52b-4215-a4a2-8eb599914f7e`. The second idea generator: the Quick dinners screen's two tabs. `POST /api/v1/ideas/quick {kind, exclude[]}` returns 202 `{jobId}` and fills progressively, exactly as `ideas_from_ingredients` does — same harness skill interface, same prompt/checksum registration, same grounding, per-idea publication, failed-result projection and job shape, so there stays one architecture.
**Enforced in code, from grounded facts:** `crockpot` keeps dinners whose grounded method is crockpot/slow cooker; `under30` keeps `minutes_total ≤ 30`. The model's own estimate never decides, and non-compliant ideas are dropped after grounding rather than relabelled. The skill over-generates so a page has up to six survivors, and fewer than six is returned honestly rather than padded. `exclude` names are never returned, using the harness's existing normalization rather than a second comparator.
**What the Quick dinners screen (next tasks) consumes:** each idea carries `name`, `uses`, `missing`, `summary`, `method`, `minutes_total`, `difficulty`, `quick`, `recipe_id`, `photo_url`, `source_url`, `site_name`; `minutes_total` can be null for the crock-pot tab but never for the 30-minute tab, so the row meta must handle "Crock pot · Medium" without a time. "↻ Show me more" posts the same kind with `exclude` set to every name shown so far on that tab; `no_ideas_found` on a later page means nothing more is left.
The developer reports the Go quality floor passing and the four tests named in the done-condition. No web file is in this delta.
quick_ideas v1 suggests Quick dinners of one kind, crockpot or under30,
from the household context, never returning a name already shown: the
exclude list is checked against normalized names with harness.Similar.
POST /api/v1/ideas/quick {kind, exclude[]} validates both fields (no
default kind) and answers 202 {jobId}; the quick_ideas job asks for 12
ideas, grounds them through the same GroundEach rounds as
ideas_from_ingredients and keeps up to 6 whose grounded recipe is of the
kind (crockpot: method crockpot; under30: minutes_total <= 30), so the
model's estimate never decides. Fewer survivors make a shorter page,
never a padded one.
The grounding loop, failure clearing and failed-result view are now
shared generic helpers used by both idea jobs rather than a second copy.
Maestro task 243a6812-f52b-4215-a4a2-8eb599914f7e.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
quick_ideas skill and job (Feature 18, task 2)
Maestro task
243a6812-f52b-4215-a4a2-8eb599914f7e. The second idea generator: the Quick dinners screen's two tabs.POST /api/v1/ideas/quick {kind, exclude[]}returns 202{jobId}and fills progressively, exactly asideas_from_ingredientsdoes — same harness skill interface, same prompt/checksum registration, same grounding, per-idea publication, failed-result projection and job shape, so there stays one architecture.Enforced in code, from grounded facts:
crockpotkeeps dinners whose grounded method is crockpot/slow cooker;under30keepsminutes_total ≤ 30. The model's own estimate never decides, and non-compliant ideas are dropped after grounding rather than relabelled. The skill over-generates so a page has up to six survivors, and fewer than six is returned honestly rather than padded.excludenames are never returned, using the harness's existing normalization rather than a second comparator.What the Quick dinners screen (next tasks) consumes: each idea carries
name,uses,missing,summary,method,minutes_total,difficulty,quick,recipe_id,photo_url,source_url,site_name;minutes_totalcan be null for the crock-pot tab but never for the 30-minute tab, so the row meta must handle "Crock pot · Medium" without a time. "↻ Show me more" posts the same kind withexcludeset to every name shown so far on that tab;no_ideas_foundon a later page means nothing more is left.The developer reports the Go quality floor passing and the four tests named in the done-condition. No web file is in this delta.
quick_ideas v1 suggests Quick dinners of one kind, crockpot or under30, from the household context, never returning a name already shown: the exclude list is checked against normalized names with harness.Similar. POST /api/v1/ideas/quick {kind, exclude[]} validates both fields (no default kind) and answers 202 {jobId}; the quick_ideas job asks for 12 ideas, grounds them through the same GroundEach rounds as ideas_from_ingredients and keeps up to 6 whose grounded recipe is of the kind (crockpot: method crockpot; under30: minutes_total <= 30), so the model's estimate never decides. Fewer survivors make a shorter page, never a padded one. The grounding loop, failure clearing and failed-result view are now shared generic helpers used by both idea jobs rather than a second copy. Maestro task 243a6812-f52b-4215-a4a2-8eb599914f7e. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Independent Codex gpt-6-sol review: APPROVED for this exact commit.