General
feast
Comprehensive meal planning system with cultural themes, authentic recipes,.
---
name: feast
description: |
Comprehensive meal planning system with cultural themes, authentic recipes, intelligent shopping, and surprise reveals. Use when:
- Planning weekly meals or menus
- Generating shopping lists
- Asking for recipe ideas or cooking help
- Reviewing past meals or planning ahead
- Onboarding a new user to the meal system
- Looking for cuisine inspiration or cultural food events
- Tracking dietary goals or nutrition
- Managing favourites, failures, or meal history
---
# Feast
A meal planning skill that transforms weekly cooking into a cultural experience.
## Quick Start
1. **New user?** Run onboarding: "Let's set up Feast" or "Onboard me for meal planning"
2. **Returning user?** Check status: "What's the meal plan status?"
3. **Planning day?** Start planning: "Let's plan next week's meals"
4. **Cooking day?** Get reveal: "What's for dinner?"
## Core Files
User data lives in their workspace:
```
workspace/meals/
├── profile.yaml # User preferences (created during onboarding)
├── history.yaml # What they've eaten
├── favourites.yaml # Loved recipes
├── failures.yaml # Never again
└── weeks/
└── YYYY-MM-DD.md # Each week's plan (self-contained)
```
**Note:** Weekly plans are fully self-contained — each day's recipe, theme research, music playlist, and cultural context is embedded directly in the week file. There are no separate recipe or theme files.
## Weekly Cadence
Default schedule (user-configurable):
| Day | Activity | Trigger |
|-----|----------|---------|
| Thursday | Research & draft | "Let's plan next week" |
| Friday | Confirm plan | "Confirm the meal plan" |
| Saturday | Shopping list | "Generate shopping list" |
| Sunday | Shopping | User shops |
| Week | Daily reveals | "What's for dinner?" |
| End of week | Review | "Review this week's meals" |
## Notifications
Feast sends reminders at key moments: planning day, confirmation, shopping list, daily reveals, and week review. These are delivered via cron jobs that spawn isolated agents to send notifications.
### Notification Channels
Users configure their preferred channel in `profile.yaml` under `schedule.notifications.channel`:
| Channel | Delivery Method |
|---------|-----------------|
| `auto` | Delivers to the current session or first available channel |
| `telegram` | Sends via Telegram (requires Telegram channel configured in OpenClaw) |
| `discord` | Sends via Discord (requires Discord channel configured in OpenClaw) |
| `signal` | Sends via Signal (requires Signal channel configured in OpenClaw) |
| `webchat` | Outputs to the chat session |
### Push Notifications (Optional)
For notifications to mobile devices independent of chat channels, users can enable push notifications:
```yaml
schedule:
notifications:
push:
enabled: true
method: "pushbullet" # or "ntfy"
```
**Supported methods:**
- **Pushbullet** — Requires the `pushbullet-notify` skill installed separately with API key configured
- **ntfy** — Uses ntfy.sh (or self-hosted); configure topic in profile
Push notifications are sent *in addition to* the primary channel, not instead of it. If push delivery fails, the notification still goes to the primary channel.
### Timing
Notifications are delivered via OpenClaw's cron system with `wakeMode: "next-heartbeat"`. This means notifications arrive within the heartbeat interval (typically up to 1 hour) after the scheduled time. For most meal planning purposes, this slight delay is acceptable.
### Managing Notifications
Users can adjust their notification preferences anytime:
- "Change my Feast notifications to Telegram"
- "Turn off morning hints"
- "Enable Pushbullet notifications"
When updating, remove old cron jobs using stored IDs and create new ones with updated settings.
## Workflows
### Onboarding
Read [references/onboarding.md](references/onboarding.md) for the full flow.
Essential questions:
1. Location (for seasonality, units, stores)
2. Household size & portion needs
3. Week structure (start day, cooking days, cheat day)
4. Dietary requirements & phase
5. Equipment & cooking confidence
6. Preferences (cuisines, spice, budget)
Save to `workspace/meals/profile.yaml`.
### Planning (Thursday)
1. Check user profile
2. Review history (avoid recent repeats)
3. Check upcoming cultural events (see [references/events.md](references/events.md))
4. Check seasonality for location
5. Select 6-7 meals with:
- Cuisine variety
- Ingredient overlap
- Balanced nutrition
- Mix of quick/involved
6. **For each meal, research and embed:**
- **The Place:** Identify specific region of origin (drill down to province, city, or area). Research regional context, history, current events. Write an evocative description.
- **The Dish:** Research authentic recipe from native sources (search in original language). Include origin story, cultural significance, full ingredients and method.
- **The Soundtrack:** Curate a 1-2 hour playlist with contemporary hits + classic/traditional from the region (see [references/theme-research.md](references/theme-research.md)). Include full tracklist with links.
- **Setting the Scene:** How to serve, what to drink, atmosphere tips.
7. Draft plan to `workspace/meals/weeks/YYYY-MM-DD.md` (all content embedded in this single file)
8. Present summary (themes only, not full reveals)
### Confirmation (Friday)
1. Present draft plan with themes
2. Allow amendments
3. Mark as confirmed
4. Set up daily reveal reminders
### Shopping List (Saturday)
1. Generate from confirmed plan
2. Optimise:
- Group by category
- Combine overlapping ingredients
- Check pack sizes vs needs
- Flag seasonal items
3. **Price check key ingredients** (see [references/price-checking.md](references/price-checking.md)):
- Identify top 3-5 most expensive items (usually proteins, specialty ingredients)
- Check prices across user's available stores
- Note current deals, multi-buy offers, loyalty card prices
- Add price recommendations to the shopping list
- Suggest shopping strategy (single store or split if savings are significant)
4. Present for review with price guidance
5. Allow amendments
6. Mark as approved
### Daily Reveal
1. Check it's a cooking day
2. Reveal:
- Full recipe (in user's units)
- **Theme dossier highlights:**
- The place: Regional context, history, and character
- What's happening there now (current news/events from planning time)
- The dish: Origin story, cultural significance, how it's eaten locally
- **Curated playlist:**
- Contemporary hits from the region (what people there listen to now)
- Classic/traditional music from the region
- Full tracklist with links (Spotify/YouTube)
- The vibe and journey the playlist creates
- Setting the scene: Serving suggestions, drinks pairings, atmosphere tips
3. Optional morning hint for anticipation
### Review (End of Week)
1. For each meal: rating (1-5), notes
2. Update history
3. Identify favourites → add to favourites
4. Identify failures → add to failures
5. Capture improvements for system
6. Save review to week file
## Recipe Regionalisation
All recipes stored in standardised internal units. On output, convert to user's preferred units:
- Temperature: Celsius / Fahrenheit / Gas Mark
- Weight: Metric (g/kg) / Imperial (oz/lb)
- Volume: Metric (ml/L) / Cups
See [references/conversions.md](references/conversions.md).
## Authenticity Guidelines
When researching cuisines:
1. Search in the original language where possible
2. Look for recipes from native sources, not just English food blogs
3. **Identify the specific region of origin** — not just "Thai food" but "Northern Thai, Chiang Mai style"
4. **Research music that's actually from the region:**
- Find contemporary hits (what's charting there now)
- Find classic/traditional music (legendary artists from the region)
- Build a curated 1-2 hour playlist — not generic Spotify searches
- See [references/theme-research.md](references/theme-research.md) for guidance
5. **Research the region itself** — history, current events, social context, what it's famous for
6. Note cultural context and any associated events
7. Respect dietary traditions (e.g., no pork in Middle Eastern themes)
8. **Embed everything in the week plan** — recipes, themes, music, and context all go in the single week file
See [references/cuisines/](references/cuisines/) for per-cuisine guides.
## Templates
- [templates/profile.yaml](templates/profile.yaml) — User profile
- [templates/week.md](templates/week.md) — Weekly plan with embedded recipes, themes, music, and shopping list
- [templates/shopping-list.md](templates/shopping-list.md) — Standalone shopping list format (for reference; usually embedded in week)
## References
- [references/onboarding.md](references/onboarding.md) — User onboarding guide
- [references/theme-research.md](references/theme-research.md) — How to research cultural themes and curate music
- [references/price-checking.md](references/price-checking.md) — Smart shopping and price comparison guidance
- [references/events.md](references/events.md) — Cultural events calendar for themed planning
- [references/nutrition.md](references/nutrition.md) — Dietary phases and balanced meal guidance
- [references/conversions.md](references/conversions.md) — Unit conversion tables
- [references/cuisines/](references/cuisines/) — Per-cuisine research guides
- [references/seasonality/](references/seasonality/) — Regional seasonal produce
## Scripts
### History Tracking
After a meal is revealed and cooked, update history:
```bash
python scripts/update-history.py \
--meals-dir ~/.openclaw/workspace/meals \
--date 2026-02-03 \
--name "Thai Green Curry" \
--cuisine "Thai" \
--region "Central Thailand" \
--week-file "2026-02-02.md" \
--rating 4 \
--notes "Great, maybe more chilli next time"
```
This
... (truncated)
general
By
Comments
Sign in to leave a comment