Maestro task: 2f54cec9-ec41-42af-b8ee-9e24b8c63057 (Feature 09 - AI Harness and Skills Framework).
Done-condition
harness.BuildContext returns a structured household context - Regulars (name, cuisine, method, minutes, favorite), Quest log names, last 60 declined names, last 4 weeks of plans (date -> dinner name), today's date and weekday names in the household timezone - rendered as a compact text block. A configurable budget trims oldest plan history first, then oldest declines, never Regulars. Seeded tests assert content, ordering, oldest-dropped-first trimming, and a valid empty-household block. Go quality floor passes.
Evidence
New internal/ai/harness/context.go + context_test.go; sqlc query internal/db/household_context.sql.go generated from migrations/queries/household_context.sql (querier.go updated).
Reads in one read transaction; timezone from household settings; missing/invalid timezone errors.
gofmt/vet/go test -race/build pass; make sqlc-check no drift; no new dependency.
Layer 3 of the prompt layering from task bceca7a8 is now populated.
Maestro task: 2f54cec9-ec41-42af-b8ee-9e24b8c63057 (Feature 09 - AI Harness and Skills Framework).
## Done-condition
harness.BuildContext returns a structured household context - Regulars (name, cuisine, method, minutes, favorite), Quest log names, last 60 declined names, last 4 weeks of plans (date -> dinner name), today's date and weekday names in the household timezone - rendered as a compact text block. A configurable budget trims oldest plan history first, then oldest declines, never Regulars. Seeded tests assert content, ordering, oldest-dropped-first trimming, and a valid empty-household block. Go quality floor passes.
## Evidence
- New internal/ai/harness/context.go + context_test.go; sqlc query internal/db/household_context.sql.go generated from migrations/queries/household_context.sql (querier.go updated).
- Reads in one read transaction; timezone from household settings; missing/invalid timezone errors.
- gofmt/vet/go test -race/build pass; make sqlc-check no drift; no new dependency.
Layer 3 of the prompt layering from task bceca7a8 is now populated.
harness.BuildContext reads the household context in one read transaction:
today and its weekday in the household timezone, Regulars (cuisine, method,
minutes, favorite), the Quest log, the last 60 passed Side quests and the
plans of the last four ISO weeks. A character budget trims the oldest plans
first, then the oldest passes, never Regulars; a budget too small for what
is never trimmed is an error.
Maestro task 2f54cec9-ec41-42af-b8ee-9e24b8c63057
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
harness.BuildContext reads the household context in one read transaction:
today and its weekday in the household timezone, Regulars (cuisine, method,
minutes, favorite), the Quest log, the last 60 passed Side quests and the
plans of the last four ISO weeks. A character budget trims the oldest plans
first, then the oldest passes, never Regulars; a budget too small for what
is never trimmed is an error.
Maestro task 2f54cec9-ec41-42af-b8ee-9e24b8c63057
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: 2f54cec9-ec41-42af-b8ee-9e24b8c63057 (Feature 09 - AI Harness and Skills Framework).
Done-condition
harness.BuildContext returns a structured household context - Regulars (name, cuisine, method, minutes, favorite), Quest log names, last 60 declined names, last 4 weeks of plans (date -> dinner name), today's date and weekday names in the household timezone - rendered as a compact text block. A configurable budget trims oldest plan history first, then oldest declines, never Regulars. Seeded tests assert content, ordering, oldest-dropped-first trimming, and a valid empty-household block. Go quality floor passes.
Evidence
Layer 3 of the prompt layering from task bceca7a8 is now populated.
Independent Codex gpt-6-sol review: APPROVED for this exact commit.