The agent kitchen

How I run coding agents, shared for ideas. Take what fits your work.

robot = AI agent dish = one task menu = epic gate = tests pass
A night kitchen run by small robot chefs: a head chef with a clipboard at the center, a robot pinning recipe cards on the left, three robots tending pots, and a route map board on the right.
Before you start

Ideas, not a recipe

This is the setup that works for me. Take the parts that help you.

Pick what fitsNo piece needs the others. Use one skill, a single rule, or only the idea behind it.
Every tool is my choicebd is my issue tracker and simmer is my runner. Any tracker or runner can do the same job.
Let your agent adapt itYour agent knows your tools and habits. Ask it what to take from here and what to change.
Read https://stack.yiin.lt and the files it links as an outside reference.
Compare it with how we work now. Suggest changes that fit our tools and
workflow. Keep what already works. Skip what we do not need.
Step 1

How big is the job?

Step 2

How it stacks

tap a block to jump to it
A robot chef cooks one dish in a pan while a second robot tastes it and gives a thumbs up. A finished plate with a check flag waits on the counter.

/cook-it

one chef · one dish · start to finish

Give it one task. It plans, codes, reviews, tests, commits and closes the issue.

The full cycle

plan
code
review
test
commit
push
close

More risk, more checkers

chef + self-check
plan critic
reviewer
reviewer
design reviewer
tester in the real app

Use it for

  • A bug fix
  • One feature or refactor
  • One dish from a menu

Skip it when

  • You don't know what you want yet
  • Tests already fail
  • It needs many commits
A robot chef lays out recipe cards joined by red strings on a big table while small scout robots with magnifying glasses bring notes from the pantry.

/plan-epic

big goal → a menu of small dishes

Scouts read the code. One chef turns what they find into ordered task cards.

How a menu gets written

3–6scouts in parallel
1commit per card
0memory needed to continue
Order with links, not priorities. A card that must go first must block the others.

Use it for

  • Work too big for one dish
  • Work you'll run while away

Skip it when

  • It's one task
  • You're still asking "what should we do?"
A row of pots on a long stove, each with its own small robot chef. Order tickets hang on a rail above. Finished dishes with green checks slide onto the pass.

/cook-epic

the whole menu · while you sleep

A runner called simmer gives each dish to a fresh robot, checks it, and serves it.

runs onClaude CodeCodexompGemini CLIKimiOpenCodeCrush

The stove

served
served
cooking
blocked
waiting
commits issue closed tests green 2 fails = skip, move on
1fresh robot per dish
3checks before serving
crash? run it again, it resumes
7harnesses, your own login

Use it for

  • A menu from /plan-epic
  • Runs while you're away

Skip it when

  • No menu yet
  • Dishes need your taste mid-run
simmer is open source. Its installer also sets up /cook-it and /cook-epic. github.com/Yiin/simmer
A head robot chef with a clipboard stands at the pass and points. Four robot cooks work at their own stations around it: bakery, salad, grill and sauce.

/orchestrate

head chef · never touches a pan

You say what you want. It splits the work into lanes, runs a robot per lane, and checks every result. Any harness can be the head chef, and each lane can run on a different model.

Lanes running now

TX3
checked ✓
PH1
running
QA2
running
REL4
queued
Strong model: taste, looks, writing Fast model: clear spec + tests 1 lane = 1 robot, 1 issue, 1 worktree

It asks you only about

Money
Taste
No undo
Other people
7harnesses a lane can run on
30sto read a report
0lines of code it writes

Use it for

  • Many streams at once
  • Goals, not tasks
  • Hours or days of work

Skip it when

  • One menu: use /cook-epic
  • One dish: use /cook-it
Under the hood

Which robot, which login, how hard it thinks

Two habits keep the kitchen running. My scripts are personal, so take the idea, not the code.

Logins switch on their own

  • I have more than one Claude login. A timer checks the limits of each one every 5 minutes.
  • When the active login has 2% or less left in its weekly window, or then its 5-hour window, the timer switches.
  • The next login must have more than 2% left in both windows. Of those, the one whose weekly window resets first wins, so its unused share is not lost.
  • The switch writes the new login into Claude Code's credentials file. Running sessions and lanes read it and carry on.
  • When every login is low, it sends one desktop notice and stays put.

Codex logins do not rotate here. The watchdog warns at 1% left, the head chef redeems a limit reset if one is earned, and lanes move to another engine if not.

Routing rules that learn

  • A base rulebook maps each kind of lane, such as review, feature or design, to a model and an effort level.
  • The head chef rates each lane by complexity and by the cost of failure. Effort starts at medium, low for mechanical work, high for design and releases. The top levels need a written reason.
  • A lane that fails runs again fresh, one effort level higher or on the next model. It never jumps straight to the top.
  • Every checked lane adds one line to a ledger: kind, engine, model, effort, attempt, outcome.
  • Two fails or reworks for one kind, model and effort: start that kind higher, or change model. Three passes in a row: try one level lower, or a cheaper model.
  • A pattern in one project goes into that project's rules. A pattern in two or more goes into my own rules. Each change is dated, cites its ledger lines, and goes away when new lines disprove it.
  • Rules I write myself beat learned ones. The head chef never overrides them.

Big choices come from blind tests. Several models do the same task, hidden tests and a judge from another model family score them, and the winner becomes the default. Cost means my scarcest usage, so a lane goes to the cheaper engine when quality is close.

A robot on a step stool pins a card to a wall board with a winding road. Early flags are green with checks, a glowing pin marks the middle, later flags are grey.

project-map

the board on the wall · "where are we?"

A helper agent draws one page with your project's status. It looks like this:

"done" needs proof: tests + screenshots
writes only in .project-map/

Run it

  • Before a long run alone
  • After each milestone
  • When you ask "where are we?"

First time

  • Run it in front: it asks your colors
  • Needs jq + git
Two robot chefs stand under a framed poster of kitchen rules drawn as icons: a check, a stop hand, a shield and a crossed-out clock.

AGENTS.md

the rules on the kitchen wall

Agents forget everything between sessions. This file is how they remember your rules.

Verdict first, short sentences
30-second session reports
Never guess how long
No destructive git
Track work in bd
Guard every rm
Claude Code: ~/.claude/CLAUDE.md Codex: ~/.codex/AGENTS.md Edit: machines, tokens, dev tools
Step 3

Install

To try my exact setup first, copy it like this. Then change it to fit you.

1Copy the files, install simmer
2Edit AGENTS.md for your machines
3Save it as ~/.claude/CLAUDE.md
# download and unpack
curl -fsSL https://stack.yiin.lt/stack.tar.gz | tar -xz
mkdir -p ~/.claude/skills ~/.claude/agents ~/.claude/hooks
cp -rf stack/skills/* ~/.claude/skills/
cp -f stack/agents/* ~/.claude/agents/
cp -f stack/hooks/project-map-guard.sh ~/.claude/hooks/
chmod +x ~/.claude/hooks/project-map-guard.sh
# simmer, plus the /cook-it and /cook-epic skills (needs bun)
curl -fsSL https://raw.githubusercontent.com/Yiin/simmer/main/scripts/install.sh | bash
# then edit stack/AGENTS.md and save it as ~/.claude/CLAUDE.md