ai-design-context 0.4.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 (288) hide show
  1. package/AGENTS.md +156 -0
  2. package/CHANGELOG.md +71 -0
  3. package/CODE_OF_CONDUCT.md +29 -0
  4. package/CONTRIBUTING.md +128 -0
  5. package/LICENSE +21 -0
  6. package/README.md +283 -0
  7. package/RELEASE_NOTES_v0.1.0.md +45 -0
  8. package/RELEASE_NOTES_v0.3.0.md +47 -0
  9. package/RELEASE_NOTES_v0.4.0.md +29 -0
  10. package/RELEASE_READINESS.md +107 -0
  11. package/ROADMAP.md +60 -0
  12. package/SECURITY.md +40 -0
  13. package/assets/logo.svg +9 -0
  14. package/benchmarks/README.md +19 -0
  15. package/benchmarks/chat.md +37 -0
  16. package/benchmarks/mobile-home-screen.md +38 -0
  17. package/benchmarks/notes-app.md +37 -0
  18. package/benchmarks/settings.md +37 -0
  19. package/benchmarks/shopping-list.md +37 -0
  20. package/benchmarks/todo-app.md +144 -0
  21. package/checklists/DESIGN_QA.md +102 -0
  22. package/checklists/GENERATED_INDEX.md +7 -0
  23. package/docs/AGENT_CONTEXT.md +111 -0
  24. package/docs/BENCHMARK.md +170 -0
  25. package/docs/DESIGNLINT_READINESS.md +110 -0
  26. package/docs/DESIGN_SYSTEM.md +23 -0
  27. package/docs/EVALUATION_RUBRIC.md +154 -0
  28. package/docs/GITHUB_SETUP.md +28 -0
  29. package/docs/GLOSSARY.md +45 -0
  30. package/docs/INDEX.md +109 -0
  31. package/docs/KNOWLEDGE_ENGINE.md +594 -0
  32. package/docs/MOBILE_FIRST.md +18 -0
  33. package/docs/NPM_RELEASE.md +43 -0
  34. package/docs/PATTERN_SPEC.md +113 -0
  35. package/docs/PHILOSOPHY.md +25 -0
  36. package/docs/PRODUCT_THINKING.md +26 -0
  37. package/docs/STYLE_GUIDE.md +49 -0
  38. package/docs/TRACEABILITY.md +45 -0
  39. package/evidence/README.md +64 -0
  40. package/evidence/TEMPLATE.md +46 -0
  41. package/evidence/chat/.gitkeep +1 -0
  42. package/evidence/mobile-home/.gitkeep +1 -0
  43. package/evidence/notes/.gitkeep +1 -0
  44. package/evidence/settings/.gitkeep +1 -0
  45. package/evidence/shopping/.gitkeep +1 -0
  46. package/evidence/todo/.gitkeep +1 -0
  47. package/evidence/todo/2026-06-25-codex-gpt-5/EVALUATION.md +66 -0
  48. package/evidence/todo/2026-06-25-codex-gpt-5/README.md +40 -0
  49. package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/generated-output.md +163 -0
  50. package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/metadata.json +38 -0
  51. package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/notes.md +20 -0
  52. package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/prompt.md +16 -0
  53. package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/scores.md +18 -0
  54. package/evidence/todo/2026-06-25-codex-gpt-5/baseline/generated-output.md +98 -0
  55. package/evidence/todo/2026-06-25-codex-gpt-5/baseline/metadata.json +19 -0
  56. package/evidence/todo/2026-06-25-codex-gpt-5/baseline/notes.md +19 -0
  57. package/evidence/todo/2026-06-25-codex-gpt-5/baseline/prompt.md +9 -0
  58. package/evidence/todo/2026-06-25-codex-gpt-5/baseline/scores.md +18 -0
  59. package/evidence/todo/2026-09-28-codex-paired-todo/EVALUATION.md +70 -0
  60. package/evidence/todo/2026-09-28-codex-paired-todo/README.md +52 -0
  61. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/GENERATION_NOTES.md +133 -0
  62. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/app.js +289 -0
  63. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/context-preserving-preview.json +443 -0
  64. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/daily-home-surface.json +373 -0
  65. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/quick-capture.json +301 -0
  66. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/sources-read.txt +36 -0
  67. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/generated-output.md +11 -0
  68. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/index.html +64 -0
  69. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/launch-prompt.md +1 -0
  70. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/metadata.json +55 -0
  71. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/notes.md +15 -0
  72. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/parent-status-message.md +1 -0
  73. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/prompt.md +49 -0
  74. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/runtime-checks.json +776 -0
  75. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/scores.md +20 -0
  76. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-completed.png +0 -0
  77. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-default.png +0 -0
  78. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-detail-reduced-motion.png +0 -0
  79. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-detail.png +0 -0
  80. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-empty.png +0 -0
  81. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-keyboard-focus.png +0 -0
  82. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-save-error.png +0 -0
  83. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-saved.png +0 -0
  84. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-saving.png +0 -0
  85. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-validation.png +0 -0
  86. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-completed.png +0 -0
  87. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-default.png +0 -0
  88. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-detail-reduced-motion.png +0 -0
  89. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-detail.png +0 -0
  90. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-empty.png +0 -0
  91. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-keyboard-focus.png +0 -0
  92. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-save-error.png +0 -0
  93. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-saved.png +0 -0
  94. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-saving.png +0 -0
  95. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-validation.png +0 -0
  96. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/source-hashes.json +5 -0
  97. package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/styles.css +122 -0
  98. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/GENERATION_NOTES.md +86 -0
  99. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/app.js +303 -0
  100. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/generated-output.md +11 -0
  101. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/index.html +71 -0
  102. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/launch-prompt.md +1 -0
  103. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/metadata.json +55 -0
  104. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/notes.md +15 -0
  105. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/parent-status-message.md +1 -0
  106. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/prompt.md +49 -0
  107. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/runtime-checks.json +772 -0
  108. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/scores.md +20 -0
  109. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-completed.png +0 -0
  110. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-default.png +0 -0
  111. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-detail-reduced-motion.png +0 -0
  112. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-detail.png +0 -0
  113. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-empty.png +0 -0
  114. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-keyboard-focus.png +0 -0
  115. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-save-error.png +0 -0
  116. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-saved.png +0 -0
  117. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-saving.png +0 -0
  118. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-validation.png +0 -0
  119. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-completed.png +0 -0
  120. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-default.png +0 -0
  121. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-detail-reduced-motion.png +0 -0
  122. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-detail.png +0 -0
  123. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-empty.png +0 -0
  124. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-keyboard-focus.png +0 -0
  125. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-save-error.png +0 -0
  126. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-saved.png +0 -0
  127. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-saving.png +0 -0
  128. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-validation.png +0 -0
  129. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/source-hashes.json +5 -0
  130. package/evidence/todo/2026-09-28-codex-paired-todo/baseline/styles.css +9 -0
  131. package/evidence/todo/2026-09-28-codex-paired-todo/capture-ai-design-rules.js +60 -0
  132. package/evidence/todo/2026-09-28-codex-paired-todo/capture-baseline.js +60 -0
  133. package/evidence/todo/2026-09-28-codex-paired-todo/common/brief.md +35 -0
  134. package/evidence/todo/2026-09-28-codex-paired-todo/common/knowledge-files.json +127 -0
  135. package/evidence/todo/2026-09-28-codex-paired-todo/common/knowledge.patch +890 -0
  136. package/evidence/todo/2026-09-28-codex-paired-todo/common/review-context.json +550 -0
  137. package/evidence/todo/2026-09-28-codex-paired-todo/common/seed.json +86 -0
  138. package/evidence/todo/2026-09-28-codex-paired-todo/common/setup.json +47 -0
  139. package/evidence/todo/2026-09-28-codex-paired-todo/common/technical-envelope.md +11 -0
  140. package/evidence/todo/2026-09-28-codex-paired-todo/layout-metrics.json +133 -0
  141. package/evidence/todo/2026-09-28-codex-paired-todo/layout-probe.js +15 -0
  142. package/examples/GENERATED_INDEX.md +8 -0
  143. package/examples/INDEX.md +16 -0
  144. package/examples/README.md +15 -0
  145. package/examples/consequential-action-confirmation-reference.md +83 -0
  146. package/examples/todo-app-benchmark.md +117 -0
  147. package/examples/todo-reference/README.md +29 -0
  148. package/examples/todo-reference/app.js +154 -0
  149. package/examples/todo-reference/favicon.svg +4 -0
  150. package/examples/todo-reference/index.html +67 -0
  151. package/examples/todo-reference/review-evidence/2026-07-15/desktop-default.png +0 -0
  152. package/examples/todo-reference/review-evidence/2026-07-15/desktop-detail.png +0 -0
  153. package/examples/todo-reference/review-evidence/2026-07-15/mobile-detail.png +0 -0
  154. package/examples/todo-reference/review-evidence/2026-07-15/mobile-error.png +0 -0
  155. package/examples/todo-reference/styles.css +241 -0
  156. package/graph/GENERATED_GRAPH.md +71 -0
  157. package/observations/README.md +23 -0
  158. package/observations/accessibility/reduced-interaction-motion.md +49 -0
  159. package/observations/accessibility/textual-error-recovery.md +50 -0
  160. package/observations/accessibility/visible-keyboard-focus.md +49 -0
  161. package/observations/ai/agent-consequential-action-controls.md +56 -0
  162. package/observations/ai/agent-work-visibility-and-intervention.md +51 -0
  163. package/observations/ai/figma-agent-context-and-skills.md +52 -0
  164. package/observations/finance/high-risk-wallet-recovery-flows.md +55 -0
  165. package/observations/finance/market-interface-adaptive-trading-surfaces.md +55 -0
  166. package/observations/interaction/chrome-scoped-view-transitions.md +52 -0
  167. package/observations/interaction/figma-motion-as-system-capability.md +53 -0
  168. package/observations/mobile/mobile-bottom-sheet-choice-contracts.md +55 -0
  169. package/observations/performance/reserved-loading-space.md +51 -0
  170. package/observations/product-repos/pinned-ai-design-rules-integration.md +49 -0
  171. package/observations/visual/apple-liquid-glass-functional-layer.md +52 -0
  172. package/observations/visual/chrome-content-first-adaptive-ui.md +51 -0
  173. package/observations/visual/material-3-expressive-system.md +52 -0
  174. package/package.json +65 -0
  175. package/patterns/GENERATED_INDEX.md +13 -0
  176. package/patterns/INDEX.md +41 -0
  177. package/patterns/README.md +5 -0
  178. package/patterns/consequential-action-confirmation.md +127 -0
  179. package/patterns/context-preserving-preview.md +145 -0
  180. package/patterns/daily-home-surface.md +134 -0
  181. package/patterns/mobile-primary-action.md +110 -0
  182. package/patterns/object-status-list.md +114 -0
  183. package/patterns/progressive-detail.md +113 -0
  184. package/patterns/quick-capture.md +132 -0
  185. package/prompts/CONSEQUENTIAL_ACTION_REVIEW.md +100 -0
  186. package/prompts/DESIGN_EVIDENCE_REVIEW.md +49 -0
  187. package/prompts/GENERATED_INDEX.md +11 -0
  188. package/prompts/INDEX.md +24 -0
  189. package/prompts/PROTOTYPE_REVIEW.md +189 -0
  190. package/prompts/QUICK_CAPTURE_STATE_REVIEW.md +74 -0
  191. package/prompts/TODO_APP_BENCHMARK.md +88 -0
  192. package/registry/objects.json +568 -0
  193. package/registry/relationships.json +972 -0
  194. package/research/GENERATED_INDEX.md +18 -0
  195. package/research/INDEX.md +40 -0
  196. package/research/accessibility/keyboard-focus-and-interaction-motion.md +62 -0
  197. package/research/accessibility/textual-error-recovery.md +57 -0
  198. package/research/performance/reserved-loading-space.md +56 -0
  199. package/research/products/apple-reminders.md +59 -0
  200. package/research/products/arc.md +61 -0
  201. package/research/products/linear.md +62 -0
  202. package/research/products/telegram.md +61 -0
  203. package/research/products/things-3.md +60 -0
  204. package/research/ux/contextual-agentic-interface.md +68 -0
  205. package/research/ux/high-risk-operational-flows.md +89 -0
  206. package/research/ux/motion-as-state-continuity.md +71 -0
  207. package/research/visual/expressive-system-ui-2026.md +75 -0
  208. package/reviews/GENERATED_INDEX.md +9 -0
  209. package/reviews/README.md +25 -0
  210. package/reviews/consequential-action-confirmation-review.md +92 -0
  211. package/reviews/todo-app-benchmark-reference-review.md +86 -0
  212. package/reviews/todo-reference-fixture-review.md +77 -0
  213. package/rules/GENERATED_INDEX.md +23 -0
  214. package/rules/INDEX.md +37 -0
  215. package/rules/accessibility/A11Y-001.md +58 -0
  216. package/rules/accessibility/A11Y-002.md +55 -0
  217. package/rules/accessibility/A11Y-003.md +54 -0
  218. package/rules/accessibility/A11Y-004.md +54 -0
  219. package/rules/ia/IA-001.md +60 -0
  220. package/rules/ia/IA-002.md +61 -0
  221. package/rules/performance/PERF-001.md +55 -0
  222. package/rules/product/PRD-001.md +61 -0
  223. package/rules/product/PRD-002.md +61 -0
  224. package/rules/ux/UX-001.md +58 -0
  225. package/rules/ux/UX-002.md +61 -0
  226. package/rules/ux/UX-003.md +60 -0
  227. package/rules/ux/UX-004.md +61 -0
  228. package/rules/ux/UX-005.md +62 -0
  229. package/rules/ux/UX-006.md +69 -0
  230. package/rules/visual/VIS-001.md +59 -0
  231. package/rules/visual/VIS-002.md +59 -0
  232. package/schema/checklist.schema.json +21 -0
  233. package/schema/common.schema.json +178 -0
  234. package/schema/observation.schema.json +21 -0
  235. package/schema/pattern.schema.json +21 -0
  236. package/schema/prompt.schema.json +21 -0
  237. package/schema/reference-project.schema.json +21 -0
  238. package/schema/research.schema.json +21 -0
  239. package/schema/review.schema.json +21 -0
  240. package/schema/rule.schema.json +21 -0
  241. package/skills/README.md +48 -0
  242. package/skills/accessibility-reviewer/SKILL.md +101 -0
  243. package/skills/agent-context/SKILL.md +34 -0
  244. package/skills/agent-context/agents/openai.yaml +4 -0
  245. package/skills/design-evidence-researcher/SKILL.md +47 -0
  246. package/skills/design-evidence-researcher/agents/openai.yaml +4 -0
  247. package/skills/design-reviewer/SKILL.md +113 -0
  248. package/skills/design-system-architect/SKILL.md +101 -0
  249. package/skills/information-architect/SKILL.md +97 -0
  250. package/skills/interaction-designer/SKILL.md +104 -0
  251. package/skills/knowledge-graph-architect/SKILL.md +96 -0
  252. package/skills/mobile-ux-expert/SKILL.md +105 -0
  253. package/skills/motion-designer/SKILL.md +100 -0
  254. package/skills/performance-reviewer/SKILL.md +97 -0
  255. package/skills/product-designer/SKILL.md +104 -0
  256. package/skills/prompt-architect/SKILL.md +105 -0
  257. package/skills/reference-driven-design/SKILL.md +119 -0
  258. package/skills/ux-reviewer/SKILL.md +99 -0
  259. package/skills/visual-designer/SKILL.md +107 -0
  260. package/starter-kit/AGENTS.md +37 -0
  261. package/starter-kit/BOOTSTRAP.md +13 -0
  262. package/starter-kit/INSTALL_WITH_AGENT.md +133 -0
  263. package/starter-kit/PROJECT_INTEGRATION.md +60 -0
  264. package/starter-kit/README.md +41 -0
  265. package/starter-kit/benchmarks/BENCHMARK_CHECKLIST.md +10 -0
  266. package/starter-kit/docs/DESIGN_DECISIONS.md +22 -0
  267. package/starter-kit/docs/INFORMATION_ARCHITECTURE.md +25 -0
  268. package/starter-kit/docs/PERSONAS.md +14 -0
  269. package/starter-kit/docs/PRD.md +32 -0
  270. package/starter-kit/docs/USER_FLOWS.md +19 -0
  271. package/starter-kit/reviews/DESIGN_REVIEW.md +49 -0
  272. package/starter-kit/templates/FEATURE_TEMPLATE.md +36 -0
  273. package/starter-kit/templates/TASK_TEMPLATE.md +22 -0
  274. package/templates/CHECKLIST_TEMPLATE.md +43 -0
  275. package/templates/OBSERVATION_TEMPLATE.md +41 -0
  276. package/templates/PATTERN_TEMPLATE.md +100 -0
  277. package/templates/PROMPT_TEMPLATE.md +46 -0
  278. package/templates/PROTOTYPE_REVIEW.md +50 -0
  279. package/templates/REFERENCE_PROJECT_TEMPLATE.md +49 -0
  280. package/templates/REVIEW_TEMPLATE.md +55 -0
  281. package/templates/RULE_TEMPLATE.md +57 -0
  282. package/tools/cli.mjs +46 -0
  283. package/tools/context.mjs +342 -0
  284. package/tools/designlint.mjs +77 -0
  285. package/tools/generate-indexes.mjs +621 -0
  286. package/tools/init.mjs +99 -0
  287. package/tools/validate-benchmark-evidence.mjs +248 -0
  288. package/tools/validate-knowledge.mjs +481 -0
