Skip to main content

Module spine

Module spine 

Source
Expand description

The spine documents’ grammar: how a row of Roadmap.md is written and read, and the six fields a Memo outline carries. The part crates/kernel/spec/Spine.lean specifies this module.

Shape and truth are two doors. check_* answers “is this written like a roadmap”; what the rows then mean — how they hang together, what each is worth, what may be started — is crate::plan’s, and it is separate because a mistyped row is repaired by editing the line while a circular dependency is repaired by rethinking the work.

Six columns, and the index is a path. 2.3.1 hangs under 2.3, so the table states a tree without a second file to say so; Weight is a ratio among the rows that share a parent, never a quantity; and Needs names the rows that must finish first. The three columns the old four-column table lacked are what let one plan carry multi-level progress, a dependency graph and a ready set instead of pointing at a diagram file nobody parses.

Every write goes through this file. Assembling a row of Markdown anywhere else would be a second opinion on what a row looks like, and a grammar may only have one.

Structs§

NewChild
A child to hang under a node: what it is, and how big a slice of its parent it takes.
RoadmapRow
One row, as the table spells it.

Enums§

EvidenceCell
The evidence column, three-way: empty and invalid are different facts — one renders as “in progress”, the other as “suspect”.
RoadmapShape
Deliberately exhaustive shape verdict.
RoadmapStatus
The five states, closed. The spellings below are the canonical table strings, and there is exactly one set of them: a second set would be a second authority over what a resident is allowed to write.
ScopeChange
Scope-change vocabulary: requirements move by KEEP/ADD/DROP, never by piling replacements into a bigger project.
WriteMoment
The three moments the plan may be written.

Constants§

ROADMAP_COLUMNS
The number of columns the roadmap table has. Named because three places state it — the parser, the refusal it writes, and the template — and a plan whose columns disagree with its reader has no denominator at all.
ROADMAP_FILE
The name of the plan file, in every building at every depth.
ROADMAP_STATUS_SPELLINGS
Status column spellings — the parse table, data not code. These are the words the template asks a resident to write.

Functions§

check_roadmap_shape
Finds the first pipe table and checks the six-column contract. Pure string work, no I/O; crate::plan builds the tree from what comes back.
insert_children
Hangs new children under a node, returning the whole text.
set_roadmap_status
Rewrites one row of the first table, returning the whole text.