@utopia-studio-design/design-system-cli 0.7.1 → 0.8.0

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 (247) hide show
  1. package/bin/utopia-ds-mcp.mjs +18 -5
  2. package/bin/utopia-ds.mjs +16 -3
  3. package/data/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  4. package/data/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  5. package/data/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  6. package/data/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  7. package/data/blocks/semantic-pattern-parts/PatternParts.tsx +7 -0
  8. package/data/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  9. package/data/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  10. package/data/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  11. package/data/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  12. package/data/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  13. package/data/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  14. package/data/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  15. package/data/blocks/semantic-pattern-parts/product-parts.css +25 -0
  16. package/data/blocks/semantic-pattern-parts/types.ts +3 -0
  17. package/data/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  18. package/data/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  19. package/data/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  20. package/data/blocks/ux-pattern-examples/OnboardingExample.tsx +15 -0
  21. package/data/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  22. package/data/blocks/ux-pattern-examples/ReviewExample.tsx +14 -0
  23. package/data/blocks/ux-pattern-examples/SignupExample.tsx +22 -0
  24. package/data/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  25. package/data/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  26. package/data/blocks/ux-pattern-examples/copy.ts +6 -0
  27. package/data/blocks/ux-pattern-examples/ux-examples.css +18 -0
  28. package/data/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  29. package/data/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  30. package/data/docs/ceramic-release-2026-09-06.md +2 -0
  31. package/data/docs/create-a-brandbook.md +79 -0
  32. package/data/docs/dextrum-document-family.md +47 -0
  33. package/data/docs/guide.md +2 -0
  34. package/data/docs/presentation-asset-repository.md +5 -0
  35. package/data/docs/ui-parts-qa.md +172 -0
  36. package/data/docs/ui-parts.md +105 -0
  37. package/data/docs/ux-pattern-adaptation-qa.md +38 -0
  38. package/data/docs/ux-pattern-adaptation.md +41 -0
  39. package/data/docs/ux-pattern-migration.md +111 -0
  40. package/data/docs/ux-pattern-release-2026-09-13.md +26 -0
  41. package/data/docs/ux-source-evidence/account-auth.json +41 -0
  42. package/data/docs/ux-source-evidence/account-forgot-password.json +36 -0
  43. package/data/docs/ux-source-evidence/account-invite.json +63 -0
  44. package/data/docs/ux-source-evidence/account-locked.json +63 -0
  45. package/data/docs/ux-source-evidence/account-login.json +28 -0
  46. package/data/docs/ux-source-evidence/account-mfa.json +62 -0
  47. package/data/docs/ux-source-evidence/account-onboarding-credentials.json +52 -0
  48. package/data/docs/ux-source-evidence/account-onboarding-legal.json +56 -0
  49. package/data/docs/ux-source-evidence/account-onboarding-orientation.json +66 -0
  50. package/data/docs/ux-source-evidence/account-onboarding-profile.json +50 -0
  51. package/data/docs/ux-source-evidence/account-onboarding.json +69 -0
  52. package/data/docs/ux-source-evidence/account-reset-password.json +27 -0
  53. package/data/docs/ux-source-evidence/account-session-expired.json +62 -0
  54. package/data/docs/ux-source-evidence/account-signup.json +33 -0
  55. package/data/docs/ux-source-evidence/account-verify-email.json +34 -0
  56. package/data/docs/ux-source-evidence/account-welcome.json +41 -0
  57. package/data/docs/ux-source-evidence/admin-analytics.json +54 -0
  58. package/data/docs/ux-source-evidence/admin-audit.json +31 -0
  59. package/data/docs/ux-source-evidence/admin-broadcasts-new.json +36 -0
  60. package/data/docs/ux-source-evidence/admin-broadcasts.json +41 -0
  61. package/data/docs/ux-source-evidence/admin-closures.json +52 -0
  62. package/data/docs/ux-source-evidence/admin-devices.json +51 -0
  63. package/data/docs/ux-source-evidence/admin-escalations.json +35 -0
  64. package/data/docs/ux-source-evidence/admin-incidents.json +54 -0
  65. package/data/docs/ux-source-evidence/admin-loading.json +17 -0
  66. package/data/docs/ux-source-evidence/admin-onboarding-detail.json +80 -0
  67. package/data/docs/ux-source-evidence/admin-onboarding.json +62 -0
  68. package/data/docs/ux-source-evidence/admin-payments.json +45 -0
  69. package/data/docs/ux-source-evidence/admin-providers.json +38 -0
  70. package/data/docs/ux-source-evidence/admin-settings.json +18 -0
  71. package/data/docs/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  72. package/data/docs/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  73. package/data/docs/ux-source-evidence/admin-subscriptions-new.json +43 -0
  74. package/data/docs/ux-source-evidence/admin-subscriptions.json +41 -0
  75. package/data/docs/ux-source-evidence/admin-transactions.json +41 -0
  76. package/data/docs/ux-source-evidence/error.json +30 -0
  77. package/data/docs/ux-source-evidence/loading.json +19 -0
  78. package/data/docs/ux-source-evidence/marketing-blog.json +48 -0
  79. package/data/docs/ux-source-evidence/marketing-contact.json +36 -0
  80. package/data/docs/ux-source-evidence/marketing.json +64 -0
  81. package/data/docs/ux-source-evidence/not-found.json +28 -0
  82. package/data/docs/ux-source-evidence/portal-loading.json +17 -0
  83. package/data/docs/ux-source-evidence/portal-mentor-messages.json +31 -0
  84. package/data/docs/ux-source-evidence/portal-mentor-profile.json +23 -0
  85. package/data/docs/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  86. package/data/docs/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  87. package/data/docs/ux-source-evidence/portal-mentor-settings.json +18 -0
  88. package/data/docs/ux-source-evidence/portal-mentor.json +38 -0
  89. package/data/docs/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  90. package/data/docs/ux-source-evidence/portal-sponsor-billing.json +28 -0
  91. package/data/docs/ux-source-evidence/portal-sponsor-profile.json +22 -0
  92. package/data/docs/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  93. package/data/docs/ux-source-evidence/portal-sponsor-settings.json +18 -0
  94. package/data/docs/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  95. package/data/docs/ux-source-evidence/portal-sponsor.json +52 -0
  96. package/data/docs/ux-source-evidence/portal-trainee-competency.json +42 -0
  97. package/data/docs/ux-source-evidence/portal-trainee-credits.json +40 -0
  98. package/data/docs/ux-source-evidence/portal-trainee-mentors.json +48 -0
  99. package/data/docs/ux-source-evidence/portal-trainee-messages.json +32 -0
  100. package/data/docs/ux-source-evidence/portal-trainee-notifications.json +35 -0
  101. package/data/docs/ux-source-evidence/portal-trainee-profile.json +26 -0
  102. package/data/docs/ux-source-evidence/portal-trainee-request.json +54 -0
  103. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  104. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  105. package/data/docs/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  106. package/data/docs/ux-source-evidence/portal-trainee-sessions.json +36 -0
  107. package/data/docs/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  108. package/data/docs/ux-source-evidence/portal-trainee-settings.json +18 -0
  109. package/data/docs/ux-source-evidence/portal-trainee.json +44 -0
  110. package/data/docs/ux-source-evidence/portal-tv-detail.json +39 -0
  111. package/data/docs/ux-source-evidence/portal-tv.json +44 -0
  112. package/data/docs/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  113. package/data/docs/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  114. package/data/docs/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  115. package/data/docs/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  116. package/data/docs/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  117. package/data/docs/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  118. package/data/docs/ux-source-evidence/shared-portal-empty-state.json +24 -0
  119. package/data/docs/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  120. package/data/docs/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  121. package/data/docs/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  122. package/data/docs/ux-source-evidence/shared-portal-profile-form.json +32 -0
  123. package/data/docs/ux-source-evidence/shared-portal-settings-view.json +81 -0
  124. package/data/docs/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  125. package/data/docs/ux-source-evidence/shared-portal-user-menu.json +34 -0
  126. package/data/manifests/blocks.json +230 -21
  127. package/data/manifests/brandbook-skill.json +33 -0
  128. package/data/manifests/catalog.json +1 -0
  129. package/data/manifests/patterns.json +358 -0
  130. package/data/manifests/theme-dextrum.json +132 -21
  131. package/data/manifests/themes.json +253 -39
  132. package/data/manifests/ui-patterns.json +1029 -0
  133. package/data/manifests/ux-examples.json +2177 -0
  134. package/data/manifests/ux-patterns.json +1135 -0
  135. package/data/manifests/ux-source-inventory.json +4669 -0
  136. package/data/ui-parts/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
  137. package/data/ui-parts/blocks/analytics-dashboard/analytics-dashboard.css +92 -0
  138. package/data/ui-parts/blocks/semantic-pattern-parts/AuthParts.tsx +48 -0
  139. package/data/ui-parts/blocks/semantic-pattern-parts/ChoiceCards.tsx +7 -0
  140. package/data/ui-parts/blocks/semantic-pattern-parts/ListFilters.tsx +9 -0
  141. package/data/ui-parts/blocks/semantic-pattern-parts/OutcomeNotice.tsx +7 -0
  142. package/data/ui-parts/blocks/semantic-pattern-parts/ProductParts.tsx +38 -0
  143. package/data/ui-parts/blocks/semantic-pattern-parts/ProgressSteps.tsx +6 -0
  144. package/data/ui-parts/blocks/semantic-pattern-parts/ReviewList.tsx +7 -0
  145. package/data/ui-parts/blocks/semantic-pattern-parts/ValidatedField.tsx +8 -0
  146. package/data/ui-parts/blocks/semantic-pattern-parts/WorkflowParts.tsx +339 -0
  147. package/data/ui-parts/blocks/semantic-pattern-parts/auth-parts.css +27 -0
  148. package/data/ui-parts/blocks/semantic-pattern-parts/pattern-parts.css +25 -0
  149. package/data/ui-parts/blocks/semantic-pattern-parts/product-parts.css +25 -0
  150. package/data/ui-parts/blocks/semantic-pattern-parts/types.ts +3 -0
  151. package/data/ui-parts/blocks/semantic-pattern-parts/workflow-parts.css +118 -0
  152. package/data/ui-parts/blocks/ux-pattern-examples/AccessExamples.tsx +46 -0
  153. package/data/ui-parts/blocks/ux-pattern-examples/AccountExamples.tsx +133 -0
  154. package/data/ui-parts/blocks/ux-pattern-examples/ProductExamples.tsx +79 -0
  155. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExample.tsx +1761 -0
  156. package/data/ui-parts/blocks/ux-pattern-examples/WorkflowExamples.tsx +190 -0
  157. package/data/ui-parts/blocks/ux-pattern-examples/copy.ts +6 -0
  158. package/data/ui-parts/blocks/ux-pattern-examples/ux-examples.css +18 -0
  159. package/data/ui-parts/blocks/ux-pattern-examples/workflow-copy.ts +76 -0
  160. package/data/ui-parts/blocks/ux-pattern-examples/workflow-definitions.ts +1291 -0
  161. package/data/ux-source-evidence/account-auth.json +41 -0
  162. package/data/ux-source-evidence/account-forgot-password.json +36 -0
  163. package/data/ux-source-evidence/account-invite.json +63 -0
  164. package/data/ux-source-evidence/account-locked.json +63 -0
  165. package/data/ux-source-evidence/account-login.json +28 -0
  166. package/data/ux-source-evidence/account-mfa.json +62 -0
  167. package/data/ux-source-evidence/account-onboarding-credentials.json +52 -0
  168. package/data/ux-source-evidence/account-onboarding-legal.json +56 -0
  169. package/data/ux-source-evidence/account-onboarding-orientation.json +66 -0
  170. package/data/ux-source-evidence/account-onboarding-profile.json +50 -0
  171. package/data/ux-source-evidence/account-onboarding.json +69 -0
  172. package/data/ux-source-evidence/account-reset-password.json +27 -0
  173. package/data/ux-source-evidence/account-session-expired.json +62 -0
  174. package/data/ux-source-evidence/account-signup.json +33 -0
  175. package/data/ux-source-evidence/account-verify-email.json +34 -0
  176. package/data/ux-source-evidence/account-welcome.json +41 -0
  177. package/data/ux-source-evidence/admin-analytics.json +54 -0
  178. package/data/ux-source-evidence/admin-audit.json +31 -0
  179. package/data/ux-source-evidence/admin-broadcasts-new.json +36 -0
  180. package/data/ux-source-evidence/admin-broadcasts.json +41 -0
  181. package/data/ux-source-evidence/admin-closures.json +52 -0
  182. package/data/ux-source-evidence/admin-devices.json +51 -0
  183. package/data/ux-source-evidence/admin-escalations.json +35 -0
  184. package/data/ux-source-evidence/admin-incidents.json +54 -0
  185. package/data/ux-source-evidence/admin-loading.json +17 -0
  186. package/data/ux-source-evidence/admin-onboarding-detail.json +80 -0
  187. package/data/ux-source-evidence/admin-onboarding.json +62 -0
  188. package/data/ux-source-evidence/admin-payments.json +45 -0
  189. package/data/ux-source-evidence/admin-providers.json +38 -0
  190. package/data/ux-source-evidence/admin-settings.json +18 -0
  191. package/data/ux-source-evidence/admin-subscriptions-detail-allocate.json +42 -0
  192. package/data/ux-source-evidence/admin-subscriptions-detail.json +48 -0
  193. package/data/ux-source-evidence/admin-subscriptions-new.json +43 -0
  194. package/data/ux-source-evidence/admin-subscriptions.json +41 -0
  195. package/data/ux-source-evidence/admin-transactions.json +41 -0
  196. package/data/ux-source-evidence/error.json +30 -0
  197. package/data/ux-source-evidence/loading.json +19 -0
  198. package/data/ux-source-evidence/marketing-blog.json +48 -0
  199. package/data/ux-source-evidence/marketing-contact.json +36 -0
  200. package/data/ux-source-evidence/marketing.json +64 -0
  201. package/data/ux-source-evidence/not-found.json +28 -0
  202. package/data/ux-source-evidence/portal-loading.json +17 -0
  203. package/data/ux-source-evidence/portal-mentor-messages.json +31 -0
  204. package/data/ux-source-evidence/portal-mentor-profile.json +23 -0
  205. package/data/ux-source-evidence/portal-mentor-requests-detail.json +54 -0
  206. package/data/ux-source-evidence/portal-mentor-sessions-detail-assess.json +42 -0
  207. package/data/ux-source-evidence/portal-mentor-settings.json +18 -0
  208. package/data/ux-source-evidence/portal-mentor.json +38 -0
  209. package/data/ux-source-evidence/portal-sessions-detail-live.json +48 -0
  210. package/data/ux-source-evidence/portal-sponsor-billing.json +28 -0
  211. package/data/ux-source-evidence/portal-sponsor-profile.json +22 -0
  212. package/data/ux-source-evidence/portal-sponsor-sessions.json +28 -0
  213. package/data/ux-source-evidence/portal-sponsor-settings.json +18 -0
  214. package/data/ux-source-evidence/portal-sponsor-trainees.json +36 -0
  215. package/data/ux-source-evidence/portal-sponsor.json +52 -0
  216. package/data/ux-source-evidence/portal-trainee-competency.json +42 -0
  217. package/data/ux-source-evidence/portal-trainee-credits.json +40 -0
  218. package/data/ux-source-evidence/portal-trainee-mentors.json +48 -0
  219. package/data/ux-source-evidence/portal-trainee-messages.json +32 -0
  220. package/data/ux-source-evidence/portal-trainee-notifications.json +35 -0
  221. package/data/ux-source-evidence/portal-trainee-profile.json +26 -0
  222. package/data/ux-source-evidence/portal-trainee-request.json +54 -0
  223. package/data/ux-source-evidence/portal-trainee-sessions-detail-feedback.json +36 -0
  224. package/data/ux-source-evidence/portal-trainee-sessions-detail-precheck.json +42 -0
  225. package/data/ux-source-evidence/portal-trainee-sessions-detail.json +55 -0
  226. package/data/ux-source-evidence/portal-trainee-sessions.json +36 -0
  227. package/data/ux-source-evidence/portal-trainee-settings-notifications.json +38 -0
  228. package/data/ux-source-evidence/portal-trainee-settings.json +18 -0
  229. package/data/ux-source-evidence/portal-trainee.json +44 -0
  230. package/data/ux-source-evidence/portal-tv-detail.json +39 -0
  231. package/data/ux-source-evidence/portal-tv.json +44 -0
  232. package/data/ux-source-evidence/shared-admin-admin-shell.json +35 -0
  233. package/data/ux-source-evidence/shared-auth-auth-primitives.json +105 -0
  234. package/data/ux-source-evidence/shared-auth-auth-shell.json +25 -0
  235. package/data/ux-source-evidence/shared-auth-onboarding-primitives.json +52 -0
  236. package/data/ux-source-evidence/shared-auth-onboarding-shell.json +28 -0
  237. package/data/ux-source-evidence/shared-auth-status-indicator.json +41 -0
  238. package/data/ux-source-evidence/shared-portal-empty-state.json +24 -0
  239. package/data/ux-source-evidence/shared-portal-loading-skeleton.json +27 -0
  240. package/data/ux-source-evidence/shared-portal-notifications-dropdown.json +39 -0
  241. package/data/ux-source-evidence/shared-portal-portal-shell.json +36 -0
  242. package/data/ux-source-evidence/shared-portal-profile-form.json +32 -0
  243. package/data/ux-source-evidence/shared-portal-settings-view.json +81 -0
  244. package/data/ux-source-evidence/shared-portal-usage-sparkline.json +18 -0
  245. package/data/ux-source-evidence/shared-portal-user-menu.json +34 -0
  246. package/lib/api.mjs +228 -4
  247. package/package.json +2 -2
