Before · Claude Code alone
One repo per agent
For agent builders and operators
Dorsal shows Claude Code what 65,336 AI builders shipped, broke, and fixed, relevant to your project. Dated, source-linked, zero LLMs in between.
At Keelo, Claude Code reversed a production architecture decision and found a better third option in 3m 44s.
An MCP server in Claude Code. Read-only. Code, paths, and history stay on your machine.
Improve one real decision in minutes.
Field report · Keelo.ai · choosing a customer-agent repo layout
Keelo builds AI agents for multiple enterprise clients, and had to decide how to lay out their repos.
Before · Claude Code alone
One repo per agent
After · with Dorsal
One repo per customer, agents inside
Claude Code reversed its own recommendation on Microsoft's ADR-0032, published 2026-07-21, months after its training cutoff.
# Decision verification: Keelo agent factory
protocol dorsal-decision-verification v1.1.0
run 6 calls, 2 rounds, 3m 44s, ~37.6k tokens
outcome reversed the agent's standing recommendation
scope no private material left the machine; the 5 queries are generic phrases
## The decision
Keelo scaffolds one build station per enterprise client and needed a repo shape for its output. The agent's prior, from the previous session, was repo-per-agent. The human's instinct was a single monorepo. That disagreement made it a clean test: a real prior to overturn.
## Every query, verbatim
getDecisionVerificationProtocol {}
getSummaries monorepo vs polyrepo tradeoffs CI tooling access control
getSummaries shared tooling drift across scaffolded repos template vendoring
getSummaries migrated to monorepo small team atomic changes ... [adversarial]
getSet 7 ids -> 7 / 7 found
getSummaries separate repository per client isolation handoff access control
getSummaries automated bot opens PRs across many repositories
## Verdict: supports_better_option
The evidence converged on one principle: the repo boundary is the ownership boundary. Consolidate inside it, split at it. For a multi-client agency that puts the boundary at the client, which is a per-client monorepo, the option neither side had named.
Decisive record: Microsoft ADR-0032, "Extract Durable Task and Azure Functions hosting into a separate repository." Accepted 2026-07-21. first_party, doc_class: adr. Published after Claude Code's training cutoff, so the agent's own knowledge did not include it. 3 of the 5 decisive records came from the adversarial query.
## The constraint it declined to answer
Client isolation came back `unknown`. Dorsal returned nothing rather than guess. A local fact settled it, and it never went to Dorsal: Keelo deploys build-on-box, and GitHub cannot scope read access per directory, so one all-agents monorepo would put a token on a client's box that could read every other client's code. That eliminated the option the field evidence most favored, and narrowed "monorepo" to "per-client monorepo."
## Bottom line
It overturned a standing recommendation on evidence, surfaced a third option the binary framing had excluded, and declined the one constraint the corpus could not cover. Written into Keelo's decision record 0095 (commit e114651).
The job
On a fast-moving part of the stack, that call rests on claims worth checking against a dated outside record. Here is what each way of checking gives up.
Trust the agent
You find out in production.
Ask it again, worded differently
The same frozen model answers.
Have it search the web
A model reads the web and reports what it thinks. One code review that way burned 5.4M tokens.
Point it at current docs
Docs record what should work. What broke lives in issues and threads.
Read the repos yourself
It works. It costs your afternoon.
Dorsal returns the dated record and stays out of the judgment.
The spec
Ranked by what matters most in a check. Independence first.
LLMs between the record and Claude Code
Zero
Retrieval is deterministic. Claude Code does the judging, with your project context.
Claims that open to a source
100%
Every record links to its origin and carries its date. When the graph has nothing, Dorsal says "no record found" instead of guessing.
Freshness
24h
The graph updates daily. The date is on every record.
Records Claude Code can check
265,055
What 65,336 AI builders shipped, broke, and fixed. Sources include GitHub, official docs, arXiv, Discord, and Hacker News.
Cost of the Keelo check
37.6k tokens
6 calls, 2 rounds, 3m 44s, inside the same agent turn. The web-search version of one review burned 5.4M.
A live sample from the graph Claude Code queries.
157,233
GitHub releases, PRs, issues, and more
120,576
Official Docs
105,713
abstracts from Reddit, Discord, YouTube, X, arXiv, Hacker News, and more
Preparing your secure install command…Preparing a temporary read-only token for the complete command…
dorsal auditCheck the next decision before you build it.
Read-only. Code, paths, and history stay on your machine.