· 6 min read

Five Months of Coding, in Numbers

A count of code, documents, issues, and commit activity across 15 repositories in my AI coding workflow, from April 20 to October 1, 2026.

I asked my coding agent to count what is in my repositories: code by language, Markdown documents by purpose, issues opened and closed, and lines changed since April 20. Here are the results.#

I typically have a single $200 MAX plan with Claude, though last month I started a $200 plan with Codex as well. I tend to use their frontier models, which burns through budget too fast, especially if I’m not careful cleaning up context.#

The period is April 20 through October 1, 2026: 165 calendar days, or about five and a half months. The inventory covers 15 repositories that use my Ariadne layout. It excludes personal capture repositories, third-party clones, packaging repositories, and duplicate worktrees.#

The current snapshot contains 914,206 lines of code in 4,395 files, and 1,175,758 lines of Markdown in 4,042 files. The issue trackers contain 1,228 issues, of which 852 are done, 306 remain open or active, and 70 are marked punt or wontfix.#

These numbers describe the repositories and their recorded activity. The current inventory includes work from before April 20; the change counts below are limited to the five-month period. Lines of code also include tests, comments, and blank lines.#

Code #

Go accounts for most of the source, followed by Lua and Python. The largest repositories by source size are Pair, Parley, and Ariadne.#

LanguageFilesLines
Go2,668565,496
Lua799193,508
Python468107,848
Shell21520,923
HTML159,204
Astro1418,040
TypeScript273,833
Make322,840
JavaScript151,249
CUE9829
CSS2235
Vimscript1122
Ruby145
Dockerfile234

The per-repository breakdown is below. Small repositories with only a Makefile are included; adopting the layout does not mean a project has substantial implementation yet.#

RepositoryCode filesCode linesLines by language
42shots926,198Astro 3,874; TypeScript 1,836; JavaScript 229; CSS 114; Shell 98; Dockerfile 17; Make 16; HTML 14
ariadne732141,620Go 126,701; Shell 5,619; Python 5,138; Make 1,352; HTML 1,329; CUE 684; JavaScript 594; TypeScript 158; Ruby 45
astro114Make 14
ducks110Make 10
kaggle353,359Go 3,297; Make 36; Shell 26
kbench39299,748Python 93,998; HTML 5,681; Shell 55; Make 14
metis14726,725Go 23,042; Python 3,383; CUE 145; Shell 132; Make 23
nous32768,020Go 63,892; Shell 3,547; Make 488; Python 93
pair1,396273,975Go 248,546; Lua 15,711; Shell 8,028; Python 1,128; Make 489; JavaScript 73
parley.nvim775184,759Lua 177,797; Python 3,778; Shell 1,992; HTML 646; Make 300; JavaScript 124; Vimscript 122
parli114Make 14
robotics216Make 16
tools382100,615Go 100,018; Shell 433; Python 135; Make 29
xianxu.dev978,215Astro 4,166; TypeScript 1,839; HTML 1,534; JavaScript 229; Python 195; CSS 121; Shell 98; Dockerfile 17; Make 16
you-decide15918Shell 895; Make 23

Documents #

There is more Markdown than code in this snapshot. Issue files and plans account for 393,550 lines. The remaining 782,208 lines include documentation, skills, review reports, evidence, and research records. This is a broad record of development work; it should not be read as a count of documentation written for end users.#

Each cell below shows files / lines. Completed issue documents and archived plans are included.#

RepositoryIssue documentsPlansOther Markdown
42shots0 / 00 / 05 / 363
ariadne278 / 46,00880 / 32,326402 / 114,959
astro0 / 00 / 014 / 1,247
ducks11 / 5360 / 02 / 145
kaggle10 / 9812 / 63512 / 1,007
kbench28 / 4,50025 / 7,451495 / 71,762
metis69 / 8,56836 / 8,935103 / 34,546
nous53 / 8,8378 / 3,77239 / 5,461
pair374 / 72,348114 / 57,721473 / 185,446
parley.nvim311 / 49,53275 / 42,051430 / 242,855
parli0 / 00 / 018 / 1,224
robotics0 / 00 / 02 / 6
tools82 / 22,90346 / 24,560208 / 95,851
xianxu.dev4 / 4071 / 17171 / 14,768
you-decide14 / 1,3080 / 0147 / 12,568
Total1,234 / 215,928387 / 177,6222,421 / 782,208

