A Tour of the Harness · v2 · M18

The map

Every file in the harness, by tier and package, sized by its lines of code. Hover for what it is; click for the stop that explains it.

Generated by just map
from map.json, which a test keeps current

This is the whole of src/edgar: four tiers, their packages, and every file in them. A node's width is its size, so the shape of the harness is visible before you read a name. Nothing here is written by hand — scripts/tour_map.py walks the tree, reads each file's opening comment for its one-line summary, and finds the tour stop whose data-files names it. A test regenerates the data and fails if the committed copy has drifted.

src/edgar 0 lines of code, 0 files, five tiers v3 and v4 are dashed: planned, and removable by design

How to read it

The tiers are the seam the whole project turns on: Core is the smallest honest harness, v1 makes it extensible, v2 (this milestone among them) makes it a daily driver inside the same packages, and v3 and v4 hang off the loop's post-turn gate and the tool pipeline's vetoes without anything below them importing a line (ADR-0057, NFR-12). A tier here means the milestone that first shipped a file, so a Core file that v1 grew is still Core.

The six ports (ADR-0022) are outlined: provider, tool, skill source, sandbox, retriever and output. Five of them have a file; the sandbox port arrives with M21, so it has no node yet.

The total here is two lines short of what just loc reports: those two live in packages' own __init__.py files, which are not nodes because they have nothing to say.