THE ALTITUDE ATLAS — DRAWING SETSHEET 3A / 14

the HANDOFF WORKS

ALTITUDE 3 · ALTERNATE PLATE — the sheet-3 task-manager inset at full size: 9 of 14 workflows · 65 mise tasks in 4 homes · turbo ci 1251 nodes, 332 real · 4 seam types · 3 service doors · every frame sized to the widest DIN line it holds, so the spine is computed rather than hand-set · every count imported from www/atlas.lit-ui-router.dev/data/census-handoff.json + census-plate.json · counted at origin/main @ 3f55e419 (2026-10-31)

READ LEFT TO RIGHT — every PR enters at a workflow, crosses two gaskets, and returns through the cache gasket DOOR 1 — deflake-e2e.yml:75 · bare `turbo run build --filter=…` — over the umbrella, straight into turbo (PATH still mise) GITHUB ACTIONS 14 workflows · 9 call mise build-test-run ·17 acceptance ·10 publish-npm ·8 release-signals ·7 bump-version ·4 deflake-e2e ·4 publish-gh ·4 build-test-branch ·1 lint-workflows ·1 no mise: build-test coderabbit-oneshot commitlint dependency-audit semantic-pr branch_ci_gate needs NO setup — node builtins (build-test-branch.yml:35-36) ① SEAM A WORKFLOW → MISE 56 call sites 36 distinct targets args cross as env — step env: satisfies $usage_* flags; no ${{ }} in run lines buys: pinned tools + node-free bootstrap MISE — THE NODE-FREE UMBRELLA 65 tasks · 4 homes · 12 use depends · 34 with $usage_* specs TOOL BELT — aqua pins, mise.lock checksums ⑥ taplo 0.10.0 · rumdl · shellcheck · pnpm (bootstrap) actionlint · zizmor — node never installs these tools/build_and_test — 12 xvfb · branch_ci_gate turbo_summary · cypress playwright_version cypress_version playwright playwright_deps_engines ✕ playwright_deps — DEAD no caller; superseded (mise.toml:93-97) .config/mise/tasks/* — 15 ⑤ taplo · rumdl shellcheck · read_secret turbo_login turbo_pin_worktree cloudflare_item_create § check_workers_builds measure_deflake § = the one mise→pnpm→ turbo loop-closer (manual) tools/release — 17 git_user · package_info pack · check_tarball reconcile · tag · tag_push publish · bump peer_floor_gate 3× *_check_runs ★ check_pack ★ published_diff (runs turbo ×2) ↩ check_release_closure config.toml inline — 21 ② ★ ci · ★ ci_main ★ build ★ codecov_bundle ★ dts_backtest_matrix ↩ lint_actionlint ↩ lint_zizmor ④ ↩ lint_toml ↩ lint_shellcheck ↩ lint_markdown ↩ format_check_toml ↩ format_toml (writer) ⌂ lint_workflows (dep×4) setup · cloudflare_login ★ shells turbo (7) · ↩ turbo re-enters (8) SEAM B MISE → TURBO 7 tasks 8 invocations TURBO_* crosses as ambient env — no flags at all buys: remote cache + summary TURBO — THE CACHED FAN-OUT ci graph: 1251 nodes · 332 real · 5,250 edges · 283 real→real 31 turbo.json files · 153 task definitions (53 root + 100 member) ci:main overlay: 1305 nodes · 337 real (+5 real tasks) 15 cache:false tasks repo-wide — ZERO reachable from ci counted from bare `turbo run ci --dry=json` · 2026-10-31 ci → ci:pull_request ci:main = ci:pr + 54 nodes, 5 real turbo.json:431-446 — 12 dependsOn lanes under ci:pull_request PHANTOM SHROUD — 919 of 1251 nodes run nothing (73.5%) transit, ^build carriers, umbrellas — punched hole-by-hole on SHEET 12 //#lint:workflows — umbrella ×4 ← the turbo twin RE-ENTRANT PORTS — six root //# scripts whose command is `mise run …` + 1 member port ↓ //#lint:actionlint //#lint:zizmor ③ //#lint:toml //#lint:shellcheck //#lint:markdown //#format:check:toml the seven results cache in turbo, keyed on files mise owns ↓ 7th: release#check:release-closure HAND-SYNCED TWINS ⌂ lint_workflows config.toml:154-158 ∥ //#lint:workflows turbo.json:316-324 same 4 legs, kept in sync by hand THE DEEPEST CHAIN — 6 HOPS · runs on every PR, ×4 tool lanes ① build-test-run.yml:122 — `mise run ci` (env: TURBO_FORCE · TURBO_TOKEN/API/TEAM) ② mise ci — `turbo run ci --summarize` (.config/mise/config.toml:249) ③ turbo //#lint:toml — executes the root script `mise run lint_toml` (package.json:39) ④ mise lint_toml — `mise run taplo lint` (.config/mise/config.toml:139) ⑤ file task .config/mise/tasks/taplo — exec taplo over `git ls-files -- *.toml` ⑥ taplo 0.10.0 — pinned (.config/mise/config.toml:82) · terminal: a binary, not a task why it never recurses: the ★ set and the ↩ set are disjoint — mise→turbo→mise is a DAG in a loop costume DETAIL — THE CACHE GASKET: TURBO CACHES MISE //#lint:* inputs hash .config/mise/tasks/* AND mise.lock (turbo.json:327-331 · 343-351 · 356-362) a taplo pin bump busts exactly the taplo lane — nothing else turbo holds the cache; mise holds the versions; the gasket hashes one machine against the other SERVICE DOORS — 3 BYPASSES 1 deflake-e2e.yml:75 — bare turbo build --filter (skips mise tasks) 2 deflake-e2e.yml:89 — deflake runs OUTSIDE turbo: a cached test task would replay attempt 1 logs (:6-8) 3 cloudflare-build.ts:71-76 — the PRODUCTION docs deploy path: npm -g pnpm@<pin> replaces corepack, then npx turbo — NO mise — @www/lit-ui-router.dev#build

SEAM SCHEDULE — every crossing between the two machines · what crosses · what the boundary buys · cite

seamcrossingcountwhat crosseswhat the boundary buyscite
Aworkflow → mise56 call sites · 36 targets · 9 workflow filesenv, never argv (no ${{ }} in run lines)pinned tools + node-free bootstrap—
Bmise → turbo7 tasks · 8 invocationsTURBO_* ambient envremote cache + --summarizeconfig.toml:201-231 · tools/release/mise.toml:100,108-111
Cturbo → mise7 root scripts + 1 member script (7 in ci)script body `mise run …`TURBO CACHES MISE — inputs hash the task files + mise.lockturbo.json:327-362 · tools/release/turbo.json:50-62
Dmise → pnpm → turbo1 (check_workers_builds, manual)—only env passthrough + addressing — the turbo leg is cache:falsetasks file :21
D2mise → mise8 edges · 16 depends (setup · lint_workflows ×4, from 12 declaring tasks) + run-line delegations——cutest: turbo_login → mise run read_secret · tasks/turbo_login:44
Ebypasses3, all deliberate——deflake-e2e.yml:75 (bare turbo) · :89 (pnpm outside turbo) · cloudflare-build.ts:71-76 (npm -g pnpm + npx turbo, no mise — production)

TOTALS — 65 mise tasks · 34 with $usage_* specs · 153 turbo definitions · ci 1251 nodes / 332 real · 1 dead task (playwright_deps) · counted at origin/main @ 3f55e419 (2026-10-31) · graph via turbo 2.11.10

FIG. 3AThe two task managers drawn as the two machines they are — mise the node-free umbrella, turbo the cached fan-out — with the seams as the featured parts: every crossing is a bolted gasket labeled with what crosses it and what the boundary buys. The star fitting is the cache gasket on the return duct: turbo caches mise, because the six re-entrant lint lanes hash the mise task files and mise.lock, so a tool-pin bump invalidates exactly its own lane.

GENERAL NOTES

Method — one census, cited throughout. Every count on this plate is imported: www/atlas.lit-ui-router.dev/data/census-handoff.json for the workflows, the mise tasks and the turbo definitions, census-plate.json for the graph. Both are written by probes that read a materialized archive of the ref — the 14 workflow files, the 31 turbo.json files, .config/mise/** and both member mise.toml files — with the graph figures from a bare turbo run ci --dry=json on an installed archive. No mise or turbo runs on this machine to draw it, and nothing numeric here is hand-pasted: the task-name lists, the cited file:lines and this prose are the editorial part. Basis: counted at origin/main @ 3f55e419 (2026-10-31); graph surveyed at origin/main @ 3f55e419 (2026-10-31) · turbo 2.11.10.

The star fitting: turbo caches mise. Six root //# scripts in the ci graph have mise run … as their literal command, and their turbo inputs explicitly hash .config/mise/tasks/* and .config/mise/mise.lock (turbo.json:327-331, 343-351, 356-362); a seventh port, @tools/release#check:release-closure, re-enters from a member script and hashes config.toml the same way (tools/release/turbo.json:50-62). That is the whole trade drawn as one gasket on the return duct: mise owns the tool versions (taplo, rumdl, shellcheck, actionlint, zizmor — none installable by node), turbo owns the cache, and the gasket hashes one machine against the other, so a taplo pin bump invalidates exactly the taplo lane and nothing else.

A DAG in a loop costume. The circuit workflow → mise → turbo → mise looks re-entrant, but the 65 tasks partition cleanly: the seven that shell turbo (★ — ci, ci_main, build, codecov_bundle, dts_backtest_matrix, check_pack, published_diff) are reachable only from workflows and humans, while the eight turbo re-enters (↩ — the lint and format tasks, and check_release_closure) only exec pinned binaries, file tasks or a manifest reader. No edge leads from the second set back to the first. The deepest chain is six hops and runs on every PR, four tool lanes in parallel: workflow YAML → mise run ci → turbo run ci → //#lint:toml → mise run lint_toml → the taplo file task → the pinned binary.

Three service doors, all deliberate. deflake-e2e.yml:75 runs bare turbo run build --filter=… — over the umbrella, though mise still supplies the PATH; deflake-e2e.yml:89 runs the flake attempts through pnpm outside turbo, because a cached test task would replay attempt 1’s logs; and the production docs deploy never sees mise at all — Cloudflare Workers Builds clears corepack’s shims and installs the packageManager pin of pnpm globally through npm before npx turbo @www/lit-ui-router.dev#build (tools/workers-builds/cloudflare-build.ts:71-76), because the hosted image’s corepack shim cannot materialize pnpm 12. The doors are drawn red and hatched because each one gives up something the machines provide — and each was opened on purpose.

Two curiosities the census surfaced. One task in the whole machine is dead: //tools/build_and_test:playwright_deps (mise.toml:93-97) has no caller anywhere, superseded by playwright_deps_engines. And one umbrella exists twice: mise lint_workflows (a 4-leg depends, config.toml:154-158) and turbo //#lint:workflows (an umbrella whose dependsOn fans out to the four, turbo.json:316-324) are the same shape maintained by hand in both schedulers — the one place the two machines duplicate rather than delegate. The phantom shroud around turbo’s core — 919 of 1251 nodes that exist only to carry hashes — is drawn as wall thickness here; sheet 12 punches it hole by hole.

KEY

trunk — the handoff, in flow direction
coupling gasket — a seam between the machines
the cache gasket — turbo hashes mise-owned files
the deepest chain — 6 hops, circled digits
service door — a deliberate bypass
shells turbo / re-entered by turbo — disjoint sets
phantom shroud — 919 nodes that run nothing (sheet 12)
dead task — no caller anywhere
PROJECTTHE ALTITUDE ATLAS
SHEET TITLEthe HANDOFF WORKS
SCALETWO TASK MANAGERS
FORMCOUPLING SCHEMATIC
CLIENTlit-ui-router · simshanith
DATE / REV2026-10-30 · F
DRAWN BYFable (Claude, AI)
SHEET3A OF 14