@adia-ai/adia-ui-factory 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.claude-plugin/plugin.json +12 -3
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +24 -1
  4. package/bin/adia-scaffold +93 -13
  5. package/package.json +2 -2
  6. package/references/shell-embed.md +10 -0
  7. package/references/spa-architecture.md +7 -0
  8. package/skills/adia-ui-kit/CHANGELOG.md +41 -0
  9. package/skills/adia-ui-kit/SKILL.md +442 -0
  10. package/skills/adia-ui-kit/assets/figma-make/guidelines/Guidelines.md +87 -0
  11. package/skills/adia-ui-kit/assets/figma-make/guidelines/components.md +142 -0
  12. package/skills/adia-ui-kit/assets/figma-make/guidelines/styles.md +118 -0
  13. package/skills/adia-ui-kit/assets/figma-make/guidelines/tokens.md +120 -0
  14. package/skills/adia-ui-kit/assets/team-scaffold/archive-README.md +30 -0
  15. package/skills/adia-ui-kit/assets/team-scaffold/drafts-README.md +57 -0
  16. package/skills/adia-ui-kit/assets/team-scaffold/inbox-README.md +76 -0
  17. package/skills/adia-ui-kit/assets/team-scaffold/outbox-README.md +46 -0
  18. package/skills/adia-ui-kit/assets/team-scaffold/team-root.README.md +51 -0
  19. package/skills/adia-ui-kit/assets/team-scaffold/tickets-README.md +208 -0
  20. package/skills/adia-ui-kit/assets/team-scaffold/tickets-REGISTRY.md +81 -0
  21. package/skills/adia-ui-kit/assets/templates/AGENTS.template.md +128 -0
  22. package/skills/adia-ui-kit/assets/templates/CLAUDE.template.md +1 -0
  23. package/skills/adia-ui-kit/assets/templates/FEEDBACK-OMISSIONS-DEFENSE.template.md +150 -0
  24. package/skills/adia-ui-kit/assets/templates/FEEDBACK.template.md +213 -0
  25. package/skills/adia-ui-kit/assets/templates/RESPONSE.template.md +114 -0
  26. package/skills/adia-ui-kit/assets/templates/figma-make-guidelines.md +90 -0
  27. package/skills/adia-ui-kit/evals/adversarial-content-trust.json +83 -0
  28. package/skills/adia-ui-kit/evals/evals.json +55 -0
  29. package/skills/adia-ui-kit/evals/routing-corpus.json +121 -0
  30. package/skills/adia-ui-kit/evals/teach-routing-cases.json +92 -0
  31. package/skills/adia-ui-kit/references/capabilities.md +245 -0
  32. package/skills/adia-ui-kit/references/catalog-lookup.md +186 -0
  33. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v1.md +8 -0
  34. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v2.md +3585 -0
  35. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v3.md +1899 -0
  36. package/skills/adia-ui-kit/references/common-gotchas-consumer.md +522 -0
  37. package/skills/adia-ui-kit/references/component-literacy.md +291 -0
  38. package/skills/adia-ui-kit/references/composition.md +245 -0
  39. package/skills/adia-ui-kit/references/correction-loop.md +462 -0
  40. package/skills/adia-ui-kit/references/css-policy.md +343 -0
  41. package/skills/adia-ui-kit/references/decision-model.md +158 -0
  42. package/skills/adia-ui-kit/references/diagnostic-output.md +57 -0
  43. package/skills/adia-ui-kit/references/docs-catalog.md +239 -0
  44. package/skills/adia-ui-kit/references/exclusions.md +225 -0
  45. package/skills/adia-ui-kit/references/feedback-authoring.md +466 -0
  46. package/skills/adia-ui-kit/references/figma-make.md +244 -0
  47. package/skills/adia-ui-kit/references/flows-auth.md +307 -0
  48. package/skills/adia-ui-kit/references/flows-content.md +206 -0
  49. package/skills/adia-ui-kit/references/flows-data.md +348 -0
  50. package/skills/adia-ui-kit/references/flows-interaction.md +181 -0
  51. package/skills/adia-ui-kit/references/flows-shells.md +336 -0
  52. package/skills/adia-ui-kit/references/gap-detection.md +266 -0
  53. package/skills/adia-ui-kit/references/harness.md +284 -0
  54. package/skills/adia-ui-kit/references/loading-protocol.md +406 -0
  55. package/skills/adia-ui-kit/references/local-link.md +198 -0
  56. package/skills/adia-ui-kit/references/mcp.md +401 -0
  57. package/skills/adia-ui-kit/references/migration.md +116 -0
  58. package/skills/adia-ui-kit/references/mission.md +194 -0
  59. package/skills/adia-ui-kit/references/mode-routing.md +298 -0
  60. package/skills/adia-ui-kit/references/patterns-agent.md +223 -0
  61. package/skills/adia-ui-kit/references/patterns-data.md +1066 -0
  62. package/skills/adia-ui-kit/references/patterns-forms.md +223 -0
  63. package/skills/adia-ui-kit/references/patterns-layout.md +326 -0
  64. package/skills/adia-ui-kit/references/patterns-recipes.md +1416 -0
  65. package/skills/adia-ui-kit/references/patterns-shells.md +1097 -0
  66. package/skills/adia-ui-kit/references/patterns-traits.md +259 -0
  67. package/skills/adia-ui-kit/references/patterns-wiring.md +339 -0
  68. package/skills/adia-ui-kit/references/pev-rationale.md +137 -0
  69. package/skills/adia-ui-kit/references/reasoning-gate.md +146 -0
  70. package/skills/adia-ui-kit/references/reasoning-methodologies.md +112 -0
  71. package/skills/adia-ui-kit/references/recon.md +192 -0
  72. package/skills/adia-ui-kit/references/rendering-model.md +431 -0
  73. package/skills/adia-ui-kit/references/response-authoring.md +398 -0
  74. package/skills/adia-ui-kit/references/session-log-schema.md +203 -0
  75. package/skills/adia-ui-kit/references/session-log-template.md +118 -0
  76. package/skills/adia-ui-kit/references/setup.md +652 -0
  77. package/skills/adia-ui-kit/references/skill-hygiene.md +135 -0
  78. package/skills/adia-ui-kit/references/spec-to-ui-reasoning.md +394 -0
  79. package/skills/adia-ui-kit/references/state.md +229 -0
  80. package/skills/adia-ui-kit/references/teach-protocol.md +421 -0
  81. package/skills/adia-ui-kit/references/theme.md +142 -0
  82. package/skills/adia-ui-kit/references/version-check.md +69 -0
  83. package/skills/adia-ui-kit/scripts/audit-decision-trace.mjs +198 -0
  84. package/skills/adia-ui-kit/scripts/audit-kit-roster.mjs +366 -0
  85. package/skills/adia-ui-kit/scripts/changelog-archive.mjs +126 -0
  86. package/skills/adia-ui-kit/scripts/check-adia-versions.py +404 -0
  87. package/skills/adia-ui-kit/scripts/run-skill-evals.mjs +358 -0
  88. package/skills/adia-ui-kit/scripts/validate-session-log.mjs +242 -0
  89. package/skills/adia-ui-kit/skill.json +102 -0
  90. package/skills/adia-ui-migration/CHANGELOG.md +47 -0
  91. package/skills/adia-ui-migration/SKILL.md +381 -0
  92. package/skills/adia-ui-migration/skill.json +29 -0
  93. package/skills/adia-ui-spa/SKILL.md +1 -1
  94. package/skills/adia-ui-verify/SKILL.md +2 -2
