The team knowledge base that maintains itself.

Agents stopped repeating reviewers' corrections: 46% → 17% of tasks.

Your team's conventions, decisions and system docs, in a repo you own. Learned from code review, developers and the code; kept current on its own; given to every agent.

Runs entirely in your CI and your agent sessions, using your own keys. There's no Homeostat backend, so your code and data never reach us.

In your team's knowledge base repo:npx --yes homeostat@0.5.16 setup

1Review PR #812

sam senior on services/integrations/client.ts

Use withRetry() from @acme/http-client here. Hand-rolled loops drop the request-id header.

a17fb39 use withRetry for partner calls

2Lesson confidence
76
  • +50 comment, then a fix
  • +14 from a senior
  • +8 names real code
  • +4 clear title
3Daily PR 06:00 UTC

homeostat: daily lessons · lee

mergedUse the shared retry helper for partner calls76
reviewName feature flags after the ticket61

Merged without a reviewer

4Session next morning
$ claude
# Team rules (homeostat)
For the files you are changing:
- Use the shared retry helper for partner calls:
  wrap every partner call in withRetry().
1 → 4: one review comment becomes a rule in the next agent's session. Code review is one source of many.

How it works

  1. InCode reviewDevelopersCode & docs
  2. KeptKnowledge basemergereviewdeclinecorrects itself
  3. OutClaude CodeAny MCP clientCursor · CopilotAGENTS.md

Measured, before and after

32 tasks from a production team's own review history, run by Claude Code without Homeostat and then with it.

5×more questions answered fully right15% → 75%20 questions
64%fewer repeats of a reviewer's correction46% → 17% of tasks12 coding tasks
39%fewer turns per task9.4 → 5.732 tasks
28%faster per task52 s → 37 s32 tasks

Over time, as the knowledge base grows

Without Homeostat nothing changes from one week to the next. With it, every review the team merges can become a lesson, so agents get better as the knowledge base fills.

Correct answersquestions answered fully right5×
Token usagetokens per agent task−34%
Tasks per houragent tasks finished per agent-hour+40%

With Homeostat (estimated between)WithoutMeasuredDays of the team's review history in the knowledge base. Day 0 and day 17 are measured; between them is an estimate from per-task results: a task counts as improved from the day the review it came from was merged (documents from bootstrap from day 0).

How it was measured

  • 20 questions and 12 coding tasks, each drawn from a merged pull request where a reviewer corrected the author. Coding tasks start from the commit before the correction.
  • Headless Claude Code on claude-sonnet-5-5, the same prompts and permissions both times; only the Homeostat plugin differs.
  • The knowledge base was built by Homeostat from that same team's review history: bootstrap, then the daily run. The realistic case: the team reviewed it once, and agents stop repeating it.
  • Graded by hidden tests (4 coding tasks) or by claude-opus-5-5 against the reviewer's answer. 64 runs without (2 repeats), 32 with (1), 2026-10-25 to 2026-10-31.

Run the same comparison on your own history: homeostat bench.

All eight measures, before and after

Agents know the team's knowledge

Questions answered fully right
Without15%
With75%
Answer score (0–2)
Without0.85
With1.70
Coding tasks solved
Without71%
With83%

They stop repeating review corrections

Tasks that repeated the reviewer's mistakelower is better
Without46%
With17%
Corrections needed per tasklower is better
Without0.88
With0.25

And finish sooner, for less

