Coduck in CI sees what a laptop structurally cannot.
On a laptop
In CI
What a laptop cannot see
Declared once. Checked on every repo, every PR.
Find the pattern once. Enforce it everywhere.
Know what a contract change breaks downstream.
Catch the copy living in another repository.
Blast radius
The repository making the change cannot see who depends on it. CI can.
PR comments
A confident wrong comment teaches people to ignore the bot. A question costs ten seconds and sometimes catches the real bug.
const { t } = useTranslation()- const { data, isLoading } = useUserProgress(userId)+ const data = SAMPLE_TASKS+ const isLoading = false if (isLoading) return <Skeleton />SAMPLE_TASKS renders for every user here, and isLoading
is pinned false so the skeleton never shows. ENG‑482 asks for the signed‑in
user’s own progress. Is the endpoint not landed yet?
/v2/progress ships Thursday, placeholder until then. Follow‑up is ENG‑491.
Proof, not opinion
The pipeline already runs your suite. So when coduck is sure, it writes a test that fails on the branch and re‑runs it against the fix. Nothing is reported as a bug unless it can be shown.
› renders the signed‑in user’s own progress
expectedtasks for user_8123
receivedSAMPLE_TASKS
same test, re‑run once useUserProgress was restored
Domain map
Every review reads real code against a real ticket. Run that on every pull request and coduck accumulates something no repository holds in one place: the domains your system is made of, what each one guarantees, and which ones depend on each other.
The rules that live in one senior engineer's head become a thing the next review, the next hire, and the next agent can all read.
In your terminal
The map is not a wiki nobody updates. It is a command, next to the code, answering from what the reviews actually found.
Every rule says which pull requests taught it, so you can go and read the change it came from rather than take coduck's word for it.
Why it matters
A change that breaks an invariant is caught because the invariant is written down, not because a reviewer happened to remember it.
The thing that takes six months to learn is a command on day one.
Point Claude or Codex at the same map and it writes against your rules instead of guessing them.
Rebuilt from the pull requests as they merge, so it cannot drift the way a wiki does.
For larger teams
The CLI is free and works today. This is what comes next.