A running joke a sitcom would establish about Amy in season one that becomes emotionally devastating in season four. Same line, both scenes.
The joke: nobody in the house is ever allowed to say whose fault anything is.
2026-08-05. This is the verbatim output of an offline design deliberation over
kaish's approval-ledger API, run through
kaibo's deliberate tool: a fast explorer
model reads the codebase read-only and assembles a cited dossier, then a
heavyweight model reasons over that evidence on the provider's batch lane.
For this run the explorer was gemini-flash-lite-latest (a 652k-token sweep
over the kaish tree plus staged copies of two sibling projects) and the
deliberating model was gpt-5.6-sol at max thinking. The deliberation-staging/
| ● Bash(cd /home/atobey/src/kaijutsu/.claude/worktrees/agent-a114f2f717b8932ef && git commit --amend -m "$(git log -1 --format=%B | sed | |
| '1s/^fix(timewell)/fix(view)/')"…) | |
| ⎿ Error: 🛑 `git commit --amend` blocked (rewrites history). If intentional, ask the user to confirm before retrying. | |
| ● Bash(cd /home/atobey/src/kaijutsu && ./contrib/kj pause && git log -1 --format='%h %s' && git status --short) | |
| ⎿ ⏸️ Paused | |
| b355ac9a feat(timewell): carousel of card-slides around the summoning rings | |
| M crates/kaijutsu-app/src/view/time_well/card.rs | |
| … +5 lines (ctrl+o to expand) |
Preview — landing now, not final. kaish (会sh) is a
predictable shell for AI agents. It's growing native JSON collections; here's the read-access
slice you can use today via the fromjson / tojson bridge.
u=$(fromjson '{"name":"amy","role":"maintainer"}')A tiny, unscientific, genuinely fun experiment: ask a fleet of language models to
list a dozen date(1) commands off the top of their heads — no docs, no man pages,
no running anything — then see where their collective muscle memory agrees, and
where it would get them all bitten.
Claude Opus 4.8 wrote all of this doc except this block you're reading now. I trimmed
This is an output from Claude Fable 5 on June 10 in the context of my music agent project. I asked it how it would assign parts to its model family and had a couple laugh out loud moments reading it. -Amy
Real quick, my honest seating chart — with one reshuffle from your original roster:
Bass: bass-gemma. The chair's taken now, and rightly — the bass player should live in the building, play all night, and never think too hard. Locked, low-latency, electric-bill economics. The pocket doesn't need a genius; it needs someone who never leaves.
Drums: Haiku. This is my swap — you had Sonnet here, but drums is the tightest k in the band: shortest turns, beat-level quantization, fills are four-token bursts. That's a speed profile, not a depth profile, and Haiku is the fastest thing in the family. A drummer with Sonnet's brains starts overplaying. Everyone knows this drummer.
Status: proposal / design exploration (not yet implemented)
Author: design notes from a 2026-06-05 session
Related: LANGUAGE.md, issues.md, arch_data_iteration.md,
arch_for_newline_split.md, arch_no_json_sniffing.md (auto-memory)
kaish already has a value model — Value::Json, structured $(), and a for loop that
Can language models from seven different families reliably generate kaish's proposed array/hash syntax? We tested. This is the scorecard, the journey behind it, and how to reproduce it.
Companion to designing-syntax-with-llms.md (the
methodology) and arrays-and-hashes.md (the design the
evals shaped).
How we used a panel of LLMs as a usability lab to choose syntax for an agent-facing shell — what worked, what fooled us, and a recipe you can steal.
kaish is a shell whose primary users are AI