@@ -1,12 +1,21 @@
1
1
  {
2
2
  "name": "adia-ui-factory",
3
- "version": "0.2.2",
4
- "description": "Author and verify apps built on the adia-ui (@adia-ai) light-DOM web-component framework scaffold, compose, wire, and verify across both SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
3
+ "version": "0.2.3",
4
+ "description": "Author and verify apps built on the adia-ui (@adia-ai) light-DOM web-component framework \u2014 scaffold, compose, wire, and verify across both SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
5
5
  "author": {
6
6
  "name": "Kim",
7
7
  "email": "kim@sublimeheroics.com"
8
8
  },
9
9
  "homepage": "https://github.com/adiahealth/gen-ui-kit",
10
10
  "license": "MIT",
11
- "keywords": ["adia-ui", "a2ui", "web-components", "app-authoring", "ssr", "spa", "scaffolding", "llm-ui"]
11
+ "keywords": [
12
+ "adia-ui",
13
+ "a2ui",
14
+ "web-components",
15
+ "app-authoring",
16
+ "ssr",
17
+ "spa",
18
+ "scaffolding",
19
+ "llm-ui"
20
+ ]
12
21
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [Unreleased]
4
+
5
+ ## [0.2.3] — 2026-06-10
6
+
7
+ - **Consumer-portability arc complete (T6).** `bin/adia-scaffold` now emits a working consumer serving setup — a `vite.config.js` + `package.json` in the SPA scaffold and `/node_modules/@adia-ai/...` paths (Vite-resolved) with a commented import-map/CDN fallback — replacing the monorepo-absolute paths that blank-screened bare consumers (GAP-1 P0). Doc gaps closed: `adia-ui-verify` `CLAUDE_PLUGIN_ROOT` gloss, `shell-embed.md` live worked example, `spa-architecture.md` consumer note (GAP-2/3/4). The 4 producer-command leaks in consumer migration guidance (`adia-ui-migration` + `adia-ui-kit/references/migration.md`) rewritten to consumer-portable verification — now enforced by the monorepo's **blocking** `check:factory-bare-repo` CI gate (the consumer-instruction half of ADR-0040, alongside `audit:plugin-coupling`).
8
+
9
+ - **Consumer agent roster (2 cards) — dogfood-gated promotion.** The R5/T1 dogfood gate cleared: `screen-composer` composed the `embedded-app` patient-labs Live tab, passed `adia-ui-verify` (adia-lint 0 findings, browser render PASS, 7 `button-ui` / 0 raw natives, tab routing + Order action verified) — T1 evidence in `/tmp/t1-dogfood/`. Per the T1 Part-3 evidence the roster is **2 cards**: `app-architect` (Intent+Plan; pure read/orient, no scaffold) materialized + `screen-composer` (Execute + self-Evaluate) promoted DRAFT→PROMOTED. **`composition-reviewer` is a MODE of `screen-composer`** (it held the verify gate itself in the dogfood), not a separate card; **`app-migrator` is deferred** (promotion gate = a real consumer migration task). Routing-eval corpus added (`agents/routing-corpus.json` + `eval:agent-routing`, 92.9% accuracy). Bare-repo portability fixes folded from the prior cut: `adia-ui-spa` monorepo-path fix + `adia-ui-migration` producer-gate removal.
10
+
3
11
  ## [0.2.2] — 2026-06-04
4
12
 
5
13
  - **The design intent is now a precondition of making — a soft gate.** Before the maker converges on structure or UI, the app's **design intent** (the `BRIEF` — what this UI is reaching for) must be **at least lightly named**; composition reasoned toward _nothing_ drifts to "build the catalog" / feature improvisation. `adia-ui-project` gains a **"Step 0 — name the design intent [soft-gate]"** section before picking the shape (name a provisional pull, trace it in `spec/BRIEF` or inline); `adia-ui-compose` and `adia-ui-genui` each add a short design-intent soft-gate check before their loop (and for genui it also grounds corpus retrieval); `/adia-scaffold` and `/adia-genui` gain a one-line gate near the top. It is a _soft_ blocker throughout — cleared by **naming** a revisable direction, never by stopping, and "lightly declared and developed over time" is the healthy state. Mirrors the generalized rule in plugins-factory `operational-roles.md`.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Author and verify apps built on the adia-ui (`@adia-ai`) framework** — a zero-dependency, light-DOM vanilla web-component library. A self-contained Claude Code plugin: it bundles the _authoring methodology_ and wires the framework's existing **a2ui MCP** as the live substrate for catalog retrieval, UI generation, and validation.
4
4
 
5
- > **Status: v0.2.2feature-complete, red-teamed.** Eleven skills across the full app-authoring lifecycle, the vendored methodology (16 load-on-demand references), the pinned a2ui MCP, two bins (`adia-scaffold` + `adia-lint`), and the advisory hook are in; the plugins-factory 9-critic council pass has been run and its fixes folded (`CHANGELOG.md`). Every skill is built to plugins-factory's hardened skill-architecture standard (cold-start surface · modes · per-mode verify target · a `[gate]` rubric · §SelfAudit · load-when references).
5
+ > **Status: v0.2.3consumer agent roster (2 cards).** Eleven skills + 2 agent cards (`app-architect` + `screen-composer`). The R5 dogfood gate cleared (screen-composer composed the embedded-app patient-labs Live tab, passed adia-ui-verify) and the **T1 keystone evidence** set the roster: `app-architect` (Intent+Plan) is materialized; **`composition-reviewer` is a MODE of `screen-composer`** (it held the verify gate itself in the dogfood), not a separate card; **`app-migrator` is deferred** until a real consumer migration task. The skills are built to plugins-factory's hardened standard (cold-start · modes · verify target · `[gate]` rubric · §SelfAudit · load-when references).
6
6
 
7
7
  ## The shape
8
8
 
@@ -11,6 +11,10 @@
11
11
  ```text
12
12
  adia-ui-factory/
13
13
  ├── .mcp.json → wires @adia-ai/a2ui-mcp@0.7.8 (npx) — catalog, retrieval, generate_ui, validate
14
+ ├── agents/ (2) — the consumer-app-author roster (dogfood-gated; see roster design note)
15
+ │ ├── app-architect.md Intent + Plan — disambiguate brief, §SpecToUi, Orientation Record [PROMOTED]
16
+ │ └── screen-composer.md Execute + Evaluate — compose, scaffold, wire, then self-verify [PROMOTED]
17
+ │ (composition-review = screen-composer's mode, not a card · app-migrator deferred — T1 evidence)
14
18
  ├── skills/ (11)
15
19
  │ ├── adia-ui-factory/ orient & route — classify mode + shape + shell + task (the hub)
16
20
  │ ├── adia-ui-project/ project shapes · four-axis layout · page-trio/DUO · scaffold
@@ -29,6 +33,25 @@ adia-ui-factory/
29
33
  └── hooks/ hooks.json — runs adia-lint on writes; advisory, never blocks
30
34
  ```
31
35
 
36
+ ### The consumer-app-author agent roster
37
+
38
+ The **Intent → Plan → Execute → Evaluate → Iterate** loop for consumer app authoring:
39
+
40
+ ```
41
+ app-architect ──▶ screen-composer ──▶ ship
42
+ (Intent+Plan) (Execute + self-Evaluate; loop if < bar)
43
+ composition-review = screen-composer's verify mode · app-migrator deferred
44
+ ```
45
+
46
+ | Agent | Owns | Model | Status |
47
+ |---|---|---|---|
48
+ | `app-architect` | Intent + Plan: brief → §SpecToUi → Orientation Record | opus | PROMOTED |
49
+ | `screen-composer` | Execute + Evaluate: scaffold + compose + wire + trust gate + self-verify | sonnet | PROMOTED |
50
+ | _composition-review_ | a **mode** of screen-composer (not a separate card) | — | folded |
51
+ | _app-migrator_ | Steward: version upgrades, migration sweeps | — | DEFERRED (not materialized) |
52
+
53
+ Roster design + 5-critic synthesis: `.brain/notes/factory-agent-roster-design-2026-06-08.md`. Promotion gate (T1) passed 2026-06-08 — see `agents/screen-composer.md` STATUS header.
54
+
32
55
  ## What it bundles vs. wires
33
56
 
34
57
  - **Bundled (self-contained):** the authoring _methodology_ — the SPA app-authoring discipline (host document, four-axis structure, light-DOM components, content-less router, `DataClient`/projection, verification) and the SSR rendering-model (framework integration, guarded dynamic-import registration, server data, cookie/session state). These are the abstraction layer.
package/bin/adia-scaffold CHANGED
@@ -62,6 +62,8 @@ def _spa_files(name):
62
62
  f"app/{tag}/src/index.css": _SPA_PAGE_CSS.format(tag=tag),
63
63
  f"app/{tag}/src/components/{tag}/{tag}.js": _SPA_JS.format(tag=tag, cls=cls, title=title),
64
64
  f"app/{tag}/src/components/{tag}/{tag}.css": _SPA_CSS.format(tag=tag),
65
+ f"app/{tag}/vite.config.js": _VITE_CONFIG.format(tag=tag),
66
+ f"app/{tag}/package.json": _PKG_JSON.format(tag=tag, title=title),
65
67
  }
