Documentation
¶
Overview ¶
Package statpages renders the generated stat pages under live/ (#2092): the gauntlet board, the readiness tiers, the claims table, the IAM reference, the fork surface and the substrate matrix, as plain GitHub-flavoured markdown.
This reverses #1055's "generators emit data only" for these pages, by the maintainer's ruling of 2026-10-19. The Hugo site and its site/data/*.json copies were retired at the cutover; the site links these pages.
Every page is hand-written text around one or more spans between `<!-- <tool>:begin <name> -->` and `<!-- <tool>:end <name> -->` markers, the style toggles-gen and tagverbs-gen use. A render replaces only what is between the markers, so the text around them survives.
Every render here is a pure function of committed files: no git, no network, no clock. That is what lets live/statpages_test.go re-render every span in memory and compare it with the tree. Three of the inputs are derived summaries a generator writes beside its artifact (the board, readiness and fork-surface summaries); they lived under site/data/ until the Hugo site was retired (#2092), and the constants below are the one place that names them.
`go run ./tools/gauntlet render` refreshes every page (WriteAll). Each other generator's -render mode refreshes its own page after writing its data, so a re-measured artifact and its page move together.
Index ¶
Constants ¶
const ( GauntletArtifactRel = "live/gauntlet.json" GauntletBoardRel = "live/gauntlet-board.json" ReadinessSiteRel = "live/readiness-summary.json" ForkSurfaceSiteRel = "live/fork-surface-summary.json" ClaimsRel = "live/smoke/claims.json" IAMReferenceRel = "live/iam-reference.json" SubstratesRel = "live/substrates.json" )
Input paths, relative to the repository root.
const RefreshCommand = "go run ./tools/gauntlet render"
RefreshCommand is the one command that re-renders every page.
Variables ¶
var ( Board = Page{ Path: "live/BOARD.md", Tool: "board-gen", Command: "go run ./tools/gauntlet render", Inputs: []string{GauntletBoardRel, GauntletArtifactRel}, // contains filtered or unexported fields } Readiness = Page{ Path: "live/READINESS.md", Tool: "readiness-gen", Command: "go run ./tools/readiness-gen -render", Inputs: []string{ReadinessSiteRel}, // contains filtered or unexported fields } Claims = Page{ Path: "live/CLAIMS.md", Tool: "claims-gen", Command: "go run ./tools/gauntlet render", Inputs: []string{ClaimsRel, GauntletArtifactRel, "live/smoke/evidence/*.json"}, // contains filtered or unexported fields } IAMReference = Page{ Path: "live/IAM-REFERENCE.md", Tool: "iamref-gen", Command: "go run ./tools/iamref-gen -render", Inputs: []string{IAMReferenceRel}, // contains filtered or unexported fields } ForkSurface = Page{ Path: "live/FORK-SURFACE.md", Tool: "forkdiff-gen", Command: "go run ./tools/forkdiff-gen -render", Inputs: []string{ForkSurfaceSiteRel}, // contains filtered or unexported fields } Substrates = Page{ Path: "live/SUBSTRATES.md", Tool: "substrates-gen", Command: "go run ./tools/substrates-gen -render", Inputs: []string{SubstratesRel}, // contains filtered or unexported fields } )
Board, Readiness, Claims, IAMReference, ForkSurface and Substrates are the pages; Pages lists them in that order.
Functions ¶
func Render ¶
Render returns the page as it should read: the committed file with every span re-rendered from the committed inputs. It writes nothing.
Types ¶
type Page ¶
type Page struct {
// Path is the page, relative to the repository root.
Path string
// Tool is the marker vocabulary: `<!-- Tool:begin name -->`.
Tool string
// Command regenerates the data this page is drawn from and then the
// page itself. RefreshCommand re-renders the page from data already
// committed.
Command string
// Inputs are the committed files the spans are rendered from.
Inputs []string
// contains filtered or unexported fields
}
Page is one generated markdown file.