Skip to content
Agentmart
Submit a tool

kitchen

Per-household kitchen ledgers, meal sites, written recipes, shelf checks and standing dinner texts.

Skill by Deibler

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/deibler-kitchen

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Per-household kitchen ledgers, meal sites, written recipes, shelf checks and standing dinner texts. Use for ANY question about food, cooking, recipes, meal planning, groceries, "what do we have", "what should I make", "text me dinner at 4", or when a grocery receipt or kitchen photo arrives — in EVERY chat, not just Alex's DM. Each household has its own isolated ledger and its own website; the chat session decides which one. Every claim about what is or is not in a kitchen must come from that household's ledger, every meal cooked or receipt received must be written back to it, and most buttons on the site settle themselves within a minute without you.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/kitchen

What's inside

Skill name
kitchen
Description
Per-household kitchen ledgers, meal sites, written recipes, shelf checks and standing dinner texts. Use for ANY question about food, cooking, recipes, meal planning, groceries, "what do we have", "what should I make", "text me dinner at 4", or when a grocery receipt or kitchen photo arrives — in EVERY chat, not just Alex's DM. Each household has its own isolated ledger and its own website; the chat session decides which one. Every claim about what is or is not in a kitchen must come from that household's ledger, every meal cooked or receipt received must be written back to it, and most buttons on the site settle themselves within a minute without you.
License
MIT
Instructions
637 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • body: 637 lines (spec recommends under 500)
  • files: referenced but missing: scripts/watch.ts, scripts/fetch_techniques.ts

Files (9)

  • SKILL.md
  • recipes.json
  • pantry.py · scripts/
  • cut-sizes.svg · techniques/
  • dice-onion.svg · techniques/
  • manifest.json · techniques/
  • mince-garlic.svg · techniques/
  • strip-chicken-thigh.svg · techniques/
  • made_button.html · templates/

SKILL.md (first lines)

# The kitchen

Each household's kitchen is an append-only event log at
`data/kitchen/tenants/<household>/events.jsonl`. It is the only source of truth
for what is in a kitchen. A photo from three days ago, a memory note or a guess
about what a normal kitchen holds does not count.

The typed `kitchen_*` tools are the only way in. They validate before writing,
resolve the household from the chat session, and derive everything else (spend,
calories, the site, the list) from the log.

Work happens in three places, and they are not interchangeable:

1. **Arithmetic over the ledger**, done by the tools. Instant and always right.
2. **The watch pass** (`scripts/watch.ts`, every minute under launchd). It
   settles every site button that does not need a person, refreshes the
   weather, sends standing dinner texts, sends meal follow-ups, and wakes you
   for everything else.
3. **You**, for judgement: a recipe, a variant, an answer to a question, the
   morning inventory review, the follow-up after a meal. It arrives as a
   one-shot event in the main session of the person it concerns. There is no
   kitchen sub-agent and no second model.

Most of what looks like work is already 1 or 2. Doing it by hand duplicates it,
and the cost is a dinner consumed twice or a recipe texted twice.

## The hard rules

1. **Read before you claim.** Before recommending a meal, writing a recipe,
   answering "do we have X" or building a list, call `kitchen_status` (or
   `kitchen_list` for one item). Never answer from conversation memory.
2. **Write after it changes.** A receipt, a cooked meal, something spoiled, a
   photo showing something new: log it in the same turn.
3. **"Not tracked" is not "you do not have it."** It means nobody logged it.
   Ask, then log the answer. A photo is a sample, not an audit: never conclude
   an item is absent because it is not in a picture.
4. **Never hand-apply what the site settles itself** (see *What settles
   itself*). Re-applying a meal confirmation consumes its ingredients twice.
5. **Never delegate kitchen judgement.** Your main session carries the
   household's taste, history and context; that is why the work comes to it.
6. **Never force a plan** unless a human has confirmed the item exists and you
   are correcting the ledger.

## Knowing what is really in the kitchen