@@ -9,3 +9,5 @@ Development validation: Vitest 13 files / 79 tests passed; CLI generation and MC
9
9
  Rams quick_review was attempted but the workspace review credits were exhausted. The pre-commit review_files attempt failed at the provider transport; no score was obtained.
10
10
 
11
11
  This release does not mark independent QA reports closed. Server Designer Agent activation remains disabled under the existing production configuration.
12
+
13
+ Published: `@utopia-studio-design/design-system@0.9.1` and `@utopia-studio-design/design-system-cli@0.7.1`. CLI 0.7.0 was superseded immediately after the public-tarball check detected an omitted standalone runtime. The 0.7.1 package bundles that runtime directly. All nine public template generation commands, route/page counts and documented tokens pass. The Chat Workspace consumer installs exclusively from npm and builds successfully. Merge integration auth/footer checks: 8 passed.
@@ -0,0 +1,79 @@
1
+ # Create a Brandbook
2
+
3
+ Create the brandbook before authoring a Ceramic theme. The brandbook turns a brief, optional logo, references, and existing imagery into one governed `BRAND.md`. That file becomes the input for semantic color, typography, imagery, motion, Marketing, and Solution decisions in the design system.
4
+
5
+ ## Connect the GitHub skill
6
+
7
+ Connect Ceramic MCP first. Then call `get_brandbook_skill`. The response identifies the canonical GitHub repository, approved branch, pinned revision, and `SKILL.md` path. Resolve that exact source before starting the workflow. Private repository access uses the active GitHub account; do not place access tokens in prompts or project files.
8
+
9
+ ```text
10
+ get_brandbook_skill {}
11
+ ```
12
+
13
+ ```bash
14
+ git clone --branch main https://github.com/The-Utopia-Studio/Ceramic-Brandbook.git
15
+ ```
16
+
17
+ The source of truth is `skills/ceramic-brandbook/SKILL.md` in that repository. The MCP response pins a reviewed commit so an agent does not silently use a different workflow.
18
+
19
+ ## Prepare the direction session
20
+
21
+ Call `prepare_brandbook_run` with a brand name and useful brief. A logo is optional. Include the audience, offer, character, constraints, existing assets, required locales, and intended Marketing or Solution uses when they are known.
22
+
23
+ ```json
24
+ {
25
+ "name": "prepare_brandbook_run",
26
+ "arguments": {
27
+ "brandName": "Your brand",
28
+ "brief": "Audience, offer, character, constraints, and desired outcome"
29
+ }
30
+ }
31
+ ```
32
+
33
+ This call prepares work; it does not generate, save, or publish a release.
34
+
35
+ ## Present A, B, and C
36
+
37
+ Before producing a final brandbook, present exactly three materially different directions labeled A, B, and C. Each direction must compare:
38
+
39
+ - positioning and verbal character;
40
+ - Latin and Arabic typography;
41
+ - semantic color architecture;
42
+ - photographic subject, light, composition, and treatment;
43
+ - Ceramic motion personality;
44
+ - Marketing expression and example assets;
45
+ - Solution or product expression and example applications;
46
+ - fit, risk, and tradeoff.
47
+
48
+ The user chooses one direction. Refine it with the user until its palette, type, imagery, motion, and application choices are clear. Do not build or save the final brandbook before this refinement is complete.
49
+
50
+ ## Produce one `BRAND.md`
51
+
52
+ The approved brandbook has one editorial source:
53
+
54
+ ```text
55
+ BRAND.md
56
+ assets/manifest.json
57
+ assets/generated/
58
+ validation.json
59
+ ```
60
+
61
+ `BRAND.md` must define strategy, voice, logo rules, semantic color roles, Latin and Arabic type, layout, photography, motion, Marketing, Solution, accessibility, and implementation guidance. English and Arabic must have equal content coverage, visual hierarchy, and usable LTR/RTL behavior unless the user explicitly changes the locale scope.
62
+
63
+ Use the active chat's native image generator by default. Record the provider, prompt or operation, source assets, and generated output in the asset manifest. Provider choice stays outside the brand contract so the same workflow can run in ChatGPT, another capable client, or a named external provider.
64
+
65
+ For Solution, choose one to three applications from phone, desktop, and environment according to the brand and available assets. Generate a dedicated scene for every photographic desktop or environment mockup. Place the resulting mockups directly on the semantic brand canvas without generic backing panels, white or translucent plates, or explanatory text over the image.
66
+
67
+ ## Validate and hand off
68
+
69
+ Validate the source and built release, then save the versioned bundle in the brand's Brand Room. The approved `BRAND.md` becomes the only brandbook input to **Create a Theme**. The theme maps its decisions to Ceramic semantic roles; it does not reinterpret the chosen direction.
70
+
71
+ Release checks:
72
+
73
+ - GitHub repository, branch, revision, and skill path are recorded.
74
+ - The selected A/B/C direction and refinement decision are recorded.
75
+ - English and Arabic content and visuals have parity.
76
+ - Image provenance and rights metadata are present.
77
+ - Marketing and Solution applications reflect the selected direction.
78
+ - Brandbook validation passes before theme authoring begins.
79
+
@@ -0,0 +1,47 @@
1
+ # Dextrum: v2 product theme and 07 Sep document ruling
2
+
3
+ ## Ownership and precedence
4
+
5
+ Product surfaces use Ceramic's Dextrum v2 two-mode contract: neutral charcoal Dark (default) and cool-neutral Light. Documents, decks and one-pagers follow the frozen 07 Sep 2026 document rulings until superseded. HTML is a delivery format; an HTML presentation retains the document ruling and its animation/accessibility requirements. Animated HTML remains the default output. PPTX/PDF require an explicit request.
6
+
7
+ The owner-supplied exemplar is `2026-09-07_dextrum_onepager-totalenergies-tier1-v1_1.pptx`. Its slide XML confirms light blue `#C9E0F5` strips and steel-blue `#5B87AD` bands. Client-specific text and logos in that file are not reusable brand-kit content. The file is not redistributed with the package.
8
+
9
+ ## Shared document-family contract
10
+
11
+ Core registers `venture-document` and these opt-in composition slots. Every venture may map the same semantic roles through its theme, without adopting Dextrum colors.
12
+
13
+ | Slot | Dextrum document treatment |
14
+ | --- | --- |
15
+ | `.uds-document-strip` | Light blue `#C9E0F5`, ink `#192B39` text |
16
+ | `.uds-document-eyebrow` | Ocean Blue `#3E8ECC` accent |
17
+ | `.uds-document-chip` | White background, ink text |
18
+ | `.uds-document-band` | Steel blue `#5B87AD`, white text |
19
+ | `.uds-document-logo-container` | Separate white rounded container; existing surface radius and spacing tokens |
20
+
21
+ Use `--document-*` roles registered in `theme-dextrum.json` and mapped in `dextrum.css`. These roles are independent of product light/dark mode. The rounded geometry uses the existing surface contract; no exact numeric corner radius was specified in the owner's ruling.
22
+
23
+ `logo-on-band` is approved for both identity marks on document bands. Keep each transparent logo unchanged inside its separate white rounded container. Do not recolor, distort or bake a background into an SVG. Generic no-backing guidance continues to reject unregistered treatments on product surfaces; it must not reject this explicitly approved document treatment.
24
+
25
+ ## Identity custody
26
+
27
+ Canonical source: owner-supplied `dextrum-jamal-brand-kit.zip`, not a recreated repository mark. BLUE v2, TEAL BLUE, GREY and BLUE v2 with tagline are mirrored byte for byte:
28
+
29
+ - Web: `public/brand/dextrum/{blue-v2,teal,grey,tagline-blue-v2}.svg`
30
+ - npm: `src/themes/assets/dextrum/` in the design-system package
31
+ - `public/brand/dextrum-logo.svg` mirrors BLUE v2 exactly.
32
+ - `ceramic.assets.json` beside the variants records source filenames and SHA-256 hashes.
33
+
34
+ The original asset repository remains available for photography. Its identity guidance cannot override these owner-supplied canonical SVGs.
35
+
36
+ ## Retired v1 data
37
+
38
+ The kit's 01 Sep `dextrum-design-language.md` uses historical `#192B39`/`#2F3F4C` structural surfaces. It is not the v2 product-token authority. `theme-dextrum.json` and `dextrum.css` already contained two modes; the stale `themes.json` summary still exposed v1 values. The summary now derives its default values from the v2 dark mapping, while the docs expose both modes and the document roles. `#192B39` remains legitimate brand ink in light mode and documents; it is not the product's dark canvas.
39
+
40
+ ## Validation (09 Sep 2026)
41
+
42
+ - 28 targeted tests passed: v2 registry parity, docs token discovery, canonical SVG hashes, and localized presentation boundaries.
43
+ - Design-system and app builds passed; semantic page ownership audit passed.
44
+ - Chromium computed styles confirmed product backgrounds switch between `#F7F7F5` and `#0E1215` while document strips remain `#C9E0F5`, bands `#5B87AD`, and logo containers white.
45
+ - npm pack dry-run includes all four canonical SVGs; CLI data regenerated from source.
46
+ - Rams quick_review was requested but unavailable because the workspace's 30 review credits were exhausted.
47
+ - This source update has not yet been published to npm or deployed to the production site.
@@ -6,6 +6,8 @@ Guide pages are the operating layer of Ceramic. They define how humans and AI ag
6
6
 