66
68
 
67
69
 
@@ -72,15 +74,47 @@ _SPA_HTML = """<!doctype html>
72
74
  <meta name="viewport" content="width=device-width, initial-scale=1" />
73
75
  <title>{title}</title>
74
76
 
75
- <!-- Cascade order is load-bearing (later wins). Paths assume the kit is served at
76
- /packages/web-components adjust to how YOU serve @adia-ai (npm, a Vite alias, a CDN). -->
77
- <link rel="stylesheet" href="/packages/web-components/styles/host.css" /> <!-- foundation: tokens + resets + page frame -->
78
- <link rel="stylesheet" href="/packages/web-components/styles/index.css" /> <!-- barrel: every component's CSS (link BOTH) -->
79
- <link rel="stylesheet" href="./index.css" /> <!-- page framing -->
80
- <link rel="stylesheet" href="./components/{tag}/{tag}.css" /> <!-- the surface's chrome -->
77
+ <!--
78
+ HOW TO SERVE @adia-ai/web-components pick one:
79
+
80
+ A) Vite (recommended, npm consumer): run `npm install` then `vite` from app/{tag}/.
81
+ Vite resolves @adia-ai/* bare specifiers from node_modules automatically; the
82
+ importmap below is NOT needed in this mode (Vite transforms it away).
83
+ The vite.config.js next to this file wires the dev server root correctly.
84
+
85
+ B) Import-map (no bundler, e.g. native browser modules or a CDN):
86
+ Uncomment the importmap block below and point the paths to wherever the
87
+ @adia-ai packages are served — a local static server, esm.sh, or unpkg.
88
+ The CSS <link> hrefs must also point to the same location.
89
+
90
+ C) Monorepo / dev server (framework contributors only):
91
+ The /packages/web-components/... paths below resolve when the monorepo
92
+ vite dev server is running. This is NOT a consumer deployment mode.
93
+
94
+ Cascade order is load-bearing (later wins):
95
+ foundation (host.css) → barrel components (index.css) → page framing → surface chrome
96
+ -->
97
+
98
+ <!--
99
+ OPTION B — import-map (uncomment + adjust URLs when not using Vite):
100
+ <script type="importmap">
101
+ {{
102
+ "imports": {{
103
+ "@adia-ai/web-components": "https://esm.sh/@adia-ai/web-components",
104
+ "@adia-ai/web-components/": "https://esm.sh/@adia-ai/web-components/"
105
+ }}
106
+ }}
107
+ </script>
108
+ -->
109
+
110
+ <!-- OPTION A/B: CSS — with Vite these resolve via node_modules; without Vite, adjust the hrefs. -->
111
+ <link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/host.css" /> <!-- foundation: tokens + resets + page frame -->
112
+ <link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/index.css" /> <!-- barrel: every component's CSS (link BOTH) -->
113
+ <link rel="stylesheet" href="./index.css" /> <!-- page framing -->
114
+ <link rel="stylesheet" href="./components/{tag}/{tag}.css" /> <!-- the surface's chrome -->
81
115
 
82
- <!-- One registration script: registers every primitive (including router-ui). -->
83
- <script type="module" src="/packages/web-components/index.js"></script>
116
+ <!-- One registration script: registers every primitive (including router-ui).
117
+ Bare @adia-ai/* specifiers resolve via Vite (node_modules) or the importmap above. -->
84
118
  <script type="module" src="./components/{tag}/{tag}.js"></script>
85
119
  </head>
86
120
  <body>
@@ -89,6 +123,48 @@ _SPA_HTML = """<!doctype html>
89
123
  </html>
