RUN IT ON YOUR OWN REPO · LOCAL & ZERO-EGRESS

See what your codebase
already knows.

One command, on your machine, in about a minute. doloop reads your repository and writes a single self-contained report: the conventions your code already holds, a check that they are real, your load-bearing files, and what your AI keeps breaking. Nothing is uploaded. Run it again and it is byte-for-byte identical.

See a sample report → The one command

One command

Clone the demo (or pip install doloopio), then point it at any repository on your machine.

# point it at any repo python3 doloop_demo.py /path/to/your/repo # writes demo-report.html. open it. nothing was uploaded.

Python repositories today; the lens itself covers seventeen languages. No API key. Bring your own model only if you want the optional reading pass on top of the deterministic core.

What the report shows

  1. Your codebase's wall. The call-pairings your codebase invented that no linter could know — for example, every save_record() here also calls emit_event(), far more often than code at large. These are yours, inferred from your own code.
  2. Proof they are real. An out-of-sample check: doloop learns the conventions from half your functions and confirms they still hold on the half it never looked at. On Netflix's dispatch library that is 84%, about 27 times chance. Real regularities, not overfit.
  3. The spine. Your load-bearing files, where a change ripples widest, ranked by betweenness over your own import graph.
  4. Merge confidence. What AI breaks — invisible to the compiler, the linter, the type checker, and your tests — and how the gate triages every change green, yellow, or red.

See the sample report (Netflix/dispatch) →

Why it is safe to run

Local and zero-egress

Everything runs on your machine. Your code is never uploaded, never sent to a model you did not choose.

Deterministic

Run it twice and diff the two reports: byte for byte identical. A result you, or an auditor, can reproduce.

No rules of its own

It imposes no style guide. It reads your code and reports your conventions, in your own codebase's terms.

Read-only

It only reads and reports. It changes nothing in your repository.

The evidence behind it

The conventions are real and generalize out of sample. When AI rewrites a real function it drops the codebase convention 37 to 72 percent of the time, and in a controlled test every one of those breaks passed compile, lint, and type-check — so today only a human reading every diff catches them. doloop catches them deterministically. That is the stall it removes: read the few reds, merge the greens.

The full argument →   The evidence →