Done-condition: internal/ai/skills implements draft_week v1 per CTXD PROMPTS.MD section 3 - input is week_start plus a candidate pool [{id, name, kind, method, minutes}] and recent history; output {days:[{date, dinner_id}], note}; validators require exactly 7 consecutive dates Mon-Sun, every dinner_id in the pool, no dinner twice, note <= 160 chars; repeating last week's dinners when the pool has alternatives warns instead of failing; golden tests with the Fake provider cover a valid week, an unknown id repaired, a duplicate dinner repaired, wrong dates failing twice -> ErrBadOutput, and a pool smaller than 7 returning a typed "not enough dinners" error before any LLM call; Go quality floor passes.
Follows the merged suggest_side_quests skill v1 and the Feature 09 harness; the plan service/API, rotation check and all UI remain later tasks.
Maestro task `7ab59240-a4fd-43cf-b195-4698c8747491` - "draft_week skill" (Feature 14: Weekly Plan Builder).
Done-condition: internal/ai/skills implements draft_week v1 per CTXD PROMPTS.MD section 3 - input is week_start plus a candidate pool [{id, name, kind, method, minutes}] and recent history; output {days:[{date, dinner_id}], note}; validators require exactly 7 consecutive dates Mon-Sun, every dinner_id in the pool, no dinner twice, note <= 160 chars; repeating last week's dinners when the pool has alternatives warns instead of failing; golden tests with the Fake provider cover a valid week, an unknown id repaired, a duplicate dinner repaired, wrong dates failing twice -> ErrBadOutput, and a pool smaller than 7 returning a typed "not enough dinners" error before any LLM call; Go quality floor passes.
Follows the merged suggest_side_quests skill v1 and the Feature 09 harness; the plan service/API, rotation check and all UI remain later tasks.
Drafts a week of seven dinners, Monday to Sunday, from a candidate pool
of Regulars and Quest log dinners, per CTXD PROMPTS.MD §3. Validators
require the seven dates of the week in order, every dinner_id in the
pool, no dinner twice and a note of at most 160 characters; one repair
turn, then ErrBadOutput. Repeating more of last week's dinners than the
pool made necessary is a warning, not a failure. is_new and a crock-pot
dinner's start-by time are computed in code. A pool of fewer than seven
dinners fails with NotEnoughDinnersError before any LLM call.
Maestro task 7ab59240-a4fd-43cf-b195-4698c8747491.
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.
Maestro task
7ab59240-a4fd-43cf-b195-4698c8747491- "draft_week skill" (Feature 14: Weekly Plan Builder).Done-condition: internal/ai/skills implements draft_week v1 per CTXD PROMPTS.MD section 3 - input is week_start plus a candidate pool [{id, name, kind, method, minutes}] and recent history; output {days:[{date, dinner_id}], note}; validators require exactly 7 consecutive dates Mon-Sun, every dinner_id in the pool, no dinner twice, note <= 160 chars; repeating last week's dinners when the pool has alternatives warns instead of failing; golden tests with the Fake provider cover a valid week, an unknown id repaired, a duplicate dinner repaired, wrong dates failing twice -> ErrBadOutput, and a pool smaller than 7 returning a typed "not enough dinners" error before any LLM call; Go quality floor passes.
Follows the merged suggest_side_quests skill v1 and the Feature 09 harness; the plan service/API, rotation check and all UI remain later tasks.
Independent Codex gpt-6-sol review: APPROVED for this exact commit.