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

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 (95) hide show
  1. package/.claude-plugin/plugin.json +12 -3
  2. package/.mcp.json +1 -1
  3. package/CHANGELOG.md +12 -0
  4. package/README.md +24 -1
  5. package/bin/adia-scaffold +93 -13
  6. package/package.json +1 -1
  7. package/references/shell-embed.md +10 -0
  8. package/references/spa-architecture.md +7 -0
  9. package/skills/adia-ui-kit/CHANGELOG.md +41 -0
  10. package/skills/adia-ui-kit/SKILL.md +442 -0
  11. package/skills/adia-ui-kit/assets/figma-make/guidelines/Guidelines.md +87 -0
  12. package/skills/adia-ui-kit/assets/figma-make/guidelines/components.md +142 -0
  13. package/skills/adia-ui-kit/assets/figma-make/guidelines/styles.md +118 -0
  14. package/skills/adia-ui-kit/assets/figma-make/guidelines/tokens.md +120 -0
  15. package/skills/adia-ui-kit/assets/team-scaffold/archive-README.md +30 -0
  16. package/skills/adia-ui-kit/assets/team-scaffold/drafts-README.md +57 -0
  17. package/skills/adia-ui-kit/assets/team-scaffold/inbox-README.md +76 -0
  18. package/skills/adia-ui-kit/assets/team-scaffold/outbox-README.md +46 -0
  19. package/skills/adia-ui-kit/assets/team-scaffold/team-root.README.md +51 -0
  20. package/skills/adia-ui-kit/assets/team-scaffold/tickets-README.md +208 -0
  21. package/skills/adia-ui-kit/assets/team-scaffold/tickets-REGISTRY.md +81 -0
  22. package/skills/adia-ui-kit/assets/templates/AGENTS.template.md +128 -0
  23. package/skills/adia-ui-kit/assets/templates/CLAUDE.template.md +1 -0
  24. package/skills/adia-ui-kit/assets/templates/FEEDBACK-OMISSIONS-DEFENSE.template.md +150 -0
  25. package/skills/adia-ui-kit/assets/templates/FEEDBACK.template.md +213 -0
  26. package/skills/adia-ui-kit/assets/templates/RESPONSE.template.md +114 -0
  27. package/skills/adia-ui-kit/assets/templates/figma-make-guidelines.md +90 -0
  28. package/skills/adia-ui-kit/evals/adversarial-content-trust.json +83 -0
  29. package/skills/adia-ui-kit/evals/evals.json +55 -0
  30. package/skills/adia-ui-kit/evals/routing-corpus.json +121 -0
  31. package/skills/adia-ui-kit/evals/teach-routing-cases.json +92 -0
  32. package/skills/adia-ui-kit/references/capabilities.md +245 -0
  33. package/skills/adia-ui-kit/references/catalog-lookup.md +186 -0
  34. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v1.md +8 -0
  35. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v2.md +3585 -0
  36. package/skills/adia-ui-kit/references/changelog-archive/CHANGELOG-v3.md +1899 -0
  37. package/skills/adia-ui-kit/references/common-gotchas-consumer.md +522 -0
  38. package/skills/adia-ui-kit/references/component-literacy.md +291 -0
  39. package/skills/adia-ui-kit/references/composition.md +245 -0
  40. package/skills/adia-ui-kit/references/correction-loop.md +462 -0
  41. package/skills/adia-ui-kit/references/css-policy.md +343 -0
  42. package/skills/adia-ui-kit/references/decision-model.md +158 -0
  43. package/skills/adia-ui-kit/references/diagnostic-output.md +57 -0
  44. package/skills/adia-ui-kit/references/docs-catalog.md +239 -0
  45. package/skills/adia-ui-kit/references/exclusions.md +225 -0
  46. package/skills/adia-ui-kit/references/feedback-authoring.md +466 -0
  47. package/skills/adia-ui-kit/references/figma-make.md +244 -0
  48. package/skills/adia-ui-kit/references/flows-auth.md +307 -0
  49. package/skills/adia-ui-kit/references/flows-content.md +206 -0
  50. package/skills/adia-ui-kit/references/flows-data.md +348 -0
  51. package/skills/adia-ui-kit/references/flows-interaction.md +181 -0
  52. package/skills/adia-ui-kit/references/flows-shells.md +336 -0
  53. package/skills/adia-ui-kit/references/gap-detection.md +266 -0
  54. package/skills/adia-ui-kit/references/harness.md +284 -0
  55. package/skills/adia-ui-kit/references/loading-protocol.md +406 -0
  56. package/skills/adia-ui-kit/references/local-link.md +198 -0
  57. package/skills/adia-ui-kit/references/mcp.md +401 -0
  58. package/skills/adia-ui-kit/references/migration.md +116 -0
  59. package/skills/adia-ui-kit/references/mission.md +194 -0
  60. package/skills/adia-ui-kit/references/mode-routing.md +298 -0
  61. package/skills/adia-ui-kit/references/patterns-agent.md +223 -0
  62. package/skills/adia-ui-kit/references/patterns-data.md +1065 -0
  63. package/skills/adia-ui-kit/references/patterns-forms.md +223 -0
  64. package/skills/adia-ui-kit/references/patterns-layout.md +326 -0
  65. package/skills/adia-ui-kit/references/patterns-recipes.md +1416 -0
  66. package/skills/adia-ui-kit/references/patterns-shells.md +1097 -0
  67. package/skills/adia-ui-kit/references/patterns-traits.md +259 -0
  68. package/skills/adia-ui-kit/references/patterns-wiring.md +339 -0
  69. package/skills/adia-ui-kit/references/pev-rationale.md +137 -0
  70. package/skills/adia-ui-kit/references/reasoning-gate.md +146 -0
  71. package/skills/adia-ui-kit/references/reasoning-methodologies.md +112 -0
  72. package/skills/adia-ui-kit/references/recon.md +192 -0
  73. package/skills/adia-ui-kit/references/rendering-model.md +431 -0
  74. package/skills/adia-ui-kit/references/response-authoring.md +398 -0
  75. package/skills/adia-ui-kit/references/session-log-schema.md +203 -0
  76. package/skills/adia-ui-kit/references/session-log-template.md +118 -0
  77. package/skills/adia-ui-kit/references/setup.md +652 -0
  78. package/skills/adia-ui-kit/references/skill-hygiene.md +135 -0
  79. package/skills/adia-ui-kit/references/spec-to-ui-reasoning.md +394 -0
  80. package/skills/adia-ui-kit/references/state.md +229 -0
  81. package/skills/adia-ui-kit/references/teach-protocol.md +421 -0
  82. package/skills/adia-ui-kit/references/theme.md +142 -0
  83. package/skills/adia-ui-kit/references/version-check.md +69 -0
  84. package/skills/adia-ui-kit/scripts/audit-decision-trace.mjs +198 -0
  85. package/skills/adia-ui-kit/scripts/audit-kit-roster.mjs +366 -0
  86. package/skills/adia-ui-kit/scripts/changelog-archive.mjs +126 -0
  87. package/skills/adia-ui-kit/scripts/check-adia-versions.py +404 -0
  88. package/skills/adia-ui-kit/scripts/run-skill-evals.mjs +358 -0
  89. package/skills/adia-ui-kit/scripts/validate-session-log.mjs +242 -0
  90. package/skills/adia-ui-kit/skill.json +102 -0
  91. package/skills/adia-ui-migration/CHANGELOG.md +47 -0
  92. package/skills/adia-ui-migration/SKILL.md +381 -0
  93. package/skills/adia-ui-migration/skill.json +29 -0
  94. package/skills/adia-ui-spa/SKILL.md +1 -1
  95. package/skills/adia-ui-verify/SKILL.md +2 -2
