← Commit history

2.5.1 (doc only, module bytes unchanged): a check that names an element asserts a structure; a check that measures a distance asserts the requirement

John Lauer ·fd76b460fb ·1mo ago ·parent edf9254
2 files changed +13−2
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-ui-design",-  "version": "2.5.0",+  "version": "2.5.1",   "type": "skill",   "description": "The Adom UI Design System plus a bundle of focused UI skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths, dark-default, input-feedback, settings-layout). One install drops the whole set of skill files onto your container, plus shared icon assets (the settings cog) so every Adom app draws the same glyph.",   "dependencies": {},
skills/newbie-panel/SKILL.md+12−1
@@ -346,12 +346,23 @@ structure the fleet was never promised. pup caught the mount-div version too, from the implementation alone, and specifically before six apps adopted a container pattern I had recommended that would have red-lined them all. +**A CHECK THAT NAMES AN ELEMENT IS ASSERTING A STRUCTURE. A CHECK THAT MEASURES A DISTANCE IS+ASSERTING THE REQUIREMENT.** kicad's formulation, and it is the general lesson under all three+failures: `documentElement` encoded "the page scrolls", the mount div encoded "the padding+lives on the mount div", and both are page structure the contract never promised. The insets+ARE the contract: 16px from the pane on both sides, whatever carries it and however many+wrappers sit between. **When you write a check, ask whether you are testing the requirement or+one implementation of it.**+ **The fix is to stop naming an element.** Find the nearest scrolling ancestor (or the document), and check both of the panel's insets against its client box. Structure-agnostic: it does not care which element carries the padding or how many wrappers sit between.  **Tested across every structure in the fleet before shipping,** which is the step that was-missing the previous two times:+missing the previous two times, and the reason the alternation kept happening: **2.3.0 and+2.4.0 would each have passed their own motivating case and gone out anyway.** The two RED+rows in the matrix below matter as much as the three green ones, because a check that only+ever sees the case that motivated it is a check nobody has watched go red.  | page structure | verdict | |---|---|