90
124
  """
91
125
 
126
+ _VITE_CONFIG = """import {{ defineConfig }} from 'vite';
127
+ import {{ resolve }} from 'node:path';
128
+
129
+ // Consumer vite config for {tag}.
130
+ // Run: npm install && npx vite
131
+ //
132
+ // Vite resolves @adia-ai/* bare specifiers from node_modules automatically.
133
+ // The root is set to src/ so index.html is the entry point and relative CSS/JS
134
+ // paths resolve correctly without the /node_modules/... prefix needed in the
135
+ // html file when served statically.
136
+ export default defineConfig({{
137
+ root: 'src',
138
+ server: {{
139
+ open: true,
140
+ }},
141
+ build: {{
142
+ outDir: '../dist',
143
+ emptyOutDir: true,
144
+ }},
145
+ }});
146
+ """
147
+
148
+ _PKG_JSON = """{{
149
+ "name": "{tag}",
150
+ "version": "0.1.0",
151
+ "description": "{title}",
152
+ "private": true,
153
+ "type": "module",
154
+ "scripts": {{
155
+ "dev": "vite",
156
+ "build": "vite build",
157
+ "preview": "vite preview"
158
+ }},
159
+ "dependencies": {{
160
+ "@adia-ai/web-components": "latest"
161
+ }},
162
+ "devDependencies": {{
163
+ "vite": "^5.0.0"
164
+ }}
165
+ }}
166
+ """
167
+
92
168
  _SPA_PAGE_CSS = """/* Page framing — size + center the surface. Tokens only; never re-roll :where(html,body). */
