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
2.22.0 (doc only, module unchanged at 2.20.1): a catch-all route answers three checks instead of failing them; grep the entities too; the shot-webview slug is the wrapper's
3 files changed
+39−1
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-ui-design",- "version": "2.21.1",+ "version": "2.22.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/dash-screenshot/SKILL.md+6@@ -63,6 +63,12 @@ if (!t) return 'NOTAB'; if (!t.classList.contains('active')) t.click(); ``` +**⛔ `--slug` IS A SUBSTRING OF THE DOCK-LAUNCH WRAPPER's src, NOT YOUR PORT AND NOT YOUR URL.**+The wrapper is `dock-launch.html?slug=dock-<your-dock-slug>-<stamp>`, so nb's is+`dock-adom-nb-bridge`. nb lost a call guessing its port number. **Free sanity check: the only+dock iframe with a non-zero width is the ACTIVE one**, which confirms you activated the right+tab at the same time as it confirms the slug.+ **2. READ YOUR IFRAME'S RECT FROM THE SHELL TARGET**, not from inside your own page. Your page does not know where it sits in the window, and `window.frameElement` is cross-origin.
skills/newbie-panel/SKILL.md+32@@ -708,6 +708,38 @@ the asset stood still. **When both move together, a version match is luck rather correctness, and the sweep passes for the wrong reason.** A check that can pass for the wrong reason has not been shown to work; it has been shown not to have complained yet. +### ⛔ A CATCH-ALL ROUTE MAKES THREE DIFFERENT CHECKS PASS FOR THE WRONG REASON++**Test it in one line:**++```sh+curl -o /dev/null -w '%{http_code}' <your base>/nonsense # 404 expected. 200 means read on.+```++nb served `page()` for every unmatched path. Three consequences, and it had a clean pass on all+three before it looked:++1. **The 404 watch on a virgin install could never fire.** A missing settings PNG, demo mp3 or+ favicon came back as HTML 200 instead of 404 — and the launch-console 404 watch is the ONE+ thing watched on a fresh install.+2. **`proxy-fidelity` row 3 passed wrongly.** It asserts "not upstream's 418"; a catch-all+ returns 200, which is not 418, so a blanket-proxy check passed on an app that was blanket+ -serving.+3. **`checkSend`'s "send route wired" row passed wrongly**, and this only surfaced once #1 was+ fixed. The module probes with **OPTIONS**; nb's route matched **POST only**, so the+ catch-all was answering the probe with HTML 200. With unmatched paths 404ing, the row went+ red and honest. **If your dashboard proxies those two routes and matches POST only, your+ green on that row is your catch-all, not your route.** Answer a real CORS preflight (204).++This is kicad's "passes for the wrong reason" arriving three times in one app, hours after it+was named. **A permissive default does not fail your checks; it answers them.**++### ⛔ GREP THE ENTITIES TOO++nb's Layer 2 heading carried an em-dash written as `—`, so it **survived every plain-text+grep for the character** while rendering as one on screen. If you sweep for a forbidden+character, sweep for its HTML entity and its escape forms as well.+ ### ⛔ TEST A FIX BY REPRODUCING THE FAILURE, NOT BY READING THE DIFF kicad verified the `rows: []` fix by **hiding the panel and making the same naive