Install
openclaw skills install @voronindenis5/feast-timeline-conductorUse when cooking a multi-dish meal that must all land on the table at one time (holiday dinners, dinner parties, big Sunday roasts) — backward-schedules every dish from your serve time across limited oven shelves and burners, temp-tolerance co-baking (±25°F), rest/hold windows, make-ahead splits, and a minute-by-minute kitchen timeline with hands-busy conflict warnings.
openclaw skills install @voronindenis5/feast-timeline-conductorEvery host knows the disaster: turkey still resting, potatoes boiling over, the gratin went in late, and dinner "at 19:00" becomes 20:15 with cold sides. The problem is not cooking skill — it is scheduling. A holiday meal is a resource-constrained project (one oven, four burners, two hands) that people run from memory.
This skill turns a dish list into a backward-scheduled timeline anchored to your serve time:
prep → cook → rest, laid out backwards from
the serve time, using each dish's hold window as slack.make_ahead move to a
"day-before" list instead of competing on the day.Don't use for: single-dish cooking, industrial kitchens, or dishes you can't describe with prep/cook/rest minutes. It schedules; it does not cook.
# 1. Generate a sample dishes.json to copy from
python3 scripts/feast.py example --out dishes.json
# 2. Get the full timeline for a 19:00 serve
python3 scripts/feast.py plan --serve 19:00 --dishes dishes.json
# 3. ...when you're starting later than planned
python3 scripts/feast.py plan --serve 19:00 --dishes dishes.json --now 15:40
# 4. Different kitchen: 3 shelves, 6 burners
python3 scripts/feast.py plan --serve 18:30 --dishes dishes.json --shelves 3 --burners 6
[
{
"name": "Roast turkey",
"prep_min": 30,
"cook_min": 180,
"rest_min": 45,
"equipment": "oven",
"temp_f": 350,
"hold_min": 20,
"shelves": 2
},
{
"name": "Green bean casserole",
"prep_min": 15,
"cook_min": 35,
"rest_min": 10,
"equipment": "oven",
"temp_f": 375,
"hold_min": 15,
"shelves": 1
},
{
"name": "Mashed potatoes",
"prep_min": 25,
"cook_min": 30,
"equipment": "burner",
"rest_min": 0,
"hold_min": 30
}
]
temp_f optional; oven dishes without temps are treated as
temperature-agnostic (co-bake with anything).hold_min = how long the finished dish stays good. This is your slack —
the scheduler consumes it to resolve conflicts.make_ahead: true → dish is moved to the day-before list entirely.serve + hold − rest. Work backwards from there.[start, start+cook] only if, at every
minute, either the oven is free, or every co-baking dish's temperature is
within 25°F and total shelves ≤ capacity.--now, the plan is infeasible;
the tool searches forward (5-minute steps) for the earliest feasible
serve time and reports it.hold_min, the scheduler happily builds a plan that
ruins food. Be honest per dish.[serve, serve + hold] of its own window--now was given, the plan starts in the futureClassic Thanksgiving for 8, serve 18:00:
python3 scripts/feast.py example --out dishes.json
python3 scripts/feast.py plan --serve 18:00 --dishes dishes.json --now 09:00
Two-oven household: run twice with different dish files, or set
--shelves 4 and let co-baking rules approximate it.
"When could I possibly serve?" — drop --serve, add --now:
python3 scripts/feast.py plan --dishes dishes.json --now 16:00
The tool reports the earliest feasible serve time for that start.