93
169
  {tag} {{
94
170
  display: block;
@@ -244,9 +320,12 @@ _PAGE_HTML = """<!doctype html>
244
320
  <meta charset="utf-8" />
245
321
  <meta name="viewport" content="width=device-width, initial-scale=1" />
246
322
  <title>{title}</title>
247
- <link rel="stylesheet" href="/packages/web-components/styles/host.css" />
248
- <link rel="stylesheet" href="/packages/web-components/styles/index.css" />
249
- <script type="module" src="/packages/web-components/index.js"></script>
323
+ <!-- CSS: with Vite these resolve via node_modules; without Vite, adjust the hrefs
324
+ (or see spa-architecture.md for the importmap / CDN options). -->
325
+ <link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/host.css" />
326
+ <link rel="stylesheet" href="/node_modules/@adia-ai/web-components/styles/index.css" />
327
+ <!-- @adia-ai/* bare specifiers resolve via Vite (node_modules) or an importmap. -->
328
+ <script type="module" src="/node_modules/@adia-ai/web-components/index.js"></script>
250
329
  </head>
251
330
  <body>
252
331
  <main id="page-root"><p>Loading…</p></main>
@@ -336,8 +415,9 @@ def _selftest():
336
415
  with tempfile.TemporaryDirectory() as tmp:
337
416
  _, w, _ = _scaffold("spa", "Demo App", None, tmp, False)
338
417
  need = [f for f in w if f.endswith(("index.html", "demo-app.js", "demo-app.css"))]
339
- if not any(f.endswith("index.html") for f in w) or len(w) < 6:
340
- print("selftest: SPA scaffold incomplete", file=sys.stderr); ok = False
418
+ missing = [n for n in ("index.html", "vite.config.js", "package.json") if not any(f.endswith(n) for f in w)]
419
+ if missing or len(w) < 8:
420
+ print(f"selftest: SPA scaffold incomplete (missing: {missing}, got {len(w)} files)", file=sys.stderr); ok = False
341
421
  for fw in ("next", "nuxt", "sveltekit", "astro"):
342
422
  _, w2, _ = _scaffold("ssr", f"demo-{fw}", fw, tmp, False)
343
423
  if not any("README.md" == f for f in w2) or len(w2) != 2:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@adia-ai/adia-ui-factory",
3
- "version": "0.2.2",
4
- "description": "Author and verify apps built on the adia-ui (@adia-ai) light-DOM web-component framework scaffold, compose, wire, and verify across both SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
3
+ "version": "0.2.3",
4
+ "description": "Author and verify apps built on the adia-ui (@adia-ai) light-DOM web-component framework \u2014 scaffold, compose, wire, and verify across both SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
5
5
  "keywords": [
6
6
  "adia-ui",
7
7
  "a2ui",
@@ -28,6 +28,16 @@ An **embedded surface** is a self-contained light-DOM custom element that a _hos
28
28
  4. Keep it size-agnostic; let the host place it.
29
29
  5. Verify in a host harness (renders, zero console errors, non-zero box) — `adia-ui-verify`.
30
30
 
31
+ ## Live worked example
32
+
33
+ The canonical implementation of this pattern is `apps/embedded-app/` in the adia-ui monorepo — the patient-labs and population-health surfaces built to the shared-foundation shape. Use it as the reference when authoring a new embedded surface:
34
+
35
+ - `apps/embedded-app/app/patient-labs/` — patient-labs surface (full Live/Labs/History/Briefing tab set, DataClient projection wiring, ambient-pill footer)
36
+ - `apps/embedded-app/app/population-health/` — population-health surface (coverage metrics, facility breakdown)
37
+ - `apps/embedded-app/app/shared/` — DataClient, CorpusLoader, mappers, shared tokens
38
+
39
+ If you have access to the monorepo, read `apps/embedded-app/` before authoring a new embedded surface — the shape is proven and annotated.
40
+
31
41
  ## When it ships
32
42
 
33
43
  The official `adia-embed-shell` is expected to package this chrome (the panel layout, the host-placement contract, the embed bridge) as a web-module like the others. At that point: register via the cluster barrel, replace the hand-rolled container chrome with the shell, and keep the DataClient/projection + attribution wiring. Until then, the pattern above **is** the contract.
@@ -26,6 +26,13 @@ One static `index.html` whose job is to load CSS in cascade order and register c
26
26
  </html>
27
27
  ```
28
28
 
29
+ > **Note — monorepo paths vs real npm consumer.** The `/packages/web-components/...` paths above only resolve inside the AdiaUI monorepo dev server. A real npm consumer has two options:
30
+ >
31
+ > - **Vite (recommended):** `npm install @adia-ai/web-components`, add a `vite.config.js` (the `adia-scaffold spa` bin emits one), then replace the paths with `/node_modules/@adia-ai/web-components/styles/host.css` etc. — Vite serves node_modules at that prefix during dev and bundles them at build time. Bare `@adia-ai/*` specifiers in `.js` files resolve automatically.
32
+ > - **Import-map / CDN (no bundler):** add an `<script type="importmap">` mapping `"@adia-ai/web-components"` to your CDN URL (e.g. `https://esm.sh/@adia-ai/web-components`), and adjust the CSS link hrefs to match.
33
+ >
34
+ > The `adia-scaffold spa` output is pre-wired for the Vite path (`vite.config.js` + `package.json` included).
35
+
29
36
  **Cascade order is load-bearing** (later wins): foundation → barrel → register → page → component. Invariants:
30
37
 
31
38
  - Link **both** `host.css` and `styles/index.css`. Post-0.7.6 the barrel was split — `host.css` is foundation-only, so linking it alone renders primitives unstyled.
@@ -0,0 +1,41 @@
1
+ # adia-ui-kit (factory plugin edition) Changelog
2
+
3
+ ## 0.1.0 (2026-06-07)
4
+
5
+ **Initial release — consumer distillation per ADR-0040 Phase 1b.**
6
+
7
+ Creates the shareable consumer `adia-ui-kit` skill inside the
8
+ `adia-ui-factory` plugin. This is the **consumer composition knowledge**
9
+ distilled from `.agents/skills/adia-ui-kit/` v3.11.0, decoupled so a
10
+ consumer with NO `@adia-ai` monorepo can use it. Passes the bare-repo gate
11
+ (`npm run audit:plugin-coupling:strict` → 0 RUNTIME-USE).
12
+
13
+ **Scope:**
14
+
15
+ - **SKILL.md** — consumer composition guidance adapted to the portable
16
+ consumer voice; `@adia-ai` specifics cited as clearly-labeled
17
+ worked-examples. Excludes maintainer-only material (monorepo-audit gates,
18
+ `.brain/` ops, repo-maintenance procedures, release/ops coupling).
19
+ - **51 references/** — full consumer reference set: all patterns-*.md,
20
+ flows-*.md, composition, catalog-lookup, setup, css-policy, mcp, harness,
21
+ theme, state, migration, rendering-model, figma-make, local-link,
22
+ spec-to-ui-reasoning, reasoning-gate, mission, recon, gap-detection,
23
+ diagnostic-output, mode-routing, capabilities, decision-model,
24
+ component-literacy, pev-rationale, reasoning-methodologies,
25
+ correction-loop, common-gotchas-consumer, docs-catalog, session-log-*,
26
+ feedback-authoring, exclusions, response-authoring, teach-protocol,
27
+ skill-hygiene, version-check, loading-protocol + changelog-archive/.
28
+ Excluded: audit-scripts.md (monorepo path refs), team-tickets.md,
29
+ ticket-tooling.md, autocapture.md (all tied to .agents/team/tickets/).
30
+ - **6 scripts/** — consumer-safe only: audit-kit-roster.mjs (standalone,
31
+ audit-axes inlined — no .agents/shared/ import), validate-session-log.mjs,
32
+ audit-decision-trace.mjs, changelog-archive.mjs, run-skill-evals.mjs,
33
+ check-adia-versions.py. Excluded: audit-kit-recipes.mjs (reads
34
+ packages/web-components/), audit-native-primitive-leak.mjs (same),
35
+ audit-shell-composition.mjs (same), teach-route.mjs (outputs .agents/
36
+ paths as suggestions; excluded per task scope), ticket-tool.py (reads
37
+ .agents/team/).
38
+ - **4 eval corpora** — routing-corpus.json, evals.json,
39
+ adversarial-content-trust.json, teach-routing-cases.json.
40
+ - **Registration** — factory plugin auto-discovers skills via `skills/*/SKILL.md`
41
+ directory scan (no explicit plugin.json enumeration needed).