A doctor is a single JS file that scans your repo for mistakes and reports the findings. It’s a deterministic way to capture frequent patterns you see in code reviews. This allows you to run code review scans without wasting tokens on the findings, making it easier for your agents to fix things without searching the whole codebase.
Run it after your agent finishes work. You and your agent can fix what’s real or record an accepted/not-applicable decision with a reason. Local decisions persist between runs and leave the active list; changed evidence resurfaces them for reassessment. Raw findings and CI gates remain unchanged.
The loop
- Your agent writes code. You run /review. It finds bugs and fixes. Your agent continues to write code and fix the same exact bug.
- You call out the recurring pattern and ask your agent to write a doctor for it. Every doctor scan moving forward will catch that pattern again. No inference being spent on the search.
Predefined sample doctors
We have some doctors for you to test in your own codebase!
- async: fetch hygiene, dropped promises, timer cleanup
- convex: indexed reads, bounded collects, query discipline
- slop: duplicated helpers, dead exports, hostname-sniffed environments, careless text matching
- openrouter: stream errors surfaced, cancellations that stop billing
- deepgram: endpoint/model compatibility, streaming options, Read shapes, hosts and proven browser key exposure
- effect-v4: the rules of the kitlangton Effect skill
The goal
The real goal here is for you to write your own doctors tailored specifically to your codebase or team. Ask your agent how to create doctors using any-doctor!
Where to go next
- Quickstart — run your first scan
- The report — how to read findings and the score
- Writing your first doctor — capture a pattern forever
- The agent guide — the interface your agent reads