survival report #4 · 2026-10-05 · method v3 · causari 0.3.0 · unranked

Survival Report #4

17,512,878 of 32,730,982 lines introduced by 68,274 AI-tagged commits in 59 open-source repositories are still at HEAD (53.5 %). 95 % interval over the sampled repositories: 37.4 % to 75.6 %. 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.

DOI 10.5281/zenodo.23196011 · report.json · report.md · card · Atom feed · all reports

Survival Report #4 card

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. Untagged, same age: the survival of the repository's own untagged lines, re-weighted to the age mix of its AI-tagged lines; Gap: the AI-tagged ratio minus that, in points (definition in the Baseline section). 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.

RepositoryCommitsAI-taggedLines introducedStill at HEADLine-weightedCappedMedian per commitLargest commitUntagged, same ageGap
Aider-AI/aider12,46111,156374,687235,78262.9 %41.9 %33.3 %27 %52.7 %+10.3 pts
airbytehq/airbyte53,3922,2771,090,411931,14985.4 %75.2 %85.7 %46 %62.1 %+23.3 pts
anthropics/anthropic-sdk-python1,465455,3694,42482.4 %78.0 %82.2 %30 %88.6 %-5.8 pts
anthropics/anthropic-sdk-typescript1,3956014,87112,34083.0 %84.8 %94.7 %37 %89.8 %-2.0 pts
anthropics/claude-code7637831,73929,67393.5 %75.6 %58.1 %69 %79.8 %+13.7 pts
apache/fluss2,2073412,65610,10079.8 %79.7 %92.3 %12 %82.6 %-3.4 pts
apache/spark48,77221 (+9 probable)1,6341,41286.4 %86.6 %94.1 %16 %85.3 %+0.1 pts
apache/texera7,238535 (+18 probable)206,294164,16879.6 %82.8 %90.9 %8 %82.4 %-2.8 pts
BerriAI/litellm43,9485,1931,774,3521,157,04065.2 %68.8 %68.7 %4 %58.3 %+6.9 pts
browser-use/browser-use7,03126319,7744,27821.6 %28.9 %14.3 %19 %44.8 %-23.2 pts
cfug/flutter.cn10,58814968,54359,21486.4 %75.1 %87.9 %48 %66.8 %+19.6 pts
cline/cline7,42615697,93665,47366.9 %68.5 %71.3 %12 %55.2 %+11.7 pts
cloudflare/workers-sdk8,52819991,80772,88279.4 %78.1 %72.1 %8 %68.5 %+10.9 pts
continuedev/continue16,266228 (+3 probable)27,75618,06365.1 %63.5 %68.1 %11 %58.4 %+6.7 pts
cozystack/cozystack5,3052,555573,125443,80677.4 %77.8 %85.0 %6 %82.6 %-5.1 pts
crewAIInc/crewAI2,8311993,348,346153,5914.6 %76.2 %89.9 %97 %63.9 %-59.3 pts
croviatrust/causari252146,2675,16082.3 %82.3 %92.9 %25 %84.7 %+0.3 pts
danny-avila/LibreChat5,74188 (+2 probable)84,48878,50892.9 %90.4 %88.2 %24 %87.7 %+5.3 pts
fastrepl/anarlog9,7481,501825,505523,98863.5 %47.6 %12.4 %15 %53.8 %+9.7 pts
flutter/flutter89,327155 (+4 probable)85,97917,87120.8 %65.5 %85.4 %39 %38.3 %-17.6 pts
flutter/website8,55415050,11247,58295.0 %81.6 %93.0 %65 %66.7 %+28.2 pts
ghostty-org/ghostty13,580834,3303,12772.2 %74.7 %88.2 %11 %48.1 %+24.1 pts
github/gh-aw-mcpg5,6755,220444,689247,61855.7 %62.8 %70.7 %3 %44.0 %+11.7 pts
google-gemini/gemini-cli6,46035074,44947,53763.9 %62.4 %64.3 %4 %66.1 %-3.7 pts
google/sam1,511352479638.9 %42.2 %0.0 %71 %36.9 %+2.0 pts
GoogleCloudPlatform/scion4,9798523,86919,89683.4 %76.4 %84.6 %36 %84.9 %-1.6 pts
jdubois/boot-ui1,5301,142569,829457,19480.2 %79.9 %81.4 %9 %67.9 %+12.3 pts
langchain-ai/langchain16,80143 (+3 probable)7,2895,38873.9 %69.8 %87.4 %24 %55.6 %+15.7 pts
langgenius/dify13,854573646,492354,78654.9 %54.8 %55.9 %16 %45.2 %+9.6 pts
lidge-ai/cli-jaw5,7021,361445,819197,93944.4 %75.2 %68.2 %47 %54.5 %-10.1 pts
lidge-ai/ima2-gen2,059455127,66146,82936.7 %53.0 %60.0 %19 %57.4 %-20.7 pts
lobehub/lobe-chat14,1182,031 (+16 probable)2,398,3612,092,52987.2 %79.8 %81.7 %2 %81.9 %+5.4 pts
managarm/managarm6,43966052,31740,95678.3 %78.3 %90.1 %6 %79.7 %-1.4 pts
mem0ai/mem02,6429437,02423,94864.7 %64.9 %82.8 %9 %65.3 %-4.8 pts
microsoft/BCApps4,212675378,503330,73387.4 %82.0 %86.4 %29 %91.7 %-4.5 pts
microsoft/vscode149,0986,9992,681,4662,128,43479.4 %72.1 %75.7 %33 %63.0 %+16.4 pts
microsoft/vscode-copilot-chat3,713336995,871939,15994.3 %69.0 %76.3 %88 %55.7 %+38.6 pts
NovaSky-AI/SkyRL1,339397 (+3 probable)135,259107,37479.4 %76.2 %80.5 %4 %62.7 %+16.7 pts
NVIDIA-NeMo/Switchyard5202515,16810,04666.2 %66.9 %78.7 %21 %77.2 %-11.0 pts
openai/codex11,843364183,908109,05459.3 %58.7 %58.3 %6 %54.4 %+5.0 pts
openai/openai-agents-python2,348697,48397,00299.5 %96.4 %89.4 %97 %no shared window
OpenHands/extensions39031387,71569,89779.7 %79.2 %86.5 %4 %68.5 %+11.2 pts
OpenHands/OpenHands · rewritten8,3852,671953,450293,62230.8 %29.0 %0.0 %14 %38.7 %-7.9 pts
OpenHands/software-agent-sdk2,5011,734494,896393,24279.5 %76.4 %77.8 %11 %77.6 %+1.9 pts
PrefectHQ/prefect18,4351,664459,450375,14181.7 %80.5 %89.7 %3 %69.5 %+12.1 pts
pydantic/pydantic-ai3,889347684,751581,63584.9 %76.4 %76.1 %63 %82.3 %+2.7 pts
QwenLM/qwen-code9,652565661,284543,89182.2 %76.7 %52.6 %21 %71.5 %+10.8 pts
ray-project/ray31,863859 (+20 probable)528,742329,57362.3 %76.8 %89.5 %27 %65.1 %-2.8 pts
RooCodeInc/Roo-Code6,2104388,01639,39544.8 %57.0 %62.6 %67 %45.6 %-0.9 pts
run-llama/llama_index7,953138,5427,87292.2 %92.2 %90.4 %73 %80.1 %+12.0 pts
secdev/scapy5,730648,5558,18095.6 %91.6 %100.0 %29 %89.0 %-0.4 pts
smithersai/smithers16,49010,828 (+2 probable)7,993,3751,707,03621.4 %41.9 %24.4 %42 %20.0 %+1.3 pts
sst/opencode15,7625025,9989,46636.4 %35.4 %39.5 %43 %40.5 %-14.5 pts
TracecatHQ/tracecat5,901555367,704249,76267.9 %66.4 %65.4 %4 %68.1 %-0.2 pts
vercel/next.js35,834247 (+3 probable)62,70748,14676.8 %74.0 %82.5 %7 %61.7 %+15.1 pts
vllm-project/llm-compressor3,245158 (+6 probable)17,40013,93580.1 %74.3 %85.7 %30 %75.5 %+4.6 pts
xing-shuyin/pi-web-ui952312,4592,18188.7 %89.5 %96.4 %8 %84.7 %+4.7 pts
youknowone/pyre85,5012,0212,126,2781,518,87971.4 %68.9 %71.8 %15 %65.0 %+6.4 pts
zed-industries/zed37,104121 (+3 probable)47,97524,87651.9 %58.1 %69.4 %16 %66.2 %-14.7 pts

