skill
Adom UI Design System
Public Made by Adomby adom
How the AI builds and tests interfaces people love to use in Adom. Ships as one installable skill that bundles focused skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths).
← Commit history
1.39.0: a structural audit cannot see a missing function; assert behaviour and self-check for an empty panel
2 files changed
+33−1
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-ui-design",- "version": "1.38.2",+ "version": "1.39.0", "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+32@@ -326,6 +326,38 @@ the page. Check it by toggling: screenshot with the panel open and closed and compare the distance from the header to the first content row. It should be identical. +## ⛔ A STRUCTURAL AUDIT CANNOT SEE A MISSING FUNCTION++lbr shipped a panel whose markup and CSS were provably correct and which rendered **zero+prompts** in the user's ah. Its 22-check headless byte-audit passed. One root cause produced+three separate symptoms:++> A non-greedy regex in a toast rewrite swallowed the adjacent `api()` helper — the single+> fetch wrapper every call site used. The page threw `ReferenceError: api is not defined` on+> its first call, and because each loader swallowed its own errors, the page went SILENT: no+> prompt rows, no copy buttons to measure, and a red "not answering" pill that was its own+> catch-path fallback.++Two rules fall out, and they are the ones a byte-audit will never give you:++- **Assert BEHAVIOUR, not only markup and CSS.** "The markup is right" is not "the page+ works". A structural check cannot see a missing function any more than it can see a+ breakpoint. Load the page and assert that rows actually EXIST at runtime.+- **Do not let every call site swallow its own errors.** Silence turned one deleted function+ into an empty panel that looked deliberate. A page that fails should say so.++**Ship the self-check that makes this class impossible to hide** (lbr's, and worth copying):++```js+// 1.5s after load: an OPEN panel with zero rows is a bug, not a state.+setTimeout(() => {+ if (panelIsOpen() && rowCount() === 0) toast('error', 'Prompts failed to load — reload');+}, 1500);+```++An empty panel is never a legitimate resting state, so a page that finds itself in one should+say so rather than present it as design.+ ## Two traps that make a CORRECT-LOOKING panel render wrong Both found by parts-search on 2026-08-25, and both passed every computed-style check it ran.