the WEATHERING MAP
ALTITUDE t — the same city as sheet 7, surveyed in time · 627 files dated from the whole history · three construction seasons, 10 silent months · counted at origin/main @ eb1162da
GENERAL NOTES
Method — one pass, renames followed. Every date on this sheet is read at build time from the checked-in plate www/, counted at origin/main @ eb1162da. Each file in the shared city universe was dated from a single git log --name-status -M pass over the history behind that ref, walked newest to oldest with rename chains followed backwards — equivalent to per-file --follow (spot-verified against it, including tools/, which the plain path log mis-dates by a week) but one process instead of 627. Per file: first-commit date, last-touch date, touch count. Merge commits list no files under the default log, so a touch is a non-merge commit — the standard convention. TODAY is not a wall-clock date: it is the measured ref's own commit date, 2026-10-18, so every age and idle figure below is reproducible from the sha rather than from the day the sheet was drawn. Footprints come from sheet 7's plate, www/, reused as pure geometry so the two sheets reconcile by eye — and by count: 627 dated files here against the same 627 there.
The bands are campaigns, not round numbers. The age histogram is not a slope, it is three spikes: files born around day 455 (July 2025), around day 281 (January 2026), and within the last 107 days — with nothing between them, because the repo has source births or touches in only 6 of its 16 calendar months. So the map bins by season, where the distribution actually cuts: SEASON I, the port — 26 files that arrived 2025-07-21 with the upstream sample-app lineage; SEASON II, the winter works — 15 files including the typedoc plugin and the examples; SEASON III, the summer — 586 files, 93% of the city, none older than 2026-07-04. Churn tiers are editorial cuts on touches per file: HOT is ≥6, where 14 of the 47 dated blocks stand, and COLD sits below 2, under the per-file median of 3. SEALED is idle >180 days — the idle histogram is empty from 105 to 291, and 2 files sit beyond the gap.
The verdict: age and churn run opposite ways. Mean touches per file falls monotonically with youth — ×15.4 for the port cohort, ×11.1 for winter, ×3.9 for summer — and 173 of 627 files (28%) have been touched exactly once, ever. The port's masonry is not museum stone: ui-sref.ts is at ×29 with the last chisel-mark dated 2026-10-12, and the two most-weathered walls in the city are the port-era www/ pair — config.ts at ×48 and vite.config.ts at ×32. What survives from the first day is precisely what keeps being worked.
What each district's weather says. The instrument yard — 16,757 sloc, the city's largest district by mass — logged zero touches before 2026 and is almost entirely summer stone: infrastructure arrived late, fast, and mostly settled on the first cut. Its one winter building is the typedoc plugin, whose index.ts was laid 2026-01-09 and is still under the chisel — idle 9 days; every sealed file left on this map now stands in examples/. The shopfront splits in two: docs runs the hottest multi-file block-average in the city (×12.2/f src) while examples holds the oldest untouched stone — two vite configs idle 291 days. And the eighth-smallest package on the map still runs hot: navigation-location-plugin's January index.ts has been chiselled 19 times, and its 2-file block averages ×10.5/f, the fourth-highest on the map — matching its history as the extracted plugin that every routing change touches.
See also — appendix A1, THE SPRITE STUDY. This map draws age and churn flat, as fills and edges, so the dating stays readable at city scale. The sprited reading of the same two measurements — wreck & ruin ↔ shine & splendor on the building itself — is the research filed as appendix A1, and its recommendation is what sheet 7B draws.
Approximations, so the numbers stay honest. Dates are author dates (%as); on this repo's squash-merge convention they equal the merge day of the PR that landed the change. Rename detection is git's -M heuristic: a file moved and rewritten in one commit can read as a fresh birth — the July 2026 scripts/ graduations are dated to that graduation where git saw no rename, which the yard's notes above already state as its story. Generated and vendored trees were never in the universe (the shared city rules); nothing else was excluded.
KEY
| SEASON I stone — born 2025-07, the port | |
| SEASON II stone — born 2026-01, winter works | |
| SEASON III stone — born since 2026-07-04 | |
| HOT — ≥6 touches/file · red edge + tall ticks | |
| COLD — <2 touches/file · faint edge, short tick | |
| SEALED — contains files idle >180 days | |
| spec annex — same strata, own weather | |
| timeline bars — district touches · all four together | |
| district (sheet 7’s) |