~ $ cd projects/changes && cat README.md
How this site changes
How this site is built draws where each file stands. This is how often each one moves. Git keeps every commit, and every commit says which files it changed; read over the whole history, that says what the arrows cannot: which files settle and which never do, how far a change travels, which files stand where changes happen, and which change together although nothing in the code joins them.
Like the picture of how it is built, every figure here is read off the history at every push, so it is always the commit being published. Play the history, drag it, or press a commit on the picture of changes, and every figure below shows the source as it stood then.
the last of 209 commits: 079ed30 13 October 2026 — A module of the LCARS display is moved by hand, the last of what David said it lacked: carried up or down its column onto another row, where what stood there changes places with it, the rest making room as it goes and a mark showing where it would land. Its column it keeps, since that says what comes before what, and the flow says it. Moving one module among others that stood where the layout wished would move nothing — each stands level with what feeds it, so they would all follow — so from the first move every module stays where it stood, and the display only finds a place for what is new, around them; Tidy hands the layout back. A move is a step Undo takes back, though the blueprint is the same before and after: where modules were put is kept beside each state of it while the page is open, and not with the reader's version nor in a link, since the text of a blueprint says nothing of it. Alt and an arrow move the module chosen; a finger on a module still moves the page. The schematic says of itself where its rows are and which each module stands on, so a hand on it is read against what is drawn. And what the display asks when a conduit could be run more ways than one is worded in a function of its own, tested without a page
The picture, as it changed
The picture of how this site is built, seen through its history: each ball as big as the commits that have changed it so far, and warm as it changed lately, cooling by half every six commits; a warm thread between two files that changed together twice or more, dashed where no arrow joins them. Play the history and the heat moves: a feature being written glows and cools, while the frame under the features warms again each time a new one is written. Tangle it, and what changed together pulls together too. Point at a file for what changed with it, or change the lenses for anything else the picture of how it is built can show. Click a file, and the panel by the picture tells its history: when it was written, every commit that changed it up to the one shown, what it changed with, what its ground would lead one to expect, and a link to its code.
src features platform features/adventure → platform/browser: 1 features/adventure → platform/markdown: 2 features/adventure → platform/plugin: 2 features/air-quality → platform/blueprint: 13 features/air-quality → platform/browser: 4 features/air-quality → platform/charts: 1 features/air-quality → platform/content: 1 features/air-quality → platform/data: 21 features/air-quality → platform/plugin: 3 features/air-quality → platform/program: 1 features/allFeatures.ts → features/adventure: 1 features/allFeatures.ts → features/air-quality: 1 features/allFeatures.ts → features/architecture: 1 features/allFeatures.ts → features/barcelona-series: 1 features/allFeatures.ts → features/bowling-kata: 1 features/allFeatures.ts → features/developer-meetings: 1 features/allFeatures.ts → features/fibergochi: 1 features/allFeatures.ts → features/first-network: 1 features/allFeatures.ts → features/fish-market: 1 features/allFeatures.ts → features/gherkin-genie: 1 features/allFeatures.ts → features/guess-the-rule: 1 features/allFeatures.ts → features/headline: 1 features/allFeatures.ts → features/lagoon: 1 features/allFeatures.ts → features/lcars: 1 features/allFeatures.ts → features/maze: 1 features/allFeatures.ts → features/next-word: 1 features/allFeatures.ts → features/packages: 1 features/allFeatures.ts → features/portfolio: 1 features/allFeatures.ts → features/post-tests: 1 features/allFeatures.ts → features/recipes: 1 features/allFeatures.ts → features/rocket: 1 features/allFeatures.ts → features/sea: 1 features/allFeatures.ts → features/search: 1 features/allFeatures.ts → features/sky: 1 features/allFeatures.ts → features/small-steps: 1 features/allFeatures.ts → features/step-names: 1 features/allFeatures.ts → features/technical-debt: 1 features/allFeatures.ts → features/tests-as-examples: 1 features/allFeatures.ts → features/theme: 1 features/allFeatures.ts → features/thesis-results: 1 features/allFeatures.ts → features/weather: 1 features/allFeatures.ts → features/world: 2 features/allFeatures.ts → features/writings: 1 features/allFeatures.ts → platform/plugin: 1 features/architecture → platform/blueprint: 26 features/architecture → platform/browser: 5 features/architecture → platform/charts: 12 features/architecture → platform/markdown: 16 features/architecture → platform/plugin: 7 features/barcelona-series → platform/blueprint: 8 features/barcelona-series → platform/data: 4 features/barcelona-series → platform/plugin: 1 features/bowling-kata → platform/browser: 1 features/bowling-kata → platform/markdown: 4 features/bowling-kata → platform/plugin: 3 features/bowling-kata → platform/testing: 4 features/developer-meetings → platform/browser: 2 features/developer-meetings → platform/charts: 1 features/developer-meetings → platform/plugin: 1 features/fibergochi → platform/browser: 2 features/fibergochi → platform/markdown: 1 features/fibergochi → platform/plugin: 2 features/first-network → platform/browser: 1 features/first-network → platform/markdown: 1 features/first-network → platform/plugin: 2 features/first-network → platform/random: 2 features/fish-market → platform/browser: 1 features/fish-market → platform/markdown: 1 features/fish-market → platform/plugin: 2 features/fish-market → platform/random: 1 features/gherkin-genie → platform/markdown: 5 features/gherkin-genie → platform/plugin: 2 features/gherkin-genie → platform/testing: 3 features/guess-the-rule → platform/browser: 1 features/guess-the-rule → platform/plugin: 2 features/headline → platform/plugin: 1 features/lagoon → platform/browser: 1 features/lagoon → platform/markdown: 1 features/lagoon → platform/plugin: 2 features/lcars → platform/blueprint: 37 features/lcars → platform/browser: 3 features/lcars → platform/plugin: 2 features/lcars → platform/workbench: 8 features/maze → platform/browser: 1 features/maze → platform/plugin: 2 features/next-word → platform/browser: 1 features/next-word → platform/markdown: 1 features/next-word → platform/plugin: 3 features/packages → platform/browser: 1 features/packages → platform/data: 2 features/packages → platform/plugin: 2 features/portfolio → platform/plugin: 1 features/post-tests → platform/browser: 1 features/post-tests → platform/markdown: 2 features/post-tests → platform/plugin: 2 features/recipes → platform/blueprint: 11 features/recipes → platform/plugin: 1 features/rocket → platform/browser: 4 features/rocket → platform/plugin: 2 features/rocket → platform/program: 4 features/sea → platform/blueprint: 15 features/sea → platform/data: 6 features/sea → platform/plugin: 1 features/search → platform/browser: 1 features/search → platform/command: 1 features/search → platform/content: 5 features/search → platform/markdown: 4 features/search → platform/plugin: 1 features/sky → platform/plugin: 1 features/small-steps → platform/browser: 2 features/small-steps → platform/plugin: 2 features/small-steps → platform/random: 1 features/step-names → platform/browser: 1 features/step-names → platform/markdown: 2 features/step-names → platform/plugin: 2 features/technical-debt → platform/charts: 2 features/technical-debt → platform/plugin: 1 features/technical-debt → platform/program: 2 features/tests-as-examples → platform/browser: 1 features/tests-as-examples → platform/markdown: 2 features/tests-as-examples → platform/plugin: 2 features/tests-as-examples → platform/testing: 3 features/theme → platform/analytics: 2 features/theme → platform/browser: 2 features/theme → platform/command: 2 features/theme → platform/plugin: 1 features/thesis-results → platform/plugin: 1 features/weather → platform/blueprint: 10 features/weather → platform/browser: 4 features/weather → platform/charts: 2 features/weather → platform/content: 1 features/weather → platform/data: 21 features/weather → platform/plugin: 3 features/weather → platform/program: 1 features/world → platform/browser: 3 features/world → platform/plugin: 2 features/world → platform/random: 1 features/writings → platform/content: 1 features/writings → platform/markdown: 2 features/writings → platform/plugin: 2 main.ts → features/allFeatures.ts: 1 main.ts → platform/agent: 1 main.ts → platform/analytics: 1 main.ts → platform/browser: 7 main.ts → platform/flags: 4 main.ts → platform/page: 1 main.ts → platform/plugin: 4 main.ts → platform/shell: 2 main.ts → platform/workbench: 1 platform/agent → platform/content: 3 platform/agent → platform/markdown: 1 platform/agent → platform/plugin: 5 platform/blueprint → platform/markdown: 2 platform/browser → platform/command: 2 platform/browser → platform/content: 1 platform/browser → platform/data: 3 platform/browser → platform/markdown: 3 platform/browser → platform/plugin: 6 platform/browser → platform/program: 8 platform/command → platform/content: 1 platform/data → platform/markdown: 1 platform/flags → platform/command: 2 platform/flags → platform/markdown: 1 platform/page → platform/content: 9 platform/page → platform/markdown: 5 platform/page → platform/shell: 3 platform/plugin → platform/blueprint: 17 platform/plugin → platform/command: 2 platform/plugin → platform/content: 5 platform/plugin → platform/data: 1 platform/plugin → platform/flags: 1 platform/plugin → platform/program: 11 platform/program → platform/command: 1 platform/shell → platform/browser: 2 platform/shell → platform/command: 14 platform/shell → platform/content: 5 platform/shell → platform/markdown: 7 platform/workbench → platform/blueprint: 73 platform/workbench → platform/browser: 11 platform/workbench → platform/plugin: 3 main allFeatures adventure air-quality architecture barcelona-series bowling-kata developer-meetings fibergochi first-network fish-market gherkin-genie guess-the-rule headline lagoon lcars maze next-word packages portfolio post-tests recipes rocket sea search sky small-steps step-names technical-debt tests-as-examples theme thesis-results weather world writings page shell workbench agent browser plugin flags program blueprint data command markdown charts testing analytics content random main.ts features/allFeatures.ts features/adventure/ADVENTURE_ICONS.ts features/adventure/Adventure.ts features/adventure/adventureFeature.ts features/adventure/adventureStill.ts features/adventure/browser/mountAdventure.ts features/adventure/Charted.ts features/adventure/englishWorld.ts features/adventure/LIFE.ts features/adventure/originalWorld.ts features/adventure/pixelIcon.ts features/adventure/renderAdventure.ts features/adventure/renderMap.ts features/adventure/renderSeen.ts features/adventure/World.ts features/air-quality/airQualityFeature.ts features/air-quality/askedNo2.ts features/air-quality/aStation.ts features/air-quality/browser/mountNo2.ts features/air-quality/flatSums.ts features/air-quality/no2AnnualMeans.ts features/air-quality/no2Colour.ts features/air-quality/no2Grid.ts features/air-quality/no2ScaleTop.ts features/air-quality/No2Selection.ts features/air-quality/no2Source.ts features/air-quality/No2Station.ts features/air-quality/no2Stations.ts features/air-quality/no2Still.ts features/air-quality/no2Tool.ts features/air-quality/nodes/airNodes.ts features/air-quality/nodes/no2DaysChoice.ts features/air-quality/nodes/no2HoursNode.ts features/air-quality/nodes/no2MonthsNode.ts features/air-quality/nodes/no2StationChoice.ts features/air-quality/nodes/no2StationsNode.ts features/air-quality/nodes/no2StationsRead.ts features/air-quality/nodes/no2YearsNode.ts features/air-quality/renderNo2Figure.ts features/air-quality/renderNo2Heatmap.ts features/air-quality/renderNo2Years.ts features/air-quality/tallies.ts features/air-quality/wholeRecord.ts features/architecture/againstStabilityOf.ts features/architecture/architectureFeature.ts features/architecture/architectureStill.ts features/architecture/assortativityOf.ts features/architecture/bandOf.ts features/architecture/betweennessOf.ts features/architecture/Body.ts features/architecture/boxCycles.ts features/architecture/boxLinksOf.ts features/architecture/boxOf.ts features/architecture/breakablePath.ts features/architecture/browser/ArchitectureScene.ts features/architecture/browser/changeApps.ts features/architecture/browser/changesInBrowser.ts features/architecture/browser/detailsPanel.ts features/architecture/browser/mountArchitecture.ts features/architecture/browser/mountChangeFigure.ts features/architecture/browser/mountChangePlayer.ts features/architecture/browser/mountCouplingFigure.ts features/architecture/browser/pointAtChangeMatrix.ts features/architecture/browser/shownCommit.ts features/architecture/Cascade.ts features/architecture/cascadeFrom.ts features/architecture/cascadeOf.ts features/architecture/changeFigures.ts features/architecture/changeMatrixOf.ts features/architecture/changeStills.ts features/architecture/changesUpTo.ts features/architecture/clusteringOf.ts features/architecture/communitiesOf.ts features/architecture/componentsOf.ts features/architecture/COMPOSITION.ts features/architecture/coresOf.ts features/architecture/couplingOf.ts features/architecture/couplingsOf.ts features/architecture/Coverage.ts features/architecture/coverageOf.ts features/architecture/dayOf.ts features/architecture/decodeHistory.ts features/architecture/describeMatrixCell.ts features/architecture/detailsOf.ts features/architecture/editNoteOf.ts features/architecture/encodeHistory.ts features/architecture/fileHistoryOf.ts features/architecture/graphOf.ts features/architecture/groundOf.ts features/architecture/heatOf.ts features/architecture/heightsOf.ts features/architecture/History.ts features/architecture/historyUpTo.ts features/architecture/importsOf.ts features/architecture/joinedBy.ts features/architecture/Layout.ts features/architecture/layoutArchitecture.ts features/architecture/lensesOf.ts features/architecture/Life.ts features/architecture/livesOf.ts features/architecture/matrixCellsOf.ts features/architecture/matrixRowOf.ts features/architecture/measuresOf.ts features/architecture/Metrics.ts features/architecture/metricsOf.ts features/architecture/modularityOf.ts features/architecture/mutantsOf.ts features/architecture/networkOf.ts features/architecture/nodes/architectureNodes.ts features/architecture/nodes/aroundNode.ts features/architecture/nodes/arrowsNode.ts features/architecture/nodes/boxesNode.ts features/architecture/nodes/CodeGraph.ts features/architecture/nodes/commitsNode.ts features/architecture/nodes/degreesOf.ts features/architecture/nodes/filesNode.ts features/architecture/nodes/graphTableOf.ts features/architecture/nodes/graphType.ts features/architecture/nodes/historyIn.ts features/architecture/nodes/keepFilesNode.ts features/architecture/nodes/knotNode.ts features/architecture/nodes/measureNode.ts features/architecture/nodes/networkNode.ts features/architecture/nodes/onlyFilesNode.ts features/architecture/nodes/pictureNode.ts features/architecture/nodes/renderTangleSvg.ts features/architecture/nodes/sourceNode.ts features/architecture/nodes/subgraphOf.ts features/architecture/nodes/tangleLayoutOf.ts features/architecture/onlyTypes.ts features/architecture/pageRankOf.ts features/architecture/pathsOf.ts features/architecture/percent.ts features/architecture/plural.ts features/architecture/pointedArrowsOf.ts features/architecture/pointedAt.ts features/architecture/pointedSaid.ts features/architecture/positionOf.ts features/architecture/propagationCostOf.ts features/architecture/radiiBy.ts features/architecture/rampColour.ts features/architecture/ratchetHeldOf.ts features/architecture/reachedByOf.ts features/architecture/reachedByTests.ts features/architecture/reachOf.ts features/architecture/readGraph.ts features/architecture/readHistory.ts features/architecture/readSources.ts features/architecture/renderArchitectureCaption.ts features/architecture/renderArchitectureFigure.ts features/architecture/renderArchitectureSvg.ts features/architecture/renderBridgesFigure.ts features/architecture/renderCascadeFigure.ts features/architecture/renderChangeMatrix.ts features/architecture/renderChangeMatrixFigure.ts features/architecture/renderCouplingFigure.ts features/architecture/renderCouplingsFigure.ts features/architecture/renderGroundFigure.ts features/architecture/renderGroupsFigure.ts features/architecture/renderHotspotsFigure.ts features/architecture/renderLifeStrip.ts features/architecture/renderMetricsSparks.ts features/architecture/renderNetworkFigure.ts features/architecture/renderRatchetFigure.ts features/architecture/renderReachFigure.ts features/architecture/renderRipplesFigure.ts features/architecture/renderSettlingFigure.ts features/architecture/renderShapeReport.ts features/architecture/renderShownCommit.ts features/architecture/renderStabilityFigure.ts features/architecture/renderTestedChangesFigure.ts features/architecture/renderUnrunReport.ts features/architecture/ripplesOf.ts features/architecture/settlingOf.ts features/architecture/shapeOf.ts features/architecture/shapesOf.ts features/architecture/Snapshot.ts features/architecture/snapshotOf.ts features/architecture/SourceGraph.ts features/architecture/sourceUrlOf.ts features/architecture/springTowards.ts features/architecture/stabilityOf.ts features/architecture/standingsOf.ts features/architecture/stronglyConnectedOf.ts features/architecture/SWEEP.ts features/architecture/sweepsOf.ts features/architecture/tangleStep.ts features/architecture/testedChangesOf.ts features/architecture/threadsOf.ts features/architecture/undirectedOf.ts features/architecture/unheldCouplingsOf.ts features/architecture/unrunOf.ts features/architecture/valueExportsOf.ts features/barcelona-series/barcelonaAnswer.ts features/barcelona-series/barcelonaLinkOf.ts features/barcelona-series/barcelonaRainSource.ts features/barcelona-series/BarcelonaSeries.ts features/barcelona-series/barcelonaSeriesFeature.ts features/barcelona-series/barcelonaSeriesSource.ts features/barcelona-series/barcelonaSource.ts features/barcelona-series/monthlyValuesOf.ts features/barcelona-series/nodes/barcelonaMonthsNode.ts features/barcelona-series/nodes/barcelonaNodes.ts features/barcelona-series/nodes/barcelonaRainNode.ts features/barcelona-series/nodes/barcelonaRead.ts features/barcelona-series/nodes/barcelonaYearsNode.ts features/bowling-kata/bowlingKataFeature.ts features/bowling-kata/bowlingKataStill.ts features/bowling-kata/browser/mountBowlingKata.ts features/bowling-kata/browser/mountKataFiveSteps.ts features/bowling-kata/KATA_LESSONS.ts features/bowling-kata/KATA_STEPS.ts features/bowling-kata/kataFiveStepsSlides.ts features/bowling-kata/kataFiveStepsStill.ts features/bowling-kata/KataLesson.ts features/bowling-kata/kataLessonAt.ts features/bowling-kata/KataStep.ts features/bowling-kata/kataStepTitle.ts features/bowling-kata/lineDiff.ts features/bowling-kata/renderKataFiveSteps.ts features/bowling-kata/renderKataStep.ts features/bowling-kata/renderKataStrip.ts features/bowling-kata/runKata.ts features/developer-meetings/browser/heatGrid.ts features/developer-meetings/browser/mountDeveloperMeetings.ts features/developer-meetings/developerMeetingsFeature.ts features/developer-meetings/featureSizeScale.ts features/developer-meetings/simulateMeetings.ts features/developer-meetings/summariseMeetings.ts features/developer-meetings/WORK_WEEK.ts features/fibergochi/browser/mountFibergochi.ts features/fibergochi/Fibergochi.ts features/fibergochi/fibergochiFeature.ts features/fibergochi/FibergochiState.ts features/fibergochi/fibergochiStill.ts features/fibergochi/ODDS.ts features/fibergochi/readKept.ts features/fibergochi/renderFibergochi.ts features/fibergochi/Sprite.ts features/first-network/browser/mountLetters.ts features/first-network/firstNetworkFeature.ts features/first-network/firstReader.ts features/first-network/glyphs.ts features/first-network/LetterReader.ts features/first-network/lettersStill.ts features/first-network/Network.ts features/first-network/readOwnShapes.ts features/first-network/renderLetters.ts features/first-network/Shape.ts features/first-network/shapeProblem.ts features/fish-market/Bidder.ts features/fish-market/browser/mountFishMarket.ts features/fish-market/DutchAuction.ts features/fish-market/fishMarketFeature.ts features/fish-market/fishMarketStill.ts features/fish-market/fixedMargin.ts features/fish-market/Lot.ts features/fish-market/Market.ts features/fish-market/marketMargin.ts features/fish-market/openAuction.ts features/fish-market/ownBidder.ts features/fish-market/ownBidderSource.ts features/fish-market/planner.ts features/fish-market/randomLots.ts features/fish-market/renderFishMarket.ts features/fish-market/Sale.ts features/fish-market/Standing.ts features/fish-market/theTable.ts features/fish-market/Turn.ts features/fish-market/vicente.ts features/fish-market/wanda.ts features/gherkin-genie/browser/mountGherkinGenie.ts features/gherkin-genie/EXAMPLE_FEATURE.ts features/gherkin-genie/EXAMPLE_STEPS.ts features/gherkin-genie/genieStepOf.ts features/gherkin-genie/gherkinGenieFeature.ts features/gherkin-genie/gherkinGenieStill.ts features/gherkin-genie/readFeature.ts features/gherkin-genie/renderGenie.ts features/gherkin-genie/renderGenieRun.ts features/gherkin-genie/runGenie.ts features/gherkin-genie/wishedSteps.ts features/guess-the-rule/browser/mountGuessTheRule.ts features/guess-the-rule/GuessRound.ts features/guess-the-rule/guessTheRuleFeature.ts features/guess-the-rule/guessTheRuleStill.ts features/guess-the-rule/renderGuessTable.ts features/guess-the-rule/RULES.ts features/headline/browser/mountHeadline.ts features/headline/Headline.ts features/headline/headlineFeature.ts features/headline/headlineRounds.ts features/headline/headlines.ts features/headline/shuffled.ts features/headline/typewriterFrames.ts features/lagoon/alone.ts features/lagoon/browser/mountLagoon.ts features/lagoon/Fisher.ts features/lagoon/lagoonFeature.ts features/lagoon/lagoonStill.ts features/lagoon/ownFisher.ts features/lagoon/ownFisherSource.ts features/lagoon/playRound.ts features/lagoon/renderLagoon.ts features/lagoon/Round.ts features/lagoon/starters.ts features/lagoon/theLagoon.ts features/lagoon/titForTat.ts features/lagoon/Tournament.ts features/lagoon/Week.ts features/lcars/browser/LcarsConsole.ts features/lcars/browser/openChoice.ts features/lcars/browser/QueryView.ts features/lcars/codeOf.ts features/lcars/conduitPath.ts features/lcars/faceOf.ts features/lcars/flowOf.ts features/lcars/joinsOf.ts features/lcars/lcarsFeature.ts features/lcars/questionOf.ts features/lcars/rowAt.ts features/lcars/SCHEMATIC.ts features/lcars/schematicMarkup.ts features/lcars/schematicOf.ts features/lcars/withRow.ts features/maze/browser/mountMaze.ts features/maze/Cell.ts features/maze/describeWay.ts features/maze/FIRST.ts features/maze/growMaze.ts features/maze/JavaRandom.ts features/maze/Maze.ts features/maze/mazeFeature.ts features/maze/mazeStill.ts features/maze/OPEN.ts features/maze/renderMaze.ts features/maze/wayOut.ts features/next-word/browser/mountNextWord.ts features/next-word/closestWord.ts features/next-word/nextWordFeature.ts features/next-word/NextWordModel.ts features/next-word/nextWordStill.ts features/next-word/pickWord.ts features/next-word/renderNextWord.ts features/next-word/sentenceOf.ts features/next-word/smallCorpus.ts features/next-word/withTemperature.ts features/next-word/wordsOf.ts features/packages/browser/mountPackages.ts features/packages/NpmDownloads.ts features/packages/npmPackages.ts features/packages/npmSource.ts features/packages/packageNotes.ts features/packages/packagesFeature.ts features/packages/packagesStill.ts features/packages/renderPackages.ts features/portfolio/portfolioFeature.ts features/post-tests/browser/mountPostTests.ts features/post-tests/compilePost.ts features/post-tests/examplePosts.ts features/post-tests/postTestsFeature.ts features/post-tests/postTestsStill.ts features/post-tests/renderCompiledPost.ts features/recipes/nodes/crossNode.ts features/recipes/nodes/dayPartsNode.ts features/recipes/recipesFeature.ts features/rocket/browser/mountRocket.ts features/rocket/browser/mountStarMap.ts features/rocket/destinations.ts features/rocket/firstShip.ts features/rocket/nearStars.ts features/rocket/projectStars.ts features/rocket/renderVoyages.ts features/rocket/rocketFeature.ts features/rocket/rocketProgram.ts features/rocket/saidSpeed.ts features/rocket/saidTime.ts features/rocket/saidTonnes.ts features/rocket/Ship.ts features/rocket/shipOf.ts features/rocket/voyage.ts features/rocket/whereAt.ts features/sea/gridAnswerOf.ts features/sea/nodes/seaDaysNode.ts features/sea/nodes/seaMonthsNode.ts features/sea/nodes/seaNodes.ts features/sea/nodes/seaPointChoice.ts features/sea/nodes/seaPointsNode.ts features/sea/nodes/seaPointsRead.ts features/sea/nodes/seaYearsNode.ts features/sea/seaAnswer.ts features/sea/seaFeature.ts features/sea/SeaPoint.ts features/sea/seaPoints.ts features/sea/seaSource.ts features/search/browser/chooser.ts features/search/browser/isTyping.ts features/search/browser/mountSearch.ts features/search/browser/SEARCH_PAGE.ts features/search/browser/searchKeys.ts features/search/browser/searchSite.ts features/search/foldedOf.ts features/search/markedOf.ts features/search/pagesFound.ts features/search/renderFound.ts features/search/searchCommand.ts features/search/searchFeature.ts features/search/steppedTo.ts features/search/wordStarts.ts features/sky/browser/followTurning.ts features/sky/browser/Starfield.ts features/sky/skyFeature.ts features/sky/Turns.ts features/small-steps/browser/mountSmallSteps.ts features/small-steps/randomSteps.ts features/small-steps/renderSmallSteps.ts features/small-steps/SMALL_STEPS_LENGTH.ts features/small-steps/smallStepsFeature.ts features/small-steps/smallStepsFrames.ts features/small-steps/smallStepsStill.ts features/step-names/browser/mountStepNames.ts features/step-names/EXAMPLE_POST.ts features/step-names/renderStepCode.ts features/step-names/StepMethod.ts features/step-names/stepMethodOf.ts features/step-names/stepNamesFeature.ts features/step-names/stepNamesStill.ts features/technical-debt/simulateTechnicalDebt.ts features/technical-debt/technicalDebtFeature.ts features/technical-debt/technicalDebtProgram.ts features/tests-as-examples/browser/mountTestsAsExamples.ts features/tests-as-examples/DISPATCHER_TESTS.ts features/tests-as-examples/Dispatcher.ts features/tests-as-examples/DISPATCHERS.ts features/tests-as-examples/renderDispatcherRun.ts features/tests-as-examples/runDispatcherTests.ts features/tests-as-examples/testsAsExamplesFeature.ts features/tests-as-examples/testsAsExamplesStill.ts features/theme/browser/BrowserTheme.ts features/theme/browser/countThemeAtStart.ts features/theme/browser/mountThemeToggle.ts features/theme/browser/settleTheme.ts features/theme/Theme.ts features/theme/ThemeChoice.ts features/theme/themeCommand.ts features/theme/themeFeature.ts features/thesis-results/graphMatchingRuns.ts features/thesis-results/machines.ts features/thesis-results/renderRuns.ts features/thesis-results/thesisResultsFeature.ts features/weather/askedQuestion.ts features/weather/aWeatherStation.ts features/weather/browser/mountWeather.ts features/weather/cadtepAnswer.ts features/weather/cadtepDaysOf.ts features/weather/climateSeries.ts features/weather/climateSeriesSource.ts features/weather/countDays.ts features/weather/daysPerYear.ts features/weather/firstQuestion.ts features/weather/histogramOf.ts features/weather/hotNightsTool.ts features/weather/nodes/weatherDaysNode.ts features/weather/nodes/weatherMonthsNode.ts features/weather/nodes/weatherNodes.ts features/weather/nodes/weatherStationChoice.ts features/weather/nodes/weatherStationsNode.ts features/weather/nodes/weatherStationsRead.ts features/weather/questionInWords.ts features/weather/recordOf.ts features/weather/renderDaysCalendar.ts features/weather/renderWeatherFigure.ts features/weather/stationsNamed.ts features/weather/steadyYear.ts features/weather/twoHalves.ts features/weather/variableYearOf.ts features/weather/weatherFeature.ts features/weather/weatherGroups.ts features/weather/weatherPresets.ts features/weather/WeatherQuestion.ts features/weather/weatherSource.ts features/weather/WeatherStation.ts features/weather/weatherStations.ts features/weather/weatherStill.ts features/weather/weatherVariables.ts features/world/acrossFace.ts features/world/browser/favicon.ts features/world/browser/headerWorld.ts features/world/browser/mountHeaderWorld.ts features/world/browser/mountWorlds.ts features/world/browser/spinPlanet.ts features/world/emptyWorld.ts features/world/filters/colourise.ts features/world/filters/fractalise.ts features/world/filters/sea.ts features/world/filters/temperatures.ts features/world/generateWorld.ts features/world/growWorld.ts features/world/icosahedron.ts features/world/latitudeOfVertex.ts features/world/Mesh.ts features/world/meshOf.ts features/world/nearestVga.ts features/world/PIPELINE.ts features/world/radiusOfFace.ts features/world/renderSphere.ts features/world/SphereOptions.ts features/world/SphereRaster.ts features/world/subdivide.ts features/world/TextCell.ts features/world/textCells.ts features/world/textWorldHtml.ts features/world/turning.ts features/world/vgaPalette.ts features/world/withMesh.ts features/world/World.ts features/world/worldFeature.ts features/world/WorldRecipe.ts features/writings/essaysOn.ts features/writings/talksOn.ts features/writings/writingsFeature.ts features/writings/writingsTool.ts platform/page/APPEARANCE.ts platform/page/bookSchema.ts platform/page/browser/mountNavigation.ts platform/page/declaredAppearance.ts platform/page/fillStills.ts platform/page/formerAddresses.ts platform/page/isHere.ts platform/page/placeholderDisc.ts platform/page/renderDocument.ts platform/page/renderMain.ts platform/page/renderRedirect.ts platform/shell/browser/mountTerminal.ts platform/shell/CommandHistory.ts platform/shell/commands/cat.ts platform/shell/commands/cd.ts platform/shell/commands/clear.ts platform/shell/commands/find.ts platform/shell/commands/grep.ts platform/shell/commands/help.ts platform/shell/commands/ls.ts platform/shell/commands/pwd.ts platform/shell/commands/siteCommands.ts platform/shell/editLine.ts platform/shell/parseCommandLine.ts platform/shell/promptPath.ts platform/shell/renderListing.ts platform/shell/resolvePath.ts platform/shell/Shell.ts platform/shell/suggest.ts platform/shell/typedLines.ts platform/workbench/boundsOf.ts platform/workbench/browser/BoardView.ts platform/workbench/browser/controlFor.ts platform/workbench/browser/FilesInBrowser.ts platform/workbench/browser/KeptBlueprints.ts platform/workbench/browser/morphInto.ts platform/workbench/browser/mountWorkbench.ts platform/workbench/browser/NodeView.ts platform/workbench/browser/openExamples.ts platform/workbench/browser/openHelp.ts platform/workbench/browser/openKindMenu.ts platform/workbench/browser/openPeek.ts platform/workbench/browser/openTextPanel.ts platform/workbench/browser/Workbench.ts platform/workbench/Camera.ts platform/workbench/cardsOf.ts platform/workbench/EditHistory.ts platform/workbench/hashOf.ts platform/workbench/kindsFor.ts platform/workbench/linkCodeOf.ts platform/workbench/OpenBlueprint.ts platform/workbench/pinAt.ts platform/workbench/textOfLinkCode.ts platform/agent/llmsTxtOf.ts platform/agent/readTool.ts platform/agent/routeAsked.ts platform/agent/searchTool.ts platform/agent/siteTools.ts platform/browser/appsOf.ts platform/browser/askProgram.ts platform/browser/carriedLine.ts platform/browser/countEvent.ts platform/browser/el.ts platform/browser/ModelContext.ts platform/browser/modelContextHere.ts platform/browser/mountApps.ts platform/browser/mountPlayer.ts platform/browser/mountProgram.ts platform/browser/mountSlides.ts platform/browser/offerTools.ts platform/browser/PROGRAM_ASKED.ts platform/browser/PROGRAM_RAN.ts platform/browser/runningAt.ts platform/browser/siteInBrowser.ts platform/browser/sourceLineOf.ts platform/browser/watchOnScreen.ts platform/plugin/AgentTool.ts platform/plugin/answerOf.ts platform/plugin/Bench.ts platform/plugin/benchOf.ts platform/plugin/blueprintKitOf.ts platform/plugin/blueprintTool.ts platform/plugin/commandsOf.ts platform/plugin/describeTool.ts platform/plugin/Feature.ts platform/plugin/programNode.ts platform/plugin/programStill.ts platform/plugin/programTool.ts platform/plugin/Signal.ts platform/plugin/stillsOf.ts platform/plugin/toolsOf.ts platform/flags/browser/BrowserFlags.ts platform/flags/enterTrials.ts platform/flags/Flag.ts platform/flags/flagsCommand.ts platform/flags/flagsInAddress.ts platform/flags/FlagStore.ts platform/program/aProgram.ts platform/program/ChoiceParameter.ts platform/program/commandLineOf.ts platform/program/initialValues.ts platform/program/inputSchemaOf.ts platform/program/NumberParameter.ts platform/program/Parameter.ts platform/program/Program.ts platform/program/programCommand.ts platform/program/ProgramRun.ts platform/program/readOptions.ts platform/program/settleValues.ts platform/program/sliderOf.ts platform/program/Values.ts platform/program/wordOf.ts platform/blueprint/aKit.ts platform/blueprint/Blueprint.ts platform/blueprint/blueprintStill.ts platform/blueprint/cellOrder.ts platform/blueprint/columnsOf.ts platform/blueprint/coreNodes.ts platform/blueprint/coreTypes.ts platform/blueprint/dialsOf.ts platform/blueprint/duplicated.ts platform/blueprint/evaluateBlueprint.ts platform/blueprint/Evaluation.ts platform/blueprint/examplesOf.ts platform/blueprint/fitOf.ts platform/blueprint/fits.ts platform/blueprint/footOf.ts platform/blueprint/formulaOf.ts platform/blueprint/freshId.ts platform/blueprint/kitOf.ts platform/blueprint/movedBy.ts platform/blueprint/NODE.ts platform/blueprint/NodeKind.ts platform/blueprint/nodes/barsNode.ts platform/blueprint/nodes/cellLabel.ts platform/blueprint/nodes/correlationNode.ts platform/blueprint/nodes/creditLines.ts platform/blueprint/nodes/dialNode.ts platform/blueprint/nodes/formulaNode.ts platform/blueprint/nodes/groupNode.ts platform/blueprint/nodes/heatmapNode.ts platform/blueprint/nodes/histogramNode.ts platform/blueprint/nodes/inOrderOf.ts platform/blueprint/nodes/joinNode.ts platform/blueprint/nodes/keepNode.ts platform/blueprint/nodes/linesNode.ts platform/blueprint/nodes/mergedCredits.ts platform/blueprint/nodes/noteNode.ts platform/blueprint/nodes/numericPairs.ts platform/blueprint/nodes/readoutNode.ts platform/blueprint/nodes/scatterNode.ts platform/blueprint/nodes/seasonNode.ts platform/blueprint/nodes/showTableNode.ts platform/blueprint/nodes/sortNode.ts platform/blueprint/nodes/stackNode.ts platform/blueprint/nodes/summaryNode.ts platform/blueprint/nodes/topNode.ts platform/blueprint/nodes/trendNode.ts platform/blueprint/nodes/yourDataNode.ts platform/blueprint/nodeShapeOf.ts platform/blueprint/numberSaid.ts platform/blueprint/optionalRead.ts platform/blueprint/paint/barPlot.ts platform/blueprint/paint/heatPlot.ts platform/blueprint/paint/legendOf.ts platform/blueprint/paint/linePlot.ts platform/blueprint/paint/PLOT.ts platform/blueprint/paint/plotFrame.ts platform/blueprint/paint/plotSvg.ts platform/blueprint/paint/readoutMarkup.ts platform/blueprint/paint/scaleOf.ts platform/blueprint/paint/scatterPlot.ts platform/blueprint/paint/tableMarkup.ts platform/blueprint/parseBlueprint.ts platform/blueprint/peekOf.ts platform/blueprint/Pending.ts platform/blueprint/pickColumn.ts platform/blueprint/PinType.ts platform/blueprint/printBlueprint.ts platform/blueprint/ranked.ts platform/blueprint/renderBlueprintSvg.ts platform/blueprint/renderBoard.ts platform/blueprint/resolvedEditor.ts platform/blueprint/ROW_TESTS.ts platform/blueprint/saidBy.ts platform/blueprint/suggestionsFor.ts platform/blueprint/summaryOf.ts platform/blueprint/Table.ts platform/blueprint/tag.ts platform/blueprint/tidyBlueprint.ts platform/blueprint/wirePath.ts platform/blueprint/wireRefused.ts platform/blueprint/withDial.ts platform/blueprint/withNext.ts platform/blueprint/withNode.ts platform/blueprint/withoutNodes.ts platform/blueprint/withoutWires.ts platform/blueprint/withTitle.ts platform/blueprint/withValue.ts platform/blueprint/withWire.ts platform/data/answersOf.ts platform/data/dayAndMonthOf.ts platform/data/layeredJson.ts platform/data/missingYears.ts platform/data/readRunning.ts platform/data/RefreshPorts.ts platform/data/refreshRunning.ts platform/data/refreshSource.ts platform/data/renderSourceLine.ts platform/data/RunningYear.ts platform/data/runningYearOf.ts platform/data/SEASON_ORDER.ts platform/data/seasonOf.ts platform/data/socrataUrl.ts platform/data/withSoFar.ts platform/data/YearlySource.ts platform/command/Command.ts platform/command/Outcome.ts platform/command/plainTextOf.ts platform/markdown/escapeHtml.ts platform/markdown/flow/layoutFlow.ts platform/markdown/flow/parseFlow.ts platform/markdown/flow/renderFlow.ts platform/markdown/highlight.ts platform/markdown/plainLineOf.ts platform/markdown/renderBars.ts platform/markdown/renderInline.ts platform/markdown/renderMarkdown.ts platform/markdown/renderMath.ts platform/markdown/slides/readSlides.ts platform/markdown/slides/renderSlides.ts platform/markdown/slides/slidesPlayback.ts platform/markdown/slides/typingSteps.ts platform/markdown/slugOf.ts platform/markdown/unescapeHtml.ts platform/charts/barChart.ts platform/charts/CHART.ts platform/charts/chartFrame.ts platform/charts/ChartLabels.ts platform/charts/fixed.ts platform/charts/lineChart.ts platform/charts/niceTicks.ts platform/charts/Series.ts platform/charts/yearBars.ts platform/charts/yearFrame.ts platform/charts/yearLine.ts platform/testing/reported.ts platform/testing/runTestFile.ts platform/testing/TestRun.ts platform/analytics/eventName.ts platform/content/nameOf.ts platform/content/Page.ts platform/content/pageShowing.ts platform/content/parentOf.ts platform/content/parseFrontMatter.ts platform/content/routeOf.ts platform/content/Site.ts platform/random/randomOf.ts The network Click a file or a box for its details, and a way to its code.
files 781, joined by 2234 arrows: 0.4% of those there could be links 5.72 a file, on average, the arrows read either way parts 9; the largest holds 772 files circles none: no files need each other round in a circle apart 4.29 arrows between two files of the largest part, on average, and 10 at most; 3.82 in a random network as big clustering 0.30: of the pairs of files joined to a file, the share joined to each other too, on average over the files; 0.0073 in a random network as big small-world-ness 36.7: 41 times as clustered as chance, with ways 1.1 times as long: a small world assortativity −0.13: files with many links lean to files with few, a little deepest core 5, 156 files: what is left when every file with fewer links than that is taken away, again and again tallest stack 12 arrows: the longest chain of what needs what needed by none 31 files needing none 189 files The files it hinges on most needed NodeKind.ts , escapeHtml.ts , Snapshot.ts by PageRank most between Feature.ts , el.ts , NodeKind.ts reaching furthest NodeKind.ts , escapeHtml.ts , Page.ts 079ed30 13 October 2026 — A module of the LCARS display is moved by hand, the last of what David said it lacked: carried up or down its column onto another row, where what stood there changes places with it, the rest making room as it goes and a mark showing where it would land. Its column it keeps, since that says what comes before what, and the flow says it. Moving one module among others that stood where the layout wished would move nothing — each stands level with what feeds it, so they would all follow — so from the first move every module stays where it stood, and the display only finds a place for what is new, around them; Tidy hands the layout back. A move is a step Undo takes back, though the blueprint is the same before and after: where modules were put is kept beside each state of it while the page is open, and not with the reader's version nor in a link, since the text of a blueprint says nothing of it. Alt and an arrow move the module chosen; a finger on a module still moves the page. The schematic says of itself where its rows are and which each module stands on, so a hand on it is read against what is drawn. And what the display asks when a conduit could be run more ways than one is worded in a function of its own, tested without a page781 files in 52 boxes, 428 tests · 654 arrows between boxes, 853 of all 2234 onto a type · a test reaches 567 of the 710 files with something to test · no boxes in a circle files arrows between boxes
Where the changes went
8 Sep, a sweep: The folders say what the site is, not what kind of file each one holds 27 Sep, a sweep: The architecture is read by the compiler: a graph of the source, with whether each arrow needs a value or only a type, now the one architecture.test reads, and two new rules on it — no boxes in a circle, one value exported a file. The circle between plugin and program is broken, and eighteen files that exported more than one value are one each src main.tsmain.ts: 18 changes, 1 file written features worldfeatures/world: 47 changes, 33 files written developer-meetingsfeatures/developer-meetings: 9 changes, 7 files written technical-debtfeatures/technical-debt: 4 changes, 3 files written themefeatures/theme: 13 changes, 8 files written allFeatures.tsfeatures/allFeatures.ts: 28 changes, 1 file written skyfeatures/sky: 3 changes, 4 files written headlinefeatures/headline: 8 changes, 7 files written air-qualityfeatures/air-quality: 24 changes, 28 files written weatherfeatures/weather: 29 changes, 35 files written next-wordfeatures/next-word: 0 changes, 11 files written rocketfeatures/rocket: 8 changes, 16 files written packagesfeatures/packages: 0 changes, 8 files written thesis-resultsfeatures/thesis-results: 4 changes, 4 files written adventurefeatures/adventure: 12 changes, 14 files written post-testsfeatures/post-tests: 0 changes, 6 files written fish-marketfeatures/fish-market: 2 changes, 21 files written lagoonfeatures/lagoon: 0 changes, 15 files written mazefeatures/maze: 0 changes, 12 files written first-networkfeatures/first-network: 5 changes, 11 files written fibergochifeatures/fibergochi: 13 changes, 9 files written portfoliofeatures/portfolio: 2 changes, 1 file written architecturefeatures/architecture: 98 changes, 150 files written step-namesfeatures/step-names: 1 change, 7 files written bowling-katafeatures/bowling-kata: 6 changes, 17 files written tests-as-examplesfeatures/tests-as-examples: 0 changes, 8 files written gherkin-geniefeatures/gherkin-genie: 3 changes, 11 files written small-stepsfeatures/small-steps: 1 change, 7 files written guess-the-rulefeatures/guess-the-rule: 0 changes, 6 files written writingsfeatures/writings: 0 changes, 4 files written recipesfeatures/recipes: 0 changes, 3 files written seafeatures/sea: 0 changes, 13 files written barcelona-seriesfeatures/barcelona-series: 8 changes, 13 files written searchfeatures/search: 4 changes, 14 files written lcarsfeatures/lcars: 14 changes, 15 files written platform contentplatform/content: 9 changes, 7 files written markdownplatform/markdown: 30 changes, 16 files written pageplatform/page: 33 changes, 11 files written commandplatform/command: 7 changes, 3 files written shellplatform/shell: 55 changes, 19 files written browserplatform/browser: 17 changes, 18 files written chartsplatform/charts: 14 changes, 11 files written pluginplatform/plugin: 25 changes, 15 files written dataplatform/data: 9 changes, 16 files written randomplatform/random: 0 changes, 1 file written programplatform/program: 11 changes, 15 files written flagsplatform/flags: 10 changes, 6 files written analyticsplatform/analytics: 0 changes, 1 file written testingplatform/testing: 0 changes, 3 files written agentplatform/agent: 1 change, 5 files written blueprintplatform/blueprint: 39 changes, 88 files written workbenchplatform/workbench: 26 changes, 23 files written gonethe files that are gone: 21 changes, 33 files written 7 Sep 8 Sep 12 Sep 20 Sep 22 Sep 23 Sep 25 Sep 28 Sep 29 Sep 1 Oct 5 Oct 7 Oct 8 Oct 10 Oct
one file changed two four eight or more a file written a sweep, over 30 files at once
209 commits, from 7 September to 13 October 2026: 671 changes to files that ship, and 814 files written.
Each row is a box as it stands now, a folder of the frame or a feature, holding its files over their whole lives, from before they moved there too; the files that are gone have a row of their own. Each column is a commit. Read across, the features come in one after another, each written in a burst and then mostly left alone, while the frame under them keeps being touched. Read down, a column shaded from top to bottom is a sweep: one commit that changed more than thirty files at once. Point at a cell for what its commit did there.
Written, then left alone
The first thing the history says is how little changes. Most files are written once and not touched again, and a file is likeliest to change in the commits right after the one that wrote it.
50 of 799 6.3% 1 58 of 791 7.3% 2 62 of 1575 3.9% 3–4 81 of 3088 2.6% 5–8 58 of 6009 1% 9–16 106 of 11353 0.9% 17–32 92 of 17848 0.5% 33–64 121 of 22766 0.5% 65–128 43 of 7728 0.6% 129–208 its age: the commits since the one that wrote it 489 of the 781 files that ship have not changed since the commit that wrote them. A file changed in 6.8% of the first two commits it lived through, and in 0.6% of those after its eighth.
A file is hottest just after it is written, while what it has to do is still being settled. Then it cools, and stays cool.
The files that never settle
Some files never cool. They are not the young ones.
file changes lines tests run its life, commit by commit features/allFeatures.ts 28 79 100% main.ts18 104 0% platform/page/renderDocument.ts 16 152 100% platform/shell/browser/mountTerminal.ts 15 257 63% features/world/browser/mountWorlds.ts 12 207 8% platform/markdown/renderMarkdown.ts 12 196 100% platform/plugin/Feature.ts 11 82 100% platform/workbench/browser/Workbench.ts 10 884 85% features/architecture/browser/ArchitectureScene.ts 9 535 3% features/architecture/browser/mountArchitecture.ts 9 368 7% platform/markdown/renderInline.ts 8 111 100% platform/page/browser/mountNavigation.ts 8 83 96%
The 12 files changed most, each one's life on the same line of commits, from the first to the last: a dot where it was written, and a mark for every commit that changed it. 1 of them has no line a test runs.
Adam Tornhill calls a file that changes often and is also large, its lines standing in for how complex it is, a hotspot (Your Code as a Crime Scene , 2015), and starts there: the table gives both. When this page was written, on 28 September 2026, most of the files at its top were ones every feature, or every page, passes through: the list the features are added to, which changes because that is how the site grows; the composition root; the page every page is written into; the terminal that takes it over in the browser. A hotspot that no test runs is where a change most easily breaks something nobody sees.
How far a change travels
When a file changes, what needs it may have to change with it, and what needs that, and so on: the arrows are the roads a change can take. How far they let it go is a property of the design, which MacCormack, Rusnak and Baldwin measured as its propagation cost (2006): the share of the source a change to one file could reach, on average. How far changes did go is another question, which the history can only half answer: two files changed in one commit changed together, and it cannot say which moved the other. What it can say is how often a file changed with something it needs, near or far. At every commit, each file is counted by how far below it, in what it needs or in what that needs, the nearest other change was, and by whether it changed too.
a file it needs changed 19% · 252 of 1349 two arrows down 2.3% · 22 of 938 three 3.1% · 6 of 191 four or more 4.3% · 3 of 70 nothing it needs changed 0.5% · 302 of 61177 In theory, a change to one file can reach 1.6% of the source, on average: itself, what needs it, and what needs that, as far as the arrows go. In the history, of the times something a file needs changed, the file changed too in 19%; when the nearest change was two arrows down, in 2.3%; when nothing it needs changed, in 0.5%.
Files joined by an arrow change together far more often than files that are not, and much less often two arrows apart than one. The blast radius drawn on the picture of how this site is built, with its reach set to all, is how far a change could go, not how far changes went.
Standing on moving ground
A file standing near files that change changes more often than one standing far from them, by as much as the figure above says for each distance. Added up over every commit, for each file, the share of files that changed where it stood is how many changes its ground would lead one to expect: its exposure. It says where a file stood, not what moved it. Set against what it did:
as its ground would lead one to expect platform/content/Page.ts: 1 changes, 0.9 from its ground platform/content/Site.ts: 1 changes, 1.1 from its ground platform/content/parseFrontMatter.ts: 0 changes, 0.9 from its ground platform/content/routeOf.ts: 0 changes, 0.9 from its ground platform/markdown/escapeHtml.ts: 0 changes, 0.9 from its ground platform/markdown/renderInline.ts: 7 changes, 0.9 from its ground platform/markdown/renderMarkdown.ts: 10 changes, 2.9 from its ground features/world/World.ts: 2 changes, 1.5 from its ground features/world/generateWorld.ts: 3 changes, 2.2 from its ground features/world/renderSphere.ts: 3 changes, 1.5 from its ground platform/page/renderDocument.ts: 15 changes, 2.1 from its ground main.ts: 17 changes, 14.6 from its ground features/world/browser/spinPlanet.ts: 4 changes, 2.1 from its ground features/world/WorldRecipe.ts: 0 changes, 0.9 from its ground features/world/growWorld.ts: 1 changes, 1.6 from its ground platform/command/Command.ts: 1 changes, 1.6 from its ground platform/shell/CommandHistory.ts: 1 changes, 0.9 from its ground platform/command/Outcome.ts: 3 changes, 0.9 from its ground platform/shell/Shell.ts: 2 changes, 2.5 from its ground platform/shell/commands/cat.ts: 3 changes, 3 from its ground platform/shell/commands/cd.ts: 3 changes, 1.1 from its ground platform/shell/commands/clear.ts: 1 changes, 1.1 from its ground platform/shell/commands/help.ts: 4 changes, 1.1 from its ground platform/shell/commands/ls.ts: 6 changes, 1.6 from its ground platform/shell/commands/pwd.ts: 1 changes, 1.1 from its ground platform/shell/parseCommandLine.ts: 0 changes, 0.9 from its ground platform/shell/promptPath.ts: 0 changes, 0.9 from its ground platform/shell/resolvePath.ts: 0 changes, 0.9 from its ground features/developer-meetings/simulateMeetings.ts: 0 changes, 1.1 from its ground features/technical-debt/simulateTechnicalDebt.ts: 0 changes, 0.9 from its ground features/developer-meetings/summariseMeetings.ts: 0 changes, 1.1 from its ground platform/page/bookSchema.ts: 0 changes, 1.1 from its ground platform/page/renderMain.ts: 3 changes, 2.9 from its ground features/developer-meetings/browser/mountDeveloperMeetings.ts: 2 changes, 1.4 from its ground features/world/browser/mountWorlds.ts: 10 changes, 1.9 from its ground platform/charts/barChart.ts: 2 changes, 1.3 from its ground platform/charts/lineChart.ts: 2 changes, 0.9 from its ground platform/browser/el.ts: 0 changes, 0.9 from its ground features/world/browser/favicon.ts: 3 changes, 1.1 from its ground features/world/browser/headerWorld.ts: 0 changes, 0.9 from its ground platform/page/browser/mountNavigation.ts: 6 changes, 2.1 from its ground platform/browser/siteInBrowser.ts: 0 changes, 1.1 from its ground platform/shell/browser/mountTerminal.ts: 14 changes, 2.7 from its ground features/theme/browser/settleTheme.ts: 2 changes, 0.9 from its ground features/world/SphereOptions.ts: 0 changes, 0.8 from its ground features/world/SphereRaster.ts: 0 changes, 0.8 from its ground platform/browser/watchOnScreen.ts: 0 changes, 0.8 from its ground features/allFeatures.ts: 27 changes, 8.3 from its ground features/developer-meetings/developerMeetingsFeature.ts: 0 changes, 3.3 from its ground features/technical-debt/technicalDebtFeature.ts: 1 changes, 3.2 from its ground features/theme/Theme.ts: 1 changes, 1 from its ground features/theme/ThemeChoice.ts: 1 changes, 0.8 from its ground features/theme/browser/BrowserTheme.ts: 2 changes, 1 from its ground features/theme/browser/mountThemeToggle.ts: 0 changes, 0.8 from its ground features/theme/themeCommand.ts: 5 changes, 1.4 from its ground features/theme/themeFeature.ts: 1 changes, 3.9 from its ground features/world/browser/mountHeaderWorld.ts: 1 changes, 1.1 from its ground features/world/worldFeature.ts: 2 changes, 3.5 from its ground platform/browser/mountApps.ts: 1 changes, 3.1 from its ground platform/page/declaredAppearance.ts: 0 changes, 1 from its ground platform/plugin/Feature.ts: 11 changes, 3 from its ground platform/shell/commands/siteCommands.ts: 2 changes, 3 from its ground features/sky/browser/Starfield.ts: 1 changes, 1 from its ground features/sky/browser/followTurning.ts: 1 changes, 1 from its ground features/sky/skyFeature.ts: 1 changes, 3.2 from its ground features/world/turning.ts: 1 changes, 1 from its ground platform/plugin/Signal.ts: 1 changes, 0.8 from its ground platform/shell/editLine.ts: 0 changes, 0.8 from its ground platform/markdown/highlight.ts: 4 changes, 0.8 from its ground platform/markdown/flow/layoutFlow.ts: 2 changes, 0.8 from its ground platform/markdown/flow/parseFlow.ts: 0 changes, 0.8 from its ground platform/markdown/flow/renderFlow.ts: 0 changes, 1.1 from its ground platform/page/isHere.ts: 0 changes, 0.8 from its ground platform/shell/suggest.ts: 0 changes, 0.8 from its ground features/world/TextCell.ts: 0 changes, 0.7 from its ground features/world/nearestVga.ts: 0 changes, 0.7 from its ground features/world/textCells.ts: 0 changes, 0.7 from its ground features/world/textWorldHtml.ts: 0 changes, 0.7 from its ground features/world/vgaPalette.ts: 0 changes, 0.7 from its ground platform/page/placeholderDisc.ts: 0 changes, 0.7 from its ground features/headline/browser/mountHeadline.ts: 2 changes, 0.7 from its ground features/headline/headlineFeature.ts: 1 changes, 4 from its ground features/headline/headlines.ts: 5 changes, 0.7 from its ground features/headline/typewriterFrames.ts: 0 changes, 0.7 from its ground features/headline/Headline.ts: 0 changes, 0.7 from its ground features/headline/headlineRounds.ts: 0 changes, 0.7 from its ground features/headline/shuffled.ts: 0 changes, 0.7 from its ground features/air-quality/No2Station.ts: 0 changes, 0.7 from its ground features/air-quality/airQualityFeature.ts: 3 changes, 3.6 from its ground features/air-quality/no2Source.ts: 2 changes, 1.6 from its ground features/air-quality/no2Stations.ts: 2 changes, 0.7 from its ground platform/data/YearlySource.ts: 3 changes, 0.7 from its ground platform/data/layeredJson.ts: 0 changes, 0.7 from its ground platform/data/missingYears.ts: 0 changes, 0.7 from its ground platform/data/refreshSource.ts: 2 changes, 1.2 from its ground platform/data/socrataUrl.ts: 0 changes, 0.7 from its ground features/air-quality/No2Selection.ts: 0 changes, 0.7 from its ground features/air-quality/aStation.ts: 0 changes, 0.7 from its ground features/air-quality/browser/mountNo2.ts: 4 changes, 1.5 from its ground features/air-quality/no2AnnualMeans.ts: 0 changes, 0.7 from its ground features/air-quality/no2Grid.ts: 0 changes, 0.7 from its ground features/air-quality/no2ScaleTop.ts: 0 changes, 0.7 from its ground features/air-quality/no2Still.ts: 2 changes, 3.3 from its ground features/air-quality/renderNo2Figure.ts: 2 changes, 1.3 from its ground features/air-quality/renderNo2Heatmap.ts: 1 changes, 0.7 from its ground features/air-quality/renderNo2Years.ts: 3 changes, 1.2 from its ground features/air-quality/tallies.ts: 0 changes, 0.7 from its ground features/air-quality/wholeRecord.ts: 0 changes, 0.7 from its ground platform/page/fillStills.ts: 2 changes, 0.7 from its ground features/weather/WeatherStation.ts: 0 changes, 0.7 from its ground features/weather/histogramOf.ts: 0 changes, 0.7 from its ground features/weather/weatherFeature.ts: 5 changes, 3.3 from its ground features/weather/weatherSource.ts: 2 changes, 1.2 from its ground features/weather/weatherStations.ts: 0 changes, 0.7 from its ground features/weather/weatherVariables.ts: 0 changes, 0.7 from its ground features/weather/WeatherQuestion.ts: 0 changes, 0.7 from its ground features/weather/aWeatherStation.ts: 0 changes, 0.7 from its ground features/weather/countDays.ts: 0 changes, 0.7 from its ground features/weather/daysPerYear.ts: 1 changes, 0.7 from its ground features/weather/twoHalves.ts: 0 changes, 0.7 from its ground platform/charts/niceTicks.ts: 0 changes, 0.7 from its ground platform/charts/yearBars.ts: 3 changes, 0.7 from its ground platform/charts/yearFrame.ts: 0 changes, 0.7 from its ground platform/charts/yearLine.ts: 0 changes, 1 from its ground features/weather/browser/mountWeather.ts: 3 changes, 1.4 from its ground features/weather/firstQuestion.ts: 1 changes, 0.7 from its ground features/weather/questionInWords.ts: 0 changes, 0.7 from its ground features/weather/renderDaysCalendar.ts: 0 changes, 0.9 from its ground features/weather/renderWeatherFigure.ts: 3 changes, 1 from its ground features/weather/weatherPresets.ts: 1 changes, 0.7 from its ground features/weather/weatherStill.ts: 1 changes, 3.2 from its ground platform/browser/sourceLineOf.ts: 1 changes, 1 from its ground platform/data/renderSourceLine.ts: 2 changes, 0.7 from its ground features/air-quality/no2Colour.ts: 0 changes, 0.7 from its ground features/next-word/NextWordModel.ts: 0 changes, 0.7 from its ground features/next-word/browser/mountNextWord.ts: 0 changes, 2.3 from its ground features/next-word/closestWord.ts: 0 changes, 0.7 from its ground features/next-word/nextWordFeature.ts: 0 changes, 2.3 from its ground features/next-word/nextWordStill.ts: 0 changes, 2.3 from its ground features/next-word/pickWord.ts: 0 changes, 0.7 from its ground features/next-word/renderNextWord.ts: 0 changes, 0.7 from its ground features/next-word/sentenceOf.ts: 0 changes, 0.7 from its ground features/next-word/smallCorpus.ts: 0 changes, 0.7 from its ground features/next-word/withTemperature.ts: 0 changes, 0.7 from its ground features/next-word/wordsOf.ts: 0 changes, 0.7 from its ground features/rocket/Ship.ts: 0 changes, 0.7 from its ground features/rocket/browser/mountRocket.ts: 2 changes, 2.5 from its ground features/rocket/destinations.ts: 2 changes, 0.7 from its ground features/rocket/firstShip.ts: 0 changes, 0.7 from its ground features/rocket/renderVoyages.ts: 1 changes, 1.2 from its ground features/rocket/rocketFeature.ts: 1 changes, 2.9 from its ground features/rocket/saidTime.ts: 0 changes, 0.7 from its ground features/rocket/voyage.ts: 1 changes, 0.7 from its ground features/packages/NpmDownloads.ts: 0 changes, 0.7 from its ground features/packages/browser/mountPackages.ts: 0 changes, 0.9 from its ground features/packages/npmPackages.ts: 0 changes, 0.7 from its ground features/packages/npmSource.ts: 0 changes, 1.2 from its ground features/packages/packageNotes.ts: 0 changes, 0.7 from its ground features/packages/packagesFeature.ts: 0 changes, 2.3 from its ground features/packages/packagesStill.ts: 0 changes, 2.7 from its ground features/packages/renderPackages.ts: 0 changes, 0.7 from its ground platform/page/formerAddresses.ts: 1 changes, 0.8 from its ground platform/page/renderRedirect.ts: 0 changes, 0.6 from its ground features/thesis-results/graphMatchingRuns.ts: 1 changes, 0.6 from its ground features/thesis-results/renderRuns.ts: 1 changes, 0.8 from its ground features/thesis-results/thesisResultsFeature.ts: 0 changes, 2.5 from its ground features/rocket/browser/mountStarMap.ts: 0 changes, 1 from its ground features/rocket/nearStars.ts: 0 changes, 0.6 from its ground features/rocket/projectStars.ts: 0 changes, 0.6 from its ground features/rocket/whereAt.ts: 0 changes, 0.8 from its ground platform/markdown/renderBars.ts: 0 changes, 1.2 from its ground platform/shell/commands/find.ts: 4 changes, 1 from its ground platform/shell/commands/grep.ts: 2 changes, 0.8 from its ground features/adventure/Adventure.ts: 2 changes, 0.6 from its ground features/adventure/World.ts: 0 changes, 0.6 from its ground features/adventure/adventureFeature.ts: 0 changes, 2.5 from its ground features/adventure/adventureStill.ts: 0 changes, 2.6 from its ground features/adventure/browser/mountAdventure.ts: 1 changes, 1 from its ground features/adventure/originalWorld.ts: 0 changes, 0.6 from its ground features/adventure/renderAdventure.ts: 2 changes, 1 from its ground features/post-tests/browser/mountPostTests.ts: 0 changes, 0.6 from its ground features/post-tests/compilePost.ts: 0 changes, 0.6 from its ground features/post-tests/examplePosts.ts: 0 changes, 0.6 from its ground features/post-tests/postTestsFeature.ts: 0 changes, 2.3 from its ground features/post-tests/postTestsStill.ts: 0 changes, 2.3 from its ground features/post-tests/renderCompiledPost.ts: 0 changes, 0.9 from its ground features/adventure/englishWorld.ts: 0 changes, 0.6 from its ground features/fish-market/Bidder.ts: 0 changes, 0.6 from its ground features/fish-market/DutchAuction.ts: 1 changes, 0.6 from its ground features/fish-market/Lot.ts: 0 changes, 0.6 from its ground features/fish-market/Market.ts: 0 changes, 0.6 from its ground features/fish-market/Sale.ts: 0 changes, 0.6 from its ground features/fish-market/Standing.ts: 0 changes, 0.6 from its ground features/fish-market/browser/mountFishMarket.ts: 0 changes, 0.7 from its ground features/fish-market/fishMarketFeature.ts: 0 changes, 2.2 from its ground features/fish-market/fishMarketStill.ts: 0 changes, 2.4 from its ground features/fish-market/fixedMargin.ts: 0 changes, 0.6 from its ground features/fish-market/marketMargin.ts: 0 changes, 0.6 from its ground features/fish-market/openAuction.ts: 0 changes, 0.7 from its ground features/fish-market/ownBidder.ts: 0 changes, 0.6 from its ground features/fish-market/ownBidderSource.ts: 0 changes, 0.6 from its ground features/fish-market/planner.ts: 0 changes, 0.6 from its ground features/fish-market/randomLots.ts: 0 changes, 0.6 from its ground features/fish-market/renderFishMarket.ts: 1 changes, 0.7 from its ground features/fish-market/theTable.ts: 0 changes, 0.6 from its ground features/fish-market/vicente.ts: 0 changes, 0.6 from its ground features/fish-market/wanda.ts: 0 changes, 0.6 from its ground platform/random/randomOf.ts: 0 changes, 0.6 from its ground features/lagoon/Fisher.ts: 0 changes, 0.6 from its ground features/lagoon/Round.ts: 0 changes, 0.6 from its ground features/lagoon/Tournament.ts: 0 changes, 0.6 from its ground features/lagoon/Week.ts: 0 changes, 0.6 from its ground features/lagoon/alone.ts: 0 changes, 0.6 from its ground features/lagoon/browser/mountLagoon.ts: 0 changes, 0.6 from its ground features/lagoon/lagoonFeature.ts: 0 changes, 2.2 from its ground features/lagoon/lagoonStill.ts: 0 changes, 2.2 from its ground features/lagoon/ownFisher.ts: 0 changes, 0.6 from its ground features/lagoon/ownFisherSource.ts: 0 changes, 0.6 from its ground features/lagoon/playRound.ts: 0 changes, 0.6 from its ground features/lagoon/renderLagoon.ts: 0 changes, 0.6 from its ground features/lagoon/starters.ts: 0 changes, 0.6 from its ground features/lagoon/theLagoon.ts: 0 changes, 0.6 from its ground features/lagoon/titForTat.ts: 0 changes, 0.6 from its ground features/fish-market/Turn.ts: 0 changes, 0.5 from its ground platform/markdown/renderMath.ts: 0 changes, 0.5 from its ground features/maze/Cell.ts: 0 changes, 0.5 from its ground features/maze/FIRST.ts: 0 changes, 0.5 from its ground features/maze/JavaRandom.ts: 0 changes, 0.5 from its ground features/maze/Maze.ts: 0 changes, 0.5 from its ground features/maze/OPEN.ts: 0 changes, 0.5 from its ground features/maze/browser/mountMaze.ts: 0 changes, 0.5 from its ground features/maze/describeWay.ts: 0 changes, 0.5 from its ground features/maze/growMaze.ts: 0 changes, 0.5 from its ground features/maze/mazeFeature.ts: 0 changes, 2.2 from its ground features/maze/mazeStill.ts: 0 changes, 2.2 from its ground features/maze/renderMaze.ts: 0 changes, 0.5 from its ground features/maze/wayOut.ts: 0 changes, 0.5 from its ground features/first-network/LetterReader.ts: 1 changes, 0.5 from its ground features/first-network/Network.ts: 0 changes, 0.5 from its ground features/first-network/browser/mountLetters.ts: 1 changes, 0.7 from its ground features/first-network/firstNetworkFeature.ts: 2 changes, 2.4 from its ground features/first-network/firstReader.ts: 1 changes, 0.7 from its ground features/first-network/glyphs.ts: 0 changes, 0.5 from its ground features/first-network/lettersStill.ts: 0 changes, 2.4 from its ground features/first-network/renderLetters.ts: 0 changes, 0.7 from its ground features/first-network/Shape.ts: 0 changes, 0.5 from its ground features/first-network/readOwnShapes.ts: 0 changes, 0.5 from its ground features/first-network/shapeProblem.ts: 0 changes, 0.5 from its ground features/fibergochi/Fibergochi.ts: 2 changes, 0.9 from its ground features/fibergochi/FibergochiState.ts: 1 changes, 0.5 from its ground features/fibergochi/ODDS.ts: 0 changes, 0.5 from its ground features/fibergochi/Sprite.ts: 2 changes, 0.5 from its ground features/fibergochi/browser/mountFibergochi.ts: 4 changes, 0.9 from its ground features/fibergochi/fibergochiFeature.ts: 0 changes, 2.9 from its ground features/fibergochi/fibergochiStill.ts: 1 changes, 2.6 from its ground features/fibergochi/readKept.ts: 1 changes, 0.7 from its ground features/fibergochi/renderFibergochi.ts: 2 changes, 0.9 from its ground features/technical-debt/technicalDebtProgram.ts: 2 changes, 0.7 from its ground platform/browser/PROGRAM_ASKED.ts: 0 changes, 0.5 from its ground platform/browser/appsOf.ts: 1 changes, 2.1 from its ground platform/browser/askProgram.ts: 0 changes, 0.7 from its ground platform/browser/mountProgram.ts: 2 changes, 2.1 from its ground platform/plugin/commandsOf.ts: 1 changes, 2.1 from its ground platform/plugin/stillsOf.ts: 2 changes, 2.4 from its ground platform/program/Parameter.ts: 1 changes, 0.5 from its ground platform/program/Program.ts: 1 changes, 0.7 from its ground platform/program/ProgramRun.ts: 0 changes, 0.5 from its ground platform/program/Values.ts: 1 changes, 0.5 from its ground platform/program/aProgram.ts: 2 changes, 0.7 from its ground platform/program/commandLineOf.ts: 1 changes, 0.9 from its ground platform/program/initialValues.ts: 0 changes, 0.9 from its ground platform/program/inputSchemaOf.ts: 1 changes, 0.7 from its ground platform/program/programCommand.ts: 2 changes, 1 from its ground platform/plugin/programStill.ts: 1 changes, 1.9 from its ground platform/program/readOptions.ts: 0 changes, 0.5 from its ground platform/program/settleValues.ts: 1 changes, 0.9 from its ground platform/program/sliderOf.ts: 1 changes, 0.7 from its ground features/rocket/rocketProgram.ts: 1 changes, 0.7 from its ground features/rocket/saidSpeed.ts: 0 changes, 0.5 from its ground features/rocket/saidTonnes.ts: 0 changes, 0.5 from its ground features/rocket/shipOf.ts: 0 changes, 0.5 from its ground platform/browser/PROGRAM_RAN.ts: 0 changes, 0.5 from its ground platform/program/ChoiceParameter.ts: 0 changes, 0.5 from its ground platform/program/NumberParameter.ts: 0 changes, 0.5 from its ground platform/program/wordOf.ts: 0 changes, 0.5 from its ground platform/browser/ModelContext.ts: 2 changes, 0.5 from its ground platform/browser/modelContextHere.ts: 0 changes, 0.8 from its ground platform/browser/offerTools.ts: 6 changes, 1.8 from its ground platform/content/pageShowing.ts: 1 changes, 0.5 from its ground platform/command/plainTextOf.ts: 1 changes, 0.7 from its ground features/portfolio/portfolioFeature.ts: 2 changes, 1.7 from its ground platform/flags/browser/BrowserFlags.ts: 2 changes, 0.6 from its ground platform/flags/Flag.ts: 2 changes, 0.5 from its ground platform/flags/FlagStore.ts: 1 changes, 0.5 from its ground platform/flags/flagsCommand.ts: 3 changes, 1 from its ground platform/flags/flagsInAddress.ts: 1 changes, 0.8 from its ground features/adventure/renderMap.ts: 1 changes, 0.4 from its ground features/adventure/renderSeen.ts: 1 changes, 0.6 from its ground features/air-quality/flatSums.ts: 0 changes, 0.4 from its ground features/architecture/SourceGraph.ts: 1 changes, 0.4 from its ground features/architecture/architectureFeature.ts: 5 changes, 3.8 from its ground features/architecture/boxCycles.ts: 1 changes, 0.6 from its ground features/architecture/boxOf.ts: 0 changes, 0.4 from its ground features/architecture/importsOf.ts: 0 changes, 0.4 from its ground features/architecture/readGraph.ts: 1 changes, 0.6 from its ground features/architecture/readSources.ts: 0 changes, 0.6 from its ground features/architecture/valueExportsOf.ts: 0 changes, 0.4 from its ground features/developer-meetings/WORK_WEEK.ts: 1 changes, 0.4 from its ground features/thesis-results/machines.ts: 0 changes, 0.4 from its ground features/weather/steadyYear.ts: 0 changes, 0.4 from its ground features/world/Mesh.ts: 0 changes, 0.4 from its ground features/world/PIPELINE.ts: 0 changes, 0.4 from its ground features/world/acrossFace.ts: 0 changes, 0.4 from its ground features/world/emptyWorld.ts: 0 changes, 0.4 from its ground features/world/filters/colourise.ts: 0 changes, 0.4 from its ground features/world/filters/fractalise.ts: 0 changes, 0.4 from its ground features/world/filters/sea.ts: 0 changes, 0.4 from its ground features/world/filters/temperatures.ts: 0 changes, 0.4 from its ground features/world/icosahedron.ts: 0 changes, 0.4 from its ground features/world/latitudeOfVertex.ts: 0 changes, 0.4 from its ground features/world/meshOf.ts: 0 changes, 0.4 from its ground features/world/radiusOfFace.ts: 0 changes, 0.4 from its ground features/world/subdivide.ts: 0 changes, 0.4 from its ground features/world/withMesh.ts: 0 changes, 0.4 from its ground platform/charts/CHART.ts: 0 changes, 0.4 from its ground platform/charts/ChartLabels.ts: 0 changes, 0.4 from its ground platform/charts/Series.ts: 0 changes, 0.4 from its ground platform/charts/chartFrame.ts: 0 changes, 0.4 from its ground platform/charts/fixed.ts: 0 changes, 0.4 from its ground platform/content/nameOf.ts: 0 changes, 0.4 from its ground platform/content/parentOf.ts: 0 changes, 0.4 from its ground platform/markdown/slugOf.ts: 0 changes, 0.4 from its ground platform/page/APPEARANCE.ts: 0 changes, 0.4 from its ground features/developer-meetings/browser/heatGrid.ts: 0 changes, 0.4 from its ground features/developer-meetings/featureSizeScale.ts: 0 changes, 0.4 from its ground platform/browser/carriedLine.ts: 0 changes, 0.4 from its ground platform/shell/typedLines.ts: 0 changes, 0.4 from its ground features/architecture/Body.ts: 0 changes, 0.4 from its ground features/architecture/History.ts: 4 changes, 0.4 from its ground features/architecture/Layout.ts: 1 changes, 0.4 from its ground features/architecture/Metrics.ts: 1 changes, 0.4 from its ground features/architecture/Snapshot.ts: 1 changes, 0.4 from its ground features/architecture/architectureStill.ts: 1 changes, 2.3 from its ground features/architecture/browser/ArchitectureScene.ts: 9 changes, 1.2 from its ground features/architecture/browser/mountArchitecture.ts: 9 changes, 4.1 from its ground features/architecture/decodeHistory.ts: 2 changes, 1.2 from its ground features/architecture/encodeHistory.ts: 4 changes, 1.2 from its ground features/architecture/graphOf.ts: 1 changes, 0.6 from its ground features/architecture/layoutArchitecture.ts: 3 changes, 0.8 from its ground features/architecture/metricsOf.ts: 1 changes, 0.8 from its ground features/architecture/reachedByTests.ts: 0 changes, 0.6 from its ground features/architecture/renderArchitectureCaption.ts: 3 changes, 1.2 from its ground features/architecture/renderArchitectureFigure.ts: 1 changes, 1.7 from its ground features/architecture/renderArchitectureSvg.ts: 1 changes, 0.6 from its ground features/architecture/renderMetricsSparks.ts: 0 changes, 0.6 from its ground features/architecture/springTowards.ts: 0 changes, 0.4 from its ground features/architecture/tangleStep.ts: 1 changes, 0.4 from its ground features/architecture/onlyTypes.ts: 0 changes, 0.4 from its ground features/architecture/Coverage.ts: 0 changes, 0.4 from its ground features/architecture/coverageOf.ts: 0 changes, 0.4 from its ground features/adventure/ADVENTURE_ICONS.ts: 0 changes, 0.4 from its ground features/adventure/Charted.ts: 0 changes, 0.4 from its ground features/adventure/LIFE.ts: 0 changes, 0.4 from its ground features/adventure/pixelIcon.ts: 0 changes, 0.4 from its ground features/theme/browser/countThemeAtStart.ts: 0 changes, 0.4 from its ground platform/analytics/eventName.ts: 0 changes, 0.4 from its ground platform/browser/countEvent.ts: 0 changes, 0.4 from its ground platform/flags/enterTrials.ts: 1 changes, 0.6 from its ground features/step-names/EXAMPLE_POST.ts: 0 changes, 0.4 from its ground features/step-names/StepMethod.ts: 0 changes, 0.4 from its ground features/step-names/browser/mountStepNames.ts: 0 changes, 0.4 from its ground features/step-names/renderStepCode.ts: 0 changes, 0.6 from its ground features/step-names/stepMethodOf.ts: 0 changes, 0.4 from its ground features/step-names/stepNamesFeature.ts: 1 changes, 1.5 from its ground features/step-names/stepNamesStill.ts: 0 changes, 1.5 from its ground features/bowling-kata/KATA_STEPS.ts: 1 changes, 0.4 from its ground features/bowling-kata/KataStep.ts: 0 changes, 0.4 from its ground features/bowling-kata/bowlingKataFeature.ts: 1 changes, 1.7 from its ground features/bowling-kata/bowlingKataStill.ts: 0 changes, 2 from its ground features/bowling-kata/browser/mountBowlingKata.ts: 1 changes, 0.9 from its ground features/bowling-kata/renderKataStep.ts: 2 changes, 0.6 from its ground features/bowling-kata/renderKataStrip.ts: 1 changes, 0.4 from its ground features/bowling-kata/runKata.ts: 0 changes, 0.4 from its ground features/tests-as-examples/DISPATCHERS.ts: 0 changes, 0.4 from its ground features/tests-as-examples/DISPATCHER_TESTS.ts: 0 changes, 0.4 from its ground features/tests-as-examples/Dispatcher.ts: 0 changes, 0.4 from its ground features/tests-as-examples/browser/mountTestsAsExamples.ts: 0 changes, 0.4 from its ground features/tests-as-examples/renderDispatcherRun.ts: 0 changes, 0.6 from its ground features/tests-as-examples/runDispatcherTests.ts: 0 changes, 0.4 from its ground features/tests-as-examples/testsAsExamplesFeature.ts: 0 changes, 1.5 from its ground features/tests-as-examples/testsAsExamplesStill.ts: 0 changes, 1.5 from its ground platform/testing/TestRun.ts: 0 changes, 0.4 from its ground platform/testing/reported.ts: 0 changes, 0.4 from its ground platform/testing/runTestFile.ts: 0 changes, 0.4 from its ground features/bowling-kata/kataStepTitle.ts: 0 changes, 0.4 from its ground features/gherkin-genie/EXAMPLE_FEATURE.ts: 0 changes, 0.4 from its ground features/gherkin-genie/EXAMPLE_STEPS.ts: 0 changes, 0.4 from its ground features/gherkin-genie/browser/mountGherkinGenie.ts: 1 changes, 0.6 from its ground features/gherkin-genie/genieStepOf.ts: 0 changes, 0.4 from its ground features/gherkin-genie/gherkinGenieFeature.ts: 0 changes, 1.6 from its ground features/gherkin-genie/gherkinGenieStill.ts: 0 changes, 1.6 from its ground features/gherkin-genie/readFeature.ts: 0 changes, 0.4 from its ground features/gherkin-genie/renderGenie.ts: 1 changes, 0.6 from its ground features/gherkin-genie/renderGenieRun.ts: 1 changes, 0.4 from its ground features/gherkin-genie/runGenie.ts: 0 changes, 0.4 from its ground features/gherkin-genie/wishedSteps.ts: 0 changes, 0.4 from its ground features/small-steps/SMALL_STEPS_LENGTH.ts: 0 changes, 0.4 from its ground features/small-steps/browser/mountSmallSteps.ts: 0 changes, 0.7 from its ground features/small-steps/randomSteps.ts: 0 changes, 0.4 from its ground features/small-steps/renderSmallSteps.ts: 0 changes, 0.6 from its ground features/small-steps/smallStepsFeature.ts: 0 changes, 1.5 from its ground features/small-steps/smallStepsFrames.ts: 1 changes, 0.4 from its ground features/small-steps/smallStepsStill.ts: 0 changes, 1.5 from its ground platform/browser/mountPlayer.ts: 1 changes, 0.4 from its ground platform/markdown/slides/readSlides.ts: 0 changes, 0.4 from its ground platform/markdown/slides/typingSteps.ts: 1 changes, 0.4 from its ground platform/browser/mountSlides.ts: 0 changes, 0.9 from its ground platform/markdown/slides/renderSlides.ts: 0 changes, 0.6 from its ground platform/markdown/slides/slidesPlayback.ts: 2 changes, 0.6 from its ground features/bowling-kata/KATA_LESSONS.ts: 0 changes, 0.4 from its ground features/bowling-kata/KataLesson.ts: 0 changes, 0.4 from its ground features/bowling-kata/browser/mountKataFiveSteps.ts: 0 changes, 0.4 from its ground features/bowling-kata/kataFiveStepsSlides.ts: 0 changes, 0.5 from its ground features/bowling-kata/kataFiveStepsStill.ts: 0 changes, 1.5 from its ground features/bowling-kata/kataLessonAt.ts: 0 changes, 0.4 from its ground features/bowling-kata/renderKataFiveSteps.ts: 0 changes, 0.4 from its ground features/bowling-kata/lineDiff.ts: 0 changes, 0.4 from its ground platform/shell/renderListing.ts: 0 changes, 0.3 from its ground features/architecture/radiiBy.ts: 2 changes, 0.3 from its ground features/architecture/reachOf.ts: 0 changes, 0.3 from its ground features/architecture/sourceUrlOf.ts: 0 changes, 0.3 from its ground features/guess-the-rule/GuessRound.ts: 0 changes, 0.3 from its ground features/guess-the-rule/RULES.ts: 0 changes, 0.3 from its ground features/guess-the-rule/browser/mountGuessTheRule.ts: 0 changes, 0.3 from its ground features/guess-the-rule/guessTheRuleFeature.ts: 0 changes, 1.4 from its ground features/guess-the-rule/guessTheRuleStill.ts: 0 changes, 1.4 from its ground features/guess-the-rule/renderGuessTable.ts: 0 changes, 0.3 from its ground features/architecture/Life.ts: 0 changes, 0.3 from its ground features/architecture/SWEEP.ts: 0 changes, 0.3 from its ground features/architecture/bandOf.ts: 0 changes, 0.3 from its ground features/architecture/breakablePath.ts: 0 changes, 0.3 from its ground features/architecture/cascadeOf.ts: 3 changes, 0.9 from its ground features/architecture/changeMatrixOf.ts: 1 changes, 0.3 from its ground features/architecture/changeStills.ts: 2 changes, 2.7 from its ground features/architecture/couplingsOf.ts: 0 changes, 0.7 from its ground features/architecture/livesOf.ts: 1 changes, 0.7 from its ground features/architecture/percent.ts: 0 changes, 0.3 from its ground features/architecture/plural.ts: 0 changes, 0.3 from its ground features/architecture/propagationCostOf.ts: 1 changes, 0.3 from its ground features/architecture/readHistory.ts: 0 changes, 0.7 from its ground features/architecture/renderCascadeFigure.ts: 2 changes, 0.9 from its ground features/architecture/renderChangeMatrix.ts: 1 changes, 0.9 from its ground features/architecture/renderChangeMatrixFigure.ts: 2 changes, 1.1 from its ground features/architecture/renderCouplingsFigure.ts: 1 changes, 0.3 from its ground features/architecture/renderHotspotsFigure.ts: 2 changes, 0.3 from its ground features/architecture/renderRipplesFigure.ts: 1 changes, 0.7 from its ground features/architecture/renderSettlingFigure.ts: 0 changes, 0.3 from its ground features/architecture/renderStabilityFigure.ts: 1 changes, 0.5 from its ground features/architecture/renderTestedChangesFigure.ts: 0 changes, 0.3 from its ground features/architecture/ripplesOf.ts: 2 changes, 0.7 from its ground features/architecture/settlingOf.ts: 0 changes, 0.3 from its ground features/architecture/stabilityOf.ts: 1 changes, 0.3 from its ground features/architecture/testedChangesOf.ts: 0 changes, 0.7 from its ground features/architecture/changesUpTo.ts: 1 changes, 0.3 from its ground features/architecture/browser/changeApps.ts: 1 changes, 2.7 from its ground features/architecture/browser/changesInBrowser.ts: 0 changes, 0.3 from its ground features/architecture/browser/mountChangeFigure.ts: 0 changes, 2.3 from its ground features/architecture/browser/mountChangePlayer.ts: 0 changes, 0.3 from its ground features/architecture/browser/pointAtChangeMatrix.ts: 0 changes, 0.3 from its ground features/architecture/browser/shownCommit.ts: 0 changes, 0.5 from its ground features/architecture/changeFigures.ts: 5 changes, 1.4 from its ground features/architecture/dayOf.ts: 0 changes, 0.7 from its ground features/architecture/describeMatrixCell.ts: 0 changes, 0.7 from its ground features/architecture/historyUpTo.ts: 0 changes, 0.5 from its ground features/architecture/matrixCellsOf.ts: 0 changes, 0.3 from its ground features/architecture/matrixRowOf.ts: 0 changes, 0.3 from its ground features/architecture/renderShownCommit.ts: 0 changes, 0.7 from its ground features/architecture/sweepsOf.ts: 0 changes, 0.5 from its ground features/architecture/againstStabilityOf.ts: 0 changes, 0.3 from its ground features/architecture/betweennessOf.ts: 0 changes, 0.3 from its ground features/architecture/boxLinksOf.ts: 0 changes, 0.3 from its ground features/architecture/cascadeFrom.ts: 1 changes, 0.5 from its ground features/architecture/communitiesOf.ts: 0 changes, 0.3 from its ground features/architecture/couplingOf.ts: 0 changes, 0.3 from its ground features/architecture/groundOf.ts: 1 changes, 0.5 from its ground features/architecture/heatOf.ts: 1 changes, 0.3 from its ground features/architecture/joinedBy.ts: 0 changes, 0.3 from its ground features/architecture/lensesOf.ts: 2 changes, 0.7 from its ground features/architecture/measuresOf.ts: 1 changes, 0.3 from its ground features/architecture/modularityOf.ts: 0 changes, 0.3 from its ground features/architecture/pointedAt.ts: 0 changes, 0.7 from its ground features/architecture/rampColour.ts: 0 changes, 0.3 from its ground features/architecture/reachedByOf.ts: 0 changes, 0.3 from its ground features/architecture/standingsOf.ts: 0 changes, 0.5 from its ground features/architecture/threadsOf.ts: 0 changes, 0.5 from its ground features/architecture/undirectedOf.ts: 0 changes, 0.3 from its ground features/architecture/browser/mountCouplingFigure.ts: 0 changes, 0.3 from its ground features/architecture/renderBridgesFigure.ts: 1 changes, 0.3 from its ground features/architecture/renderCouplingFigure.ts: 0 changes, 0.3 from its ground features/architecture/renderGroundFigure.ts: 1 changes, 0.5 from its ground features/architecture/renderGroupsFigure.ts: 1 changes, 0.3 from its ground features/architecture/renderReachFigure.ts: 0 changes, 0.3 from its ground features/architecture/Cascade.ts: 0 changes, 0.3 from its ground features/architecture/assortativityOf.ts: 0 changes, 0.3 from its ground features/architecture/clusteringOf.ts: 0 changes, 0.3 from its ground features/architecture/componentsOf.ts: 0 changes, 0.3 from its ground features/architecture/coresOf.ts: 0 changes, 0.3 from its ground features/architecture/fileHistoryOf.ts: 0 changes, 0.4 from its ground features/architecture/heightsOf.ts: 0 changes, 0.3 from its ground features/architecture/networkOf.ts: 0 changes, 0.3 from its ground features/architecture/pageRankOf.ts: 0 changes, 0.3 from its ground features/architecture/pathsOf.ts: 0 changes, 0.3 from its ground features/architecture/positionOf.ts: 1 changes, 0.3 from its ground features/architecture/renderLifeStrip.ts: 0 changes, 0.3 from its ground features/architecture/stronglyConnectedOf.ts: 0 changes, 0.3 from its ground features/architecture/detailsOf.ts: 0 changes, 0.3 from its ground features/architecture/pointedSaid.ts: 0 changes, 0.3 from its ground features/architecture/renderNetworkFigure.ts: 0 changes, 0.3 from its ground features/architecture/COMPOSITION.ts: 0 changes, 0.3 from its ground features/architecture/shapeOf.ts: 0 changes, 0.3 from its ground features/architecture/snapshotOf.ts: 0 changes, 0.3 from its ground features/architecture/unheldCouplingsOf.ts: 1 changes, 0.3 from its ground features/sky/Turns.ts: 0 changes, 0.3 from its ground features/architecture/renderRatchetFigure.ts: 1 changes, 0.3 from its ground features/architecture/shapesOf.ts: 0 changes, 0.3 from its ground features/architecture/ratchetHeldOf.ts: 0 changes, 0.2 from its ground features/architecture/renderShapeReport.ts: 1 changes, 0.2 from its ground features/architecture/mutantsOf.ts: 0 changes, 0.2 from its ground features/architecture/editNoteOf.ts: 0 changes, 0.2 from its ground features/architecture/browser/detailsPanel.ts: 0 changes, 0.2 from its ground features/architecture/pointedArrowsOf.ts: 0 changes, 0.2 from its ground features/architecture/renderUnrunReport.ts: 0 changes, 0.2 from its ground features/architecture/unrunOf.ts: 0 changes, 0.2 from its ground platform/agent/readTool.ts: 0 changes, 0.7 from its ground platform/agent/routeAsked.ts: 0 changes, 0.2 from its ground platform/agent/searchTool.ts: 1 changes, 0.7 from its ground platform/agent/siteTools.ts: 0 changes, 0.7 from its ground platform/markdown/plainLineOf.ts: 0 changes, 0.2 from its ground platform/plugin/AgentTool.ts: 3 changes, 0.2 from its ground platform/plugin/answerOf.ts: 0 changes, 0.7 from its ground platform/plugin/describeTool.ts: 1 changes, 0.7 from its ground platform/plugin/programTool.ts: 0 changes, 0.9 from its ground platform/plugin/toolsOf.ts: 2 changes, 1.5 from its ground features/writings/essaysOn.ts: 0 changes, 0.2 from its ground features/writings/talksOn.ts: 0 changes, 0.2 from its ground features/writings/writingsFeature.ts: 0 changes, 0.9 from its ground features/writings/writingsTool.ts: 0 changes, 0.6 from its ground platform/agent/llmsTxtOf.ts: 0 changes, 0.6 from its ground platform/browser/runningAt.ts: 0 changes, 0.2 from its ground platform/data/RunningYear.ts: 0 changes, 0.2 from its ground platform/data/readRunning.ts: 0 changes, 0.2 from its ground platform/data/refreshRunning.ts: 2 changes, 0.5 from its ground platform/data/runningYearOf.ts: 0 changes, 0.2 from its ground platform/data/withSoFar.ts: 0 changes, 0.2 from its ground platform/data/dayAndMonthOf.ts: 0 changes, 0.2 from its ground features/weather/askedQuestion.ts: 1 changes, 0.4 from its ground features/weather/hotNightsTool.ts: 2 changes, 0.7 from its ground features/weather/recordOf.ts: 0 changes, 0.2 from its ground features/air-quality/askedNo2.ts: 0 changes, 0.2 from its ground features/air-quality/no2Tool.ts: 0 changes, 0.3 from its ground platform/blueprint/Blueprint.ts: 0 changes, 0.5 from its ground platform/blueprint/Evaluation.ts: 0 changes, 0.5 from its ground platform/blueprint/NODE.ts: 1 changes, 0.2 from its ground platform/blueprint/NodeKind.ts: 2 changes, 0.2 from its ground platform/blueprint/Pending.ts: 0 changes, 0.2 from its ground platform/blueprint/PinType.ts: 0 changes, 0.2 from its ground platform/blueprint/Table.ts: 2 changes, 0.2 from its ground platform/blueprint/coreNodes.ts: 1 changes, 1.6 from its ground platform/blueprint/coreTypes.ts: 0 changes, 0.5 from its ground platform/blueprint/duplicated.ts: 0 changes, 0.2 from its ground platform/blueprint/evaluateBlueprint.ts: 0 changes, 0.5 from its ground platform/blueprint/fitOf.ts: 0 changes, 0.2 from its ground platform/blueprint/fits.ts: 0 changes, 0.2 from its ground platform/blueprint/formulaOf.ts: 0 changes, 0.5 from its ground platform/blueprint/freshId.ts: 0 changes, 0.2 from its ground platform/blueprint/kitOf.ts: 0 changes, 0.5 from its ground platform/blueprint/movedBy.ts: 0 changes, 0.2 from its ground platform/blueprint/nodeShapeOf.ts: 1 changes, 0.7 from its ground platform/blueprint/nodes/barsNode.ts: 0 changes, 1.1 from its ground platform/blueprint/nodes/cellLabel.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/correlationNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/creditLines.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/dialNode.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/formulaNode.ts: 1 changes, 0.9 from its ground platform/blueprint/nodes/groupNode.ts: 2 changes, 0.9 from its ground platform/blueprint/nodes/heatmapNode.ts: 0 changes, 1.1 from its ground platform/blueprint/nodes/histogramNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/joinNode.ts: 2 changes, 0.9 from its ground platform/blueprint/nodes/keepNode.ts: 1 changes, 0.9 from its ground platform/blueprint/nodes/linesNode.ts: 2 changes, 1.1 from its ground platform/blueprint/nodes/mergedCredits.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/noteNode.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/numericPairs.ts: 0 changes, 0.5 from its ground platform/blueprint/nodes/readoutNode.ts: 2 changes, 0.5 from its ground platform/blueprint/nodes/scatterNode.ts: 1 changes, 1.1 from its ground platform/blueprint/nodes/seasonNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/showTableNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/sortNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/stackNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/summaryNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/topNode.ts: 1 changes, 0.9 from its ground platform/blueprint/nodes/trendNode.ts: 0 changes, 0.9 from its ground platform/blueprint/nodes/yourDataNode.ts: 0 changes, 0.9 from its ground platform/blueprint/numberSaid.ts: 0 changes, 0.2 from its ground platform/blueprint/paint/PLOT.ts: 0 changes, 0.2 from its ground platform/blueprint/paint/barPlot.ts: 1 changes, 0.3 from its ground platform/blueprint/paint/heatPlot.ts: 2 changes, 0.3 from its ground platform/blueprint/paint/legendOf.ts: 1 changes, 0.2 from its ground platform/blueprint/paint/linePlot.ts: 1 changes, 0.3 from its ground platform/blueprint/paint/plotFrame.ts: 0 changes, 0.2 from its ground platform/blueprint/paint/plotSvg.ts: 1 changes, 0.2 from its ground platform/blueprint/paint/readoutMarkup.ts: 0 changes, 0.2 from its ground platform/blueprint/paint/scaleOf.ts: 0 changes, 0.2 from its ground platform/blueprint/paint/scatterPlot.ts: 1 changes, 0.3 from its ground platform/blueprint/paint/tableMarkup.ts: 0 changes, 0.5 from its ground platform/blueprint/parseBlueprint.ts: 2 changes, 0.5 from its ground platform/blueprint/pickColumn.ts: 0 changes, 0.5 from its ground platform/blueprint/printBlueprint.ts: 1 changes, 0.5 from its ground platform/blueprint/ranked.ts: 0 changes, 0.2 from its ground platform/blueprint/summaryOf.ts: 0 changes, 0.2 from its ground platform/blueprint/tag.ts: 0 changes, 0.2 from its ground platform/blueprint/tidyBlueprint.ts: 1 changes, 0.4 from its ground platform/blueprint/wirePath.ts: 0 changes, 0.4 from its ground platform/blueprint/wireRefused.ts: 2 changes, 0.2 from its ground platform/blueprint/withNode.ts: 0 changes, 0.2 from its ground platform/blueprint/withTitle.ts: 0 changes, 0.2 from its ground platform/blueprint/withValue.ts: 0 changes, 0.5 from its ground platform/blueprint/withWire.ts: 0 changes, 0.2 from its ground platform/blueprint/withoutNodes.ts: 0 changes, 0.2 from its ground platform/blueprint/withoutWires.ts: 0 changes, 0.2 from its ground features/air-quality/nodes/airNodes.ts: 0 changes, 0.9 from its ground features/air-quality/nodes/no2DaysChoice.ts: 0 changes, 0.5 from its ground features/air-quality/nodes/no2HoursNode.ts: 2 changes, 0.9 from its ground features/air-quality/nodes/no2MonthsNode.ts: 2 changes, 0.9 from its ground features/air-quality/nodes/no2StationChoice.ts: 0 changes, 0.5 from its ground features/air-quality/nodes/no2StationsNode.ts: 0 changes, 0.9 from its ground features/air-quality/nodes/no2StationsRead.ts: 0 changes, 0.5 from its ground features/air-quality/nodes/no2YearsNode.ts: 0 changes, 0.9 from its ground features/architecture/nodes/CodeGraph.ts: 0 changes, 0.5 from its ground features/architecture/nodes/architectureNodes.ts: 1 changes, 0.7 from its ground features/architecture/nodes/aroundNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/arrowsNode.ts: 0 changes, 0.9 from its ground features/architecture/nodes/boxesNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/commitsNode.ts: 0 changes, 0.9 from its ground features/architecture/nodes/degreesOf.ts: 0 changes, 0.2 from its ground features/architecture/nodes/filesNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/graphTableOf.ts: 0 changes, 0.5 from its ground features/architecture/nodes/graphType.ts: 0 changes, 0.2 from its ground features/architecture/nodes/historyIn.ts: 0 changes, 0.2 from its ground features/architecture/nodes/knotNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/measureNode.ts: 0 changes, 0.9 from its ground features/architecture/nodes/networkNode.ts: 0 changes, 0.9 from its ground features/architecture/nodes/onlyFilesNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/pictureNode.ts: 1 changes, 0.7 from its ground features/architecture/nodes/renderTangleSvg.ts: 1 changes, 0.2 from its ground features/architecture/nodes/sourceNode.ts: 0 changes, 0.6 from its ground features/architecture/nodes/subgraphOf.ts: 0 changes, 0.2 from its ground features/architecture/nodes/tangleLayoutOf.ts: 1 changes, 0.2 from its ground features/weather/nodes/weatherDaysNode.ts: 2 changes, 1.1 from its ground features/weather/nodes/weatherMonthsNode.ts: 3 changes, 1.1 from its ground features/weather/nodes/weatherNodes.ts: 0 changes, 1.1 from its ground features/weather/nodes/weatherStationChoice.ts: 1 changes, 0.5 from its ground features/weather/nodes/weatherStationsNode.ts: 1 changes, 0.9 from its ground features/weather/nodes/weatherStationsRead.ts: 1 changes, 0.5 from its ground platform/blueprint/aKit.ts: 0 changes, 1.2 from its ground platform/blueprint/blueprintStill.ts: 1 changes, 1 from its ground platform/blueprint/dialsOf.ts: 1 changes, 0.6 from its ground platform/blueprint/footOf.ts: 0 changes, 0.2 from its ground platform/blueprint/optionalRead.ts: 0 changes, 0.2 from its ground platform/blueprint/renderBlueprintSvg.ts: 1 changes, 0.7 from its ground platform/blueprint/renderBoard.ts: 1 changes, 0.4 from its ground platform/blueprint/resolvedEditor.ts: 1 changes, 0.9 from its ground platform/blueprint/saidBy.ts: 0 changes, 0.6 from its ground platform/markdown/unescapeHtml.ts: 0 changes, 0.2 from its ground platform/plugin/blueprintKitOf.ts: 1 changes, 0.9 from its ground platform/workbench/Camera.ts: 0 changes, 0.2 from its ground platform/workbench/EditHistory.ts: 0 changes, 0.2 from its ground platform/workbench/boundsOf.ts: 1 changes, 0.4 from its ground platform/workbench/browser/BoardView.ts: 3 changes, 0.8 from its ground platform/workbench/browser/FilesInBrowser.ts: 0 changes, 0.2 from its ground platform/workbench/browser/KeptBlueprints.ts: 0 changes, 0.2 from its ground platform/workbench/browser/NodeView.ts: 3 changes, 0.9 from its ground platform/workbench/browser/Workbench.ts: 10 changes, 2.1 from its ground platform/workbench/browser/controlFor.ts: 1 changes, 0.6 from its ground platform/workbench/browser/morphInto.ts: 0 changes, 0.2 from its ground platform/workbench/browser/mountWorkbench.ts: 5 changes, 2.1 from its ground platform/workbench/browser/openKindMenu.ts: 2 changes, 0.7 from its ground platform/workbench/browser/openTextPanel.ts: 0 changes, 0.4 from its ground platform/workbench/hashOf.ts: 0 changes, 0.2 from its ground platform/workbench/kindsFor.ts: 0 changes, 0.5 from its ground platform/workbench/linkCodeOf.ts: 0 changes, 0.2 from its ground platform/workbench/pinAt.ts: 0 changes, 0.4 from its ground platform/workbench/textOfLinkCode.ts: 0 changes, 0.2 from its ground platform/plugin/programNode.ts: 0 changes, 0.9 from its ground platform/plugin/blueprintTool.ts: 0 changes, 0.7 from its ground features/architecture/nodes/keepFilesNode.ts: 0 changes, 0.3 from its ground platform/blueprint/ROW_TESTS.ts: 0 changes, 0.5 from its ground platform/data/seasonOf.ts: 0 changes, 0.1 from its ground platform/blueprint/cellOrder.ts: 0 changes, 0.5 from its ground platform/blueprint/examplesOf.ts: 0 changes, 0.1 from its ground platform/blueprint/peekOf.ts: 0 changes, 0.5 from its ground platform/workbench/browser/openPeek.ts: 0 changes, 0.1 from its ground platform/blueprint/suggestionsFor.ts: 2 changes, 0.6 from its ground features/recipes/nodes/crossNode.ts: 0 changes, 0.6 from its ground features/recipes/nodes/dayPartsNode.ts: 0 changes, 0.5 from its ground features/recipes/recipesFeature.ts: 0 changes, 0.6 from its ground platform/workbench/browser/openExamples.ts: 0 changes, 0.1 from its ground platform/workbench/browser/openHelp.ts: 0 changes, 0.1 from its ground platform/blueprint/nodes/inOrderOf.ts: 0 changes, 0.1 from its ground platform/data/SEASON_ORDER.ts: 0 changes, 0.1 from its ground features/sea/SeaPoint.ts: 0 changes, 0.1 from its ground features/sea/gridAnswerOf.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaDaysNode.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaMonthsNode.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaNodes.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaPointChoice.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaPointsNode.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaPointsRead.ts: 0 changes, 0.1 from its ground features/sea/nodes/seaYearsNode.ts: 0 changes, 0.1 from its ground features/sea/seaAnswer.ts: 0 changes, 0.1 from its ground features/sea/seaFeature.ts: 0 changes, 0.5 from its ground features/sea/seaPoints.ts: 0 changes, 0.1 from its ground features/sea/seaSource.ts: 0 changes, 0.3 from its ground platform/data/RefreshPorts.ts: 0 changes, 0.1 from its ground platform/data/answersOf.ts: 0 changes, 0.1 from its ground features/weather/cadtepAnswer.ts: 0 changes, 0.1 from its ground features/weather/cadtepDaysOf.ts: 0 changes, 0.1 from its ground features/weather/climateSeries.ts: 0 changes, 0.1 from its ground features/weather/climateSeriesSource.ts: 0 changes, 0.1 from its ground features/weather/stationsNamed.ts: 0 changes, 0.1 from its ground features/weather/variableYearOf.ts: 0 changes, 0.1 from its ground features/weather/weatherGroups.ts: 0 changes, 0.1 from its ground features/barcelona-series/BarcelonaSeries.ts: 0 changes, 0.1 from its ground features/barcelona-series/barcelonaAnswer.ts: 0 changes, 0.1 from its ground features/barcelona-series/barcelonaLinkOf.ts: 1 changes, 0.1 from its ground features/barcelona-series/barcelonaSeriesFeature.ts: 1 changes, 0.6 from its ground features/barcelona-series/barcelonaSource.ts: 1 changes, 0.2 from its ground features/barcelona-series/monthlyValuesOf.ts: 1 changes, 0.1 from its ground features/barcelona-series/nodes/barcelonaMonthsNode.ts: 1 changes, 0.2 from its ground features/barcelona-series/nodes/barcelonaNodes.ts: 1 changes, 0.2 from its ground features/barcelona-series/nodes/barcelonaRead.ts: 1 changes, 0.1 from its ground features/barcelona-series/nodes/barcelonaYearsNode.ts: 1 changes, 0.2 from its ground features/barcelona-series/barcelonaRainSource.ts: 0 changes, 0 from its ground features/barcelona-series/barcelonaSeriesSource.ts: 0 changes, 0 from its ground features/barcelona-series/nodes/barcelonaRainNode.ts: 0 changes, 0 from its ground features/search/browser/SEARCH_PAGE.ts: 0 changes, 0 from its ground features/search/browser/chooser.ts: 1 changes, 0.2 from its ground features/search/browser/isTyping.ts: 0 changes, 0 from its ground features/search/browser/searchKeys.ts: 1 changes, 0 from its ground features/search/browser/searchSite.ts: 0 changes, 0 from its ground features/search/foldedOf.ts: 0 changes, 0 from its ground features/search/markedOf.ts: 0 changes, 0 from its ground features/search/pagesFound.ts: 0 changes, 0 from its ground features/search/renderFound.ts: 1 changes, 0 from its ground features/search/searchCommand.ts: 0 changes, 0 from its ground features/search/searchFeature.ts: 1 changes, 0.2 from its ground features/search/steppedTo.ts: 0 changes, 0 from its ground features/search/wordStarts.ts: 0 changes, 0 from its ground features/search/browser/mountSearch.ts: 0 changes, 0 from its ground platform/blueprint/columnsOf.ts: 0 changes, 0 from its ground platform/blueprint/withDial.ts: 0 changes, 0 from its ground platform/blueprint/withNext.ts: 0 changes, 0 from its ground platform/plugin/Bench.ts: 0 changes, 0 from its ground platform/plugin/benchOf.ts: 0 changes, 0 from its ground platform/workbench/OpenBlueprint.ts: 1 changes, 0 from its ground platform/workbench/cardsOf.ts: 0 changes, 0 from its ground features/lcars/SCHEMATIC.ts: 1 changes, 0 from its ground features/lcars/browser/LcarsConsole.ts: 4 changes, 0.7 from its ground features/lcars/browser/QueryView.ts: 1 changes, 0 from its ground features/lcars/codeOf.ts: 0 changes, 0 from its ground features/lcars/conduitPath.ts: 0 changes, 0 from its ground features/lcars/lcarsFeature.ts: 0 changes, 0.7 from its ground features/lcars/schematicMarkup.ts: 4 changes, 0.6 from its ground features/lcars/schematicOf.ts: 3 changes, 0.2 from its ground features/lcars/faceOf.ts: 1 changes, 0 from its ground features/lcars/flowOf.ts: 0 changes, 0.4 from its ground features/lcars/browser/openChoice.ts: 0 changes, 0 from its ground features/lcars/joinsOf.ts: 0 changes, 0 from its ground allFeatures.ts renderDocument.ts developerMeetingsFeature.ts headlineFeature.ts 0 0 1 1 2 2 5 5 10 10 20 20 what its ground would lead one to expect, in changes the changes it had changed far more than its ground would lead one to expect far less about as much
The files whose ground would lead one to expect the most changes: main.ts (14.6), features/allFeatures.ts (8.3) and features/architecture/browser/mountArchitecture.ts (4.1). The ones that changed far more than theirs would: features/allFeatures.ts (27 against 8.3), platform/page/renderDocument.ts (15 against 2.1) and platform/shell/browser/mountTerminal.ts (14 against 2.7). The ones that changed far less: features/developer-meetings/developerMeetingsFeature.ts (0 against 3.3), features/headline/headlineFeature.ts (1 against 4) and features/theme/themeFeature.ts (1 against 3.9).
Near the line, a file changed about as often as files standing where it stood. Far above it, a file changed for reasons of its own: it grows with every feature, or it keeps being reworked. Far below, a file stood where files change, and did not — a list of what a feature brings, which changes little whatever changes under it. On the picture above, colour set to exposure shows every file's.
Two kinds of unstable
Robert C. Martin measures how stable a component is by its place among the others, not by its history, and he counts two kinds of coupling to do it:
Ca, its afferent couplings : the files elsewhere that need something in it. Each may have to change when it does, so the more there are, the more it answers for, and the harder it is to change.Ce, its efferent couplings : its own files that need something elsewhere. Each may have to change when what it needs does, so the more there are, the more it depends, and the more often something else makes it change.
He counts classes, not arrows, and here a file stands for a class: a file that needs three things elsewhere is one to Ce. His instability puts the two together, I = Ce / (Ca + Ce): 0 for a box that is only needed, hard to change because whatever needs it may have to change with it; 1 for a box that only needs, which nothing stops from changing. Pick a box, and see its two couplings drawn and the sum worked out:
Ca = 3: files elsewhere that need it Ce = 12: its files that need elsewhere shell platform/page · 2 files main.ts · 1 file platform/command · 11 files platform/markdown · 6 files platform/content · 5 files platform/browser · 1 file platform/shell : Ca = 3, the files elsewhere that need something in it; Ce = 12, its own files that need something elsewhere. I = Ce / (Ca + Ce) = 12 / (3 + 12) = 0.8. Unstable: it stands on much, and little stands on it — often made to change, and free to.
His rule for them is to depend in the direction of stability: an arrow should go from a box to one more stable than itself, so that what is hard to change never needs what is easy to change, and keeps changing. On the picture above, colour set to stability draws every box as deep as it is stable, and the arrows that go against the rule in red. When this was written, on 28 September 2026, most of them left the list of features: one file, needed by one, which by his count stands half way, and which has to point at every feature, because putting them together is what it is for.
He also measures how abstract a box is: here, the share of its files that hold nothing but types, which can be depended on without depending on what anything does. And he draws the two against each other. A box on the line between the two corners, the main sequence, is as abstract as its place asks. A box at the bottom left is needed by much and concrete, hard to change with nothing abstract in it to change instead: the zone of pain. And he says what his picture cannot show, that only what keeps changing hurts there; so each box here is as warm as the history says its files changed, the sweeps left out.
zone of pain zone of uselessness the main sequence features/lagoon: needed by 1 file elsewhere, needs 4; 0 changes to its 15 files features/sea: needed by 1 file elsewhere, needs 9; 0 changes to its 13 files features/maze: needed by 1 file elsewhere, needs 3; 0 changes to its 12 files features/next-word: needed by 1 file elsewhere, needs 4; 0 changes to its 11 files features/packages: needed by 1 file elsewhere, needs 4; 0 changes to its 8 files features/tests-as-examples: needed by 1 file elsewhere, needs 5; 0 changes to its 8 files features/guess-the-rule: needed by 1 file elsewhere, needs 3; 0 changes to its 6 files features/post-tests: needed by 1 file elsewhere, needs 4; 0 changes to its 6 files features/writings: needed by 1 file elsewhere, needs 4; 0 changes to its 4 files features/recipes: needed by 1 file elsewhere, needs 3; 0 changes to its 3 files platform/testing: needed by 4 files elsewhere, needs 0; 0 changes to its 3 files platform/analytics: needed by 3 files elsewhere, needs 0; 0 changes to its 1 file platform/random: needed by 5 files elsewhere, needs 0; 0 changes to its 1 file features/fish-market: needed by 1 file elsewhere, needs 5; 2 changes to its 21 files features/small-steps: needed by 1 file elsewhere, needs 3; 1 change to its 7 files features/step-names: needed by 1 file elsewhere, needs 4; 1 change to its 7 files platform/agent: needed by 1 file elsewhere, needs 4; 1 change to its 5 files features/gherkin-genie: needed by 1 file elsewhere, needs 6; 3 changes to its 11 files features/search: needed by 1 file elsewhere, needs 8; 4 changes to its 14 files features/bowling-kata: needed by 1 file elsewhere, needs 9; 6 changes to its 17 files features/developer-meetings: needed by 1 file elsewhere, needs 3; 3 changes to its 7 files platform/content: needed by 26 files elsewhere, needs 0; 3 changes to its 7 files platform/blueprint: needed by 75 files elsewhere, needs 2; 39 changes to its 88 files features/first-network: needed by 1 file elsewhere, needs 6; 5 changes to its 11 files features/rocket: needed by 1 file elsewhere, needs 4; 8 changes to its 16 files features/adventure: needed by 1 file elsewhere, needs 5; 7 changes to its 14 files features/thesis-results: needed by 1 file elsewhere, needs 1; 2 changes to its 4 files platform/data: needed by 29 files elsewhere, needs 1; 9 changes to its 16 files features/barcelona-series: needed by 1 file elsewhere, needs 7; 8 changes to its 13 files platform/charts: needed by 15 files elsewhere, needs 0; 7 changes to its 11 files features/architecture: needed by 1 file elsewhere, needs 46; 98 changes to its 150 files platform/program: needed by 14 files elsewhere, needs 1; 11 changes to its 15 files features/sky: needed by 1 file elsewhere, needs 1; 3 changes to its 4 files platform/browser: needed by 43 files elsewhere, needs 9; 14 changes to its 18 files features/weather: needed by 1 file elsewhere, needs 14; 28 changes to its 35 files features/air-quality: needed by 1 file elsewhere, needs 15; 23 changes to its 28 files features/world: needed by 1 file elsewhere, needs 5; 30 changes to its 33 files features/lcars: needed by 1 file elsewhere, needs 12; 14 changes to its 15 files features/technical-debt: needed by 1 file elsewhere, needs 2; 3 changes to its 3 files platform/workbench: needed by 3 files elsewhere, needs 16; 26 changes to its 23 files features/headline: needed by 1 file elsewhere, needs 1; 8 changes to its 7 files features/fibergochi: needed by 1 file elsewhere, needs 4; 13 changes to its 9 files features/theme: needed by 1 file elsewhere, needs 4; 12 changes to its 8 files platform/plugin: needed by 77 files elsewhere, needs 10; 23 changes to its 15 files platform/markdown: needed by 54 files elsewhere, needs 0; 26 changes to its 16 files platform/flags: needed by 2 files elsewhere, needs 1; 10 changes to its 6 files platform/command: needed by 18 files elsewhere, needs 1; 5 changes to its 3 files features/portfolio: needed by 1 file elsewhere, needs 1; 2 changes to its 1 file platform/shell: needed by 3 files elsewhere, needs 12; 43 changes to its 19 files platform/page: needed by 1 file elsewhere, needs 8; 27 changes to its 11 files main.ts: needed by 0 files elsewhere, needs 1; 17 changes to its 1 file features/allFeatures.ts: needed by 1 file elsewhere, needs 1; 27 changes to its 1 file platform/program platform/plugin platform/browser platform/markdown 0 0.5 0.5 1 1 instability: how little needs it, so how free it is to change abstractness: its files of nothing but types 11 boxes stand in the zone of pain. The ones there that have changed, the most first: platform/markdown (1.6 changes a file), platform/plugin (1.5), platform/browser (0.8), platform/program (0.7), platform/charts (0.6), platform/data (0.6), platform/blueprint (0.4) and platform/content (0.4). 30 arrows between boxes go from a box to a less stable one, against his rule of stable dependencies; the steepest, from features/allFeatures.ts to features/architecture. 29 of them leave features/allFeatures.ts. every box's figures box files needed by needs I A D changes a file features/adventure 14 1 5 0.83 0.14 0.02 0.5 features/air-quality 28 1 15 0.94 0.07 0.01 0.8 features/allFeatures.ts 1 1 1 0.50 0.00 0.50 27 features/architecture 150 1 46 0.98 0.07 0.05 0.7 features/barcelona-series 13 1 7 0.88 0.08 0.05 0.6 features/bowling-kata 17 1 9 0.90 0.12 0.02 0.4 features/developer-meetings 7 1 3 0.75 0.00 0.25 0.4 features/fibergochi 9 1 4 0.80 0.11 0.09 1.4 features/first-network 11 1 6 0.86 0.09 0.05 0.5 features/fish-market 21 1 5 0.83 0.29 0.12 0.1 features/gherkin-genie 11 1 6 0.86 0.00 0.14 0.3 features/guess-the-rule 6 1 3 0.75 0.00 0.25 0 features/headline 7 1 1 0.50 0.14 0.36 1.1 features/lagoon 15 1 4 0.80 0.20 0.00 0 features/lcars 15 1 12 0.92 0.00 0.08 0.9 features/maze 12 1 3 0.75 0.17 0.08 0 features/next-word 11 1 4 0.80 0.00 0.20 0 features/packages 8 1 4 0.80 0.13 0.07 0 features/portfolio 1 1 1 0.50 0.00 0.50 2 features/post-tests 6 1 4 0.80 0.00 0.20 0 features/recipes 3 1 3 0.75 0.00 0.25 0 features/rocket 16 1 4 0.80 0.06 0.14 0.5 features/sea 13 1 9 0.90 0.08 0.02 0 features/search 14 1 8 0.89 0.00 0.11 0.3 features/sky 4 1 1 0.50 0.25 0.25 0.8 features/small-steps 7 1 3 0.75 0.00 0.25 0.1 features/step-names 7 1 4 0.80 0.14 0.06 0.1 features/technical-debt 3 1 2 0.67 0.00 0.33 1 features/tests-as-examples 8 1 5 0.83 0.13 0.04 0 features/theme 8 1 4 0.80 0.25 0.05 1.5 features/thesis-results 4 1 1 0.50 0.00 0.50 0.5 features/weather 35 1 14 0.93 0.06 0.01 0.8 features/world 33 1 5 0.83 0.12 0.05 0.9 features/writings 4 1 4 0.80 0.00 0.20 0 main.ts1 0 1 1.00 0.00 0.00 17 platform/agent 5 1 4 0.80 0.00 0.20 0.2 platform/analytics 1 3 0 0.00 0.00 1.00 0 platform/blueprint 88 75 2 0.03 0.06 0.92 0.4 platform/browser 18 43 9 0.17 0.06 0.77 0.8 platform/charts 11 15 0 0.00 0.18 0.82 0.6 platform/command 3 18 1 0.05 0.67 0.28 1.7 platform/content 7 26 0 0.00 0.14 0.86 0.4 platform/data 16 29 1 0.03 0.19 0.78 0.6 platform/flags 6 2 1 0.33 0.33 0.33 1.7 platform/markdown 16 54 0 0.00 0.00 1.00 1.6 platform/page 11 1 8 0.89 0.00 0.11 2.5 platform/plugin 15 77 10 0.11 0.20 0.69 1.5 platform/program 15 14 1 0.07 0.40 0.53 0.7 platform/random 1 5 0 0.00 0.00 1.00 0 platform/shell 19 3 12 0.80 0.00 0.20 2.3 platform/testing 3 4 0 0.00 0.33 0.67 0 platform/workbench 23 3 16 0.84 0.00 0.16 1.1
The frame stands near that corner, as a frame would: everything is built on it, and most of it is plain code. Where the two kinds of unstable disagree, a box that is hard to change and changes anyway, is where a change costs most, because what needs it may have to move with it.
An arrow onto a type
The dashed arrows on the picture need only a type: a box that depends on an interface, not on what implements it. That is dependency inversion, and its promise is that a change to what implements the interface does not reach those that use it: there is no arrow for it to travel, and the figure of how far a change travels counts how seldom files change with nothing changed below them. What an arrow onto a type can still carry is a change to the type itself. For each kind of arrow, how often a change at its head came with a change at its tail:
onto a value onto only a type inside a box 40% · 173 of 430 27% · 90 of 336 across two boxes 29% · 61 of 210 8.3% · 50 of 601
Across boxes, an arrow onto a type carried a change less often than one onto a value: 8.3% against 29%. But 428 of those 601 were changes to one file, platform/plugin/Feature.ts, and carried 2.8%; the rest carried 22%. Inside a box, less often: 27% against 40%.
An interface that grows by what its users may leave alone, a field they need not fill, changes without them; one that breaks them changes with them. And where one file is most of the arrows onto a type, the count is mostly that file's, which the caption says when it is so.
What changes together
Two files that keep changing in the same commits are tied in the history, whatever the arrows say. Harald Gall, Karin Hajek and Mehdi Jazayeri called it logical coupling (1998). A commit that changed more than thirty files is left out: a rename across the whole source changes everything at once, and says nothing about what needs what.
commits one file and the other between them 8 features/architecture/browser/ArchitectureScene.ts features/architecture/browser/mountArchitecture.ts an arrow 6 main.tsplatform/shell/browser/mountTerminal.ts an arrow 6 main.tsplatform/plugin/Feature.ts arrows through others 5 platform/page/renderDocument.ts platform/shell/browser/mountTerminal.ts no arrow at all 5 platform/workbench/browser/Workbench.ts platform/workbench/browser/mountWorkbench.ts an arrow 4 platform/shell/commands/ls.ts platform/shell/commands/find.ts no arrow at all 4 platform/page/browser/mountNavigation.ts platform/shell/browser/mountTerminal.ts no arrow at all 4 features/architecture/History.ts features/architecture/encodeHistory.ts an arrow 4 features/lcars/browser/LcarsConsole.ts features/lcars/schematicMarkup.ts an arrow 3 platform/page/renderDocument.ts main.tsno arrow at all 3 platform/page/renderDocument.ts platform/page/browser/mountNavigation.ts no arrow at all 3 main.tsplatform/command/Outcome.ts arrows through others
The 12 pairs of files that changed together most, the tests and the sweeps left out, and what joins them in the source now. 5 of them have no arrow between them, near or far.
Where there is an arrow, changing together says it is a strong one: it carries. The pairs worth reading are those with no arrow between them, near or far: they share something the compiler cannot see. Among them are the page the build writes, in node, and the terminal that takes it over in the browser. This site's first rule is that the content is in the HTML, and this is its price: the page and the script that reads it must agree on its markup, a contract no import states, kept by changing both. On the picture above, they are the dashed threads.
With its test
A change that comes with a change to its test, in the same commit, is the mark test-driven work leaves in a history. The history cannot say which was written first, only that they went together.
80% of the changes to a file a test imports came with its test
285 of the 355 changes to a file a test imports came with a change to that test, or a new one, in the same commit. Another 185 changes went to files with something to run that no test imports.
The changes to files no test imports directly are counted apart: some of those files a test runs through another, as the shell's tests run its commands, and some no test runs at all.
What it is not
The history starts on 7 September 2026, so it is short, and some of these numbers are small enough to move with the next commit. A commit is the unit, however much it changed: a one-word fix and a rewrite are one change each. The history is the main line's, and a branch's commits arrive with the merge that brought them. The tests are left out of every count but the last, because a test changes when what it tests does, and would count every change twice. The sweeps are left out of what changes with what, and of how often a box changed. And changing together is not needing each other: it is what has to be explained.
The analyses are small programs in the source of this site, tested like the rest of it, and they read the same history the picture of how it is built plays.