the INSTRUMENT YARD
ALTITUDE 3 — 12 publishable packages · 27 tools · 96 turbo task names · one packer, many readers · every mass counted at origin/main @ 3f55e419 (2026-10-31) from www/atlas.lit-ui-router.dev/data/census-yard.json on scc Code lines — 396 authored files and 32,205 sloc across 18 massed structures, with the task-manager inset reading the same two plates sheet 3A draws
STRUCTURE SCHEDULE — authored source per structure · files (f) · sloc · gate tier
| # | structure | files | sloc | gate tier | note |
|---|---|---|---|---|---|
| 1 | src — packages/*/src | 109 | 10,708 | the line itself | twelve published + two private — the material |
| 2 | build — @tools/oxc-emit | 6 | 487 | the line itself | JS pass + d.ts pass, one emitter |
| 3 | pack — packPublishTarball | 12 | 441 | the line itself | the one packer (#449), cached |
| 4 | THE TARBALL | — | — | the artifact | the one artifact every check reads |
| 5 | publish — release-it | 33 | 2,046 | the line itself | bump · tag · push · publish steps |
| 6 | npm registry | — | — | not massed | immutable once crossed |
| 7 | tests — vitest harness | 6 | 380 | STOPS THE PR LINE | lit-test-env + happy-dom · 3 real browsers |
| 8 | compat-guards | 9 | 312 | STOPS THE PR LINE | the lit 2 / mobx 6 / analyzer lanes |
| 9 | dts-backtest | 9 | 619 | STOPS THE PR LINE | 9 files · 619 lines hold the TS 5.0 floor |
| 10 | check:exports | 2 | 141 | STOPS THE PR LINE | publint + attw over the raw pack |
| # | structure | files | sloc | gate tier | note |
|---|---|---|---|---|---|
| 11 | published-diff | 5 | 481 | HALTS A PUBLISH | vs the LIVE npm tarball · halts publishing |
| 12 | peer-floor tier-2 | 4 | 274 | gates a later stage | gates version bumps, never a PR |
| 13 | peer-floor tier-1 | 2 | 144 | never gates | reports check runs, never gates |
| 14 | lint & probe fleet | 47 | 5,313 | never gates | oxlint · elements · axe · CI gate |
| 15 | @tools/shared | 11 | 516 | never gates | the library under every instrument |
| 16 | typedoc plugin | 2 | 350 | never gates | builds the API pages, gates nothing |
| 17 | e2e — cypress | 11 | 826 | STOPS THE PR LINE | drives the sample apps · stops the PR line |
| 18 | sample apps | 84 | 4,502 | the line itself | effect + mobx + signals + vanilla + routes + shared |
| 19 | docs deploy watch | 9 | 1,000 | gates a later stage | workers-builds triggers · gates the deploy |
| 20 | anti-slop rules | 35 | 3,665 | never gates | vendored upstream · loaded by every oxlint lane |
TOTAL — 18 massed structures · 396 authored files · 32,205 sloc · counted at origin/main @ 3f55e419 (2026-10-31) · gate tier is colour, never height
GENERAL NOTES
Method — one basis, shared with sheet 4. Every massed structure was counted from this repo's authored source, counted at origin/main @ 3f55e419 (2026-10-31) and read from www/: .ts/ under each member's source directory, excluding *.d.ts, *.test-d.ts, *.spec.* and *.test.*, specs/, __tests__/ and fixtures. sloc is scc's Code count — string-aware, so the interior of a template literal counts as code rather than as one line. @tools/ hosts several instruments at once, so it is attributed by module prefix — check-published-diff* to structure 11, check-exports* to 10, the pack modules to 3, the release steps to 5 — with every file landing in exactly one structure and none counted twice. 20 structures, 18 of them massed: 396 authored files, 32,205 lines. One member is massed nowhere: @tools/ is a single globals.d.ts, and declaration files are outside this basis. The tarball, the registry and the boundary are diagrammatic.
Mass is volume; volume does not predict authority. Footprint side is 1.6 · √sloc, so plan area tracks lines; height is 1.5 px per authored file, so a block's volume is its sloc × files. The three heaviest masses on the sheet gate nothing: packages/*/src (109 files, 10,708 lines), sample apps (84 files, 4,502 lines), lint & probe fleet (47 files, 5,313 lines). The 5 structures that can stop a pull request total 37 files between them, and one of them — dts-backtest — is a single 619-line run.ts. Encoding severity as height would imply the opposite; the census says a gate's authority has nothing to do with how much code it is.
Severity in colour. Red hatch across cap and flank marks a check that stops the PR line: the vitest harness (7), compat-guards (8), dts-backtest (9), check:exports (10) and Cypress e2e (17). One block is solid red — published-diff (11) — because it is the only structure that halts publishing itself, and it closes the loop by pulling the live npm tarball back for comparison, which makes the registry part of the circuit rather than a destination. Accent hatch marks the gates that fire later rather than on a PR: peer-floor tier-2 (12) gates version bumps, the workers-builds watch (19) gates the docs deploy. Faint, unhatched blocks never gate at all — peer-floor tier-1 reports check runs, the lint & probe fleet is advisory, @tools/, the typedoc plugin and the vendored anti-slop rules (20) are libraries. The tiers survive both themes because they differ in hatch as well as hue: solid red, red hatch, accent hatch, no hatch.
One packer, many readers (#449). The dashed trunk leaving the green crate is literal: check:exports (publint + attw), dts-backtest and published-diff all read the same cached packPublishTarball output. No check re-packs, so a drift verdict is always about the artifact that would actually ship. Known failure mode, drawn nowhere but real: a poisoned remote cache entry can replay a stale verdict — --force is the remediation.
Two task managers, one re-entrant loop. The inset at top right is drawn flat, not isometric, because a task manager is not a place — and because the relationship is not the clean layering it sounds like. GitHub Actions enters mise at 56 call sites across 9 workflows (36 distinct tasks); mise itself is almost graphless — 65 tasks with exactly 12 of them declaring depends (16 edges), among them lint_workflows → its four linters and setup → turbo_pin_worktree — because it delegates fan-out rather than modelling it. Seven mise tasks shell turbo, whose ci graph alone expands to 1251 task nodes. Then the loop closes back on itself: seven root package.json scripts shell mise run again, so turbo's / node literally runs mise run lint_markdown. That return is the whole point — mise/aqua owns the versions of the non-node tools (rumdl, taplo, shellcheck, actionlint, zizmor), and turbo climbs back out to it to get a cache key over tools node never installs. Neither gantry is above the other.
KEY
| halts a publish (published-diff alone) | |
| stops the PR line | |
| gates a later stage (bump · release · deploy) | |
| never gates — reporters and libraries | |
| mass — footprint ∝ √sloc, height ∝ files | |
| the artifact (one tarball) | |
| checks reading the cached tarball | |
| the return from the live registry |