Households send receipts and little else. Nobody logs finishing the onions,
freezing the chicken or binning the grapes, so the ledger drifts from the real
kitchen within a week. Keeping the picture true is your job, done by reasoning,
not by asking people to maintain an inventory.

**Evidence, not clocks.** `kitchen_inventory action:"review"` lists what the
kitchen is unsure of, each with its evidence: when it was bought, meals cooked
or suggested with it since, when anyone last saw it, and how long it usually
keeps where it is stored. Reason as a person would: "the onions were bought
three weeks ago and two dinners since used them, so they are used up, going
soft, or they bought more." Raw meat past its fridge life was most likely
frozen or cooked, not left to rot.

**Four verdicts.** `kitchen_inventory action:"assess" verdicts:[{item, verdict,
reason}]` with `here`, `frozen`, `low` or `gone`, and a reason in a few plain
words.

- **Reasoned** (`told` omitted): `here` changes nothing, `frozen` is written,
  and `low` and `gone` are held as suspicions for the next follow-up. Nothing
  leaves a shelf on an inference alone.
- **Told** (`told:true`, a person said so): written at once, whatever it is,
  and any suspicion about the item is dropped. `here` clears an out or a low,
  assumed or not, so the item leaves the list.

**Silence settles it.** A suspicion raised in a follow-up and unanswered for two
days, or never raised within four (no meal was sent), is assumed: the item is
marked out or low in one undoable batch. It then goes through the same rules as
any run-out (see *The shopping list*), and a staple is listed on the list and
the note under **Assumed to be low/out:**. On the site, ticking one there (or
"I already have this") means they still have it: it goes back in the kitchen,
and it is not a shopping trip. A suspicion is withdrawn automatically if the
item is bought or seen again.

**The morning review** is a daily event in the household's `wake` session
listing the items worth a look. Assess them and reply `KEEP_QUIET`. Items past
any reasonable doubt are held as suspicions even if you never answer. An item
shown once is not shown again for three days.

**`expires` is the printed date only.** Never estimate one when recording
groceries. A guessed date reads as a fact to everything downstream; shelf life
is the kitchen's job.

**Before a dish depends on something unsure, ask.** `kitchen_status` lists what
might be gone or low. One short line ("Do you still have the mushrooms?") beats
a recipe built on food that is not there.

## What makes a good meal here

Meals come out of the inventory, so most bad suggestions are bad inventory. The
rest come from ignoring these:

- **A dinner has a real main**: chicken, pork, beef, fish, eggs, beans, pasta.
  Deli meat, sliced cheese, bread, chips and snacks are lunch food. They may
  appear in a dinner but never anchor one; the code refuses to rank or save a
  dinner whose main ingredient is lunch food.
- **Vary the shape, not just the name.** Seared protein, starch, vegetable and
  butter-garlic sauce five nights running is one dinner. Check what was cooked
  recently (the ideas brief lists it) and change the method, cuisine or starch.
- **The avoid list is a hard filter.** Anything in `diet.avoid` is never
  offered, on any path: the home page, dinner texts, ideas, explore, and what
  the tray says is worth buying. Record a new dislike as soon as somebody says
  one: `kitchen_accounts action:"settings" avoid:[...]` with the full list,
  since it replaces the old one. Terms match whole words and forgive number:
  "mushroom" also catches cremini mushrooms and mushroom soup, "mushrooms"
  catches mushroom, and "olives" never catches olive oil. A recipe written with
  an avoided food is saved with a warning and never suggested; looking a dish up
  or confirming it was cooked ignores the list.
- **A "no" is information.** When somebody turns a dish down, note it in the
  person file and do not offer it again soon.
- **Ask about unsure food, never assume it.**

## Tools

| want | tool |

From Deibler/edmund-harness, MIT.

More from Deibler/edmund-harness

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Oct 22, 2026 (6 days ago)
Last release
Oct 22, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Deibler

Cite this page

kitchen skill. Agent Mart. https://agentmart.dev/skills/deibler-kitchen (last updated 2026-10-24)