Here, “plans” means canonical workshop files named *-plan.md. Reviews and evidence stored beside plans are counted as other Markdown. Noncanonical planning documents can also fall into that category.#

Issues #

The issue counts come from unique IDs in the authoritative issue trackers, rather than the number of Markdown files. That is why the issue totals differ from the document counts above.#

“Still open” includes issues being worked on, blocked issues, and code-complete issues that have not been closed. I have kept punt and wontfix separate from done: they are terminal tracker states, but they do not represent completed implementation.#

RepositoryTotal issuesCreated since Apr 20Still openDonePunt / wontfix
42shots00000
ariadne2762735919918
astro00000
ducks11111100
kaggle1010550
kbench28285212
metis696915531
nous535316361
pair37337011523226
parley.nvim3082004524122
parli00000
robotics00000
tools828223590
xianxu.dev44220
you-decide14141040
Total1,2281,11430685270

The trackers retain 1,228 unique IDs; this is not a reconstruction of any records that may have been deleted or migrated away. Five issues lack creation dates, so 1,114 is a lower bound for issues created during the period.#

Of the issues known to have been created since April 20, 754 are now done. The tracker cards do not contain explicit closure dates, so this measurement does not establish how many issues were closed during the period.#

Commit activity since April 20 #

There were 13,380 non-merge commits reachable from the inspected mainline snapshots during the period. Across the counted source files, those commits added 1,097,761 lines and deleted 240,268 lines. Markdown added 1,523,445 lines and deleted 378,384 lines.#

The table shows additions and deletions separately. Rewriting the same file repeatedly contributes to both; these are activity counts, not a measure of useful output.#

RepositoryCommitsCode linesMarkdown lines
42shots30+9,371 / −3,173+1,243 / −880
ariadne2,675+169,550 / −30,402+240,378 / −56,568
astro6+14 / −0+1,262 / −15
ducks15+10 / −0+714 / −33
kaggle69+3,856 / −497+2,803 / −180
kbench1,173+107,960 / −8,212+89,373 / −5,660
metis722+32,035 / −5,310+54,951 / −2,902
nous510+94,326 / −26,306+43,665 / −25,595
pair4,086+371,390 / −97,234+495,707 / −177,419
parley.nvim2,527+183,664 / −53,314+398,057 / −88,416
parli7+18 / −4+1,382 / −158
robotics6+16 / −0+17 / −11
tools1,160+115,988 / −15,386+161,221 / −17,097
xianxu.dev203+8,507 / −292+16,391 / −1,045
you-decide191+1,056 / −138+16,281 / −2,405
Total13,380+1,097,761 / −240,268+1,523,445 / −378,384

The Markdown changes break down as follows:#

CategoryAdded linesDeleted lines
Issues261,72824,294
Plans207,26433,892
Other1,054,453320,198

Spread across 165 calendar days, the averages are about 568 commits per week, 56,765 code lines changed per week, and 80,684 Markdown lines changed per week. “Changed” here is additions plus deletions. These averages include inactive days and do not measure hours worked.#

How the count was made #

The measurement used locally cached origin/main snapshots for files and commit history, and origin/issue-tracker for issue status. It did not fetch remotes, and it excluded uncommitted changes and work that had not reached the inspected mainline. The two branches are separate snapshots, so an issue card and its mainline document need not be at exactly the same stage.#

The file count includes regular tracked source and Markdown files. Symlinks, submodules, vendored dependencies, inherited seed copies, and identified generated source copies were excluded. Notebook JSON, configuration files, lockfiles, and data files were not counted as source code.#

The dependency exclusions also apply to historical changes. This matters: some dependencies were once tracked and later removed. Counting those removals would inflate the activity figures. In Kbench, the audit excluded 118,782 lines of copied public ARC game environments, along with generated solver snapshots, while retaining Markdown experiment records. Pair’s vendored terminal library was excluded too, including local patches within that dependency.#

Line counts are physical lines, including comments and blanks, rather than executable statements. Commit churn counts non-merge commits reachable from mainline in the date range. It excludes changes made only while resolving merges and excludes edits on the separate issue-tracker branch. Renames count changed lines, rather than treating an unchanged file move as a full deletion and addition.#

The large amount of Markdown is consistent with keeping issues, plans, reviews, and workflow records in the repositories. Its volume does not establish whether those records are useful. The same limitation applies to the source and commit counts: they give me a baseline for the scale and activity of this workflow, but judging the software still requires using it.#

Share:
Back to Blog