For agent builders and operators

Check Claude Code’s next decision against the field record.

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.

Use Dorsal to verify architecture decisions, audit your recent work, and evaluate designs against the latest AI builder evidence and prior art.

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

The first proof is Claude Code retracting its own recommendation over a dated record it did not have.

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.mdread-only
# 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).
Reported by the founder/CEO of Keelo.ai3m 44s · shipped as a production decision

The job

Claude Code proposes a change. You accept it or reject it.

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

What a check runs on, measured

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.

Inspect the data

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

1 · Connect Dorsal to Claude Code
Preparing your secure install command…

Preparing a temporary read-only token for the complete command…

2 · In Claude Code, run dorsal audit
dorsal audit

Check the next decision before you build it.

Read-only. Code, paths, and history stay on your machine.