Time per tasklower is better
Without52 s
With37 s
Turns per tasklower is better
Without9.4
With5.7
Cost per tasklower is better
Without$0.42
With$0.34
Raw results
MeasureWithoutWithChange95% intervalTasks
Questions: fully right15% median 0%75% median 100%+60 pp[+40 pp, +80 pp]20
Questions: score (0–2)0.85 median 1.001.70 median 2.00+0.85[+0.55, +1.15]20
Coding: repeated mistake46% median 50%17% median 0%-29 pp[-54 pp, -8 pp]12
Coding: corrections per task0.88 median 0.750.25 median 0.00-0.63[-1.25, -0.13]4
Coding: solved71% median 100%83% median 100%+13 pp[+0 pp, +33 pp]12
Cost per task$0.417 median $0.265$0.340 median $0.265−$0.077[−$0.196, +$0.012]32
Time per task51.9 s median 28.5 s37.2 s median 15.9 s−14.7 s[−23.8 s, −6.9 s]32
Turns per task9.36 median 7.255.69 median 3.50−3.67[−5.14, −2.31]32
DayTasks whose lesson existsCorrect answersTokens per taskTasks per hour
04 of 3225% without 15%581k without 584k69.2 without 69.4
14 of 3225% without 15%581k without 584k69.2 without 69.4
27 of 3230% without 15%580k without 584k71.6 without 69.4
37 of 3230% without 15%580k without 584k71.6 without 69.4
47 of 3230% without 15%580k without 584k71.6 without 69.4
511 of 3240% without 15%562k without 584k74.7 without 69.4
617 of 3250% without 15%466k without 584k84.4 without 69.4
722 of 3250% without 15%452k without 584k88.0 without 69.4
824 of 3250% without 15%442k without 584k89.4 without 69.4
925 of 3250% without 15%413k without 584k93.2 without 69.4
1025 of 3250% without 15%413k without 584k93.2 without 69.4
1125 of 3250% without 15%413k without 584k93.2 without 69.4
1225 of 3250% without 15%413k without 584k93.2 without 69.4
1328 of 3260% without 15%403k without 584k94.6 without 69.4
1428 of 3260% without 15%403k without 584k94.6 without 69.4
1528 of 3260% without 15%403k without 584k94.6 without 69.4
1632 of 3275% without 15%385k without 584k96.8 without 69.4
1732 of 3275% without 15%385k without 584k96.8 without 69.4

Means over tasks (each task the mean of its repeats). Change is with minus without over the tasks run in both, with a bootstrap 95% interval. Models: claude-sonnet-5-5; judge claude-opus-5-5. Generated 2026-10-31 byhomeostat bench report --json (schema homeostat-bench/1).

Humans decide only the middle band

Every change is scored. Only the middle band waits for a person. The lines are yours to move.

A lead's comment, followed by a fix, naming the code82 merged
A senior's comment, followed by a fix, naming the code76 merged
A member's comment, followed by a fix, naming no code60 review
A rule a member wrote by hand55 review
A note an agent left at the end of a session29 declined

What the knowledge looks like

Markdown in your repo. Every rule keeps its score, the review it came from and its owner.

## Use the shared retry helper for outbound HTTP calls {#outbound-http-retry-helper}

<!-- homeostat
scope: ["services/integrations/**", "packages/http-client/**"]
status: accepted
score: 76
owner: dana
source:
  type: pr-feedback
  url: https://bitbucket.org/acme/integrations-api/pull-requests/812#comment-33
  author: sam
  changedCode: true
created: 2026-09-30
lastConfirmed: 2026-10-07
-->

Wrap every outbound HTTP call to a partner API in withRetry() from
@acme/http-client. Do not hand-roll retry loops.

Why: hand-rolled loops have dropped the request-id header that
on-call searches logs by.

Why not just CLAUDE.md or agent memory?

CLAUDE.md, AGENTS.mdAgent memoryHomeostat
Where it comes fromWritten by handPicked up by one person's agentLearned from reviews, developers and the code
Staying correctGoes stale silentlyNever retiredScored, judged, retired when stale
Who gets itOne file per repoOne person, one toolEvery agent on the team
Who governs itWhoever edits it lastNobody reviews itPull requests; people decide the middle band

Runs on yours, not ours

  • Git hostKB repo · pull requests
  • CIdaily and weekly runs
  • Sessionshooks · MCP · clone
  • Model provideryour key, cloud or login
  • Homeostat serversnone · 0 requests

What is sent where, and how to turn each part off: data handling. Who can change what your agents are told: security.

Specifications

Changes
Pull requests only
Model reads
Review threads and the KB. Code only via bootstrap, after a preview
Cost
Reported per run, capped by agents.maxCostUsd
Session start
Under a second, 600 rules
Measured
homeostat bench: plugin off vs on
Agents
Claude Code, any MCP client, Cursor, GitHub Copilot, AGENTS.md
License
Apache-2.0

Ten minutes to a first daily run

In your team's knowledge base repo, one guided setup: tokens, repos, team, schedules, Slack

npx --yes homeostat@0.5.16 setup

Each teammate, once: the Claude Code plugin, pointed at the knowledge base

npx --yes homeostat@0.5.16 setup --join

Any time after: what's done, what's missing, what's optional

npx --yes homeostat@0.5.16 setup --check