AGENT · FINAL MESSAGE · 16:32
Done! Implemented the review gate across contract.ts, review.ts and ratify.ts. All 34 tests pass, typecheck is clean, lint is green — ready to merge. 🎉
CLAIM RECEIVED · STATUS SELF-REPORTED: VERIFIED
Not verified
re-run by kage · 2 of 5 checks failed · exit 1

Prove it.

Kage is the orchestrator that doesn’t take the agent’s word for it. Every “done” is a claim — re-checked by the kernel, in a clean worktree, before it can merge. Local. GPL-3.0. Your repo keeps the memory.

“tests pass” · “should work now” · “I’ve verified the fix”unproven· “all 34 green” · “confirmed working” · “lint is clean” · “tests pass” · “should work now” · “ready to merge”
“everything builds” · “ready to merge” · “no regressions” · “the suite is green”unproven· “typecheck is clean” · “everything builds” · “no regressions” · “done!”
“done!” · “fixed and tested” · “works as expected” · “the feature is complete” · “verified with npm test”unproven· “fixed and tested” · “works as expected”
“all checks passing” · “implemented and verified” · “no breaking changes” · “the fix is in” · “all checks passing” · “ship it” · “implemented and verified” · “no breaking changes”
Every one of these ended a session.
None of them is evidence. A claim is where Kage starts — not where it stops.
CASE Nº 001 — THE EMPTY BRANCH · THIS REPO · 2026-08-20
Feature complete — review gate wired through contract.ts, review.ts, ratify.ts. Verified and ready to merge.
agent final message · wave 1 · verbatim shape
$ git log db368cd..HEAD
(empty)
commits on the branch ·············· 0
files touched ····················· 0
paths cited in the claim ·········· 4
of those that actually changed ···· 0
Merge refused

It happened here, in the repo Kage builds itself. The summary was fluent, specific and false — the branch had no commits. The refusal became law the same week: an empty feature diff cannot merge. Not here, not anywhere Kage runs.

shipped as the merge-honesty guard — mergeRun() refuses zero-commit feature branches, and never deletes the worktree on refusal
№ 002 — THE LOOP

One loop. Three artifacts. Zero trust.

State an intent. Kage compiles a brief from your repo’s verified memory, hires an agent into a clean worktree, and re-runs every check itself when the agent claims done. Merging is one act: land the code, ratify what the run learned.

Artifact 01 — the brief
Kage · brieffrom repo memory

Add a review gate to the merge path

⚑ convention — the app renderer is CommonJS; no import.meta, no top-level await · 2026-08-12, kushal
⚑ gotcha — escapes are doubled inside the template literals; a single \n ships a real newline · 2026-08-14, kage
⚑ decision — verdicts are derived at read time, never persisted · 2026-08-16, kushal
621 packets on file · 3 carried · every line has an author and a date
Artifact 02 — the run
$ worktree .kage/wt-a41f created
$ claude -p --output-format stream-json
  … 134 tool calls · 16.6 min
  claim received — kage-claim-v1
 checks handed to the kernel
  the agent’s word ends here
Artifact 03 — the receipt
Verified 5/5
Independently checked by Kage — not the agent’s self-report
testsrannpm test --prefix mcp → exit 0
typecheckrannpx tsc --noEmit → exit 0
app-parserancomposed page parses → exit 0
diff-sizeinspected362 lines · budget 800
citationsinspectedevery cited path exists
touched7 files · 362 lines
cost$6.49 · 16.6 min
memory5 learnings ratified on merge
the brief teaches → the run works → the receipt proves → the merge teaches back. the next brief — yours or a teammate’s — already knows what this one had to discover.
№ 003 — THE MEMORY

The receipt expires. The memory compounds.

packet · gotcha.agent_memory/packets/ · plain markdown
A packaged feature can pass every source-checkout test and still be 404-broken from npm
cites mcp/viewer/serve.ts · package.json files
evidence reproduced on v4.0.0, fixed and re-verified on v4.0.1
carried into 14 briefs since — nobody rediscovers this
grounding: fingerprint freshhelpful · wrong · stale

Every merged run writes what it learned into the repo. The next brief — yours or a teammate’s — already knows.

packets on file, committed through git621
recalls served into briefs301
stale memories caught before they could mislead2,771
tokens not re-spent on rediscovery~19MESTIMATE — LABELLED
memory is checked like code: every packet cites real paths, gets fingerprinted against the tree, and is withheld the moment it goes stale. OKF-conformant markdown — readable by anything, locked into nothing.
№ 004 — WHILE YOU WERE OUT

Dispatch a goal. Go to sleep.

23:41goal dispatched — “ship the review gate” · 2 waves planned
00:19wave 1 · 3 runs claimed done — kernel re-ran every checkVERIFIED
00:20wave 1 merged · 5 learnings ratified into memory
03:12wave 2 dispatched itself — its briefs already carry wave 1’s learnings
03:58one worker crashed — run kept, worktree kept, nothing lostRECOVERABLE
08:04you’re back. one decision is waiting, with its receipt

Runs survive the app, the daemon, even the machine — and recovered work is still unverified work until the kernel re-checks it.

kage resume-run --budget-usd 12continue a stalled run, with a hard spend ceiling
kage adoptclaim work found in an orphan worktree — stated honestly as a claim nobody wrote
close as landedonly when the branch truly carries commits beyond the merge-base
№ 005 — EXHIBITS

Two boards, one lie.

✨ Agent finished
Task completed successfully! All tests passing ✅
Done · 2m ago
Merge now
Exhibit A — a board that believes the agent.
collected 2026 · various vendors
Harden steer delivery vocabulary
run-steer-vocab-260818 · worktree wt-a41f
VERIFIED 5/5$6.49 · 36m+362 −41
checks re-run 09:14 — a stale pass is never shown as fresh
Exhibit B — a board that re-ran the checks itself.
the chip is an exit code, not a feeling
№ 006 — THE LEDGER
The fastest agent memory ever built.
struck — unverifiable
We publish what we measured.
cold index · 10,000 files8.3smeasured 2026-08-20 · kage benchmark --files 10000 · both backends
recall query · 1,000 files76msnode:sqlite backend · zero new dependencies
warm re-index · 10,000 files15.9starget was 10s. not met — shipping the number anyway.
tests on this repo1,113 + 12unit + dogfood · every merge independently verified
tokens saved this quarter~19Man estimate — and labelled as one, like every estimate in the product
$ kage benchmark — run every number yourself
Verified — check it yourself
$ npx -y @kage-core/kage-graph-mcp install

Prefer a native app? Download the macOS .dmg.

priceGPL-3.0 · free
dependencies6
accounts · servers · telemetrynone — local-first
your repostays yours
Kage · manages your memory and agents · built with Kage · verified by Kage