Baseline: the same repositories' untagged lines, at the same age

gap = AI-tagged line-weighted survival minus untagged survival re-weighted to the age mix of the AI-tagged lines of the same repository, over age windows where both cohorts hold at least 5 commits, computed inside each repository; untagged = commits with no machine-readable AI signal (human-written, inline-completed and untagged-agent code alike); age = commit date to HEAD date. A negative gap means AI-tagged lines survive less than untagged lines of the same age in the same repository.

58 of the 59 repositories with a baseline have an age-matched gap; the median is +3.7 pts (95 % bootstrap interval -0.4 pts to +6.9 pts); 23 gaps fall below zero and 35 above. Age windows below: counts summed across the repositories with a baseline, one row per age window; one large repository can dominate a window, so no gap is computed from these rows: the gap is computed inside each repository and only its median crosses repositories.

Cleared or rewritten (more than 50% of the repository's commits predate the oldest line still at HEAD): OpenHands/OpenHands. Nothing from before that date survives in them, tagged or not; their rows measure the rewrite as much as the code, and the gap is the figure to read.

Line ageAI-tagged commitsLines introducedStill at HEADAI-taggedUntagged commitsLines introducedStill at HEADUntagged
0–30 d14,1755,907,4524,551,59577.0 %21,12011,269,0589,215,64981.8 %
30–90 d11,8839,003,3983,735,89541.5 %36,89427,199,77114,689,00654.0 %
90–180 d15,4419,874,3644,368,76644.2 %48,47346,476,72638,945,16683.8 %
180–365 d13,3915,863,7953,490,47759.5 %91,87422,514,64111,769,77352.3 %
365–730 d10,2932,011,9551,332,95866.3 %131,84020,738,6529,942,48947.9 %
730+ d3,09170,01833,18747.4 %508,89183,641,89919,236,08923.0 %

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.

RepositoryCommitsAI-taggedLines introducedStill at HEADRatio
openai/openai-python1,68636361n < 5
stackblitz/bolt.new101000n < 5

By agent, across the aggregated repositories

Alphabetical. A commit is attributed to the agent its metadata names; one agent per commit.

AgentRepositoriesCommitsLines introducedStill at HEADLine-weighted
ai4618,3017,04784.9 %
aider411,167375,563235,81162.8 %
claude-code5123,23016,363,6988,271,48950.5 %
copilot44,006252,865148,90858.9 %
cursor371,2974,355,982814,41018.7 %
devin148,1872,727,8112,059,96475.5 %
gemini141,559476,688292,36861.3 %
github-copilot3911,1005,520,2944,194,67576.0 %
grok1181221,302172,88078.1 %
jules8383,5342,07058.6 %
llm1740145,514113,51278.0 %
openai-codex222,177848,705510,93060.2 %
opencode263,2492,88088.6 %
openhands54,4931,425,137683,87148.0 %
pi2322,3392,06388.2 %

Excluded from this report

  • Shallow clones (history truncated; method v3 refuses them): none.
  • Audits that failed in this run: fern-api/fern, llvm/llvm-project, richlander/dotnet-inspect.
  • Opted out by their maintainers: 0. One line in .github/survival-optout.txt removes a repository from the next report, no questions asked.

Where this measurement connected

The witness recorded, in 20 of 20 uploaded shard logs, 1 destination(s) over 128 connection(s): 1 allowed, 0 blocked, 0 failed, under an allowlist of 1 rule(s) in enforce mode. Every destination the witness saw is one the policy allows. The policy is egress-policy.json (source), bound in the sheet as sha256:7a501cbe66356070f9c6c6a5372a8dd425be059bb2315a71bffcccff64692e21.

DestinationOutcomeConnectionsBytes outBytes in
github.com:443allowed128515,03930,149,527,997

Signed run sheet: reach.sheet.json (profile crovia.pnx.v1, witness urn:causari:survival-report:witness:run-37308519983, capture proxy-connect, disclosure clear). Verify it offline with tacet-pnx verify reach.sheet.json --policy egress-policy.json or re pnx verify reach.sheet.json --policy egress-policy.json, or paste the sheet and the policy at croviatrust.com/registry/seal/verify.

Covered: the connection attempts in the shard logs that were uploaded and concatenated into this sheet. Not covered: any shard that uploaded no log; what the runner does outside the measurement step (checking out this repository, installing the tool, uploading the shard); and any connection that did not go through the witness. The record says where the measurement connected through the witness and how many bytes crossed, nothing about their content.

Method

  • Method v3, causari 0.3.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 -C at HEAD, honouring .git-blame-ignore-revs where 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 59 aggregated repositories (with replacement, seed 4). It describes the sampled repositories, not all AI-assisted code, and not the repositories not in this sample.
  • Full clones only: method v3 refuses shallow clones; the workflow clones each repository completely before measuring.
  • Baseline (method v3): every UNKNOWN commit of a repository, human-written, inline-completed or untagged-agent code alike, forms its untagged cohort; the by-age table and the age-matched gap put it next to the AI-tagged one. The untagged cohort includes AI code that carried no tag.
  • Reproduce or contest: re audit <owner/repo> --json gives the exact bytes behind a row; the bytes of this run are under repos/ next to this page. Open an issue with your JSON if it differs.

Cite as: Crovia Trust. Survival Report #4 (2026-10-05). https://causari.dev/reports/survival/2026/04/ DOI 10.5281/zenodo.23196011

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, git-ai notes), 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, at the same age, stand next to the AI-tagged ones). Every row is reproducible with one command.

It is not a quality judgement: 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 34 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-27); 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