Skip to main content

max / makeover-build

Strip historical narrative from documentation Remove what a doc used to say, when it changed, the incidents that justified a rule, finished migration narration, and counts and versions that rot. State the rules in the present tense instead. Keep every instruction, prohibition and threshold, and keep the measurements that make a rule actionable. Public-facing docs keep their explanatory voice.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01MptwXZ8k65v19rFmdGAyki
Author: Max Johnson <me@maxj.phd> · 2026-08-31 01:51 UTC
Signed with PGP, not checked
Commit: de77ad5e5a679c839e8fbe37698b7877626bc023
Parent: 0b05e47
3 files changed, +10 insertions, -24 deletions
M README.md +4 -8
@@ -2,11 +2,8 @@
2 2
3 3 Build-script support for the make-family design system.
4 4
5 - Every consumer materialises the same generated files from a `build.rs`, and
6 - until now every consumer wrote that code itself. GoingsOn and Balanced Breakfast
7 - grew byte-identical copies of the theme materialiser during the makeover-geometry
8 - adoption, and the layout stylesheet would have been the third and fourth copies.
9 - This is that code, once.
5 + Every consumer materialises the same generated files from a `build.rs`. This is
6 + that code, once, so no consumer keeps its own copy.
10 7
11 8 ```rust
12 9 // build.rs
@@ -40,9 +37,8 @@
40 37 drifts. Every path written here is expected to be gitignored.
41 38
42 39 `themes` clears stale `.toml` files before writing, so a theme removed or
43 - renamed upstream does not linger in the bundle from an earlier build. That is
44 - the detail that makes this worth sharing rather than retyping: it is easy to
45 - omit, and its absence shows up as a theme that will not go away.
40 + renamed upstream does not linger in the bundle from a previous build. Omitting
41 + that step shows up as a theme that will not go away.
46 42
47 43 ## Status
48 44
M src/drift.rs +3 -10
@@ -409,9 +409,7 @@
409 409 /// specificity, either by being unlayered or by sitting in a layer the app's
410 410 /// order statement puts after `makeover`, so an app declaration for a property
411 411 /// makeover already sets does not merge with it: it wins, silently, and the
412 - /// design system's version of that component stops applying. Both sort-caret
413 - /// defects found on 2026-08-11 were this, and both were live for months because
414 - /// nothing looked.
412 + /// design system's version of that component stops applying, and nothing looks.
415 413 ///
416 414 /// # Two passes, because a rule can carry no class
417 415 ///
@@ -460,13 +458,8 @@
460 458 /// that guesses wrong about specificity fails correct builds -- so the app
461 459 /// declares it instead, the same shape as quasi-webview's `RENDERER_OWN`.
462 460 ///
463 - /// The example this section used to give was the sort caret: `content` on
464 - /// `.table-heading`'s unsorted arm reserved the gap, `content` on the sorted arm
465 - /// was the generated glyph, and the two were a pairing rather than a collision.
466 - /// makeover-webview 0.31.0 emits both arms itself, so that pair is now an app
467 - /// overriding the caret and the check is right to fail it. A reviewed pairing is
468 - /// a claim about who owns a property, and it expires when the design system
469 - /// takes the property back.
461 + /// A reviewed pairing is a claim about who owns a property, and it expires when
462 + /// the design system takes the property back.
470 463 ///
471 464 /// `allowed_elements` is the same thing one pass down: `(element, class,
472 465 /// property)` triples where a bare element rule reaching a generated class has
M src/lib.rs +3 -6
@@ -71,9 +71,8 @@
71 71 /// Write the themes `makeover` ships into `dir`, as `<id>.toml`.
72 72 ///
73 73 /// Clears stale `.toml` files first, so a theme removed or renamed upstream
74 - /// does not linger in the bundle from an earlier build. That detail is the
75 - /// reason this is worth sharing rather than retyping: it is easy to omit and
76 - /// its absence shows up as a theme that will not go away.
74 + /// does not linger in the bundle from a previous build. Omitting that step
75 + /// shows up as a theme that will not go away.
77 76 ///
78 77 /// # Panics
79 78 ///
@@ -123,9 +122,7 @@
123 122 /// [`makeover_geometry::size_class_css`] follows the density block because it
124 123 /// is the narrower claim: density says what is pointing at the screen, size
125 124 /// class says how much screen there is, and on a compact window the two shells
126 - /// tighten regardless of which density selected them. Shipped in
127 - /// makeover-geometry 0.7.0 and emitted by nobody until 2026-08-10, which meant
128 - /// the axis existed in the crate and reached no stylesheet.
125 + /// tighten regardless of which density selected them.
129 126 ///
130 127 /// # Panics
131 128 ///