FIT VERDICTmeta — the atlas measured on sheet 7's ruler: 26,384 sloc of generator and app against 10,708 in the packages district, 2.5× the product it draws, with a 2-file annex
the ATLAS, MEASURED
APPENDIX · META — the atlas as a census city on sheet 7's ruler, standing beside the codebase it draws · four members, 26,384 sloc · measured at www/atlas @ 08a98096, outside the cabinet, which is main's (origin/main @ 3f55e419)
STRUCTURE SCHEDULE — files · sloc on sheet 7's ruler · spec annex
| # | block | files | sloc | annex | ground |
|---|---|---|---|---|---|
| 1 | packages/ the product | 109 | 10,708 | annex 127 files · 27,988 sloc | sheet 7's 14 members, summed |
| 2 | apps/ the proving ground | 93 | 4,927 | annex 24 files · 2,135 sloc | sheet 7's 7 members, summed |
| 3 | www/ + examples/ the shopfront | 65 | 9,573 | annex 19 files · 3,586 sloc | sheet 7's 4 members, summed |
| 4 | tools/ the instrument yard | 210 | 17,759 | annex 84 files · 12,965 sloc | sheet 7's 27 members, summed |
| 5 | the drawing office | 68 | 18,078 | no annex | generator/ — every other module |
| 6 | the survey office | 29 | 3,171 | no annex | generator/census*.mjs · basis.mjs · survey-*.mjs |
| 7 | the routed site | 19 | 4,713 | no annex | app/src/ — not app/src/generated/ |
| 8 | the site build | 4 | 422 | annex 2 files · 151 sloc | app/* · app/test/ — prerender, vite, artifact, lint config, the route bench |
TOTAL — the codebase 477 files · 42,967 sloc (+ 254 spec · 46,674) at origin/main @ 3f55e419 · the atlas 120 files · 26,384 sloc (+ 2 spec) at www/atlas @ 08a98096 · sloc = scc Code
EXCLUDED — what the atlas draws, generates or writes as prose
| # | rule or path | why it stands outside | files | lines scc counts |
|---|---|---|---|---|
| 1 | data/ — the filed plates | excluded | 24 | 15,459 |
| 2 | app/src/generated/ — written by build.mjs | excluded | 12 | 1,262 |
| 3 | app/public/ — fragments, pictures, model, manifest | excluded | 124 | 24,012 |
| 4 | *.md — README (generated), HISTORY and the other prose | excluded | 14 | 5,019 |
| 5 | .agents/ · .claude/ · .claude-plugin/ — the skills and their manifest | excluded | 4 | 5 |
| 6 | app/.oxlintrc.json | off the ruler, on a member's ground · JSON | 1 | 21 |
| 7 | app/index.html | off the ruler, on a member's ground · HTML | 1 | 1,678 |
| 8 | app/package.json | off the ruler, on a member's ground · JSON | 1 | 66 |
| 9 | app/src/experimental/experimental.css | off the ruler, on a member's ground · CSS | 1 | 91 |
| # | rule or path | why it stands outside | files | lines scc counts |
|---|---|---|---|---|
| 10 | app/src/registry.test-d.ts | off the ruler, on a member's ground · TypeScript | 1 | 41 |
| 11 | app/tsconfig.json | off the ruler, on a member's ground · JSON | 1 | 16 |
| 12 | generator/brand/hero-glow-dark.svg | off the ruler, on a member's ground · SVG | 1 | 20 |
| 13 | generator/brand/hero-glow.svg | off the ruler, on a member's ground · SVG | 1 | 29 |
| 14 | generator/brand/lit-flame.svg | off the ruler, on a member's ground · SVG | 1 | 6 |
| 15 | generator/brand/lit-ui-router.svg | off the ruler, on a member's ground · SVG | 1 | 1 |
| 16 | generator/brand/ui-router.svg | off the ruler, on a member's ground · SVG | 1 | 1 |
| 17 | app/ · generator/assets/a1/ | scc names no language | 7 | — |
GENERAL NOTES
Method — one ruler, two grounds. Every block on this plate is massed by S() and H() imported from sheet7.mjs — footprint side 1.6 · √sloc, height 3 px per authored file, floor 12 — and every file is admitted by the same predicate the city census uses, onCityRuler in census-query.mjs: authored .ts/, no *.d.ts, spec files split into an annex. The two halves stand on different grounds and say so. The codebase is data/, origin/main @ 3f55e419, the cabinet every numbered sheet reads. The atlas is not on main, so it cannot be in that cabinet: it is data/, written by generator/ from a git archive of its own branch — www/atlas @ 08a98096, committed 2026-10-30 — through the same scc 4.0.0 the cabinet uses. The probe is named survey-, not census-, so appendix A2's one-ref check stays a claim about main alone. The plate is drawn at 0.81× sheet 7's ruler, the largest hundredth at which the main row fits 1,520 px with 8 px gaps, so the codebase and the atlas shrink together and still read against each other.
The fixed-point rule. The atlas counts only what it writes by hand and what it serves to a browser, never what it draws — a drawing of the atlas that counted its own drawings would grow every time it was drawn. Admitted: the drawing office (every generator/ module that is not a census instrument — the sheets, the chrome, the 3D scenes, the emitter, the build), the survey office (census*.mjs, basis.mjs and survey-*.mjs), the routed site (app/) and the site build (app/: prerender, vite, artifact and lint config). Excluded, and tallied on the schedule: the filed plates in data/ (15,459 lines scc counts), app/, everything under app/, every Markdown file, and the skills under .agents/, .claude/ and .claude-plugin/. On a member's ground the ruler itself excludes more: app/ is 1,678 lines of HTML by scc's count, mostly the site's stylesheet, and stays off for the reason sheet 7's docs member keeps its .vue and .css off — a ruler that admits markup on one side and not the other compares nothing. Build output is untracked, so the archive never holds it.
What the drawing says. 2.5× the product it draws: 26,384 sloc against 10,708 in packages/. The drawing office alone, 18,078 sloc, outbuilds the product. It is more source than any one district of the codebase, and 61% of the 42,967 authored lines the codebase holds across all four. Where the comparison turns is the annex: the product outweighs it only with its tests counted — 38,696 sloc, annex and all, and its annex holds 2 spec files, 151 sloc. Every claim in this paragraph is computed from the two plates and changes its wording when the plates change it.
Why aggregates, and why the atlas is not. The codebase stands as four summed blocks, one per sheet 7 district, because the question is how much atlas there is, and sheet 7 already draws the codebase member by member. Summing is honest on this ruler for plan area — area ∝ sloc, so one block of a district's sum covers the same ground its members do — and approximate for height, which reads a district's total files as one tower. The atlas keeps its four members because it has no other drawing that shows its parts. The aggregates do not dwarf the atlas — the drawing office alone, 18,078 sloc, outbuilds the product — so the district scale carries the comparison on its own, and the product member by member is sheet 7's drawing to make. Sheet 7's district membership is read from its exported geometry, and a census row sheet 7 does not place is a build error here, so the two plates cannot disagree.
KEY
| a district of the codebase, summed — footprint ∝ √sloc, height ∝ files | |
| its spec annex — the test mass, same rule | |
| a member of the atlas — the same rule, on its own branch | |
| district frame | |
| the seam between main's ground and the atlas's |