$git clone https://github.com/anthony-chaudhary/dos-kernelCatch your AI agents when they lie about what they shipped — verifies claims against git instead of believing the agent.
| 1 | <!-- GENERATED FILE — do not edit README.md directly. |
| 2 | The source of truth is docs/readme/ (one file per section, assembled |
| 3 | in filename order). Edit the part, then run: |
| 4 | python scripts/build_readme.py |
| 5 | tests/test_readme_assembly.py pins this file to the parts. --> |
| 6 | |
| 7 | # DOS — the Dispatch Operating System |
| 8 | |
| 9 | > ### Catch your AI agents when they lie about what they shipped. |
| 10 | |
| 11 | [](https://pypi.org/project/dos-kernel/) |
| 12 | [](https://pypi.org/project/dos-kernel/) |
| 13 | [](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/ci.yml) |
| 14 | [](https://github.com/anthony-chaudhary/dos-kernel/actions/workflows/dos-gate.yml) |
| 15 | [](https://github.com/anthony-chaudhary/dos-kernel/blob/master/docs/scoreboard/methodology.md) |
| 16 | [](https://github.com/anthony-chaudhary/dos-kernel/blob/master/LICENSE) |
| 17 | |
| 18 | > 📊 **See it run on real repos:** the **[scoreboard](https://anthony-chaudhary.github.io/dos-kernel/scoreboard/)** |
| 19 | > scores 15 popular AI-built repos (roborev, open-interpreter, crewAI, autogen, …) |
| 20 | > — how much agents wrote, which ones, and whether each commit's claim is backed |
| 21 | > by its own diff. Score yours: `dos commit-audit --sweep --workspace . BASE..HEAD`. |
| 22 | |
| 23 | <p align="center"> |
| 24 | <img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/caught-lie-cast.svg" alt="A terminal recording of the caught lie. The agent reports: Done! Shipped the login endpoint (AUTH1) and the password reset (AUTH2). git log shows one commit — AUTH1: ship the login endpoint. dos verify AUTH AUTH1 answers SHIPPED (exit 0); dos verify AUTH AUTH2 answers NOT_SHIPPED via none (exit 1) — caught. The exit code is the verdict: gate the agent's done on it and a false claim cannot land." width="100%"> |
| 25 | <br> |
| 26 | <em>The whole pitch in one recording: the agent claims two features shipped; git backs one. |
| 27 | <code>dos verify</code> answers from the commits, the lie exits <code>1</code>, and a gate on that |
| 28 | exit code refuses the false "done". Every line is the real CLI's verbatim output — |
| 29 | <a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/scripts/build_caught_lie_cast.py"><code>scripts/build_caught_lie_cast.py</code></a> re-records it whenever the output changes.</em> |
| 30 | </p> |
| 31 | |
| 32 | <p align="center"> |
| 33 | <img src="https://raw.githubusercontent.com/anthony-chaudhary/dos-kernel/master/docs/assets/loop-hero.svg" alt="Two agent fleets side by side. Left, no referee: agents all report 'done!', every report is believed, and silent corruption (lies, collisions, spin) piles up into a codebase that 'sorta works' and can't be changed. Right, DOS adjudicates: dos verify reads git and the run branches to SHIPPED (exit 0, land it) or NOT_SHIPPED (exit 1, re-dispatch — caught), and that verdict steers the next step." width="100%"> |
| 34 | <br> |
| 35 | <em>Run a fleet of agents on one repo. The left loop just feels like progress; the right one you can steer. |
| 36 | The only difference is a verdict DOS reads from the real world — here, git — never the agent's word.</em> |
| 37 | </p> |
| 38 | |
| 39 | An AI agent will tell you it finished. DOS checks the real world instead of |
| 40 | taking its word — and the nearest piece of the real world is your git history. |
| 41 | An agent says it shipped the login endpoint; did it? Run one command, |
| 42 | `dos verify`, and it answers from the artifacts the work left behind, not from |
| 43 | what the agent typed: a commit backs the claim → `SHIPPED`, exit `0`; nothing |
| 44 | landed → `NOT_SHIPPED`, exit `1`. The agent's story never enters into it. (Git |
| 45 | is just the first witness DOS reads; the file tree, the clock, a CI status, a |
| 46 | test environment's own state are others — anything the agent didn't author.) |
| 47 | |
| 48 | ```bash |
| 49 | dos verify AUTH AUTH1 # → SHIPPED AUTH AUTH1 e62f74d (exit 0) |
| 50 | dos verify AUTH AUTH2 # → NOT_SHIPPED AUTH AUTH2 (exit 1) |
| 51 | ``` |
| 52 | |
| 53 | That's the smallest version. It scales up, too: point a dozen agents at one |
| 54 | repo — in CI, in a fleet, racing on the same files — and DOS also tells you |
| 55 | which ones are stepping on each other, which one is spinning in circles, and |
| 56 | which claim of "done" is real. Every answer comes from the artifacts (git, the |
| 57 | file tree, the clock), never the narration. It works on a plain `git` repo with |
| 58 | zero config and gets smarter the more you tell it, and the only thing you ever |
| 59 | install is one small Python package. |
| 60 | |
| 61 | > ⚡ **Just add it — two commands, zero decisions.** From the repo where your |
| 62 | > agent works: |
| 63 | > |
| 64 | > ```bash |
| 65 | > pip install dos-kernel |
| 66 | > dos init --hooks a |