# This page is derived

> This section covers what the rest of the page is made of.

Page: Anatomy · Reading
Canonical: https://banes-lab.com/anatomy#this-page-is-derived

Listed in [Anatomy · Reading](https://banes-lab.com/api/pages/anatomy/reading.md), before [The four parts, measured](https://banes-lab.com/anatomy/reading/the-four-parts-measured.md).

This section covers what the rest of the page is made of. This tab is the one part of the page I wrote, and everything else, every panel, every number and the whole tree tab, comes out of the build, which parsed every source file of every published tree, built the call graph, ran the diagnoses and laid every syntax node on a grid. The page renders that output by shape, as described in [derived state](https://banes-lab.com/disciplined-methodology/verify/derived-state.md) on the methodology page. The totals across every tree, then each tree on its own line, are shown in the measurements, and the edges between the site's containers in [A1·b the import graph](https://banes-lab.com/anatomy#this-page-is-derived-panel-b).

### What the reader is seeing

A page that describes a codebase is prose about the codebase, and prose has no mechanism that makes it wrong when the codebase changes. An architecture page names three containers and the tree holds four, the fourth added the week after the page was written, and every reader of the page reasons about a tree that no longer exists. A description written by hand is a second copy of the tree, and a second copy disagrees with the first from the day one of them moves.

For this reason a page about a system is derived from the system in the same build that renders it, since otherwise it is only a claim. The derivation is published rather than a description of it, so the page can only be as wrong as the build that produced it. In practice, every number on this page is a measurement taken at build time. The tree tab shows the source as it sits on disk, and each file there shows its walk, its definitions and its source. Where a number here disagrees with the tree on disk, the tree is right and this page is stale.

To check this, pick any file on the tree tab and open the same file on disk. The definitions, the line count and the imports on the page match the file, or the page was not derived from it. The page describes the source on its trees and nothing beyond them. Vendor rule text, backups, binaries and rendered media are listed by name and not shown.

The measurements are the same ones the quality tooling reads, namely how many definitions the parser found, how many call edges it resolved between them, how many calls it could not resolve, and the diagnoses it ran. A call the parser cannot resolve is counted and never guessed, so the resolution rate is a measured fraction and not a hope.

The import graph folds every import a file makes to the container that owns the imported file, so an edge is a container reaching into another container, counted. Which way those edges may run is described in [the direction axis](https://banes-lab.com/software-architecture/model/the-direction-axis.md) on the architecture page, and this graph shows which way they do run.

A1·a the measurements

Files 5904

Lines of code 1413843

Definitions 37599

Exported 18708

Callable 12232

Call edges 12221

Unresolved calls 2433

Resolution rate 0.83

Highest in-degree 246

Highest out-degree 53

isolated flow 28079

leaf flow 3832

entry flow 2954

relay flow 2734

Findings no anomalies

Bane's Lab Site 571 files, 5408 definitions

GovLab Extension Host 231 files, 3693 definitions

Bane's Lab Build Scripts 332 files, 4200 definitions

Bane's Lab Content 97 files, 1177 definitions

Coordination Surface 391 files, 5195 definitions

Bane's Lab Deploy 50 files, 848 definitions

Bane's Lab Server 77 files, 2144 definitions

Bane's Lab Social Share 900 files, 800 definitions

Codebase Testing 1609 files, 190 definitions

GovLab Constants 12 files, 85 definitions

GovLab Context 291 files, 1865 definitions

GovLab Docs 234 files, 3166 definitions

GovLab Patterns 149 files, 1680 definitions

GovLab Pipeline 37 files, 348 definitions

GovLab Quality 597 files, 5103 definitions

GovLab Stats 72 files, 496 definitions

Argv Contract 14 files, 66 definitions

Canonical Write 11 files, 44 definitions

Code Parse 69 files, 173 definitions

Content Fingerprint 13 files, 41 definitions

GovLab Paths 15 files, 45 definitions

Project Scripts 96 files, 715 definitions

Secrets 28 files, 117 definitions

Configs 8 files, 0 definitions

A1·b the import graph

```mermaid
flowchart LR
    n_configuration["configuration"]
    n_core["core"]
    n_domain["domain"]
    n_presentation["presentation"]
    n_runtime["runtime"]
    n_types["types"]
    n_configuration -- 200 imports --> n_core
    n_configuration -- 28 imports --> n_domain
    n_configuration -- 114 imports --> n_types
    n_core -- 67 imports --> n_configuration
    n_core -- 126 imports --> n_types
    n_domain -- 109 imports --> n_configuration
    n_domain -- 63 imports --> n_core
    n_domain -- 95 imports --> n_types
    n_presentation -- 266 imports --> n_configuration
    n_presentation -- 224 imports --> n_core
    n_presentation -- 42 imports --> n_domain
    n_presentation -- 131 imports --> n_types
    n_runtime -- 1 import --> n_configuration
    n_runtime -- 8 imports --> n_core
    n_runtime -- 1 import --> n_domain
    n_runtime -- 8 imports --> n_presentation
    n_runtime -- 2 imports --> n_types
```

## Links to

- [Derived state](https://banes-lab.com/disciplined-methodology/verify/derived-state.md)
- [The direction axis](https://banes-lab.com/software-architecture/model/the-direction-axis.md)