@@ -0,0 +1,239 @@
1
+ ---
2
+ name: docs-catalog
3
+ load-when: When you need the canonical docs URLs: ui-kit.exe.xyz catalog, llms.txt index, per-component examples.html, ADR pointers, MCP server install pages
4
+ load-size-tokens: ~3,300
5
+ required-for:
6
+ - answering "where are the docs"
7
+ - component reference lookup
8
+ - live demo handoff
9
+ ---
10
+
11
+ # §Docs — Where the documentation lives
12
+
13
+ AdiaUI documentation is distributed across the repo, the live site, and
14
+ the per-component source. **When sources disagree, follow this trust
15
+ order** (matches `.claude/docs/guides/INDEX.md`):
16
+
17
+ 1. **Component source** — `packages/web-components/components/<name>/`
18
+ 2. **Architecture spec** — `.claude/docs/specs/package-architecture.md`
19
+ 3. **Per-component demo pages** — `/site/pages/components/<name>.html`
20
+ 4. **Schema pages** — `.claude/docs/guides/30-79*.md` (hand-written; may lag)
21
+
22
+
23
+ ### URL manifest (machine-parseable)
24
+
25
+ Construct any AdiaUI documentation URL by substituting `<name>`. The LLM
26
+ should treat this as the canonical reference — **do not guess URLs**.
27
+
28
+ ```yaml
29
+ # Live site (ui-kit.exe.xyz) — current production deployment
30
+ live_site:
31
+ base: "https://ui-kit.exe.xyz"
32
+ routes:
33
+ component_demo: "/site/components/<name>" # e.g. /site/components/button
34
+ module_demo: "/site/modules/<name>" # e.g. /site/modules/admin-shell
35
+ guide: "/site/pages/guides/<slug>" # e.g. /site/pages/guides/10-tokens
36
+ pattern: "/site/pages/patterns/<slug>" # e.g. /site/pages/patterns/admin-dashboard
37
+ getting_started: "/site/pages/getting-started"
38
+ token_reference: "/site/pages/reference/tokens"
39
+ catalog_index: "/site/components"
40
+
41
+ # Repo paths (for local consumers + in-repo agents)
42
+ local:
43
+ component_yaml: "node_modules/@adia-ai/web-components/components/<name>/<name>.yaml"
44
+ component_a2ui: "node_modules/@adia-ai/web-components/components/<name>/<name>.a2ui.json"
45
+ component_types: "node_modules/@adia-ai/web-components/components/<name>/<name>.d.ts"
46
+ component_test: "node_modules/@adia-ai/web-components/components/<name>/<name>.test.js"
47
+ component_css: "node_modules/@adia-ai/web-components/components/<name>/<name>.css"
48
+ module_yaml: "node_modules/@adia-ai/web-modules/<cluster>/<name>/<name>.yaml"
49
+ package_readme: "node_modules/@adia-ai/<package>/README.md"
50
+ usage_doc: "node_modules/@adia-ai/web-components/USAGE.md"
51
+
52
+ # GitHub source (for in-repo and contributor agents)
53
+ github:
54
+ base: "https://github.com/adiahealth/gen-ui-kit"
55
+ routes:
56
+ component_dir: "/tree/main/packages/web-components/components/<name>"
57
+ component_examples: "/blob/main/packages/web-components/components/<name>/<name>.examples.html"
58
+ guide: "/blob/main/docs/guides/<file>"
59
+ spec: "/blob/main/docs/specs/<file>"
60
+ changelog: "/blob/main/packages/<package>/CHANGELOG.md"
61
+ issues: "/issues"
62
+ new_issue: "/issues/new"
63
+
64
+ # Cluster names (substitute for <cluster>)
65
+ clusters:
66
+ - shell # admin-shell + 10 admin-* children (sidebar, content, topbar, statusbar, scroll, page, page-header, page-body, command, entity-item)
67
+ - chat # chat-shell, chat-thread, chat-composer, chat-empty, chat-header, chat-sidebar, chat-status
68
+ - editor # editor-shell, editor-toolbar, editor-sidebar, editor-canvas, editor-canvas-empty, editor-canvas-toolbar, editor-statusbar
69
+ - simple # simple-shell, simple-hero, simple-content
70
+ - runtime # a2ui-root
71
+ - theme # theme-panel
72
+ ```
73
+
74
+ **Validity check:** all routes above were audited 2026-05-19. If a URL
75
+ returns 404, the route may have moved — fall back to the GitHub source
76
+ or report it via `write ui-kit bug ticket`.
77
+
78
+
79
+ ### Documentation map
80
+
81
+ | Surface | Path | What's there | Authoritative for |
82
+ |---|---|---|---|
83
+ | **Per-component yaml** | `node_modules/@adia-ai/web-components/components/<name>/<name>.yaml` | Props, slots, events, tokens, anti-patterns | Props/slots/events — always |
84
+ | **Per-component a2ui.json** | `<name>.a2ui.json` (generated from yaml) | A2UI JSON schema for the component | A2UI message shape |
85
+ | **Per-component examples** | `<name>.examples.html` (in-repo only) | Canonical HTML usage fragments | Real-world markup patterns — **NOT in npm** |
86
+ | **Per-component test** | `<name>.test.js` (ships in npm) | Vitest spec | Behavioral contract |
87
+ | **Live demo pages** | `https://ui-kit.exe.xyz/site/components/<name>` | Interactive rendered demos | Visual behavior |
88
+ | **Web-modules yaml** | `packages/web-modules/<cluster>/<name>/<name>.yaml` | Shell + composite specs (30 files) | Module-tier components |
89
+ | **Guides** | `.claude/docs/guides/` (22 files, numbered) | Hand-written narrative docs | Concepts + recipes |
90
+ | **Specs** | `.claude/docs/specs/` (31 files) | Architecture + system specs | System architecture |
91
+ | **Package READMEs** | `packages/<name>/README.md` | Per-package entry-point | Package surface |
92
+ | **Migration guide** | `.claude/docs/MIGRATION GUIDE.md` | Version-by-version upgrade notes | Version migration |
93
+ | **Browser compat** | `.claude/docs/BROWSER-COMPAT.md` | Supported browsers, polyfill baselines | Browser support |
94
+ | **Live docs site** | `https://ui-kit.exe.xyz/` | Production-deployed full site | Public reference |
95
+
96
+ ### The numbered guides (`.claude/docs/guides/`)
97
+
98
+ The guides are organized by topic-prefix. Skim the INDEX first
99
+ (`.claude/docs/guides/INDEX.md`); then dive into specific files:
100
+
101
+ ```
102
+ 01-introduction.md Project overview
103
+ 02-quick-start.md External consumer cold-start (overlaps §Setup here)
104
+ 03-architecture.md Layer model, signals/template/element split
105
+
106
+ 10-tokens.md Parametric spacing, radius, shadows, sizing
107
+ 11-colors.md OKLCH parametric color system
108
+ 12-typography.md 13 type roles, productive/moderate/expressive modes
109
+ 13-fields.md Field tokens (shared height, radius, colors)
110
+ 14-accessibility.md Focus management, ARIA, keyboard nav
111
+
112
+ 20-adia-element.md UIElement base class — reactive properties + lifecycle
113
+ 21-adia-form-element.md UIFormElement — ElementInternals + form participation
114
+ 22-css-patterns.md @scope, :where(:scope) tokens, slot selectors
115
+ 23-authoring.md End-to-end guide to authoring a new component
116
+
117
+ 70-theming.md Theming contract (named theme / scheme / density)
118
+ 71-recipes.md Common composition recipes
119
+ 72-admin-layout.md Admin shell composition patterns
120
+
121
+ 80-llm-providers.md @adia-ai/llm package — providers + TypeScript
122
+ 81-proxy-server.md packages/llm/server.js — dev proxy + production
123
+ 82-vite-config.md Vite aliases, proxy, build config
124
+
125
+ 91-token-reference.md Complete --a-* token catalog
126
+ 92-naming.md Naming conventions
127
+ ```
128
+
129
+ ### The key specs (`.claude/docs/specs/`)
130
+
131
+ For deep architecture questions, the specs are the authoritative
132
+ documents. Most consumers don't need these — they're for component
133
+ authors and integrators.
134
+
135
+ ```
136
+ package-architecture.md Source of truth for monorepo layout
137
+ component-token-contract.md What --a-* tokens components may consume
138
+ component-implementation-patterns.md Patterns shared across components
139
+ component-yaml-contract.md The yaml schema each component must follow
140
+ traits.md The trait system (pressable, focusable, etc.)
141
+ typescript-first-substrate.md TS substrate spec (v0.6+ sealed)
142
+ semantic-validator.md A2UI semantic validation
143
+ genui-multiturn-architecture.md Multi-turn sessionId/state-cache model
144
+ theme-panel-module.md theme-panel composition + token swap
145
+ compose-constitution.md A2UI generation engine architecture
146
+ exe-dev-platform-reference.md Production deployment platform reference
147
+ ```
148
+
149
+ INDEX at `.claude/docs/specs/INDEX.md`.
150
+
151
+ ### Per-package READMEs
152
+
153
+ ```
154
+ packages/web-components/README.md Light-DOM components overview
155
+ packages/web-components/USAGE.md In-depth usage patterns + framework guide
156
+ packages/web-modules/README.md Composite shells + clusters
157
+ packages/llm/README.md @adia-ai/llm package
158
+ packages/a2ui/runtime/README.md A2UI renderer + registry
159
+ packages/a2ui/compose/README.md Generation engines (monolithic, zettel)
160
+ packages/a2ui/mcp/README.md MCP server install + transports
161
+ packages/a2ui/corpus/README.md Pre-authored chunk + composition corpus
162
+ packages/a2ui/retrieval/README.md Domain router + pattern search
163
+ packages/a2ui/validator/README.md A2UI JSON validator
164
+ ```
165
+
166
+ ### Pattern recipe library (`references/` in this skill)
167
+
168
+ The `.agents/skills/adia-ui-kit/references/` directory ships seven
169
+ substantive pattern recipe books, ~2,300 lines total, covering composition
170
+ patterns more deeply than §Patterns / §Flows in this file:
171
+
172
+ ```
173
+ references/patterns-agent.md Agent/chat surfaces (gen-ui-chat, gen-ui-thread, gen-ui-canvas, gen-ui-inspector, pipeline-status)
174
+ references/patterns-data.md Tables, dashboards, charts, data-stream wiring, KPI grids — 722 lines, deepest recipes
175
+ references/patterns-forms.md Field anatomy, form layouts, validation, multi-step wizards
176
+ references/patterns-layout.md Grid, stack, page primitives, density modes
177
+ references/patterns-shells.md App shell, admin shell, editor shell, section-nav, route slot
178
+ references/patterns-traits.md Trait wiring, attaching behaviors declaratively
179
+ references/patterns-wiring.md A2UI JSON wiring, data binding patterns, registerResolver flows
180
+ ```
181
+
182
+ Read these when §Flows / §Patterns in this file is too brief — they go
183
+ deeper on shell APIs, composition recipes, and edge cases.
184
+
185
+ ### Live site (`ui-kit.exe.xyz`)
186
+
187
+ The production deployment serves:
188
+
189
+ - **`/site/components/<name>`** — interactive demos with live rendering,
190
+ prop tables, accessibility notes, and source code
191
+ - **`/site/pages/getting-started/`** — onboarding flow
192
+ - **`/site/pages/guides/`** — rendered versions of `.claude/docs/guides/`
193
+ - **`/site/pages/patterns/`** — pattern gallery
194
+ - **`/site/pages/reference/`** — token + type reference
195
+
196
+ This is the most consumer-friendly entry point. Browse here first when
197
+ exploring; drop to source files for definitive answers.
198
+
199
+ ### Discovery commands
200
+
201
+ ```bash
202
+ # What components exist?
203
+ ls node_modules/@adia-ai/web-components/components/ | sort
204
+
205
+ # What does <name> accept?
206
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.yaml
207
+
208
+ # How is <name> used in real code?
209
+ cat node_modules/@adia-ai/web-components/components/<name>/<name>.examples.html
210
+
211
+ # Live demo (no install needed)
212
+ open https://ui-kit.exe.xyz/site/components/<name>
213
+
214
+ # Architecture deep-dive
215
+ cat node_modules/@adia-ai/web-components/USAGE.md | less
216
+
217
+ # Browse a topic
218
+ ls node_modules/@adia-ai/web-components/../../docs/guides/ | grep -i theme
219
+ ```
220
+
221
+ ### When to read each surface
222
+
223
+ | Question | Where to look first |
224
+ |---|---|
225
+ | "What props does X accept?" | `<name>.yaml` |
226
+ | "What does X look like?" | `ui-kit.exe.xyz/site/components/<name>` |
227
+ | "How do I use X in real markup?" | `<name>.examples.html` |
228
+ | "How do I compose X and Y?" | `.claude/docs/guides/71-recipes.md` or §Patterns/§Flows here |
229
+ | "How do I author a new component?" | `.claude/docs/guides/23-authoring.md` |
230
+ | "What's the token system?" | `.claude/docs/guides/10-tokens.md` + `91-token-reference.md` |
231
+ | "How do I theme?" | `.claude/docs/guides/70-theming.md` or §Theme here |
232
+ | "How does the generation engine work?" | `.claude/docs/specs/compose-constitution.md` |
233
+ | "Why does X behave this way?" | `<name>.test.js` (behavioral contract) |
234
+ | "What changed in v0.6?" | `.claude/docs/MIGRATION GUIDE.md` |
235
+ | "What browsers are supported?" | `.claude/docs/BROWSER-COMPAT.md` |
236
+ | "How do I deploy the MCP server?" | `packages/a2ui/mcp/README.md` |
237
+
238
+
239
+ ---
@@ -0,0 +1,225 @@
1
+ ---
2
+ name: exclusions
3
+ load-when: When defending why a feature ISN'T in the kit (or shouldn't be added). Documents the explicit exclusions + the rationale + when to escalate to substrate vs absorb into the kit
4
+ load-size-tokens: ~2,500
5
+ required-for:
6
+ - scope-creep defense
7
+ - absorption proposal triage
8
+ - Teach landing decisions
9
+ ---
10
+
11
+ # Items deliberately NOT included (defending the exclusions)
12
+
13
+ To avoid duplicate filings, the following were considered and
14
+ explicitly left out. Each was verified against the installed
15
+ @adia-ai/web-components@<version> source where applicable.
16
+
17
+ - **<Item>** — already shipped. Verified at
18
+ `node_modules/@adia-ai/web-components/components/<name>/<name>.yaml:<line>`.
19
+
20
+ - **<Item>** — already exists with the exact shape needed. NOT
21
+ feedback — this is a **consumer-side dogfooding miss** captured
22
+ separately in `.adia-ui-kit/notes/<date>-miss.md`.
23
+
24
+ - **<Item>** — third-party tool issue (Vite cache stale). Workaround
25
+ is `rm -rf node_modules/.vite`. Listed in related-observations for
26
+ documentation benefit but not a code ask on this recipient.
27
+
28
+ - **<Item>** — speculative; no concrete pain-point yet. Filing
29
+ without a use-case would be P3 noise.
30
+
31
+ If any of the above is wrong or stale relative to a newer release,
32
+ please flag in the response.
33
+ ```
34
+
35
+ Each exclusion must cite **either**:
36
+ - A specific file/line in the installed package that proves it's shipped, OR
37
+ - A CHANGELOG entry that resolved it, OR
38
+ - A `.adia-ui-kit/notes/` path where the issue is tracked elsewhere, OR
39
+ - An explicit statement that it's out of scope and why
40
+
41
+ **"Already shipped — trust me" is not acceptable. Cite or include.**
42
+
43
+ #### Step 6b — (Optional) Split exclusions into a companion file
44
+
45
+ If your exclusion list is **15+ items across 4+ rationale categories**,
46
+ or the ticket will face hostile leadership review, split the defense
47
+ block into a sibling file:
48
+
49
+ ```
50
+ .adia-ui-kit/tickets/
51
+ 2026-05-19-feedback-<topic>.md # the asks
52
+ 2026-05-19-feedback-<topic>-OMISSIONS.md # the exclusions, expanded
53
+ ```
54
+
55
+ Group omissions by **rationale category**, not by priority. Each
56
+ omission has:
57
+ - **Evidence tag** (uppercase: `VERIFIED IN SOURCE`, `RESOLVED IN v0.6.5`, `CONSUMER MISS`)
58
+ - **Defense paragraph** (1-3 sentences)
59
+ - **Confidence rating** (`High` / `Medium` / `Low`)
60
+
61
+ Cross-link the companion in the main ticket's front-matter:
62
+
63
+ ```yaml
64
+ references:
65
+ - "2026-05-19-feedback-<topic>-OMISSIONS"
66
+ ```
67
+
68
+ And in §6 of the main ticket, replace the bullet list with a one-line
69
+ pointer:
70
+
71
+ > Items considered and deliberately excluded are tracked in
72
+ > `2026-05-19-feedback-<topic>-OMISSIONS.md` — 15 omissions across 5
73
+ > rationale categories with verification anchor and confidence rating.
74
+
75
+ #### Step 7 — Cross-reference prior tickets
76
+
77
+ If this ticket relates to prior feedback you've filed, list them in
78
+ front-matter `references:` and call them out in the body:
79
+
80
+ - **Sibling tickets** — "Item §2 is related to ticket-XX `§N`"
81
+ - **Duplicates** — "Item §4 is the same ask as ticket-XX `§N`; can collapse"
82
+ - **Supersession** — "This obsoletes ticket-YY §M after the v0.6.5 fix"
83
+
84
+ #### Step 8 — Set front-matter correctly
85
+
86
+ ```yaml
87
+ ---
88
+ id: "<NN>" # serial per recipient
89
+ type: feedback # feedback | bug | request
90
+ recipient: adia-ui
91
+ date: "YYYY-MM-DD"
92
+ author: "<role> (<session-context>)" # don't claim a human author
93
+ project: "<your project name>"
94
+ status: draft # draft until submitted
95
+ references:
96
+ - "<prior-ticket-id>" # every prior touchpoint
97
+ version: "@adia-ai/web-components@<X.Y.Z>" # version verified against
98
+ priority: p0 # highest priority in the doc
99
+ ---
100
+ ```
101
+
102
+ `status: draft` is the starting point. Only the user (or an explicit
103
+ submit instruction) should bump to `submitted`.
104
+
105
+ ---
106
+
107
+ ### Sniff tests before sending
108
+
109
+ Walk each one before declaring the ticket ready:
110
+
111
+ 1. **Reproduction test:** Can a stranger paste your repro code into a
112
+ fresh project and see the symptom? If not, P0/P1 status is wrong.
113
+
114
+ 2. **Exclusion test:** Pick one item from "Items deliberately NOT
115
+ included." Can you defend it in 30 seconds with a file path?
116
+
117
+ 3. **Cost test:** Can the recipient roughly estimate their effort
118
+ from your cost block? "Medium — new component + tests + a2ui
119
+ example" is good. "Some work" is not.
120
+
121
+ 4. **Duplicate test:** Have you searched `.adia-ui-kit/tickets/` for
122
+ keywords overlapping your asks? If matches exist, cross-reference
123
+ or remove your duplicate.
124
+
125
+ 5. **Scope test:** Is any item really a third-party tool issue or a
126
+ consumer-side miss? If yes, move it out of the feedback ticket.
127
+
128
+ 6. **Pre-mortem test:** If your team lead asks "why did you ship this
129
+ and not item X?" — do you have an answer? If "I didn't think of X"
130
+ is the honest answer, X probably belongs in the doc.
131
+
132
+ ---
133
+
134
+ ### Pitfalls (verify before filing)
135
+
136
+ **Common AdiaUI false alarms** — verify these are real bugs before filing:
137
+
138
+ - **Binding contract** — `*-ui` form controls and template re-renders
139
+ share a contract that surfaces as ~4 symptoms but is ONE root cause:
140
+ 1. `.value=${() => x.value}` (getter function) silently fails on
141
+ `slider-ui` / `switch-ui`. Use `.value=${x.value}` (direct expression).
142
+ 2. `style="background:${v}"` renders literal `style="background:{{p:0}}"`.
143
+ Use `style="${precomputed}"` (whole-attribute) or `.style=${expr}`.
144
+ 3. Template doesn't re-render when a signal changes inside a nested
145
+ callback. Cause: the *template function itself* never read the signal.
146
+ Read every dependency at the top: `const _doc = doc.value; void _doc`.
147
+ 4. `OKLCHColor.h = NaN` → `#NaNNaNNaN` → `<input type="color">`
148
+ console-flood. Sanitize at the conversion boundary, not the binding.
149
+
150
+ Symptoms 1-3 are documented in USAGE.md `property-binding-patterns` section.
151
+ Symptom 4 is a consumer bug. **Run a Playwright probe before filing
152
+ any of these as a framework bug.**
153
+
154
+ - **Phosphor icon name verification is non-optional.** `<icon-ui name="X">`
155
+ warns at runtime if `X` doesn't exist. Common mistakes: `plus` (use
156
+ `plus-circle`), `arrows-counter-clockwise` (singular: `arrow-counter-clockwise`).
157
+ Verify with `ls node_modules/@phosphor-icons/core/assets/regular/ | grep <pattern>`
158
+ before claiming a registry gap.
159
+
160
+ - **Vite CSS cache is real and silent.** CSS edits not reaching the
161
+ browser? Symptom: file on disk differs from `curl http://localhost:5173/src/style.css`.
162
+ Fix: `rm -rf node_modules/.vite && pkill -f vite && npm run dev`.
163
+ NOT an AdiaUI bug.
164
+
165
+ - **Don't conflate "I didn't find it" with "it doesn't exist."**
166
+ Before claiming a feature is missing, grep the installed package source
167
+ AND the yaml, a2ui.json, USAGE.md. Use the §Docs URL manifest to find
168
+ documentation.
169
+
170
+ - **Don't file separate tickets for the same root cause.** Slider
171
+ getter-function, signal-binding stuckness, partial-attr interpolation
172
+ all stem from "template re-runs only on direct signal reads." File
173
+ ONE root-cause ticket with N symptoms.
174
+
175
+ - **Don't file workaround-as-bug if USAGE.md prescribes the workaround.**
176
+ USAGE.md `property-binding-patterns` section documents `.foo=${expr}` for
177
+ property binding; `foo="${expr}"` failing is documented behavior, not
178
+ a bug.
179
+
180
+ - **Lockstep PATCH releases are common.** AdiaUI ships PATCH bumps with
181
+ no source change (lockstep version cuts). Before claiming a fix
182
+ "should have shipped in vX," check `git log` between cuts. Don't file
183
+ a regression for an issue resolved in the prior MINOR.
184
+
185
+ ---
186
+
187
+ ### Final ticket location + delivery
188
+
189
+ **Output path:** `.adia-ui-kit/tickets/<YYYY-MM-DD>-<type>-<slug>.md`
190
+
191
+ Where `<type>` is one of `bug`, `feature`, `feedback`.
192
+
193
+ **Deliver via:**
194
+
195
+ 1. **GitHub issue:** paste contents to `https://github.com/adiahealth/gen-ui-kit/issues/new`
196
+ 2. **Team channel:** share the ticket file path with teammates
197
+ 3. **AdiaUI authors directly:** if you have a contact, share the file
198
+
199
+ The ticket file should be committed to your project repo so it's
200
+ preserved for future agents and team members. After upstream merge,
201
+ mark `status: closed` and link the merge commit.
202
+
203
+ ---
204
+
205
+ ### Verification before declaring the ticket done
206
+
207
+ - [ ] Working tree clean (`git status --short`)
208
+ - [ ] `.adia-ui-kit/tickets/README.md` registry has your new entry
209
+ - [ ] Every numbered section has at minimum "What happened" + "Request"
210
+ - [ ] "Items deliberately NOT included" cites a verification anchor for
211
+ every exclusion (file path, version reference, or `.adia-ui-kit/notes/` path)
212
+ - [ ] Every P0/P1 has a reproduction block or stack trace
213
+ - [ ] Front-matter `references:` lists every prior ticket touching the
214
+ same components
215
+
216
+ **The stranger test:** Can a stranger open your ticket cold and:
217
+
218
+ 1. Reproduce every P0/P1
219
+ 2. Understand why each exclusion was made
220
+ 3. Estimate the effort for each ask
221
+ 4. Find the relevant prior conversation
222
+
223
+ If yes — the ticket is defensible.
224
+
225
+ ---