From bb832ae6ff5b53913e553ca3fea708143ac43577 Mon Sep 17 00:00:00 2001 From: Christopher Pitzi Date: Sun, 30 Aug 2026 20:17:36 -0400 Subject: [PATCH] =?UTF-8?q?Refresh=20language=20census=20=E2=80=94=202026-?= =?UTF-8?q?08-30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- metrics/language-census.md | 174 ++++++++++++++++++++----------------- 1 file changed, 93 insertions(+), 81 deletions(-) diff --git a/metrics/language-census.md b/metrics/language-census.md index f93fe1b..760dc98 100644 --- a/metrics/language-census.md +++ b/metrics/language-census.md @@ -7,74 +7,79 @@ file is meant to be **regenerated periodically** — see refresh in the [Update log](#update-log). > **Scope.** Only repositories whose `origin` remote is under -> `github.com/lentago/`. Measured over the maintainer's `~/repos` working tree, -> so it counts what's checked out locally for each org repo (not a GitHub API -> query). Third-party clones (`firewalla-mcp`, `firewalla-tools`) and the -> personal repo (`professional-endeavors`) are **excluded**, as are local-only -> scratch dirs that aren't git repos. Generated artifacts and vendored -> dependencies are excluded (see [Methodology](#methodology)); `cloc` +> `github.com/lentago/`. Measured over the maintainer's `~/repos` working tree +> (owner-grouped into `lentago/`, `cpitzi/`, `applause/` subdirs since +> 2026-08-12, so the scan walks two levels), so it counts what's checked out +> locally for each org repo (not a GitHub API query). Personal repos under +> `cpitzi/` — including `reference-checker` and `myosotis`, both outside the org +> with repointed remotes — and the `applause/` work tree are **excluded**, as +> are local-only scratch dirs that aren't git repos. Generated artifacts and +> vendored dependencies are excluded (see [Methodology](#methodology)); `cloc` > additionally **deduplicates byte-identical files**, so the deliberately-mirrored > `CLAUDE.md` / PR-workflow text is counted once, not once per repo. > -> **Repos in scope (18):** `betula`, `brasenia`, `claytonia`, `.github`, -> `drosera`, `homeassistant-config`, `kalmia`, `music-curator`, -> `office-presence`, `reference-checker`, `repo-template`, `shared-workflows`, -> `site-icecreamtofightwith-com`, `site-lentago-dev`, `site-pitzilabs-dev`, -> `site-pondviewlane-com`, `solidago`, `workstation-bootstrap`. +> **Repos in scope (22):** `asclepias`, `betula`, `brasenia`, `claytonia`, +> `.github`, `drosera`, `epigaea`, `kalmia`, `lupinus`, `mitchella`, `monarda`, +> `music-curator`, `office-presence`, `osmunda`, `repo-template`, +> `shared-workflows`, `site-icecreamtofightwith-com`, `site-lentago-dev`, +> `site-pitzilabs-dev`, `site-pondviewlane-com`, `solidago`, +> `workstation-bootstrap`. > -> Six of those carry names that changed in the 2026-07-04 rebrand wave — -> `bullpen`→`claytonia`, `firewalla-axiom-pipeline`→`betula`, -> `foundry-platform-demo`→`solidago`, `ice-cream-book`→`site-icecreamtofightwith-com`, -> `lentagolabs-dev`→`site-lentago-dev`, `pitzilabs-dev`→`site-pitzilabs-dev`. The -> list is derived from remotes at regeneration time, so it tracks renames on its -> own; it had simply not been regenerated since. Three (`office-presence`, -> `site-pitzilabs-dev`, `workstation-bootstrap`) are archived but still cloned -> locally, and the membership rule is about the remote, not repo state — so they -> remain in scope, unlike the active-only `fleet-reports/fleet-report.md`. +> Membership churn since the 2026-07-25 census: five August-born repos joined +> (`asclepias`, `lupinus`, `mitchella`, `monarda`, `osmunda`); +> `homeassistant-config` was renamed to `epigaea` (same repo, .github#147); and +> `reference-checker` left the org for the personal account on 2026-08-16 +> (.github#146), its local remote repointed 2026-08-23 — taking its committed +> `reports/*.html` with it. The three archived repos (`office-presence`, +> `site-pitzilabs-dev`, `workstation-bootstrap`) were rehomed to the personal +> `cjpitzi` account in August, but their local clones' origins still carry +> `github.com/lentago/` URLs (GitHub 301-redirects them), so the remote rule +> keeps them in scope — consistent with earlier cycles, where archive state +> never affected membership, unlike the active-only +> `fleet-reports/fleet-report.md`. --- -## Last updated: 2026-07-25 +## Last updated: 2026-08-30 -**Headline:** data still dominates — JSON is ~56% and, with CSV, exported payloads -alone outweigh every line of executing code in the fleet combined. Markdown is -second at ~16%, which is the fleet's real character: it ships documentation and -instructions. The executing spine is now a near-tie between the JavaScript family -and Shell, with Terraform and Python close behind. Python has quadrupled since the -last census, on the back of `music-curator`'s productization and the report -generators in this repo. +**Headline:** data still dominates — JSON is ~53% and, with CSV, exported +payloads still outweigh every line of executing code in the fleet combined. +Markdown is second at ~19% and its file count broke a thousand: the five +August-born repos are documentation-first, which *is* the fleet's character. +The executing spine is now a three-way tie — Shell, Python, and the JavaScript +family sit within ~400 lines of each other — with Python nearly doubling again +as `mitchella` arrives Python-first. HTML fell by almost two-thirds when +`reference-checker` left the org and took its committed report renders with it. ### By lines of code -Tool: `cloc 2.06`, over **git-tracked files only** (see Methodology — this changed -this cycle and makes the totals non-comparable with earlier rows). Total: -**242,774 lines of code** across **1,499 unique files**. +Tool: `cloc 2.06`, over **git-tracked files only** (see Methodology). Total: +**262,696 lines of code** across **1,821 unique files**. | # | Language | Code | Comment | Blank | Files | Share of code | |---|----------|-----:|--------:|------:|------:|--------------:| -| 1 | JSON | 135,512 | 0 | 6 | 56 | 55.8% | -| 2 | Markdown | 38,245 | 110 | 13,255 | 877 | 15.8% | -| 3 | CSV | 15,595 | 0 | 0 | 2 | 6.4% | -| 4 | Shell (Bourne + Bash) | 9,206 | 2,804 | 1,639 | 82 | 3.8% | -| 5 | YAML | 9,180 | 1,944 | 896 | 167 | 3.8% | -| 6 | HTML | 7,628 | 261 | 674 | 36 | 3.1% | -| 7 | HCL / Terraform | 5,749 | 1,743 | 1,201 | 101 | 2.4% | -| 8 | JSX (React) | 5,240 | 576 | 356 | 40 | 2.2% | -| 9 | Python | 5,219 | 1,854 | 1,284 | 40 | 2.1% | -| 10 | JavaScript | 3,992 | 702 | 426 | 20 | 1.6% | -| 11 | Text | 3,377 | 0 | 967 | 24 | 1.4% | -| 12 | Astro | 1,979 | 275 | 154 | 21 | 0.8% | -| 13 | CSS | 1,181 | 212 | 101 | 12 | 0.5% | -| 14 | TypeScript | 310 | 94 | 43 | 8 | 0.1% | -| 15 | Jinja Template | 277 | 0 | 48 | 6 | 0.1% | -| 16 | XML | 39 | 0 | 3 | 1 | 0.02% | -| 17 | Dockerfile | 18 | 42 | 15 | 4 | 0.01% | -| 18 | TOML | 14 | 5 | 3 | 1 | 0.01% | -| 19 | BrightScript | 13 | 0 | 0 | 1 | 0.01% | - -(`cloc` splits Shell into "Bourne Shell" 8,196 + "Bourne Again Shell" 1,010; folded -above. "Text" was omitted as not-a-language in earlier cycles, when it was 14 lines; -at 3,377 it is now listed rather than silently dropped.) +| 1 | JSON | 138,893 | 0 | 2 | 66 | 52.9% | +| 2 | Markdown | 49,195 | 209 | 15,448 | 1,051 | 18.7% | +| 3 | CSV | 15,595 | 0 | 0 | 2 | 5.9% | +| 4 | YAML | 11,194 | 2,824 | 1,122 | 227 | 4.3% | +| 5 | Shell (Bourne + Bash) | 9,927 | 3,047 | 1,733 | 90 | 3.8% | +| 6 | Python | 9,784 | 4,168 | 2,192 | 72 | 3.7% | +| 7 | HCL / Terraform | 6,721 | 2,466 | 1,358 | 113 | 2.6% | +| 8 | JSX (React) | 5,412 | 595 | 365 | 42 | 2.1% | +| 9 | JavaScript | 4,094 | 746 | 439 | 21 | 1.6% | +| 10 | Text | 3,621 | 0 | 987 | 27 | 1.4% | +| 11 | HTML | 2,947 | 4 | 85 | 30 | 1.1% | +| 12 | Astro | 2,364 | 311 | 187 | 29 | 0.9% | +| 13 | CSS | 1,716 | 430 | 177 | 13 | 0.7% | +| 14 | Jinja Template | 560 | 0 | 82 | 15 | 0.2% | +| 15 | TypeScript | 441 | 211 | 62 | 11 | 0.2% | +| 16 | TOML | 159 | 70 | 31 | 6 | 0.06% | +| 17 | XML | 39 | 0 | 3 | 1 | 0.01% | +| 18 | Dockerfile | 21 | 53 | 15 | 4 | 0.01% | +| 19 | BrightScript | 13 | 0 | 0 | 1 | 0.005% | + +(`cloc` splits Shell into "Bourne Shell" 8,358 + "Bourne Again Shell" 1,569; +folded above.) ### Programming / scripting languages only @@ -83,39 +88,43 @@ markup (HTML/CSS), the code that actually executes ranks: | # | Language | Code | |---|----------|-----:| -| 1 | JavaScript family (JS + JSX) | 9,232 | -| 2 | Shell / Bash | 9,206 | -| 3 | Terraform / HCL *(infra-as-code)* | 5,749 | -| 4 | Python | 5,219 | -| 5 | Astro | 1,979 | -| 6 | TypeScript | 310 | -| 7 | Jinja Template | 277 | +| 1 | Shell / Bash | 9,927 | +| 2 | Python | 9,784 | +| 3 | JavaScript family (JS + JSX) | 9,506 | +| 4 | Terraform / HCL *(infra-as-code)* | 6,721 | +| 5 | Astro | 2,364 | +| 6 | Jinja Template | 560 | +| 7 | TypeScript | 441 | | 8 | BrightScript | 13 | ### Notes -- **JSON leads but carries no logic** — it is `music-curator`'s credits and - inventory exports, HA entity/device/dashboard registry snapshots - (`homeassistant-config`), Grafana dashboard JSON (`drosera`), and - `package.json`-style config. With CSV (two Spotify collection exports, 15,595 - lines) the exported-data share is ~62%. Discount it and the picture is Markdown - documentation over a JS/Shell → Terraform/Python code base. -- **Markdown's file count is the real story** — 877 files against 56 JSON. The - fleet's documentation surface is broad and hand-maintained, which is what makes - the relative-link checker adopted fleet-wide in .github#57 worth its cost. -- **HTML is output, not source** — dominated by `reference-checker`'s committed - `reports/*.html` (rendered analysis outputs); like JSON, treat it as data the - repo carries rather than hand-authored markup. +- **JSON leads but carries no logic** — `music-curator`'s credits and inventory + exports (104,513 lines), `epigaea`'s HA entity/device/dashboard registry + snapshots (17,453), and `drosera`'s Grafana dashboard JSON (14,098) are ~52% + of the whole census on their own. With CSV (two Spotify collection exports, + 15,595 lines) the exported-data share is ~59%. Discount it and the picture is + Markdown documentation over a Shell/Python/JS → Terraform code base. +- **Markdown broke a thousand files** — 1,051 against 66 JSON, +11k lines since + July. The five August-born repos are documentation-first (~3.4k lines between + them, `asclepias` and `osmunda` carrying no executing code at all beyond a few + shell lines). The breadth of this hand-maintained surface is what makes the + relative-link checker adopted fleet-wide in .github#57 worth its cost. +- **HTML fell from 7,628 to 2,947 lines** — `reference-checker`'s committed + `reports/*.html` (rendered analysis outputs) left with the repo when it moved + to the personal account (2026-08-16). What remains is spread across this repo + and the site repos; still mostly output-like, not hand-authored markup. - **The web stack is still double-counted**, though less than before. Both `site-pitzilabs-dev` (archived) and its successor `site-lentago-dev` carry `github.com/lentago/` origins and remain cloned locally, so the JS/JSX/Astro/CSS figures reflect both. They are not byte-identical, so `cloc`'s dedup does not collapse them. Deleting the archived clone locally is what retires that overlap. -- **Python has quadrupled** — 1,218 lines at the last census, 5,219 now. The - growth is `music-curator`'s productization plus this repo's report generator and - validator. -- **Shell remains the most-commented code in the fleet** — 2,804 comment lines - against 9,206 of code (~30%), consistent with ops scripts written to be audited. +- **Python nearly doubled again** — 5,219 lines at the last census, 9,784 now. + `mitchella` arrives as the fleet's most Python-forward repo (1,295 lines, its + largest language), and `music-curator` (4,227) remains the biggest holder. +- **Python has taken Shell's most-commented crown** — 4,168 comment lines + against 9,784 of code (~43%), with Shell holding at ~31% (3,047 against + 9,927). Both are consistent with ops code written to be audited. --- @@ -151,8 +160,10 @@ that's what dedups the mirrored `CLAUDE.md` / PR-workflow text. ```bash cd ~/repos -# Derive the in-scope repo list from actual remotes (don't hand-maintain it): -ORG_REPOS=$(for d in */; do d="${d%/}"; \ +# Derive the in-scope repo list from actual remotes (don't hand-maintain it). +# Clones are owner-grouped (lentago/, cpitzi/, applause/) since 2026-08-12, so +# walk both levels — the flat `*/` glob alone now finds nothing: +ORG_REPOS=$(for d in */ */*/; do d="${d%/}"; \ git -C "$d" remote get-url origin 2>/dev/null \ | grep -q 'github.com[:/]lentago/' && printf '%s ' "$d"; done) @@ -181,5 +192,6 @@ Then update the table, the "Last updated" date, and add a row to the log below. |------|----------:|------:|-------| | 2026-06-17 | 114,713 | 1,054 | Initial census over the **full `~/repos` working tree** (22 dirs, incl. third-party + personal). Superseded same day. | | 2026-06-17 | 76,388 | 519 | **Re-scoped to Lentago Labs org repos only** (14 repos). cloc 2.06. | -| 2026-07-25 | 242,774 | 1,499 | **Methodology change — git-tracked files only** (`cloc --vcs=git`), so totals are NOT comparable with rows above. Prompted by an untracked 1.6M-line personal Spotify export in `music-curator/data/` that a working-tree scan would have published as fleet source. Scope refreshed to 18 repos and the 2026-07-04 renames picked up (the list derives from remotes; it had just not been rerun). +`brasenia`, +`kalmia`, +`site-pondviewlane-com`. cloc 2.06. Closes .github#31. | | 2026-06-29 | 88,063 | 589 | Refresh after the Lentago Labs rebrand. **+`lentagolabs-dev`** brought into scope (now 15 repos, alongside the legacy `pitzilabs-dev` clone); **`archive/` excluded** as a gitignored local-only mockup that was adding ~2,144 HTML lines. cloc 2.06. | +| 2026-07-25 | 242,774 | 1,499 | **Methodology change — git-tracked files only** (`cloc --vcs=git`), so totals are NOT comparable with rows above. Prompted by an untracked 1.6M-line personal Spotify export in `music-curator/data/` that a working-tree scan would have published as fleet source. Scope refreshed to 18 repos and the 2026-07-04 renames picked up (the list derives from remotes; it had just not been rerun). +`brasenia`, +`kalmia`, +`site-pondviewlane-com`. cloc 2.06. Closes .github#31. | +| 2026-08-30 | 262,696 | 1,821 | Scope 18 → **22 repos**: +`asclepias`, +`lupinus`, +`mitchella`, +`monarda`, +`osmunda` (the August wave); −`reference-checker` (out of the org since 2026-08-16, .github#146 — its committed HTML reports drop HTML from 7,628 to 2,947); `homeassistant-config`→`epigaea` rename picked up. Regeneration recipe updated for the owner-grouped `~/repos` layout (two-level walk); log rows reordered chronologically. cloc 2.06. |