survival report #2 · 2026-09-23 · revision 2 · method v2 · causari 0.2.0 · unranked
Survival Report #2
13,733,809 of 27,108,452 lines introduced by 58,061 AI-tagged commits in 54 open-source repositories are still at HEAD (50.7 %). 95 % interval over the sampled repositories: 32.8 % to 77.2 %. These are counts, not grades. There is no rank, no colour and no verdict on this page; rows are alphabetical. Every number links to the audit bytes behind it and the method and its limits are public.
Corrections
This is revision 2 of report #2. A report is never edited in place: every superseded revision keeps its bytes and its DOI next to this page (revision 1), and what changed is stated here.
- Revision 2 (2026-09-24): All-Hands-AI/OpenHands and OpenHands/OpenHands are one repository, renamed on GitHub; revision 1 counted its audit twice (the two files under repos/ are byte-identical, SHA-256 1500353f…). It now counts once, under OpenHands/OpenHands. Revision 1 counted 55 repositories, 14,015,893 of 28,046,116 lines (50.0 %); its bytes are kept unchanged at report.r1.json, DOI 10.5281/zenodo.22928161.
Repositories
Alphabetical. VERIFIED commits only; PROBABLE counts are shown but never summed. Capped: no commit weighs more than the cap. Median per commit: the middle commit's own ratio. Largest commit: share of introduced lines from the single largest commit. Every number links to the audit bytes of this run; re audit <owner/repo> --json reproduces a row. Each repository name links to its own page: history across reports and a badge.
Measured but not aggregated
Fewer than 5 AI-tagged commits: the counts are published, the ratio is not, and the repository is left out of the aggregate above.
| Repository | Commits | AI-tagged | Lines introduced | Still at HEAD | Ratio |
|---|---|---|---|---|---|
| openai/openai-agents-python | 2,230 | 2 | 94,176 | 94,152 | n < 5 |
| openai/openai-python | 1,628 | 3 | 63 | 61 | n < 5 |
| stackblitz/bolt.new | 101 | 0 | 0 | 0 | n < 5 |
By agent, across the aggregated repositories
Alphabetical. A commit is attributed to the agent its metadata names; one agent per commit.
| Agent | Repositories | Commits | Lines introduced | Still at HEAD | Line-weighted |
|---|---|---|---|---|---|
| ai | 4 | 59 | 8,280 | 7,152 | 86.4 % |
| aider | 4 | 11,167 | 375,563 | 235,811 | 62.8 % |
| claude-code | 46 | 16,448 | 12,658,706 | 5,774,404 | 45.6 % |
| copilot | 4 | 3,927 | 250,780 | 147,792 | 58.9 % |
| cursor | 34 | 1,170 | 4,287,008 | 751,155 | 17.5 % |
| devin | 12 | 7,415 | 2,166,047 | 1,615,028 | 74.6 % |
| gemini | 13 | 1,511 | 470,396 | 292,713 | 62.2 % |
| github-copilot | 36 | 9,960 | 4,878,197 | 3,916,188 | 80.3 % |
| jules | 7 | 36 | 3,357 | 2,047 | 61.0 % |
| llm | 1 | 307 | 71,040 | 50,788 | 71.5 % |
| openai-codex | 17 | 1,662 | 556,459 | 292,140 | 52.5 % |
| opencode | 2 | 6 | 3,249 | 2,893 | 89.0 % |
| openhands | 5 | 4,361 | 1,377,031 | 643,632 | 46.7 % |
| pi | 2 | 32 | 2,339 | 2,066 | 88.3 % |
Excluded from this report
- Shallow clones (history truncated; method v2 refuses them): none.
- Audits that failed in this run: fern-api/fern, richlander/dotnet-inspect.
- One repository, two names:
All-Hands-AI/OpenHandsisOpenHands/OpenHands(byte-identical audit output); counted once, under the second name. - Opted out by their maintainers: 0. One line in
.github/survival-optout.txtremoves a repository from the next report, no questions asked.
Method
- Method v2, causari 0.2.0. Detection from commit metadata only; no model, no guess from the diff. Full text and known artefacts at causari.dev/method.
- Survival:
git blame -w -M -Cat HEAD, honouring.git-blame-ignore-revswhere present; a line counts for the commit blame attributes it to, capped at that commit's introduced count. - Cap rule: a commit weighs at most the 95th percentile of per-commit introduced line counts in its repository, and never more than 10,000 lines. The capped ratio is what one bulk commit cannot dominate.
- Sample floor: 5 VERIFIED commits. Below it a repository is measured but not aggregated.
- Intervals: 95 % percentile interval from 2000 bootstrap resamples of the 54 aggregated repositories (with replacement, seed 2). It describes the sampled repositories, not all AI-assisted code, and not the repositories not in this sample.
- Full clones only: method v2 refuses shallow clones; the workflow clones each repository completely before measuring.
- Reproduce or contest:
re audit <owner/repo> --jsongives the exact bytes behind a row; the bytes of this run are underrepos/next to this page. Open an issue with your JSON if it differs.
Cite as: Crovia Trust. Survival Report #2 (2026-09-23, revision 2). https://causari.dev/reports/survival/2026/02/ DOI 10.5281/zenodo.22944117
What this report is, and is not
This report counts lines. For each repository it states how many lines were introduced by commits that carry machine-readable AI authorship metadata (trailers such as Co-Authored-By naming an agent, bot author identities, aider markers, and, from method v4, git-ai notes that name a non-empty tool; method v3 counted any git-ai note), and how many of those lines git blame still attributes to those commits at HEAD, under the method version stated on the page (blame with -w -M -C, a per-commit weight cap, a sample floor, full clones only; from method v3 the untagged lines of the same repository, in the matched age windows, stand next to the AI-tagged ones). Every row is reproducible with one command.
It is not a quality judgement, a productivity measure, total AI usage, proof of authorship, a security finding, a correctness finding, or a causal effect of AI. Deleted lines include removed features and rewritten prototypes; surviving lines include dead code. It is not a sample of all AI-assisted code: inline completions leave no trace in git, untagged agent commits are invisible, and the repositories were selected, not drawn at random: 30 hand-picked and 30 found by GitHub commit search as public repositories with at least 5 commits carrying the same AI authorship metadata and at least 100 stars, most-starred first (discovered 2026-09-23); the selection rule and the counts behind it are public. The intervals describe the sampled repositories only.
Prior measurement work asks related questions with different instruments. GitClear publishes churn reports built from code-change patterns across the repositories it analyses; arXiv 2601.16809 ("Will It Survive?") follows the modification of agent-authored code in 201 projects with its own detector and finds that such code is modified less often than human-written code. This report does not reproduce either method and does not adjudicate between them: it publishes counts from git metadata alone, with the method version, the tool version and the exact bytes behind every number, so that the three can be read side by side.
re audit <owner/repo> --json # the exact bytes behind any row