7
7
  - `Getting Started`: installation, theme CSS, first component, examples, CLI discovery, Arabic-friendly entrypoint.
8
8
  - `What's New`: release notes for package, manifest, theme, and docs changes.
9
+ - `Connect MCP`: connect a supported agent to Ceramic's machine-readable contracts.
10
+ - `Create a Brandbook`: resolve the reviewed GitHub skill, compare A/B/C directions, refine one with the user, and produce the single `BRAND.md` input for theme authoring.
9
11
  - `Create a Theme`: scaffold a theme, define brand primitives, map Ceramic semantic roles, document visual policy, and verify compatibility.
10
12
  - `Use Templates`: discover a reviewed starter, inspect its contract, copy it with a theme, connect product-owned data, and validate the standalone result.
11
13
  - `Arabic Friendly`: RTL-first layout, Arabic typography, mixed-script resilience, localization readiness, and icon/motion mirroring.
@@ -51,3 +51,8 @@ assets when relevant. It does not force imagery into data or evidence slides,
51
51
  repeat one image as decoration, or mix an asset into a theme that is not listed.
52
52
  The final handoff records the repository path, commit SHA, crop or
53
53
  transformation, credit, license, and slide numbers for every used asset.
54
+
55
+
56
+ ## Venture document rulings
57
+
58
+ Product surfaces remain Ceramic-owned. Documents, decks and one-pagers follow their venture’s approved document ruling; an HTML delivery format does not erase that boundary. Dextrum uses the [07 Sep document family](dextrum-document-family.md), including registered white rounded logo-on-band containers. Canonical transparent SVG variants are mirrored in `public/brand/dextrum/` and the design-system package. Preserve the requested output format.
@@ -0,0 +1,172 @@
1
+ # Optional semantic UI parts — QA
2
+
3
+ ## Workflow expansion — 2026-09-13
4
+
5
+ **PASS WITH RISKS for representative local coverage; full source migration remains IN PROGRESS.**
6
+
7
+ - 59 dedicated examples, 188 selectable states, 20 independent parts. 65 product source pages have representative mappings; `/auth` is the reference index replaced by the catalogue. No complete upstream portal shell is copied.
8
+ - 38 desktop/mobile Chromium checks passed: catalogue/navigation/reload, every route at 1440/959/390px without the application sidebar, all states across 8 themes at 959px, Arabic mobile, original account interactions, new form validation, file format rejection, conditional matching, localized plan values, allocation limits, prerequisites and assessment submission gates, record lifecycle/CSV, session tabs, separate file/chat state, local conversation/media behavior and code-file selection.
9
+ - TypeScript, `audit:semantic-pages`, and `test:cli` passed. CLI verifies theme resolution, standalone code dependencies, candidate discovery/composition, MCP protocol, source hashes and bounded fragment retrieval. Source coverage assertions do not assert interaction parity.
10
+ - Visually inspected Korean credit allocation in the real application (1440×1000) and Arabic profile setup fixture (390×900). No horizontal spill or docs sidebar in these views. Native file chooser text follows browser locale, not app locale.
11
+ - Fixed missing standalone dependency references, accessible select/feedback names, status-tab mapping, and an attachment filename leaking into the chat draft. Shared workflow semantics own all added presentation; pages do not import CSS.
12
+ - `design-system-ux-qa` guided the rendered-consumer checks and separation of tested coverage from source parity. Rams quick_review was attempted again after final UI fixes but the workspace has exhausted its 30-credit allowance; no Rams score/review was obtained.
13
+ - Not verified: WebKit/Firefox, real signed-in account-specific chrome, full source visual/interaction parity, real upload/storage/auth/provider/media/payment services. Original detailed credential matrices, per-item verification, plan comparisons, some record/dashboard-specific actions, profile defaults and public content sections remain reduced examples. See `ux-pattern-migration.md`.
14
+ - Nothing was committed, published, pushed or deployed. Generated CLI data was synchronized locally.
15
+
16
+ The sections below retain earlier checkpoints, not the current example counts.
17
+
18
+ ## Sidebar regression remediation — 2026-09-13
19
+
20
+ PASS WITH RISKS. The previous fixture-heavy coverage missed a P2 application
21
+ shell regression: `/templates/patterns/:id` rendered TemplatesPage but
22
+ getActiveAreaId returned a nested string, so getSidebarArea fell back to docs.
23
+ The real-app area assertion failed before the fix. Detail routes now resolve
24
+ the templates area and template pages do not mount app-sidebar at any width.
25
+ No CSS override or unrelated page changes were needed.
26
+
27
+ 22 Chromium checks passed after the fix, including all 12 real-app detail routes
28
+ at 1440/959/390px, catalogue, reload, Arabic detail, equal shell/main widths and
29
+ retained documentation navigation. TypeScript and semantic page ownership passed.
30
+ Rams review was attempted but quota-blocked. Authenticated session-specific
31
+ chrome and WebKit/Firefox were not exercised; route classification is independent
32
+ of auth. This narrow fix does not alter the incomplete source migration scope.
33
+
34
+ ## Current evidence — individual pages, 2026-09-13
35
+
36
+ **PASS WITH RISKS for this local change.** Catalogue → one dedicated pattern
37
+ page replaces the stacked one-pager, following the latest user clarification.
38
+ There are now 12 source-backed examples, 41 selectable states and 13 independent
39
+ parts. The full source migration is still incomplete.
40
+
41
+ - Observed: real app catalogue, search, dedicated route, reload and back/forward;
42
+ no simultaneous full-page previews. Legacy example-query links show one example.
43
+ - Added invitation acceptance/code/expiry, session recovery, people directory,
44
+ conversation list, notification inbox and delivery preferences. Source portal
45
+ shells are not copied. ActivityList, DirectoryCards and ChannelPreferences are
46
+ independently available to MCP composition discovery.
47
+ - 20 Chromium desktop/mobile tests passed. Behavioral checks cover invitation
48
+ validation/accept/decline, session reauth/cancel, directory filter/sort/detail,
49
+ read status, archive empty state and channel restrictions/save/reset, alongside
50
+ existing account interactions. All 41 selectable states render in 8 themes at
51
+ 959px. New pages also render at Arabic/RTL 360px; full-width preview at 1440px.
52
+ - Fixed native directory select accessible names after a failing interaction
53
+ test. Removed a generic search keyword that incorrectly selected people cards
54
+ for unrelated dashboard searches. Retained visible focus on interactive links;
55
+ route-focused headings do not draw a full-width control outline.
56
+ - TypeScript, semantic page ownership, CLI contracts, source hash coverage and
57
+ standalone MCP bundles passed. Earlier brandbooks type errors did not recur;
58
+ no edits were made to that service in this change.
59
+ - Browser artifacts: `pattern-catalogue-ko.png`, `people-page-ko.png`,
60
+ `preferences-ar.png` in the corresponding `test-results/ui-pattern-library-*`
61
+ directories. Korean catalogue/detail and Arabic preferences were inspected.
62
+ - Rams quick_review was attempted; quota exhausted, no external review score.
63
+ - Deliberate boundaries: session recovery is inline, not the source fixed modal;
64
+ no countdown navigation. Invitation strength uses sample host rules. Directory
65
+ and message destinations are local handoff previews, not a full booking/chat
66
+ backend. No actual mail, auth, preferences or membership mutations occur.
67
+ - Untested: WebKit/Firefox, screen-reader application testing, real service
68
+ callbacks, custom unregistered themes and source-only pages. These examples
69
+ are not a claim of complete branch-for-branch upstream parity or npm release.
70
+
71
+ ## Historical first account batch — superseded
72
+
73
+ **PASS WITH RISKS for the first account port batch. Full requested migration is
74
+ INCOMPLETE.** The older two-example report below is historical, not current scope.
75
+
76
+ - Imported the complete pinned source inventory: 66 page definitions, 85 entries
77
+ including shared/system helpers, 104 indexed states and 218 exact function
78
+ fragments. Source hash checks and remote HEAD match the pinned revision.
79
+ - Fixed static-route precedence and indexed settings pages absent from screenshots.
80
+ - Local MCP supports full source discovery and bounded fragment reads, with
81
+ user/room theme then Cloudblur, source-only status, required semantic adaptation
82
+ and no automatic whole-portal import. Composition discovery includes source
83
+ candidates without asking the user to choose patterns.
84
+ - Removed invented review/workspace examples from public/MCP discovery. Gallery
85
+ now contains six source-backed account examples with 22 selectable states.
86
+ - Source differences are deliberate: no original branding, sample medical
87
+ identities, compliance/trial promises, mock navigation/localStorage auth or
88
+ automatic account side effects. No QR placeholder is presented as a real key.
89
+ - Added password visibility/rules, code entry and provider selection as independent
90
+ registered parts. Code cells and feedback surfaces have bounded semantic radii.
91
+ - 12 Chromium desktop/mobile tests passed: roles, opt-in separation, form
92
+ validation, password visibility, link-login, resend cooldown, email edit, code
93
+ paste/arrows/recovery, independent gallery state/code/viewport/copy, all 22
94
+ exposed states × 8 themes at 959px, full-width 1440px and Arabic at 360px.
95
+ - CLI contracts, standalone MCP bundles and semantic-page ownership passed.
96
+ TypeScript passed during the first batch check, but the final whole-workspace
97
+ rerun is blocked by TS7022/TS7006 in `src/services/brandbooks.ts:29-30`, outside
98
+ this change. That file was not edited here. Source tests validate every function
99
+ fragment and Korean intent discovery.
100
+ - Rams quick_review was attempted but blocked by review quota; no score exists.
101
+ - Untested: Safari/Firefox, actual auth/provider/email backends, custom unregistered
102
+ themes, all source-only page interactions as rendered Ceramic ports. State
103
+ renderability is not full behavioral equivalence to every source branch.
104
+ - No deployment, npm publication, commit or production mutation occurred.
105
+
106
+ Remaining work is tracked per source page in `ux-pattern-migration.md`.
107
+
108
+ ## Historical gallery-only review — superseded
109
+
110
+ Verdict: PASS WITH RISKS (local implementation, not a release)
111
+
112
+ ## Scope
113
+
114
+ Single-example regression repaired: both registered examples render together,
115
+ with independent per-article controls. Navigation does not unmount other
116
+ examples; search alone filters. The gallery count reflects two implemented
117
+ examples, NOT completion of the original source-pattern migration. Desktop and
118
+ mobile regression includes simultaneous rendering, vertical order, input state
119
+ retention across navigation, and independent Code/Preview/viewport controls.
120
+
121
+ Presentation follows the user's block-gallery screenshot: horizontal navigation,
122
+ compact Preview/Code and viewport/reset/install/AI toolbar above a full-width
123
+ example. No documentation sidebar or oversized hero. Usage guidance is collapsed
124
+ by default. Tests assert full preview width, absence of the old sidebar/install
125
+ section, tablet sizing, copy fallback and mobile containment. Rams quick review
126
+ was attempted again; credits remain exhausted.
127
+
128
+ The human-facing library now lists UX patterns with two contextual page
129
+ examples: signup and request review. The unrequested workspace-creation example
130
+ was withdrawn from the UI and MCP registry. Preview/code, actual
131
+ dependency files, base npm installation and optional AI handoff replace the
132
+ previous seven isolated cards. Seven independent parts remain the AI building
133
+ blocks: choices, validated input, filters, review list, existing KPIGrid,
134
+ progress steps and outcome notice. No required customer assembly flow,
135
+ source branding, source screenshots or role-specific portal categories appear
136
+ in the library. The former screen-copy approach is retired; 101 original source
137
+ screens remain internal references, not claimed migrations.
138
+
139
+ The agent optionally discovers parts from the product goal, checks fit and
140
+ retrieves actual exports/dependencies through MCP. No user selection is required.
141
+ No match produces `no-pattern-needed`. User/room theme takes precedence; absence
142
+ falls back to Cloudblur. Unknown explicit themes fail instead of rebranding.
143
+
144
+ ## Evidence
145
+
146
+ - `tests/e2e/ui-pattern-library.spec.ts`: desktop and mobile Chromium, Korean/
147
+ English/Arabic, list/search, no source branding, local signup validation and
148
+ completion, shared filters/review rows, empty results, non-authorizing review
149
+ feedback, retired-link fallback in Arabic, code inspection, clipboard-denied
150
+ fallback, optional AI prompt with exact example/theme, no document overflow.
151
+ Isolated real-consumer fixture exercises all eight themes at the 959px
152
+ breakpoint and captures a clean 1440px page preview.
153
+ - `scripts/test-ui-parts.mjs`: seven exports across every registered theme,
154
+ real source files and component/motion contracts, negative inputs, optional
155
+ intent discovery, filter/list/metric bindings, account-theme precedence,
156
+ MCP schemas/calls and standalone package with no workspace source. Two UX
157
+ examples resolve full source/dependencies under all themes; unknown example
158
+ IDs and themes are rejected.
159
+ - Semantic page ownership, TypeScript and existing CLI/recipe regression tests.
160
+
161
+ ## Risks and untested cells
162
+
163
+ - Rams review attempted but blocked by exhausted workspace credits. No Rams score.
164
+ - Safari/Firefox and live signed-in custom-brand UI were not exercised. Theme
165
+ fallback was browser-tested; room/explicit theme precedence is API-tested.
166
+ - Candidate retrieval is keyword-based. The coding agent must interpret the
167
+ user's intent, negation and context before using a candidate; this is not a
168
+ mandate to add every matching part.
169
+ - Fixtures do not validate production permissions, pagination, notifications or
170
+ persistence. Those remain explicit consumer bindings.
171
+ - No npm package or production deployment was published. Existing installed MCP
172
+ processes need updated local code and a restart to expose the new tools.
@@ -0,0 +1,105 @@
1
+ # UX examples and optional parts for Ceramic agents
2
+
3
+ The user describes an outcome, not a pattern selection. The coding agent decides
4
+ whether a pattern is useful while building with Ceramic. Do not ask the user to
5
+ pick parts, visit the pattern library, copy a prompt or approve a layout recipe.
6
+ The library is optional documentation, not onboarding or a required workflow.
7
+
8
+ ## Human-facing UX pattern library
9
+
10
+ `#/templates?view=patterns` is a searchable catalogue of 59 source-backed examples.
11
+ Every entry opens its own `#/templates/patterns/:id` page; only that example is
12
+ mounted. Back/forward, refresh, and old `?view=patterns&example=:id` links work.
13
+ This supersedes the earlier vertically stacked gallery. The original 12 account,
14
+ directory and messaging examples now have 47 additional examples covering setup,
15
+ profiles/settings, scheduling, verification/operations, subscriptions/credits,
16
+ assessment, media and public content. There are 188 selectable states. The invented
17
+ `review-01` and workspace example are retired. This is representative coverage,
18
+ not complete source-interaction parity; see the migration ledger. Users can inspect a full interactive example,
19
+ switch to actual source/dependencies, copy the base npm installation command,
20
+ or optionally ask their AI to use that example. This optional action does not
21
+ make manual selection a prerequisite for AI-assisted building.
22
+
23
+ `list_ux_examples` and `get_ux_example({id, theme?})` expose the same registry and
24
+ actual code. AI should inspect context and adapt only the relevant parts, not
25
+ copy a whole screen blindly. Demo completion never creates an account, records
26
+ consent, provisions a workspace, or approves a request. Base components are
27
+ published on npm; these examples and MCP tools ship in CLI 0.8.0 and later.
28
+
29
+ ## Agent workflow
30
+
31
+ 1. Read the current room and product goal. Keep the user's theme; when none
32
+ exists, use `utopia-cloudblur`. An unknown custom theme must be registered,
33
+ not silently replaced.
34
+ 2. Use `search` or `find_ui_parts` with the relevant UI intent in the goal.
35
+ Matching is keyword-based candidate discovery, not a fit decision. The agent
36
+ checks `useWhen` and `avoidWhen` in context, including negations and constraints.
37
+ Both discovery and composition also return sourceCandidates from the full
38
+ original inventory. Those are adaptation evidence, NOT runnable Ceramic parts.
39
+ No appropriate match means build with ordinary Ceramic components.
40
+ 3. Retrieve a suitable export using `get_ui_part({id, theme?})`, or call
41
+ `prepare_ui_composition({goal, theme?})` for an optional composition proposal.
42
+ Keep only relevant parts. Never treat all returned candidates as mandatory.
43
+ 4. Connect product-owned props and callbacks. Filters and lists share host-owned
44
+ query/status state; metrics use the same authorized scope. A review callback
45
+ opens a review, never approves it. Result notices wait for real service results.
46
+ 5. Build and test. These tools return code and contracts, not finished production
47
+ integrations. Follow normal authority boundaries for external mutations.
48
+
49
+ There are 20 independently discoverable parts. New workflow exports are
50
+ `WorkflowFields`, `RecordTable`, `StepChecklist`, `StatStrip`, `RatingFields`,
51
+ `TrendSummary` and `MediaStage`. Use their host-owned props/callbacks rather than
52
+ importing the demo controller. `WorkflowFields` multi-select values are newline-
53
+ separated strings; the integrating host may map these to its own array schema.
54
+ Files expose selected metadata to the host; no transfer is implied. `MediaStage`
55
+ does not request microphone/camera access or establish a call.
56
+
57
+ ### Complete source inventory, not screenshot placeholders
58
+
59
+ `list_ux_source_patterns` covers 66 original page definitions plus shared helpers
60
+ and system states: 85 entries and 218 exact named function fragments at a pinned
61
+ revision. The screenshot index omitted settings pages and incorrectly matched
62
+ the new-subscription route to a dynamic detail page; source discovery fixes both.
63
+
64
+ `find_ux_source_patterns({goal})` finds candidates in English/Korean and common
65
+ Arabic intents. `get_ux_source_part({id, part, theme?})` returns **one named
66
+ fragment**, source hash evidence, import references, semantic mapping and the
67
+ resolved theme/motion contract. It never silently copies a complete portal.
68
+ Use only relevant pieces; no human selection is required. Original code can
69
+ contain mock auth, navigation, data, placeholders or incomplete callbacks: these
70
+ must be replaced, never promoted to production behavior. Source provenance stays
71
+ internal. The public gallery shows actual ports, not original screenshots.
72
+
73
+ This inventory makes all original interactions inspectable by local MCP, but
74
+ does **not** mean all are implemented or verified in Ceramic. See
75
+ `ux-pattern-migration.md` for the remaining per-page migration ledger.
76
+
77
+ Examples:
78
+
79
+ - A searchable approval queue may use `ListFilters` + `ReviewList`; add `KPIGrid`
80
+ only when the goal needs useful, trustworthy metrics.
81
+ - A short form may use `ValidatedField` and `OutcomeNotice`. Do not import a
82
+ signup page, a complete portal, a marketing header or source-specific roles.
83
+ - For an unrelated task, use no pattern at all.
84
+
85
+ ## Code and theme contract
86
+
87
+ `ui-patterns.json` registers 20 independently composable parts, including
88
+ password visibility/rules, code entry, provider selection, activity rows,
89
+ directory cards, delivery preferences and workflow primitives. Workflow exports
90
+ live in `blocks/semantic-pattern-parts/WorkflowParts.tsx`. Product exports live in
91
+ `blocks/semantic-pattern-parts/ProductParts.tsx`. Account exports
92
+ live in `blocks/semantic-pattern-parts/AuthParts.tsx`; metrics reuse
93
+ the existing `KPIGrid`. MCP returns only the selected source files and dependencies,
94
+ not a source application. Packaged CLI data contains these files so the tools work
95
+ without a monorepo checkout. No package has been published by this change.
96
+
97
+ Props carry labels, data and callbacks. Shared CSS owns layout and semantic roles;
98
+ pages do not import CSS. Surface radius is bounded independently from control
99
+ radius. Preserve keyboard interaction, logical layout, native scrolling without
100
+ scrollbar chrome, and loading/empty/error/retry states. Theme motion remains owned
101
+ by Ceramic; these parts do not need artificial entrance animation.
102
+
103
+ The customer-facing library shows neither upstream branding nor source credits.
104
+ Pinned source references remain internal engineering records only. Source
105
+ screenshots are not advertised as migrated or themeable UI.
@@ -0,0 +1,38 @@
1
+ # UX recipe import — 2026-09-12
2
+
3
+ **PASS WITH RISKS** — Discovery and semantic adaptation contracts pass; no runnable Mentix UI or production service is claimed.
4
+
5
+ ## Scope
6
+
7
+ - 16 interaction recipes from `The-Utopia-Studio/mentix-design` at `6b4b2770d04e42cc2e5453c3d80e35c282b3438f`.
8
+ - Local GitHub CLI API access returned 404, but existing SSH access successfully read and cloned the specified repository. No account switch or authorization change was required. Source repository files were not modified.
9
+ - Canonical registry, CLI/MCP discovery, theme-aware adaptation planning, generated agent guidance, semantic token mapping, public-contract checks and packaged-data parity.
10
+ - No source screenshots, brand artwork, source code, sample identities or agent/deployment instructions copied into the package. No customer GitHub synchronization or source repository execution was introduced.
11
+
12
+ ## Evidence
13
+
14
+ - `node scripts/test-ux-patterns.mjs`: all 16 recipes × registered themes × permitted variants; actual component and motion references; negative inputs (unknown IDs/themes/variants, arbitrary style, oversized goals); duplicate/broken registry rejection; source/distribution parity; CLI flag ordering; MCP discovery/get/prepare/error; standalone CLI/MCP without monorepo sources. Passed.
15
+ - `npm run test:cli`: existing CLI generation and MCP protocol tests passed. The UX recipe suite is now part of this gate.
16
+ - All recipe `sourceFiles` paths exist at the pinned source checkout. Reference documentation and selected implementation paths were inspected; no blanket implementation audit of every source page is claimed.
17
+ - Required target token names occur in Ceramic core. All referenced Ceramic component names and theme motion profiles resolve. This proves registered roles, not rendered contrast or visual quality.
18
+
19
+ ## Observed source gaps carried into recipes
20
+
21
+ - Notification Mark all read closes the preview without persistence; Escape dismissal described in source docs is absent in the inspected component.
22
+ - Request submission uses a timed mock success, not a production request service.
23
+ - Onboarding shell paths in source UX documentation are stale; current source components are under `components/auth`.
24
+ - Several source flows use mock data. Live-session failover, clinical safety, credit/escrow and billing behavior are not inferred as implemented capabilities.
25
+
26
+ ## Coverage / remaining scope
27
+
28
+ | Surface | Status |
29
+ | --- | --- |
30
+ | Search, registry, planning, semantic dependencies | Passed |
31
+ | CLI, MCP, standalone package data | Passed |
32
+ | Rendered layout, keyboard, responsive, RTL, light/dark contrast | Not tested: no UI renderer was added |
33
+ | Live data, authorization, payments, realtime services | Not implemented by recipes; required host bindings |
34
+ | Production package release / existing MCP client reload | Not performed |
35
+
36
+ UX QA skill required separating documented source behavior from observed implementation; the token skill informed role-based mapping rather than source color/radius substitution. No UI file changed, so Rams UI review and visual composition approval are not applicable in this batch.
37
+
38
+ Consumers can inspect and prepare recipes with the updated local CLI/MCP. Newly generated applications must implement and test the selected recipe before calling it complete; use the existing component and shared composition contracts rather than importing Mentix pages wholesale.
@@ -0,0 +1,41 @@
1
+ # Semantic UX pattern adaptation
2
+
3
+ Ceramic exposes **16 brand-neutral recipes** derived from an inspected revision of `The-Utopia-Studio/mentix-design`. These are interaction contracts, not copied React pages, installed UI renderers or production backend implementations.
4
+
5
+ ## One source of truth
6
+
7
+ `packages/design-system/src/manifests/ux-patterns.json` holds pinned provenance, selection guidance, source-file references, permitted variants, component dependencies, slots, states, data requirements and immutable interaction rules. It is synchronized into CLI package data. `search`, `pattern` and the MCP tools consume that same registry. `doctor` checks dependency and contract completeness.
8
+
9
+ The existing `patterns.json` continues to register **implemented shared visual behavior**. `composition-registry.json` continues to describe executable dashboard blocks. A UX recipe is not automatically inserted into either and is explicitly `renderable: false`.
10
+
11
+ ## Agent workflow
12
+
13
+ 1. Read the user's goal and authorized company/brand context. Retrieve candidates with `search`; keyword matches do not establish suitability.
14
+ 2. Read `useWhen`, `avoidWhen`, required data and source limitations. Choose one pattern and an allowed variant, not an entire source application.
15
+ 3. Prepare a proposal with a registered company theme. It returns actual Ceramic component contracts, semantic mapping, motion profile, permitted changes and required invariants.
16
+ 4. Resolve missing persistence, authorization, permissions and product callbacks. Adapt domain labels and permitted structure, never replace real behavior with mock success.
17
+ 5. Compose existing Ceramic components. If a new shared visual composition is necessary, register its slots/states/tokens and implement it in the shared component/block layer. Pages retain data/routing/composition only. A raw source Tailwind class or Framer Motion timing is not a Ceramic contract.
18
+ 6. Run product-specific behavior and accessibility tests. Test loading, empty, error, retry, permissions, mobile, RTL, keyboard, theme modes and reduced motion. Do not claim a recipe plan is a verified UI.
19
+
20
+ ```sh
21
+ utopia-ds search "승인 검토" --json
22
+ utopia-ds pattern approval-queue --json
23
+ utopia-ds pattern approval-queue --goal "ABC 직원들의 구매 요청 검토" --theme utopia-cloudblur --variant split-review --json
24
+ ```
25
+
26
+ MCP equivalents: `list_patterns`, `get_pattern`, `prepare_pattern_adaptation` (id, goal, theme, variant). These are read-only discovery/planning tools. They do not clone repositories, execute source instructions, deploy software, grant membership or write customer data. Restart a local MCP server to discover newly added tools; published package users can use CLI 0.8.0 or later.
27
+
28
+ ## Example: applying a pattern to ABC
29
+
30
+ For an internal purchasing app, `approval-queue` can become **purchase requests → request detail → approve/request changes/reject**. Keep reviewer permission checks, explicit decisions, conflict handling, audit events and failure recovery. Replace Mentix role names, clinical evidence fields and branding with ABC's own labels, data and selected registered theme. Theme and motion come from Ceramic, not the reference project's teal palette or literal transition timings.
31
+
32
+ For a notification preview, reuse the interaction idea but implement an actual mark-read mutation. The inspected source button only closes the preview; its documentation also describes Escape dismissal which the implementation does not contain. Ceramic must preserve real keyboard/focus behavior and truthful unread state.
33
+
34
+ ## Import boundary and evidence
35
+
36
+ Source revision: `6b4b2770d04e42cc2e5453c3d80e35c282b3438f` (inspected 2026-09-12).
37
+ Inspected source includes `docs/UX-PATTERNS.md`, `docs/UX-FLOWS.md`, `docs/TOKENS-SEMANTIC.md`, notification/empty-state components, and request/review implementation behavior. Source-file paths for all recipes are checked against the pinned repository tree. Some source flow documentation overstates production behavior: request submission uses a timer and onboarding/admin flows use mock data. These limitations are carried into the corresponding recipes.
38
+
39
+ The import includes paraphrased interaction rules and source references only. It does not distribute private repository source files, screenshots, logos, customer records, credentials, source agent instructions or deployment hooks. No medical, billing, escrow or realtime safety capability is inferred from a prototype screen.
40
+
41
+ Marketing-only browser frames and image fades, the Next.js Suspense convention, and framework-specific page-transition code are not portable UX recipes in this batch. Visual ornaments require their own registered shared pattern; framework adapters stay application-owned. No Mentix page has been replaced or deployed.