@@ -0,0 +1,241 @@
1
+ :root {
2
+ --surface-page: #f5f5f2;
3
+ --surface-raised: #ffffff;
4
+ --surface-muted: #ecece7;
5
+ --text-primary: #20211d;
6
+ --text-secondary: #62655b;
7
+ --border-subtle: #d8d9d2;
8
+ --action-primary: #286248;
9
+ --action-primary-hover: #1d5039;
10
+ --action-on-primary: #ffffff;
11
+ --status-complete: #718071;
12
+ --status-error: #a13c2f;
13
+ --focus-ring: #0b75d1;
14
+ --radius-card: 18px;
15
+ --radius-control: 12px;
16
+ --shadow-panel: 0 18px 50px rgb(31 34 27 / 14%);
17
+ }
18
+
19
+ * { box-sizing: border-box; }
20
+
21
+ body {
22
+ margin: 0;
23
+ min-width: 320px;
24
+ color: var(--text-primary);
25
+ background: var(--surface-page);
26
+ font: 16px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
27
+ }
28
+
29
+ button, input { font: inherit; }
30
+
31
+ button {
32
+ min-height: 44px;
33
+ border: 0;
34
+ border-radius: var(--radius-control);
35
+ padding: 0 16px;
36
+ color: var(--action-on-primary);
37
+ background: var(--action-primary);
38
+ cursor: pointer;
39
+ }
40
+
41
+ button:hover { background: var(--action-primary-hover); }
42
+ button:disabled { cursor: wait; opacity: .65; }
43
+
44
+ button:focus-visible, input:focus-visible {
45
+ outline: 3px solid var(--focus-ring);
46
+ outline-offset: 3px;
47
+ }
48
+
49
+ .app-shell {
50
+ display: grid;
51
+ grid-template-columns: minmax(0, 680px) minmax(280px, 360px);
52
+ gap: 32px;
53
+ width: min(100% - 48px, 1120px);
54
+ min-height: 100vh;
55
+ margin: 0 auto;
56
+ padding: 56px 0;
57
+ align-content: start;
58
+ }
59
+
60
+ .app-header, .section-heading, .detail-header, .task-row, .task-main { display: flex; align-items: center; }
61
+ .app-header, .section-heading, .detail-header { justify-content: space-between; gap: 16px; }
62
+ .content-column { min-width: 0; }
63
+
64
+ h1, h2, p { margin: 0; }
65
+ h1 { font-size: clamp(2rem, 5vw, 3rem); letter-spacing: -.045em; line-height: 1; }
66
+ h2 { font-size: 1rem; letter-spacing: -.01em; }
67
+
68
+ .eyebrow {
69
+ margin-bottom: 7px;
70
+ color: var(--text-secondary);
71
+ font-size: .79rem;
72
+ font-weight: 700;
73
+ letter-spacing: .08em;
74
+ text-transform: uppercase;
75
+ }
76
+
77
+ .icon-button {
78
+ display: grid;
79
+ width: 44px;
80
+ min-width: 44px;
81
+ place-items: center;
82
+ padding: 0;
83
+ color: var(--text-primary);
84
+ background: var(--surface-raised);
85
+ border: 1px solid var(--border-subtle);
86
+ font-size: 1.45rem;
87
+ }
88
+
89
+ .icon-button:hover { background: var(--surface-muted); }
90
+
91
+ .summary {
92
+ display: flex;
93
+ justify-content: space-between;
94
+ gap: 16px;
95
+ margin: 28px 0 16px;
96
+ color: var(--text-secondary);
97
+ }
98
+
99
+ .summary strong { color: var(--text-primary); }
100
+
101
+ .quick-capture {
102
+ display: grid;
103
+ grid-template-columns: 1fr auto;
104
+ gap: 10px;
105
+ position: relative;
106
+ padding: 10px;
107
+ background: var(--surface-raised);
108
+ border: 1px solid var(--border-subtle);
109
+ border-radius: var(--radius-card);
110
+ box-shadow: 0 8px 24px rgb(31 34 27 / 5%);
111
+ }
112
+
113
+ .quick-capture input {
114
+ min-width: 0;
115
+ min-height: 44px;
116
+ padding: 0 8px;
117
+ color: var(--text-primary);
118
+ background: transparent;
119
+ border: 1px solid transparent;
120
+ border-radius: 8px;
121
+ }
122
+
123
+ .quick-capture input::placeholder { color: #85887d; }
124
+ .quick-capture input[aria-invalid="true"] { border-color: var(--status-error); }
125
+
126
+ .form-error {
127
+ grid-column: 1 / -1;
128
+ padding: 0 8px 4px;
129
+ color: var(--status-error);
130
+ font-size: .9rem;
131
+ }
132
+
133
+ .task-surface { min-height: 320px; margin-top: 28px; }
134
+ .section-heading { margin: 0 4px 12px; }
135
+ .save-status { color: var(--text-secondary); font-size: .875rem; }
136
+
137
+ .task-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
138
+
139
+ .task-row {
140
+ justify-content: space-between;
141
+ gap: 12px;
142
+ min-height: 68px;
143
+ padding: 12px;
144
+ background: var(--surface-raised);
145
+ border: 1px solid var(--border-subtle);
146
+ border-radius: var(--radius-control);
147
+ }
148
+
149
+ .task-main { min-width: 0; gap: 12px; }
150
+
151
+ .complete-toggle {
152
+ width: 44px;
153
+ min-width: 44px;
154
+ padding: 0;
155
+ color: transparent;
156
+ background: transparent;
157
+ border: 2px solid var(--status-complete);
158
+ border-radius: 50%;
159
+ }
160
+
161
+ .complete-toggle[aria-pressed="true"] { color: var(--action-on-primary); background: var(--status-complete); }
162
+ .task-row.is-complete .task-title { color: var(--text-secondary); text-decoration: line-through; }
163
+
164
+ .task-open {
165
+ min-width: 0;
166
+ min-height: 44px;
167
+ padding: 0;
168
+ color: var(--text-primary);
169
+ background: transparent;
170
+ border-radius: 8px;
171
+ text-align: left;
172
+ }
173
+
174
+ .task-open:hover { color: var(--action-primary-hover); background: transparent; }
175
+ .task-meta { display: block; color: var(--text-secondary); font-size: .8rem; }
176
+
177
+ .empty-state {
178
+ display: grid;
179
+ min-height: 270px;
180
+ place-content: center;
181
+ justify-items: center;
182
+ gap: 10px;
183
+ padding: 32px;
184
+ text-align: center;
185
+ background: var(--surface-raised);
186
+ border: 1px dashed var(--border-subtle);
187
+ border-radius: var(--radius-card);
188
+ }
189
+
190
+ .empty-state[hidden], .detail-panel[hidden] { display: none; }
191
+
192
+ .empty-state p { color: var(--text-secondary); }
193
+ .empty-icon { font-size: 2rem; color: var(--action-primary); }
194
+
195
+ .detail-panel {
196
+ position: sticky;
197
+ top: 32px;
198
+ min-height: 382px;
199
+ padding: 24px;
200
+ background: var(--surface-raised);
201
+ border: 1px solid var(--border-subtle);
202
+ border-radius: var(--radius-card);
203
+ box-shadow: var(--shadow-panel);
204
+ }
205
+
206
+ .detail-panel h2 { margin: 24px 0; font-size: 1.35rem; }
207
+ .detail-list { display: grid; gap: 20px; margin: 0; }
208
+ .detail-list div { display: grid; gap: 3px; }
209
+ .detail-list dt { color: var(--text-secondary); font-size: .8rem; }
210
+ .detail-list dd { margin: 0; }
211
+ .secondary-button { width: 100%; margin-top: 32px; color: var(--action-primary); background: var(--surface-muted); }
212
+ .secondary-button:hover { background: #dde1d8; }
213
+
214
+ .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
215
+
216
+ @media (max-width: 820px) {
217
+ .app-shell { display: block; width: min(100% - 32px, 680px); padding: 32px 0 108px; }
218
+ .detail-panel {
219
+ position: fixed;
220
+ z-index: 2;
221
+ right: 0;
222
+ bottom: 0;
223
+ left: 0;
224
+ min-height: 0;
225
+ width: 100%;
226
+ max-height: 60vh;
227
+ overflow: auto;
228
+ border-radius: 24px 24px 0 0;
229
+ }
230
+ .summary { align-items: flex-start; flex-direction: column; gap: 4px; }
231
+ }
232
+
233
+ @media (max-width: 460px) {
234
+ .quick-capture { grid-template-columns: 1fr; }
235
+ .quick-capture button { width: 100%; }
236
+ .summary { margin-top: 24px; }
237
+ }
238
+
239
+ @media (prefers-reduced-motion: reduce) {
240
+ *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
241
+ }
@@ -0,0 +1,71 @@
1
+ # Generated Graph Report
2
+
3
+ This file is generated from registry metadata. Do not edit manually.
4
+
5
+ ## Object Counts By Type
6
+
7
+ | Object Type | Count |
8
+ | --- | --- |
9
+ | checklist | 1 |
10
+ | pattern | 7 |
11
+ | prompt | 5 |
12
+ | reference_project | 2 |
13
+ | research | 12 |
14
+ | review | 3 |
15
+ | rule | 17 |
16
+
17
+ ## Relationship Counts By Type
18
+
19
+ | Relationship Type | Count |
20
+ | --- | --- |
21
+ | cites | 1 |
22
+ | derived_from | 32 |
23
+ | implements | 12 |
24
+ | related_to | 65 |
25
+ | requires | 64 |
26
+ | validates | 18 |
27
+
28
+ ## Orphan Objects
29
+
30
+ None
31
+
32
+ ## Missing Targets
33
+
34
+ None
35
+
36
+ ## Research Without Derived Or Inspired Rules
37
+
38
+ None
39
+
40
+ ## Rules Without Research
41
+
42
+ None
43
+
44
+ ## Prompts Without Knowledge References
45
+
46
+ None
47
+
48
+ ## Reference Projects Without Validates Relationships
49
+
50
+ None
51
+
52
+ ## Most Connected Objects
53
+
54
+ - PROMPT-PROTOTYPE-REVIEW / PROMPT-00002 Prototype Review Prompt: 25
55
+ - CHECK-DESIGN-QA / CHECK-00001 Design QA Checklist: 22
56
+ - PROMPT-TODO-BENCHMARK / PROMPT-00003 Todo App Benchmark Prompt: 18
57
+ - REF-TODO-BENCHMARK / REF-00001 Todo App Benchmark Reference Project: 16
58
+ - PAT-002 / PAT-00002 Quick Capture: 15
59
+ - PAT-005 / PAT-00005 Context-Preserving Preview: 13
60
+ - PAT-006 / PAT-00006 Object Status List: 13
61
+ - UX-003 / RULE-00007 Preserve Context During Inspection: 13
62
+ - PAT-001 / PAT-00001 Daily Home Surface: 12
63
+ - A11Y-001 / RULE-00009 44x44 Touch Targets: 12
64
+
65
+ ## Patterns Without Required Rules
66
+
67
+ None
68
+
69
+ ## Rules Not Used By Any Pattern
70
+
71
+ None
@@ -0,0 +1,23 @@
1
+ # Observations
2
+
3
+ Observations are raw evidence before synthesis.
4
+
5
+ Use observations to capture product behavior, review findings, screenshots, implementation outcomes, or failure modes before they become research.
6
+
7
+ ## Object Format
8
+
9
+ Observation objects should follow `schema/observation.schema.json`.
10
+
11
+ Use `templates/OBSERVATION_TEMPLATE.md` for new observations.
12
+
13
+ ## Graph Role
14
+
15
+ ```text
16
+ observation -> research -> knowledge -> rules -> patterns -> prompts -> reference projects -> reviews
17
+ ```
18
+
19
+ Observations are usually connected with `derived_from` relationships when research absorbs them.
20
+
21
+ ## Contribution Rule
22
+
23
+ Do not turn an observation into a rule until it has been grouped into research and reviewed for reuse.
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: OBS-00004
3
+ alias: OBS-A11Y-REDUCED-MOTION
4
+ slug: wcag-reduced-interaction-motion
5
+ title: Reduced Interaction Motion
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: accessibility
10
+ tags:
11
+ - accessibility
12
+ - motion
13
+ - reduced-motion
14
+ created_at: 2026-07-14
15
+ updated_at: 2026-07-14
16
+ last_reviewed_at: 2026-07-14
17
+ owner: ai-design-rules
18
+ maturity: seed
19
+ risk_level: high
20
+ platform:
21
+ - web
22
+ product_type:
23
+ - consumer
24
+ surface:
25
+ - interaction-transition
26
+ applies_to:
27
+ - non-essential-motion
28
+ does_not_apply_to:
29
+ - essential-motion-that-conveys-required-information
30
+ relationships: []
31
+ ---
32
+
33
+ # Reduced Interaction Motion
34
+
35
+ ## Source
36
+
37
+ W3C WCAG 2.2, Understanding Success Criterion 2.3.3: Animation from Interactions.
38
+
39
+ ## Observed Behavior
40
+
41
+ Non-essential motion initiated by an interaction can distract or make people ill. Interfaces can avoid it, offer a control, or respect a reduced-motion preference; movement essential to the information or function is an exception.
42
+
43
+ ## Why It May Matter
44
+
45
+ Motion should never be an undisclosed dependency for using a product. Treating reduced motion as an explicit state preserves orientation without forcing decorative animation into interfaces that do not need it.
46
+
47
+ ## Evidence
48
+
49
+ - https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: OBS-00001
3
+ alias: OBS-A11Y-ERROR-RECOVERY
4
+ slug: wcag-textual-error-recovery
5
+ title: Textual Error Recovery
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: accessibility
10
+ tags:
11
+ - accessibility
12
+ - errors
13
+ - forms
14
+ created_at: 2026-07-14
15
+ updated_at: 2026-07-14
16
+ last_reviewed_at: 2026-07-14
17
+ owner: ai-design-rules
18
+ maturity: seed
19
+ risk_level: high
20
+ platform:
21
+ - web
22
+ product_type:
23
+ - consumer
24
+ surface:
25
+ - form
26
+ applies_to:
27
+ - input-validation
28
+ - submission-errors
29
+ does_not_apply_to:
30
+ - server-error-details-that-expose-sensitive-data
31
+ relationships: []
32
+ ---
33
+
34
+ # Textual Error Recovery
35
+
36
+ ## Source
37
+
38
+ W3C WCAG 2.2, Understanding Success Criterion 3.3.1: Error Identification.
39
+
40
+ ## Observed Behavior
41
+
42
+ When an input error is detected, the affected input and the nature of the error are described in text. Color, icons, or styling may reinforce the message but do not replace it. A useful message can also state how to correct the value.
43
+
44
+ ## Why It May Matter
45
+
46
+ Users need to know what failed and what to change without relying on color perception or visual scanning. Field-specific text enables recovery for assistive-technology users and reduces repeated, blind resubmission.
47
+
48
+ ## Evidence
49
+
50
+ - https://www.w3.org/WAI/WCAG22/Understanding/error-identification
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: OBS-00003
3
+ alias: OBS-A11Y-FOCUS-VISIBLE
4
+ slug: wcag-visible-keyboard-focus
5
+ title: Visible Keyboard Focus
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: accessibility
10
+ tags:
11
+ - accessibility
12
+ - keyboard
13
+ - focus
14
+ created_at: 2026-07-14
15
+ updated_at: 2026-07-14
16
+ last_reviewed_at: 2026-07-14
17
+ owner: ai-design-rules
18
+ maturity: seed
19
+ risk_level: high
20
+ platform:
21
+ - web
22
+ product_type:
23
+ - consumer
24
+ surface:
25
+ - interactive-controls
26
+ applies_to:
27
+ - keyboard-operable-controls
28
+ does_not_apply_to:
29
+ - non-interactive-content
30
+ relationships: []
31
+ ---
32
+
33
+ # Visible Keyboard Focus
34
+
35
+ ## Source
36
+
37
+ W3C WCAG 2.2, Understanding Success Criterion 2.4.7: Focus Visible.
38
+
39
+ ## Observed Behavior
40
+
41
+ Keyboard-operable controls retain a visible focus indicator while focused. Removing or visually hiding browser focus leaves keyboard users unable to determine where their next action will apply.
42
+
43
+ ## Why It May Matter
44
+
45
+ Focus is a state in the user journey, not a decoration. A visible, persistent indicator lets keyboard users complete capture and recovery flows without guessing which control is active.
46
+
47
+ ## Evidence
48
+
49
+ - https://www.w3.org/WAI/WCAG22/Understanding/focus-visible
@@ -0,0 +1,56 @@
1
+ ---
2
+ id: OBS-00015
3
+ alias: OBS-AGENT-CONSEQUENTIAL-CONTROLS
4
+ slug: agent-consequential-action-controls
5
+ title: Agentic Systems Gate Consequential Actions With Control And Auditability
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: ux
10
+ tags:
11
+ - ai
12
+ - agentic-ui
13
+ - confirmation
14
+ - audit
15
+ created_at: 2026-08-12
16
+ updated_at: 2026-08-12
17
+ last_reviewed_at: 2026-08-12
18
+ owner: ai-design-rules
19
+ maturity: seed
20
+ risk_level: high
21
+ platform:
22
+ - web
23
+ product_type:
24
+ - ai-tool
25
+ - productivity
26
+ surface:
27
+ - agent-workflow
28
+ - permissions
29
+ applies_to:
30
+ - delegated-consequential-actions
31
+ does_not_apply_to:
32
+ - read-only-summaries
33
+ relationships: []
34
+ ---
35
+
36
+ # Agentic Systems Gate Consequential Actions With Control And Auditability
37
+
38
+ ## Source
39
+
40
+ OpenAI ChatGPT agent, OpenAI Codex safety, Microsoft agent design guidance, Microsoft HAX, and Google PAIR guidance.
41
+
42
+ ## Observed Behavior
43
+
44
+ Current agentic systems make higher-risk actions explicit through permission prompts, interruption, takeover, sandbox boundaries, approval policies, observable progress, and logs. Human-centered AI guidance also emphasizes lifecycle design, user ownership, correction paths, expectation setting, and recovery when AI output is wrong.
45
+
46
+ ## Why It May Matter
47
+
48
+ As agents move from advice to action, design systems need rules for consequence-aware control. A generic confirm dialog is not enough when the user must understand scope, source context, side effects, reversibility, and audit trail.
49
+
50
+ ## Evidence
51
+
52
+ - https://openai.com/index/introducing-chatgpt-agent/
53
+ - https://openai.com/index/running-codex-safely/
54
+ - https://learn.microsoft.com/en-us/agents/design-guidelines/human-centered-design
55
+ - https://www.microsoft.com/en-us/haxtoolkit/ai-guidelines/
56
+ - https://pair.withgoogle.com/guidebook-v2/
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: OBS-00011
3
+ alias: OBS-AGENT-WORK-VISIBILITY
4
+ slug: agent-work-visibility-and-intervention
5
+ title: Agentic Workflows Need Visible Status And Intervention
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: ux
10
+ tags:
11
+ - ai
12
+ - agentic-ui
13
+ - status
14
+ - trust
15
+ created_at: 2026-07-24
16
+ updated_at: 2026-07-24
17
+ last_reviewed_at: 2026-07-24
18
+ owner: ai-design-rules
19
+ maturity: seed
20
+ risk_level: high
21
+ platform:
22
+ - web
23
+ product_type:
24
+ - ai-tool
25
+ - productivity
26
+ surface:
27
+ - agent-workflow
28
+ applies_to:
29
+ - delegated-and-long-running-work
30
+ does_not_apply_to:
31
+ - instant-deterministic-actions
32
+ relationships: []
33
+ ---
34
+
35
+ # Agentic Workflows Need Visible Status And Intervention
36
+
37
+ ## Source
38
+
39
+ Figma's 2026 case study on the design of agentic work tools.
40
+
41
+ ## Observed Behavior
42
+
43
+ The studied workflow moves beyond a prompt thread to a dashboard of active, completed, review-ready, and intervention-required work. It keeps the user's goal primary while making it clear where people can inspect or interrupt agent activity.
44
+
45
+ ## Why It May Matter
46
+
47
+ Delegated work becomes difficult to trust when progress, scope, and intervention points are hidden. Agentic interfaces need observable state and recovery behavior, not only conversational output.
48
+
49
+ ## Evidence
50
+
51
+ - https://www.figma.com/blog/how-to-design-agentic-tools-for-work/
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: OBS-00010
3
+ alias: OBS-FIGMA-AGENT-CONTEXT
4
+ slug: figma-agent-context-and-skills
5
+ title: Design Agents Improve Through Real Context And Reusable Skills
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: product
10
+ tags:
11
+ - ai
12
+ - agent
13
+ - context
14
+ - skills
15
+ created_at: 2026-07-24
16
+ updated_at: 2026-07-24
17
+ last_reviewed_at: 2026-07-24
18
+ owner: ai-design-rules
19
+ maturity: seed
20
+ risk_level: medium
21
+ platform:
22
+ - web
23
+ product_type:
24
+ - ai-tool
25
+ - productivity
26
+ surface:
27
+ - agent-workflow
28
+ applies_to:
29
+ - design-agent-context
30
+ does_not_apply_to:
31
+ - context-free-style-generation
32
+ relationships: []
33
+ ---
34
+
35
+ # Design Agents Improve Through Real Context And Reusable Skills
36
+
37
+ ## Source
38
+
39
+ Figma's 2026 design agent and Config announcements.
40
+
41
+ ## Observed Behavior
42
+
43
+ Figma lets the design agent use file structure, components, tokens, attachments, web research, connectors, and reusable team skills. Prompt history is also treated as shared process context rather than only disposable chat.
44
+
45
+ ## Why It May Matter
46
+
47
+ Prompt wording alone cannot reliably carry product identity. Agents need scoped project evidence, reusable design decisions, and direct access to the system they are expected to apply.
48
+
49
+ ## Evidence
50
+
51
+ - https://www.figma.com/blog/agent-custom-tools-context-skills/
52
+ - https://www.figma.com/blog/the-figma-canvas-is-now-open-to-agents/
@@ -0,0 +1,55 @@
1
+ ---
2
+ id: OBS-00013
3
+ alias: OBS-WALLET-RISK-RECOVERY
4
+ slug: high-risk-wallet-recovery-flows
5
+ title: Wallet Flows Preserve Context Through Risk Gates
6
+ object_type: observation
7
+ status: draft
8
+ version: 0.1.0
9
+ category: ux
10
+ tags:
11
+ - finance
12
+ - wallet
13
+ - recovery
14
+ - confirmation
15
+ created_at: 2026-08-12
16
+ updated_at: 2026-08-12
17
+ last_reviewed_at: 2026-08-12
18
+ owner: ai-design-rules
19
+ maturity: seed
20
+ risk_level: high
21
+ platform:
22
+ - web
23
+ product_type:
24
+ - fintech
25
+ - wallet
26
+ surface:
27
+ - withdrawal
28
+ - authentication
29
+ - recovery
30
+ applies_to:
31
+ - consequential-user-actions
32
+ does_not_apply_to:
33
+ - low-risk-preference-changes
34
+ relationships: []
35
+ ---
36
+
37
+ # Wallet Flows Preserve Context Through Risk Gates
38
+
39
+ ## Source
40
+
41
+ Wallet product design review note captured on 2026-08-12.
42
+
43
+ ## Observed Behavior
44
+
45
+ The wallet design guidance treats withdrawal, KYC, 2FA, passkey, activation, and backend error states as separate recoverable flows. Challenged withdrawals keep provider, amount, and requisites visible and unchanged, then retry with only the server-requested confirmation field added. Backend error codes are stripped from user copy, but useful backend-provided recovery messages are preserved.
46
+
47
+ ## Why It May Matter
48
+
49
+ High-risk flows become less safe when confirmations erase context, hide the object being acted on, or collapse distinct risk gates into generic error UI. Users need to verify exactly what will happen and recover without re-entering unrelated data.
50
+
51
+ ## Evidence
52
+
53
+ - Wallet design-decision note captured on 2026-08-12.
54
+ - Wallet product-requirement note captured on 2026-08-12.
55
+ - Wallet implementation-planning note captured on 2026-08-12.