Problem
Current lifecycle is a strict linear chain draft → reviewed → bound → aligned → proved, but bound (machine-derived from \lean{}) and nl_reviewed (human gate) are independent dimensions. This causes awkward UX: a node that is draft + bound cannot be directly aligned without first clicking "Approve NL".
Proposal
Use the two existing SVG visual elements to represent two orthogonal progress dimensions:
| Dimension |
Visual |
States |
| Human review |
Border color |
draft (gray) → reviewed (orange) → aligned (green) |
| Machine |
Fill color |
unbound (empty) → bound (light blue?) → proved (solid green) |
Key rules
aligned implies nl_reviewed — confirming NL↔Lean alignment means you've reviewed the NL
- Remove
bound → nl_reviewed auto-promotion — having a Lean binding doesn't mean a human reviewed the NL
proved is still machine-derived (Lean compiled with \leanok)
- When
bound=true and aligned=false, show "Confirm Alignment" button regardless of nl_reviewed state
Example states
| Node state |
Border |
Fill |
| Just written by AI |
gray |
empty |
AI added \lean{} binding |
gray |
light fill |
| Human reviewed NL only |
orange |
empty |
| Human reviewed NL + has binding |
orange |
light fill |
| Human confirmed alignment |
green |
light fill |
| Proved in Lean |
green |
solid green |
Files to modify
tools/leanblueprint/leanblueprint/Packages/blueprint.py — colorizer, fillcolorizer, legend, remove bound → nl_reviewed rule
tools/plastexdepgraph/plastexdepgraph/templates/dep_graph.html — STATE_COLORS, updateSvgNode(), lifecycle badges
tools/leanblueprint/leanblueprint/client.py — align action auto-sets nl_reviewed
Context
Discussed in review of the GitHub Pages review system implementation. The two-dimension model better reflects the actual workflow where AI generates both NL and Lean bindings, and mathematicians review them.
Problem
Current lifecycle is a strict linear chain
draft → reviewed → bound → aligned → proved, butbound(machine-derived from\lean{}) andnl_reviewed(human gate) are independent dimensions. This causes awkward UX: a node that is draft + bound cannot be directly aligned without first clicking "Approve NL".Proposal
Use the two existing SVG visual elements to represent two orthogonal progress dimensions:
Key rules
alignedimpliesnl_reviewed— confirming NL↔Lean alignment means you've reviewed the NLbound → nl_reviewedauto-promotion — having a Lean binding doesn't mean a human reviewed the NLprovedis still machine-derived (Lean compiled with\leanok)bound=trueandaligned=false, show "Confirm Alignment" button regardless ofnl_reviewedstateExample states
\lean{}bindingFiles to modify
tools/leanblueprint/leanblueprint/Packages/blueprint.py— colorizer, fillcolorizer, legend, removebound → nl_reviewedruletools/plastexdepgraph/plastexdepgraph/templates/dep_graph.html—STATE_COLORS,updateSvgNode(), lifecycle badgestools/leanblueprint/leanblueprint/client.py— align action auto-setsnl_reviewedContext
Discussed in review of the GitHub Pages review system implementation. The two-dimension model better reflects the actual workflow where AI generates both NL and Lean bindings, and mathematicians review them.