@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
@@ -0,0 +1,121 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "name": "adia-ui-kit bundled routing corpus",
4
+ "version": "1.0.0",
5
+ "purpose": "Portable routing-accuracy corpus for adia-ui-kit. Each phrase declares whether the kit SHOULD be the routing target. Scored by `scripts/run-skill-evals.mjs` against the kit's description + trigger frontmatter — approximates how the harness routes intent. Per REFACTOR-SPEC P3.",
6
+ "scoring_notes": "The bundled scorer uses TF-IDF-style token overlap between the phrase and the kit's frontmatter. This is a HEURISTIC eval — the real harness routing may differ (especially for ambiguous phrases). Treat misroutes as a signal to tighten the kit's description / triggers, not as ground truth. Substrate runs the cross-skill version at `scripts/skills/run-skill-evals.mjs`; the bundled runner restricts evaluation to the kit alone (consumer repos don't have the sibling seniors available to compare against).",
7
+ "license": "internal",
8
+ "scope": "kit-only routing — does this phrase activate adia-ui-kit?",
9
+
10
+ "minimums_per_spec": {
11
+ "trigger_phrases": 10,
12
+ "adversarial_phrases": 5,
13
+ "adversarial_fraction": "33%"
14
+ },
15
+
16
+ "phrases": [
17
+ {
18
+ "id": "kit-01",
19
+ "phrase": "build a user profile card with avatar and edit actions",
20
+ "should_route_to_kit": true,
21
+ "rationale": "Canonical composition task — user profile card is a kit recipe."
22
+ },
23
+ {
24
+ "id": "kit-02",
25
+ "phrase": "generate UI for a pricing page with 3 tiers",
26
+ "should_route_to_kit": true,
27
+ "rationale": "Generative UI composition with specific layout intent."
28
+ },
29
+ {
30
+ "id": "kit-03",
31
+ "phrase": "compose a settings page with form fields and a save button",
32
+ "should_route_to_kit": true,
33
+ "rationale": "Multi-primitive composition — settings page is a kit recipe."
34
+ },
35
+ {
36
+ "id": "kit-04",
37
+ "phrase": "create an FAQ page with expandable questions",
38
+ "should_route_to_kit": true,
39
+ "rationale": "Page composition with accordion-ui pattern."
40
+ },
41
+ {
42
+ "id": "kit-05",
43
+ "phrase": "build a metrics dashboard with KPI stat cards",
44
+ "should_route_to_kit": true,
45
+ "rationale": "Dashboard composition — admin-shell + stat-ui pattern."
46
+ },
47
+ {
48
+ "id": "kit-06",
49
+ "phrase": "use AdiaUI primitives to compose a login screen",
50
+ "should_route_to_kit": true,
51
+ "rationale": "Explicit AdiaUI mention + auth-flow composition."
52
+ },
53
+ {
54
+ "id": "kit-07",
55
+ "phrase": "what's the recipe for a hero section with a CTA?",
56
+ "should_route_to_kit": true,
57
+ "rationale": "Recipe lookup — kit owns composition recipes."
58
+ },
59
+ {
60
+ "id": "kit-08",
61
+ "phrase": "compose this Figma mock into AdiaUI components",
62
+ "should_route_to_kit": true,
63
+ "rationale": "Mock-to-component translation — kit's primary mode."
64
+ },
65
+ {
66
+ "id": "kit-09",
67
+ "phrase": "build a navigation pattern with sidebar and main content",
68
+ "should_route_to_kit": true,
69
+ "rationale": "Layout pattern — admin-shell composition."
70
+ },
71
+ {
72
+ "id": "kit-10",
73
+ "phrase": "generate a chat interface from this user intent",
74
+ "should_route_to_kit": true,
75
+ "rationale": "Chat-shell composition — kit's chat cluster recipes."
76
+ },
77
+
78
+ {
79
+ "id": "kit-adv-01",
80
+ "phrase": "add a new component to packages/web-components/",
81
+ "should_route_to_kit": false,
82
+ "expected_alternative": "adia-ui-authoring",
83
+ "rationale": "Authoring NEW primitives — explicitly NEG-clause in kit description."
84
+ },
85
+ {
86
+ "id": "kit-adv-02",
87
+ "phrase": "cut a release of v0.6.34",
88
+ "should_route_to_kit": false,
89
+ "expected_alternative": "adia-ui-release",
90
+ "rationale": "Release cycle — not kit's domain."
91
+ },
92
+ {
93
+ "id": "kit-adv-03",
94
+ "phrase": "diagnose why zettel composition coverage dropped on the eval",
95
+ "should_route_to_kit": false,
96
+ "expected_alternative": "adia-ui-a2ui",
97
+ "rationale": "A2UI pipeline internals — not kit composition."
98
+ },
99
+ {
100
+ "id": "kit-adv-04",
101
+ "phrase": "explain how React useEffect hooks work",
102
+ "should_route_to_kit": false,
103
+ "expected_alternative": null,
104
+ "rationale": "Generic framework knowledge — kit's NEG clause covers 'unrelated frameworks'. Risk: kit's trigger block contains 'React, useEffect' as routing hints for AdiaUI-in-React projects, which has historically over-activated kit on bare React questions (documented as inherent-scorer-limit negative-02)."
105
+ },
106
+ {
107
+ "id": "kit-adv-05",
108
+ "phrase": "compose this",
109
+ "should_route_to_kit": false,
110
+ "expected_alternative": null,
111
+ "rationale": "Bare 'compose this' with no AdiaUI context — explicitly NEG-clause in kit description. Should not activate on the trigger word alone."
112
+ }
113
+ ],
114
+
115
+ "evaluator_notes": {
116
+ "current_state": "This corpus is scored by `scripts/run-skill-evals.mjs` (bundled in v2.30.0) against the kit's own description + trigger fields. The runner emits a routing F1 number; PASS for trigger-phrases means kit scores ≥ MIN_SCORE_THRESHOLD; PASS for adversarial-phrases means kit scores < MIN_SCORE_THRESHOLD (i.e. doesn't activate).",
117
+ "cross-skill_comparison": "When run inside the chat-ui substrate (where all 5 senior skills are present), the bundled runner falls through to the substrate's `scripts/skills/run-skill-evals.mjs` cross-skill comparison for higher fidelity. When run in a consumer repo (where only adia-ui-kit ships), it scores kit-only.",
118
+ "promotion_criteria": "Promote to a CI gate (warn → hard-fail) when the kit alone scores F1 ≥ 0.85 on this corpus across 3+ consecutive cycles. Until then, the corpus is for VISIBILITY (per REFACTOR-SPEC §10 OQ2).",
119
+ "review_cadence": "Every senior-skill quarterly checkpoint (per AGENTS.md BORIS §B3). Add 1+ new trigger / adversarial phrase per checkpoint reflecting newly-observed routing failure modes. Current cases cover: canonical composition (10), authoring-NEG (1), release-NEG (1), a2ui-NEG (1), bare-framework (1), bare-verb (1)."
120
+ }
121
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "name": "adia-ui-kit teach-routing behavioral corpus",
4
+ "version": "1.0.0",
5
+ "purpose": "Behavioral eval for the §Teach decision tree mechanization. Each case names a knowledge-payload + the expected branch (A–G) the script should classify it into. Per REFACTOR-SPEC P4.",
6
+ "scoring_notes": "Scored by `scripts/teach-route.mjs --eval=...`. Pass = branch matches expected_branch. Confidence (high/medium/low) is reported but doesn't affect pass/fail — track confidence trends across releases to spot vocabulary drift.",
7
+ "license": "internal",
8
+
9
+ "minimums_per_spec": {
10
+ "trigger_cases_per_branch": 1,
11
+ "total_cases": 7,
12
+ "branches_covered": "A-G all 7"
13
+ },
14
+
15
+ "cases": [
16
+ {
17
+ "id": "branch-A-01",
18
+ "payload": "new slot on calendar-picker-ui for trailing actions",
19
+ "expected_branch": "A",
20
+ "expected_landing_pattern": "packages/web-components/components/calendar-picker/",
21
+ "rationale": "Per-component slot addition — substrate yaml."
22
+ },
23
+ {
24
+ "id": "branch-A-02",
25
+ "payload": "add a new a2ui.rule to the table-toolbar-ui yaml clarifying when [sticky] is allowed",
26
+ "expected_branch": "A",
27
+ "expected_landing_pattern": "packages/web-components/components/table-toolbar/",
28
+ "rationale": "a2ui.rule = per-component contract; lives in yaml SoT."
29
+ },
30
+
31
+ {
32
+ "id": "branch-B-01",
33
+ "payload": "add a recipe showing how to compose an editor-shell inside admin-page-body for the nested-shell case",
34
+ "expected_branch": "B",
35
+ "expected_landing_pattern": "references/patterns-shells.md",
36
+ "rationale": "Cross-component composition recipe with shell focus — patterns-shells."
37
+ },
38
+ {
39
+ "id": "branch-B-02",
40
+ "payload": "recipe for wiring a chart-ui with optimistic-update controllers and signal subscriptions",
41
+ "expected_branch": "B",
42
+ "expected_landing_pattern": "references/patterns-",
43
+ "rationale": "Cross-component recipe — could land in patterns-data or patterns-wiring depending on gravity."
44
+ },
45
+
46
+ {
47
+ "id": "branch-C-01",
48
+ "payload": "end-to-end auth flow with sign-in, OTP verification, forgot-password reset, and the registration wizard",
49
+ "expected_branch": "C",
50
+ "expected_landing_pattern": "references/flows-auth.md",
51
+ "rationale": "Multi-page user journey covering auth — flows-auth."
52
+ },
53
+
54
+ {
55
+ "id": "branch-D-01",
56
+ "payload": "we need a new reasoning methodology: before any composition, decompose the user intent into named decisions with required signals (the DecisionModel posture from REFACTOR-SPEC P5)",
57
+ "expected_branch": "D",
58
+ "expected_landing_pattern": "SKILL.md inline",
59
+ "rationale": "Methodology / posture shift that shapes every other section — SKILL.md inline."
60
+ },
61
+
62
+ {
63
+ "id": "branch-E-01",
64
+ "payload": "new audit script that detects orphan components in agent output (DecisionModel trace audit per REFACTOR-SPEC P5(b))",
65
+ "expected_branch": "E",
66
+ "expected_landing_pattern": "scripts/",
67
+ "rationale": "Tooling addition — runnable script — scripts/."
68
+ },
69
+
70
+ {
71
+ "id": "branch-F-01",
72
+ "payload": "FB-42 resolved upstream; the skill used to say <admin-statusbar> defaults to slot=footer, but that was wrong. Update the skill's misdiagnosis taxonomy in CorrectionLoop.",
73
+ "expected_branch": "F",
74
+ "expected_landing_pattern": "§CorrectionLoop",
75
+ "rationale": "Feedback resolution — correction belongs in §CorrectionLoop."
76
+ },
77
+
78
+ {
79
+ "id": "branch-G-01",
80
+ "payload": "lesson learned from the v0.6.33 release cycle — the icon-loader race condition that caused FB-53 was a one-off that's already fixed upstream. Archive the post-mortem.",
81
+ "expected_branch": "G",
82
+ "expected_landing_pattern": "docs/journal/",
83
+ "rationale": "Arc story / historical context — journal entry, not skill."
84
+ }
85
+ ],
86
+
87
+ "evaluator_notes": {
88
+ "current_state": "Corpus has 9 cases across all 7 branches (A: 2 cases, B: 2 cases, C/D/E/F/G: 1 case each). Pass-rate target: 100% on the bundled corpus (the script must classify its own canonical examples correctly).",
89
+ "promotion_criteria": "Add 2-3 cases per quarterly senior-skill checkpoint as new payload shapes are observed. Aim for ≥3 cases per branch by v3.2.0 (per AGENTS.md BORIS §B3 cadence).",
90
+ "review_cadence": "When teach-route.mjs misroutes in real-world use, add the failing payload to the corpus as a new case with the correct expected_branch. The corpus grows in lockstep with the script's vocabulary."
91
+ }
92
+ }
@@ -0,0 +1,245 @@
1
+ ---
2
+ name: capabilities
3
+ load-when: When choosing a mode / capability: full 14-item menu + per-mode triage table + 'pick your entry point' rows. Load if the seed's 4-item summary doesn't cover the user's intent.
4
+ load-size-tokens: ~3,700
5
+ required-for:
6
+ - mode picking
7
+ - first-task discovery
8
+ ---
9
+
10
+ # What this skill can do (capability surface)
11
+
12
+ **LLM directive — on-load presentation contract.** When the user invokes
13
+ this skill with no concrete request — e.g. `use adia-ui-kit`, `load
14
+ adia-ui-kit`, `what can you do with AdiaUI?`, "the skill is loaded, now
15
+ what?" — your on-load summary must follow **this exact shape**:
16
+
17
+ 1. One short greeting line acknowledging the skill is active and its
18
+ version (e.g. `✅ AdiaUI Kit skill v2.8.0 active. Here's the full
19
+ capability surface:`).
20
+ 2. A **numbered list (1., 2., 3., …)** with one item per category below.
21
+ 3. Each item formatted as two lines:
22
+ - **Line 1 (headline):** `<N>. <emoji> <Title>` — short, scannable.
23
+ - **Line 2 (summary):** one short sentence in plain English describing
24
+ what the user gets, **plus** the `→ §Section` pointer at the end.
25
+ 4. Do **not** dump the inline detail strings ("npm install …", attribute
26
+ names, decorator syntax) into the on-load summary. Those belong in the
27
+ section bodies. The on-load summary is a menu, not a manual.
28
+ 5. **Enumerate every category — do not collapse, drop, or merge.**
29
+ Install (📦) and Harness (🧬) are the most-missed; surface them as
30
+ their own numbered items, never folded into a generic "Setup" line.
31
+ Consultant posture (🩺, item 13) is the most-missed for brownfield
32
+ sessions — when the user lands in an existing repo without naming a
33
+ concrete request, item 13 is often the right entry point.
34
+ 6. **Render the "Pick your entry point" triage table** (verbatim from
35
+ below — copy the markdown table; do NOT paraphrase) immediately after
36
+ the 13-item menu, under the heading `### Where are you starting from?`.
37
+ The menu tells the user *what the skill offers*; the triage table
38
+ tells them *which item maps to their situation*. Both are required.
39
+ 7. End with one short prompt question (e.g. `Which would you like to
40
+ start with — pick a number 1-13, or describe your situation?`) —
41
+ never start composing markup before the user picks.
42
+
43
+ The skill operates across the full project lifecycle, from `npm create
44
+ vite@latest` through shipping a generative-UI surface. **Render the
45
+ capability menu from the headlines + summaries below — not the detail
46
+ fields.**
47
+
48
+ ### Capability menu (the on-load source-of-truth)
49
+
50
+ 1. 📦 **Install `@adia-ai` packages**
51
+ - **Summary:** The cold-start path — install the npm packages, wire
52
+ `main.js` with CSS + barrel + icon loader, and verify with
53
+ `scripts/check-adia-versions.py` that the 9-package lockstep is
54
+ aligned + installed ≥ latest published. **End state: a working
55
+ `<button-ui>` or `<card-ui>` rendering in the browser.** No
56
+ generative harness required at this stage — that's a separate
57
+ opt-in (item 4) for apps that render LLM-generated UI at runtime.
58
+ **If the project has no `AGENTS.md` / `CLAUDE.md` at the root,
59
+ scaffold them from `assets/templates/` so future agent sessions
60
+ auto-load with the right skill pointer.** → §Setup + §VersionCheck
61
+ - *Detail (for the body, not the on-load menu):* `npm install
62
+ @adia-ai/web-components @adia-ai/web-modules @phosphor-icons/core`,
63
+ wire CSS + barrel import + `installIconLoadersForRegistered`,
64
+ minimal Vite config, TypeScript types, per-component imports for
65
+ tree-shaking, conflict-safe `defineIfFree` registration.
66
+ **Verify** with `scripts/check-adia-versions.py` — reports
67
+ installed / declared / latest side-by-side and exits non-zero on
68
+ lockstep break, stale install, or undeclared user-facing package.
69
+ **Bootstrap** `AGENTS.md` + `CLAUDE.md` (1-line pointer) from
70
+ `assets/templates/` if absent — see §Setup Step 8. **`<canvas-ui>` /
71
+ `<a2ui-root>` / `registerResolver` are NOT part of basic install** —
72
+ they belong to the generative harness (item 4), which the vast
73
+ majority of product UIs (dashboards, forms, data tables, auth
74
+ flows) do not need.
75
+
76
+ 2. 🖼️ **Wire AdiaUI into an existing framework app**
77
+ - **Summary:** Drop AdiaUI into SPA, Next.js, Nuxt, SvelteKit, or
78
+ Astro with framework-correct imports and property binding.
79
+ → §Rendering Model
80
+ - *Detail:* `'use client'` boundaries, hydration guards, React
81
+ `useEffect`+`ref`, Vue `:value`, Svelte `bind:value`, SSR-safe
82
+ barrel placement.
83
+
84
+ 3. 🤖 **Install + use the AdiaUI MCP server**
85
+ - **Summary:** Drive AdiaUI from your agent IDE (Claude Desktop /
86
+ Claude Code / Cursor / Windsurf) via the `adiaui-mcp` server.
87
+ → §MCP
88
+ - *Detail:* one-time host registration, provider keys, native tools
89
+ `generate_ui` / `list_patterns` / `refine_ui` / `server_status`,
90
+ dual stdio (sampling) + HTTP transports.
91
+
92
+ 4. 🧬 **Choose a generative-UI rendering mode**
93
+ - **Summary:** Once the harness is mounted (item 1), decide *when*
94
+ generation happens — at build time (static HTML), at runtime from
95
+ a `doc=` array (no server), or live via SSE/MCP streaming. → §Harness
96
+ - *Detail:* Mode A (author-time → static HTML committed to repo),
97
+ Mode B (runtime `doc=` rendering, no server), Mode C (SSE/MCP
98
+ streaming), `canvas.process()` / `canvas.processAll()` /
99
+ `canvas.reset()` API, when each mode is the right fit.
100
+
101
+ 5. 🚚 **Migrate from `@agent-ui-kit` or an older `@adia-ai` version**
102
+ - **Summary:** Bring an inherited or pre-existing codebase forward —
103
+ namespace rename (`@agent-ui-kit/*` → `@adia-ai/*`), tag renames,
104
+ attribute changes, token renames, retired legacy shell shapes,
105
+ and every version-cut breaking change up to `^0.6.0`. → §Migration
106
+ (defers to `docs/MIGRATION GUIDE.md` + the `adia-ui-migration` skill
107
+ for the mechanical sweep)
108
+ - *Detail:* Predecessor namespace `@agent-ui-kit/web-components` →
109
+ `@adia-ai/*` 9-package monorepo; base class `AgentElement`/`AdiaElement`
110
+ → `UIElement`; design tokens `--agent-*` → `--a-*`; `<stat-ui>` →
111
+ `<stat>` filename; `<link-ui>` token rename `--link-color-*` →
112
+ `--link-fg-*`; legacy shell authoring shapes RETIRED in `0.4.0`
113
+ (ADR-0024) — use the bespoke `<admin-shell>` / `<chat-shell>` /
114
+ `<editor-shell>` vocabulary. Mechanical sweeps via the dedicated
115
+ `adia-ui-migration` skill — call it explicitly for codebase-wide
116
+ search-and-replace + verification gate.
117
+
118
+ 6. 🏗️ **Build screens and flows (phase-gated)**
119
+ - **Summary:** Compose a new surface via §0 plan → §1 catalog → §2
120
+ markup → §3 validation. Never skip §0. → §0 Reasoning Gate
121
+ - *Detail:* GenUI Plan + confirmation wait, yaml/a2ui.json lookup,
122
+ HTML + A2UI JSON composition, 5-gate validation checklist.
123
+
124
+ 7. 🔌 **Wire state and data**
125
+ - **Summary:** Add reactivity, domain state, and live endpoints
126
+ without script blocks of `fetch()`. → §State
127
+ - *Detail:* signals (local), `BaseController` (domain state with
128
+ optimistic + undo/redo), `data-stream-*` bindings (REST/SSE),
129
+ form submission patterns.
130
+
131
+ 8. 🎨 **Theme and brand**
132
+ - **Summary:** Apply named themes, toggle light/dark, or override
133
+ brand colors via tokens. → §Theme
134
+ - *Detail:* `toggle-scheme`, density modes, custom theme registration,
135
+ zero-specificity token overrides.
136
+
137
+ 9. 🧩 **Apply real-world patterns**
138
+ - **Summary:** Reach for proven assemblies — admin shell, tables,
139
+ dashboards, charts, drawers, error pages, agent surfaces.
140
+ → §Patterns
141
+ - *Detail:* admin/editor/nested/simple shells, command palette,
142
+ `table-ui` + `table-toolbar-ui` pairing, KPI grids, all 18 chart
143
+ types, heatmaps, destructive confirms, 404/500, chat streaming +
144
+ reasoning panels.
145
+
146
+ 10. 📋 **Copy-paste end-to-end flows**
147
+ - **Summary:** Full recipes for the common surfaces — auth, wizard,
148
+ onboarding, settings, marketing, kanban. → §Flows
149
+ - *Detail:* sign-in / OTP / forgot-password, registration wizard,
150
+ persona picker, settings page, marketing hero, kanban board, user
151
+ profile card.
152
+
153
+ 11. 📚 **Discover documentation**
154
+ - **Summary:** Look up components, tokens, guides, and live demos
155
+ without inventing URLs. → §Docs
156
+ - *Detail:* URL manifest for `ui-kit.exe.xyz/site/...`, in-package
157
+ files (`<name>.yaml` / `.a2ui.json` / `.d.ts` / `.test.js` /
158
+ `.examples.md` v0.6.7+), numbered guides in `docs/guides/`,
159
+ specs in `docs/specs/`, documentation triage table.
160
+
161
+ 12. 📝 **Author session logs + defensible upstream tickets**
162
+ - **Summary:** Capture provenance and file upstream FEEDBACK
163
+ maintainers can act on. Agents draft to
164
+ `.agents/team/tickets/drafts/` on a rolling basis; humans finalize
165
+ to `outbox/`; responses land in `inbox/`. The 4-stage pipeline is
166
+ gated by `ticket-tool.py` (11 finalize gates).
167
+ → §FeedbackDiscipline + §Team Tickets + §AutoCapture + §TicketTooling
168
+ - *Detail:* `generate ui-kit log` → `.adia-ui-kit/session-log.md`;
169
+ `ticket-tool.py new feedback <recipient> --slug <s>` scaffolds a
170
+ draft from the 5-block template (Executive summary + cost table +
171
+ per-finding What/Root/Repro/Request/Why + verified exclusions +
172
+ pre-finalize checklist); `ticket-tool.py finalize NN` runs 11 gates
173
+ and promotes drafts/ → outbox/; `retract` / `set-status` /
174
+ `register-response` / `registry-rebuild` handle lifecycle.
175
+ Discipline vendored from color-app's battle-tested
176
+ `.agents/team/skills/feedback-authoring.md` (60+ shipped tickets).
177
+
178
+ 13. 🩺 **Diagnose an inherited / unknown AdiaUI repo (Consultant posture)**
179
+ - **Summary:** Land in a brownfield repo you don't know, walk a
180
+ 9-step inventory + 3-class gap-detection, and produce a Repo
181
+ Health Report scoring overall posture across primitive usage,
182
+ composition shape, token coverage, version coherence, and
183
+ consumer-side hygiene. Use **before** filing tickets, proposing
184
+ migrations, or authoring new surfaces — the report tells you
185
+ what's already there and where the actual gaps are.
186
+ → §Recon + §GapDetection + §DiagnosticOutput
187
+ - *Detail:* 9-step recon (sitemap / package.json / @adia-ai version
188
+ coherence / shell-tier inventory / token usage / primitive census
189
+ / unused-import scan / a11y signals / build state); 3 gap classes
190
+ (substrate-misuse, version-drift, missing-discipline); diagnostic
191
+ template (executive summary + per-gap What/Evidence/Layer/Fix +
192
+ posture assessment). Archive each report alongside the consuming
193
+ repo's other diagnostics (e.g. a `diagnostic-reports/` folder),
194
+ named `YYYY-MM-DD-<repo>-health-report.md`.
195
+ Pair with §CorrectionLoop when a specific bug is reported (the
196
+ report tells you the landscape; the correction loop tells you how
197
+ to reason about a specific defect).
198
+
199
+ 14. 📚 **Teach the skill new knowledge (Teach posture)**
200
+ - **Summary:** Land new knowledge (a new primitive, a new pattern,
201
+ a resolved FEEDBACK ticket, a methodology shift) into the right
202
+ target without bloating the skill or drifting from yaml SoT. The
203
+ Teach protocol's decision tree routes each input to its correct
204
+ home — yaml SoT (per-component facts), a patterns reference
205
+ (cross-component recipes), a flows reference (end-to-end
206
+ journeys), inline SKILL.md (methodology / posture), tooling
207
+ cross-link, FEEDBACK correction, or **NO landing in the skill**
208
+ (arc stories belong in the journal, not here). Triggers: "make
209
+ sure adia-ui-kit knows about X", "train the skill on Y", "absorb
210
+ this lesson into adia-ui-kit", "the skill should be aware of Z".
211
+ → §Teach (→ `references/teach-protocol.md` for the full procedure)
212
+ - *Detail:* 5-step landing procedure (audit before patching →
213
+ author the patch → wire the activation surface → version +
214
+ CHANGELOG → verify with `audit:skill-hygiene`). Seven worked
215
+ examples covering every decision-tree branch including the
216
+ negative case ("arc stories go in journal, not skill"). Seven
217
+ anti-patterns observed during this skill's own evolution
218
+ (append-only, yaml SoT duplication, orphan triggers, capability
219
+ menu lies, MINOR + PATCH bundling, hygiene-debt deferral,
220
+ one-way thinking). Use when another agent in the codebase hands
221
+ you new content to integrate; **don't use** when authoring fresh
222
+ from scratch (that's §Mission Author posture) or fixing a wrong
223
+ claim (§CorrectionLoop).
224
+
225
+ **Pick your entry point** by where the project is today:
226
+
227
+ | Project state | Start at |
228
+ | ---------------------------------------------------------- | ------------------ |
229
+ | **Inherited / unknown repo — diagnose first** | **§Recon + §GapDetection + §DiagnosticOutput** |
230
+ | Empty / fresh `npm create vite@latest` | §Setup + §Harness |
231
+ | Existing SPA / Next / Nuxt / SvelteKit / Astro | §Rendering Model |
232
+ | Existing AdiaUI app, want runtime/generative UI | §Harness |
233
+ | Existing app on `@agent-ui-kit` or older `@adia-ai` version | §Migration |
234
+ | Want to drive AdiaUI from an agent (Claude/Cursor/Windsurf)| §MCP |
235
+ | **Teaching the skill new knowledge — \"make adia-ui-kit aware of X\"** | **§Teach** |
236
+ | Existing AdiaUI app, building a new feature | §0 Reasoning Gate |
237
+ | Need to recreate a known surface (admin / chat / form) | §Flows or §Patterns |
238
+ | Found a bug or want to file feedback | §Tickets |
239
+ | Wrong output reported — diagnose before fixing | §CorrectionLoop |
240
+
241
+ If the user request is ambiguous about which entry point applies, **ask
242
+ one clarifying question** (e.g. "is this a new project or an existing
243
+ app?") before recommending steps. Don't assume cold-start.
244
+
245
+ ---
@@ -0,0 +1,186 @@
1
+ ---
2
+ name: catalog-lookup
3
+ load-when: Before composing — when matching user intent to specific AdiaUI primitives. Covers the ladder (intent to component category to specific tag), llms.txt usage, examples.html lookup, and the canonical-tag search procedure
4
+ load-size-tokens: ~2,500
5
+ required-for:
6
+ - composition modes 1-4
7
+ - pre-author bundle gate
8
+ ---
9
+
10
+ # §1 — Catalog Lookup (before composing)
11
+
12
+ Before writing any markup, look up what exists. Using attributes that
13
+ don't exist or invoking unregistered tags is the second most common
14
+ failure after premature rendering.
15
+
16
+ > ⚠️ **Prior-art-first rule (NON-NEGOTIABLE).** Before authoring a
17
+ > novel solution for ANY UI problem, you must FIRST exhaust the
18
+ > existing catalog. Concretely:
19
+ >
20
+ > 1. **`packages/web-components/components/`** (122 primitives). Scan
21
+ > by category and by keyword. Every primitive ships a `<name>.yaml`
22
+ > with `description`, `props`, `slots`, `events`, `composes`,
23
+ > `keywords`, `synonyms`, and `anti_patterns` fields specifically so
24
+ > you can find it by intent, not just by tag name. If your problem
25
+ > is "show a loading state for a KPI card", `stat-ui[loading]` +
26
+ > `skeleton-ui` already solve it (v0.6.18). If your problem is
27
+ > "imperative toast", `feed-ui` + the `CustomEvent('feed')` bus
28
+ > already solve it. Do not invent `<my-loading-card>` or a
29
+ > re-implementation of a toast queue.
30
+ > 2. **`packages/web-modules/`** (composite shells + canvas + a2ui-runtime).
31
+ > Scan the four shell clusters (`shell/`, `chat/`, `editor/`,
32
+ > `simple/`) and the `generative/` cluster. If your problem is
33
+ > "split-pane sidebar + topbar + content scroll region", `admin-shell`
34
+ > has already solved it; do not hand-roll a flex layout. If your
35
+ > problem is "compose web-components from JSON", `a2ui-root` /
36
+ > `registerResolver` already solve it.
37
+ > 3. **Token system** (`packages/web-components/styles/tokens.css` +
38
+ > `typography.css` + `prose.css`). Before introducing a new CSS
39
+ > variable, check the existing ladder. `--a-canvas-{0..4}`,
40
+ > `--a-body-{sm,md,lg}`, `--a-weight-{regular,medium,semibold,bold}`,
41
+ > `--a-fg{,-muted,-strong}` etc. cover almost every typography +
42
+ > surface need.
43
+ > 4. **Traits** (`packages/web-components/traits/`, 56 traits in 9
44
+ > categories). Cross-cutting behaviors (`dismissible`, `selectable`,
45
+ > `resizable`, `keyboard-nav`, etc.) are encoded as traits with their
46
+ > own examples + tests. If your problem maps to a trait, USE the
47
+ > trait — don't re-implement the behavior inline.
48
+ >
49
+ > **Searching is mandatory; not finding is rare.** When the v0.6.18 cut
50
+ > shipped `text-ui` size/color/weight/text-align overlays (FB-10), the
51
+ > skill had been documenting those props as if they existed for two
52
+ > previous versions — because consumers naturally reached for them and
53
+ > the existing variant-only API was missing the obvious overlay layer.
54
+ > The substrate caught up to the doc, not the other way around. That
55
+ > only works if you check the doc + the substrate side-by-side. If
56
+ > what you need ISN'T in the catalog, the right move is **file a
57
+ > FEEDBACK ticket** (see §Team Tickets) — not invent a one-off.
58
+ >
59
+ > **How to search efficiently:**
60
+ > - `npx adia-ui-doc <name>` — fast yaml summary for a tag you suspect exists
61
+ > - `npx adia-ui-doc` (no arg) — list all 96 components
62
+ > - `grep -rE "keywords:|synonyms:|description:" packages/web-components/components/*/­*.yaml | grep -i "<your intent>"`
63
+ > — semantic search across the catalog
64
+ > - Live site: `https://ui-kit.exe.xyz/site/components/` (browse) or
65
+ > `/site/components/<name>` (deep dive)
66
+ > - For modules: `ls packages/web-modules/*/`
67
+
68
+ > **Where:** authoritative API in `<name>.yaml` (ships in npm). Visual
69
+ > reference at `https://ui-kit.exe.xyz/site/components/<name>`. Full
70
+ > URL manifest in §Docs below. If you're unsure what tools you have to
71
+ > fetch a URL, prefer the local `.yaml` — it's always available.
72
+
73
+ ### Where to look
74
+
75
+ **External consumer (installed via npm):**
76
+
77
+ ```
78
+ node_modules/@adia-ai/web-components/components/<name>/
79
+ <name>.yaml ← canonical API spec (props, slots, events, anti-patterns) ✓ ships
80
+ <name>.a2ui.json ← A2UI JSON spec (generated) ✓ ships
81
+ <name>.d.ts ← TypeScript declarations ✓ ships
82
+ <name>.examples.md ← canonical usage fragments (1-3 per component) ✓ ships (v0.6.7+)
83
+ <name>.test.js ← behavioral contract (read for "why does X work this way") ✓ ships
84
+ <name>.examples.html ← authoring demo with full page chrome — NOT in npm
85
+ → in-repo only; external consumers use .examples.md
86
+
87
+ node_modules/@adia-ai/web-components/
88
+ custom-elements.json ← W3C Custom Elements Manifest v2.1.0 (110 modules) ✓ ships (v0.6.7+)
89
+ bin/doc.mjs ← CLI: npx adia-ai-doc <name> ✓ ships (v0.6.7+)
90
+ USAGE.md ← deep usage patterns (incl. data-stream-* §6) ✓ ships
91
+
92
+ node_modules/@adia-ai/web-modules/<cluster>/<name>/
93
+ Clusters: shell | chat | editor | simple | runtime | theme | generative
94
+ ↑ NEW v0.6.7: `generative` subpath bundles canvas-ui + a2ui-root + registerResolver
95
+ ```
96
+
97
+ > **Examples ship as Markdown** (v0.6.7+). Each component has a `.examples.md`
98
+ > with 1-3 canonical fragments — the authoring `.examples.html` files are
99
+ > still in-repo only (they have full demo-page chrome too heavy to ship).
100
+ > For richer visual reference, browse `https://ui-kit.exe.xyz/site/components/<name>`.
101
+
102
+ Live component docs: `https://ui-kit.exe.xyz/site/components/<name>`
103
+ (e.g. `https://ui-kit.exe.xyz/site/components/button`)
104
+
105
+ **Component stability — `status` badge** (since v0.6.32+):
106
+
107
+ When browsing `/site/components/<name>`, a colored `<tag-ui>` badge
108
+ next to the component name indicates its stability:
109
+
110
+ | Badge | Variant | Meaning |
111
+ |-------|---------|---------|
112
+ | (no badge) | — | `status: stable` — public API; safe to use |
113
+ | `beta` | `warning` | Functional, but API may still change in MINOR releases |
114
+ | `experimental` | `ghost` | Early prototype; expect breaking changes |
115
+ | `deprecated` | `danger` | Replacement exists — check the page's `Related` section |
116
+ | `early-access` | `info` | Customer-preview tier; consult release notes before relying on it |
117
+
118
+ The status is set in `<name>.yaml` (`status: <value>`) and propagated
119
+ automatically through the sidecar to the docs site. All current
120
+ components ship `status: stable` (the vast majority show no badge).
121
+ Authoring guidance for new components: see `adia-ui-authoring` skill
122
+ yaml contract.
123
+
124
+ **In the AdiaUI monorepo** (`/Users/kimba/Projects/adia/gen-ui-kit`):
125
+
126
+ ```
127
+ packages/web-components/components/<name>/
128
+ packages/web-modules/<cluster>/<name>/
129
+ docs/specs/component-token-contract.md
130
+ docs/specs/component-implementation-patterns.md
131
+ ```
132
+
133
+ ### Lookup procedure
134
+
135
+ **Fastest path (v0.6.7+): use the bundled CLI.**
136
+
137
+ ```bash
138
+ npx adia-ui-doc <name> # yaml summary + live URL + first example
139
+ npx adia-ui-doc # list all 96 components
140
+ ```
141
+
142
+ The CLI reads from the installed package, so it always reflects the
143
+ version you're actually running.
144
+
145
+ **For full detail, read the artifacts directly:**
146
+
147
+ 1. **List the catalog** (external): `ls node_modules/@adia-ai/web-components/components/ | sort`
148
+ Or in-repo: `ls packages/web-components/components/ | sort`
149
+ 2. **Read the yaml** for any component you plan to use:
150
+ ```
151
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.yaml
152
+ ```
153
+ Key sections: `props:`, `slots:`, `events:`, `tokens:`, `anti_patterns:`
154
+ 3. **Check a2ui.json** for enum values and prop types:
155
+ ```
156
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.a2ui.json
157
+ ```
158
+ 4. **For TypeScript users:** `<name>.d.ts` has the typed prop surface:
159
+ ```
160
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.d.ts
161
+ ```
162
+ 5. **For canonical markup examples** (v0.6.7+, ships in npm):
163
+ ```
164
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.examples.md
165
+ ```
166
+ 1-3 fragments per component. For richer visual reference, browse
167
+ `https://ui-kit.exe.xyz/site/components/<name>`.
168
+ 6. **For behavioral edge cases:** `<name>.test.js` is the authoritative
169
+ spec — vitest tests document expected behavior including focus management,
170
+ keyboard nav, ARIA assertions.
171
+ 7. **For IDE / tool integration** (v0.6.7+): the package ships
172
+ `custom-elements.json` (W3C manifest v2.1.0). VS Code LSP extensions
173
+ pick this up automatically for autocomplete and type-safety.
174
+
175
+ ### Co-located registrations
176
+
177
+ Some elements register inside their parent `.js` (not a separate
178
+ directory): `list-item-ui`, `stepper-item-ui`, `avatar-group-ui`.
179
+ If a directory doesn't exist, grep `customElements.define` in the
180
+ parent before assuming the element is missing.
181
+
182
+ ### CSS-only components
183
+
184
+ `header/`, `footer/`, `section/` ship yaml + a2ui.json only — no `.js`.
185
+ They are styled by parent slot rules. Do not try to register them.
186
+ ---
@@ -0,0 +1,8 @@
1
+ # adia-ui-kit Changelog — v1.x archive
2
+
3
+ > Historical entries rolled out of the live [`CHANGELOG.md`](../../CHANGELOG.md), which keeps only the most recent 3. Newest-first.
4
+
5
+ ## 1.0.0 (2026-04-16)
6
+
7
+ - Initial version
8
+ - Migrated from skills/ to .claude/skills/ format