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,776 @@
1
+ {
2
+ "variant": "ai-design-rules",
3
+ "errors": [],
4
+ "reports": [
5
+ {
6
+ "viewport": "mobile",
7
+ "artifacts": [
8
+ "ai-design-rules/screenshots/mobile-default.png",
9
+ "ai-design-rules/screenshots/mobile-empty.png",
10
+ "ai-design-rules/screenshots/mobile-saving.png",
11
+ "ai-design-rules/screenshots/mobile-save-error.png",
12
+ "ai-design-rules/screenshots/mobile-saved.png",
13
+ "ai-design-rules/screenshots/mobile-completed.png",
14
+ "ai-design-rules/screenshots/mobile-detail.png",
15
+ "ai-design-rules/screenshots/mobile-detail-reduced-motion.png",
16
+ "ai-design-rules/screenshots/mobile-keyboard-focus.png",
17
+ "ai-design-rules/screenshots/mobile-validation.png"
18
+ ],
19
+ "checks": {
20
+ "initial": {
21
+ "count": 12,
22
+ "overflow": false,
23
+ "inputBox": {
24
+ "x": 52,
25
+ "y": 754.5,
26
+ "width": 242.546875,
27
+ "height": 44
28
+ }
29
+ },
30
+ "targets": [
31
+ {
32
+ "label": "Skip to tasks",
33
+ "width": 124.453125,
34
+ "height": 56
35
+ },
36
+ {
37
+ "label": "\u2600 Today 11",
38
+ "width": 123.09375,
39
+ "height": 44
40
+ },
41
+ {
42
+ "label": "\u2261 All tasks 11",
43
+ "width": 135.140625,
44
+ "height": 44
45
+ },
46
+ {
47
+ "label": "Complete: Book dentist appointment",
48
+ "width": 44,
49
+ "height": 52
50
+ },
51
+ {
52
+ "label": "Details: Book dentist appointment",
53
+ "width": 306,
54
+ "height": 63.796875
55
+ },
56
+ {
57
+ "label": "Complete: Pick up parcel",
58
+ "width": 44,
59
+ "height": 52
60
+ },
61
+ {
62
+ "label": "Details: Pick up parcel",
63
+ "width": 306,
64
+ "height": 59
65
+ },
66
+ {
67
+ "label": "Complete: Reply to Maya",
68
+ "width": 44,
69
+ "height": 52
70
+ },
71
+ {
72
+ "label": "Details: Reply to Maya",
73
+ "width": 306,
74
+ "height": 59
75
+ },
76
+ {
77
+ "label": "Complete: Pay electricity bill",
78
+ "width": 44,
79
+ "height": 52
80
+ },
81
+ {
82
+ "label": "Details: Pay electricity bill",
83
+ "width": 306,
84
+ "height": 59
85
+ },
86
+ {
87
+ "label": "Complete: Fix bicycle light",
88
+ "width": 44,
89
+ "height": 52
90
+ },
91
+ {
92
+ "label": "Details: Fix bicycle light",
93
+ "width": 306,
94
+ "height": 59
95
+ },
96
+ {
97
+ "label": "Complete: Water the plants",
98
+ "width": 44,
99
+ "height": 52
100
+ },
101
+ {
102
+ "label": "Details: Water the plants",
103
+ "width": 306,
104
+ "height": 59
105
+ },
106
+ {
107
+ "label": "Complete: Read chapter twelve",
108
+ "width": 44,
109
+ "height": 52
110
+ },
111
+ {
112
+ "label": "Details: Read chapter twelve",
113
+ "width": 306,
114
+ "height": 59
115
+ },
116
+ {
117
+ "label": "Complete: Plan weekend walk",
118
+ "width": 44,
119
+ "height": 52
120
+ },
121
+ {
122
+ "label": "Details: Plan weekend walk",
123
+ "width": 306,
124
+ "height": 59
125
+ },
126
+ {
127
+ "label": "Complete: Return library book",
128
+ "width": 44,
129
+ "height": 52
130
+ },
131
+ {
132
+ "label": "Details: Return library book",
133
+ "width": 306,
134
+ "height": 59
135
+ },
136
+ {
137
+ "label": "Complete: Take out recycling",
138
+ "width": 44,
139
+ "height": 52
140
+ },
141
+ {
142
+ "label": "Details: Take out recycling",
143
+ "width": 306,
144
+ "height": 59
145
+ },
146
+ {
147
+ "label": "Complete: Order coffee beans",
148
+ "width": 44,
149
+ "height": 52
150
+ },
151
+ {
152
+ "label": "Details: Order coffee beans",
153
+ "width": 306,
154
+ "height": 59
155
+ },
156
+ {
157
+ "label": "\u2304 Completed 1",
158
+ "width": 120.109375,
159
+ "height": 44
160
+ },
161
+ {
162
+ "label": "Mark incomplete: Stretch for ten minutes",
163
+ "width": 44,
164
+ "height": 52
165
+ },
166
+ {
167
+ "label": "Details: Stretch for ten minutes",
168
+ "width": 306,
169
+ "height": 59
170
+ },
171
+ {
172
+ "label": "task-title",
173
+ "width": 242.546875,
174
+ "height": 44
175
+ },
176
+ {
177
+ "label": "Add",
178
+ "width": 62.453125,
179
+ "height": 44
180
+ }
181
+ ],
182
+ "saving": {
183
+ "input": "Buy apples",
184
+ "beforeBox": {
185
+ "x": 52,
186
+ "y": 754.5,
187
+ "width": 242.546875,
188
+ "height": 44
189
+ },
190
+ "afterBox": {
191
+ "x": 52,
192
+ "y": 754.5,
193
+ "width": 207.78125,
194
+ "height": 44
195
+ },
196
+ "submitDisabled": true,
197
+ "tasks": 12
198
+ },
199
+ "failedSave": {
200
+ "input": "Buy apples",
201
+ "tasks": 12,
202
+ "feedback": "Task wasn\u2019t saved. Your title is kept. Try again."
203
+ },
204
+ "retry": {
205
+ "matchingTasks": 1,
206
+ "feedback": "Task added to Today."
207
+ },
208
+ "completed": {
209
+ "completed": true,
210
+ "focus": {
211
+ "tag": "BUTTON",
212
+ "id": "",
213
+ "label": "Mark incomplete: Book dentist appointment",
214
+ "text": "\u2713",
215
+ "scrollY": 414
216
+ }
217
+ },
218
+ "detail": {
219
+ "sourceScroll": 415,
220
+ "open": true,
221
+ "title": "Order coffee beans",
222
+ "focus": {
223
+ "tag": "BUTTON",
224
+ "id": "close-detail",
225
+ "label": "Close task details",
226
+ "text": "\u00d7",
227
+ "scrollY": 415
228
+ }
229
+ },
230
+ "detailClose": {
231
+ "focus": {
232
+ "tag": "BUTTON",
233
+ "id": "",
234
+ "label": "Details: Order coffee beans",
235
+ "text": "Order coffee beans\u203a",
236
+ "scrollY": 415
237
+ },
238
+ "sourceFocused": true,
239
+ "scrollDelta": 0
240
+ },
241
+ "interruption": {
242
+ "open": false,
243
+ "focus": {
244
+ "tag": "BUTTON",
245
+ "id": "",
246
+ "label": "Details: Order coffee beans",
247
+ "text": "Order coffee beans\u203a",
248
+ "scrollY": 415
249
+ }
250
+ },
251
+ "reducedMotion": {
252
+ "title": "Order coffee beans",
253
+ "focus": {
254
+ "tag": "BUTTON",
255
+ "id": "close-detail",
256
+ "label": "Close task details",
257
+ "text": "\u00d7",
258
+ "scrollY": 415
259
+ },
260
+ "animations": 0
261
+ },
262
+ "editFailure": {
263
+ "draft": "Call before 10 am.",
264
+ "saved": "Ask about a morning appointment.",
265
+ "feedback": "Changes weren\u2019t saved. Your edits are kept. Choose Save changes to retry."
266
+ },
267
+ "editRetry": {
268
+ "saved": "Call before 10 am."
269
+ },
270
+ "persistence": "Call before 10 am.",
271
+ "keyboard": {
272
+ "tabsToCapture": 29,
273
+ "focus": {
274
+ "tag": "INPUT",
275
+ "id": "task-title",
276
+ "label": null,
277
+ "text": "",
278
+ "scrollY": 415
279
+ },
280
+ "style": {
281
+ "outline": "rgb(146, 99, 21) solid 3px",
282
+ "shadow": "none"
283
+ }
284
+ },
285
+ "blankValidation": {
286
+ "state": {
287
+ "tasks": [
288
+ {
289
+ "id": "t01",
290
+ "title": "Book dentist appointment",
291
+ "notes": "Ask about a morning appointment.",
292
+ "dueDate": "2026-09-28",
293
+ "completed": false
294
+ },
295
+ {
296
+ "id": "t02",
297
+ "title": "Pick up parcel",
298
+ "notes": "",
299
+ "dueDate": "2026-09-28",
300
+ "completed": false
301
+ },
302
+ {
303
+ "id": "t03",
304
+ "title": "Reply to Maya",
305
+ "notes": "",
306
+ "dueDate": "2026-09-28",
307
+ "completed": false
308
+ },
309
+ {
310
+ "id": "t04",
311
+ "title": "Pay electricity bill",
312
+ "notes": "",
313
+ "dueDate": "2026-09-28",
314
+ "completed": false
315
+ },
316
+ {
317
+ "id": "t05",
318
+ "title": "Fix bicycle light",
319
+ "notes": "",
320
+ "dueDate": "2026-09-28",
321
+ "completed": false
322
+ },
323
+ {
324
+ "id": "t06",
325
+ "title": "Water the plants",
326
+ "notes": "",
327
+ "dueDate": "2026-09-28",
328
+ "completed": false
329
+ },
330
+ {
331
+ "id": "t07",
332
+ "title": "Read chapter twelve",
333
+ "notes": "",
334
+ "dueDate": "2026-09-28",
335
+ "completed": false
336
+ },
337
+ {
338
+ "id": "t08",
339
+ "title": "Plan weekend walk",
340
+ "notes": "",
341
+ "dueDate": "2026-09-28",
342
+ "completed": false
343
+ },
344
+ {
345
+ "id": "t09",
346
+ "title": "Return library book",
347
+ "notes": "",
348
+ "dueDate": "2026-09-28",
349
+ "completed": false
350
+ },
351
+ {
352
+ "id": "t10",
353
+ "title": "Take out recycling",
354
+ "notes": "",
355
+ "dueDate": "2026-09-28",
356
+ "completed": false
357
+ },
358
+ {
359
+ "id": "t11",
360
+ "title": "Order coffee beans",
361
+ "notes": "",
362
+ "dueDate": "2026-09-28",
363
+ "completed": false
364
+ },
365
+ {
366
+ "id": "t12",
367
+ "title": "Stretch for ten minutes",
368
+ "notes": "",
369
+ "dueDate": "2026-09-28",
370
+ "completed": true
371
+ }
372
+ ],
373
+ "view": "today",
374
+ "loading": false,
375
+ "selected": null,
376
+ "status": "error",
377
+ "pending": null,
378
+ "failedOperation": null,
379
+ "saveDelay": 500,
380
+ "failNextSave": false,
381
+ "captureDraft": " ",
382
+ "detailDrafts": {},
383
+ "showCompleted": true
384
+ },
385
+ "feedback": "Task title: enter something you need to do.",
386
+ "nativeMessage": ""
387
+ }
388
+ }
389
+ },
390
+ {
391
+ "viewport": "desktop",
392
+ "artifacts": [
393
+ "ai-design-rules/screenshots/desktop-default.png",
394
+ "ai-design-rules/screenshots/desktop-empty.png",
395
+ "ai-design-rules/screenshots/desktop-saving.png",
396
+ "ai-design-rules/screenshots/desktop-save-error.png",
397
+ "ai-design-rules/screenshots/desktop-saved.png",
398
+ "ai-design-rules/screenshots/desktop-completed.png",
399
+ "ai-design-rules/screenshots/desktop-detail.png",
400
+ "ai-design-rules/screenshots/desktop-detail-reduced-motion.png",
401
+ "ai-design-rules/screenshots/desktop-keyboard-focus.png",
402
+ "ai-design-rules/screenshots/desktop-validation.png"
403
+ ],
404
+ "checks": {
405
+ "initial": {
406
+ "count": 12,
407
+ "overflow": false,
408
+ "inputBox": {
409
+ "x": 521,
410
+ "y": 806.5,
411
+ "width": 641.546875,
412
+ "height": 44
413
+ }
414
+ },
415
+ "targets": [
416
+ {
417
+ "label": "Skip to tasks",
418
+ "width": 124.453125,
419
+ "height": 56
420
+ },
421
+ {
422
+ "label": "\u2600 Today 11",
423
+ "width": 224,
424
+ "height": 54.5
425
+ },
426
+ {
427
+ "label": "\u2261 All tasks 11",
428
+ "width": 224,
429
+ "height": 54.5
430
+ },
431
+ {
432
+ "label": "Complete: Book dentist appointment",
433
+ "width": 48,
434
+ "height": 52
435
+ },
436
+ {
437
+ "label": "Details: Book dentist appointment",
438
+ "width": 720,
439
+ "height": 65.1875
440
+ },
441
+ {
442
+ "label": "Complete: Pick up parcel",
443
+ "width": 48,
444
+ "height": 52
445
+ },
446
+ {
447
+ "label": "Details: Pick up parcel",
448
+ "width": 720,
449
+ "height": 59
450
+ },
451
+ {
452
+ "label": "Complete: Reply to Maya",
453
+ "width": 48,
454
+ "height": 52
455
+ },
456
+ {
457
+ "label": "Details: Reply to Maya",
458
+ "width": 720,
459
+ "height": 59
460
+ },
461
+ {
462
+ "label": "Complete: Pay electricity bill",
463
+ "width": 48,
464
+ "height": 52
465
+ },
466
+ {
467
+ "label": "Details: Pay electricity bill",
468
+ "width": 720,
469
+ "height": 59
470
+ },
471
+ {
472
+ "label": "Complete: Fix bicycle light",
473
+ "width": 48,
474
+ "height": 52
475
+ },
476
+ {
477
+ "label": "Details: Fix bicycle light",
478
+ "width": 720,
479
+ "height": 59
480
+ },
481
+ {
482
+ "label": "Complete: Water the plants",
483
+ "width": 48,
484
+ "height": 52
485
+ },
486
+ {
487
+ "label": "Details: Water the plants",
488
+ "width": 720,
489
+ "height": 59
490
+ },
491
+ {
492
+ "label": "Complete: Read chapter twelve",
493
+ "width": 48,
494
+ "height": 52
495
+ },
496
+ {
497
+ "label": "Details: Read chapter twelve",
498
+ "width": 720,
499
+ "height": 59
500
+ },
501
+ {
502
+ "label": "Complete: Plan weekend walk",
503
+ "width": 48,
504
+ "height": 52
505
+ },
506
+ {
507
+ "label": "Details: Plan weekend walk",
508
+ "width": 720,
509
+ "height": 59
510
+ },
511
+ {
512
+ "label": "Complete: Return library book",
513
+ "width": 48,
514
+ "height": 52
515
+ },
516
+ {
517
+ "label": "Details: Return library book",
518
+ "width": 720,
519
+ "height": 59
520
+ },
521
+ {
522
+ "label": "Complete: Take out recycling",
523
+ "width": 48,
524
+ "height": 52
525
+ },
526
+ {
527
+ "label": "Details: Take out recycling",
528
+ "width": 720,
529
+ "height": 59
530
+ },
531
+ {
532
+ "label": "Complete: Order coffee beans",
533
+ "width": 48,
534
+ "height": 52
535
+ },
536
+ {
537
+ "label": "Details: Order coffee beans",
538
+ "width": 720,
539
+ "height": 59
540
+ },
541
+ {
542
+ "label": "\u2304 Completed 1",
543
+ "width": 120.109375,
544
+ "height": 44
545
+ },
546
+ {
547
+ "label": "Mark incomplete: Stretch for ten minutes",
548
+ "width": 48,
549
+ "height": 52
550
+ },
551
+ {
552
+ "label": "Details: Stretch for ten minutes",
553
+ "width": 720,
554
+ "height": 59
555
+ },
556
+ {
557
+ "label": "task-title",
558
+ "width": 641.546875,
559
+ "height": 44
560
+ },
561
+ {
562
+ "label": "Add",
563
+ "width": 68.453125,
564
+ "height": 44
565
+ }
566
+ ],
567
+ "saving": {
568
+ "input": "Buy apples",
569
+ "beforeBox": {
570
+ "x": 521,
571
+ "y": 806.5,
572
+ "width": 641.546875,
573
+ "height": 44
574
+ },
575
+ "afterBox": {
576
+ "x": 521,
577
+ "y": 806.5,
578
+ "width": 606.78125,
579
+ "height": 44
580
+ },
581
+ "submitDisabled": true,
582
+ "tasks": 12
583
+ },
584
+ "failedSave": {
585
+ "input": "Buy apples",
586
+ "tasks": 12,
587
+ "feedback": "Task wasn\u2019t saved. Your title is kept. Try again."
588
+ },
589
+ "retry": {
590
+ "matchingTasks": 1,
591
+ "feedback": "Task added to Today."
592
+ },
593
+ "completed": {
594
+ "completed": true,
595
+ "focus": {
596
+ "tag": "BUTTON",
597
+ "id": "",
598
+ "label": "Mark incomplete: Book dentist appointment",
599
+ "text": "\u2713",
600
+ "scrollY": 140
601
+ }
602
+ },
603
+ "detail": {
604
+ "sourceScroll": 321,
605
+ "open": true,
606
+ "title": "Order coffee beans",
607
+ "focus": {
608
+ "tag": "BUTTON",
609
+ "id": "close-detail",
610
+ "label": "Close task details",
611
+ "text": "\u00d7",
612
+ "scrollY": 321
613
+ }
614
+ },
615
+ "detailClose": {
616
+ "focus": {
617
+ "tag": "BUTTON",
618
+ "id": "",
619
+ "label": "Details: Order coffee beans",
620
+ "text": "Order coffee beans\u203a",
621
+ "scrollY": 321
622
+ },
623
+ "sourceFocused": true,
624
+ "scrollDelta": 0
625
+ },
626
+ "interruption": {
627
+ "open": false,
628
+ "focus": {
629
+ "tag": "BUTTON",
630
+ "id": "",
631
+ "label": "Details: Order coffee beans",
632
+ "text": "Order coffee beans\u203a",
633
+ "scrollY": 321
634
+ }
635
+ },
636
+ "reducedMotion": {
637
+ "title": "Order coffee beans",
638
+ "focus": {
639
+ "tag": "BUTTON",
640
+ "id": "close-detail",
641
+ "label": "Close task details",
642
+ "text": "\u00d7",
643
+ "scrollY": 321
644
+ },
645
+ "animations": 0
646
+ },
647
+ "editFailure": {
648
+ "draft": "Call before 10 am.",
649
+ "saved": "Ask about a morning appointment.",
650
+ "feedback": "Changes weren\u2019t saved. Your edits are kept. Choose Save changes to retry."
651
+ },
652
+ "editRetry": {
653
+ "saved": "Call before 10 am."
654
+ },
655
+ "persistence": "Call before 10 am.",
656
+ "keyboard": {
657
+ "tabsToCapture": 29,
658
+ "focus": {
659
+ "tag": "INPUT",
660
+ "id": "task-title",
661
+ "label": null,
662
+ "text": "",
663
+ "scrollY": 321
664
+ },
665
+ "style": {
666
+ "outline": "rgb(146, 99, 21) solid 3px",
667
+ "shadow": "none"
668
+ }
669
+ },
670
+ "blankValidation": {
671
+ "state": {
672
+ "tasks": [
673
+ {
674
+ "id": "t01",
675
+ "title": "Book dentist appointment",
676
+ "notes": "Ask about a morning appointment.",
677
+ "dueDate": "2026-09-28",
678
+ "completed": false
679
+ },
680
+ {
681
+ "id": "t02",
682
+ "title": "Pick up parcel",
683
+ "notes": "",
684
+ "dueDate": "2026-09-28",
685
+ "completed": false
686
+ },
687
+ {
688
+ "id": "t03",
689
+ "title": "Reply to Maya",
690
+ "notes": "",
691
+ "dueDate": "2026-09-28",
692
+ "completed": false
693
+ },
694
+ {
695
+ "id": "t04",
696
+ "title": "Pay electricity bill",
697
+ "notes": "",
698
+ "dueDate": "2026-09-28",
699
+ "completed": false
700
+ },
701
+ {
702
+ "id": "t05",
703
+ "title": "Fix bicycle light",
704
+ "notes": "",
705
+ "dueDate": "2026-09-28",
706
+ "completed": false
707
+ },
708
+ {
709
+ "id": "t06",
710
+ "title": "Water the plants",
711
+ "notes": "",
712
+ "dueDate": "2026-09-28",
713
+ "completed": false
714
+ },
715
+ {
716
+ "id": "t07",
717
+ "title": "Read chapter twelve",
718
+ "notes": "",
719
+ "dueDate": "2026-09-28",
720
+ "completed": false
721
+ },
722
+ {
723
+ "id": "t08",
724
+ "title": "Plan weekend walk",
725
+ "notes": "",
726
+ "dueDate": "2026-09-28",
727
+ "completed": false
728
+ },
729
+ {
730
+ "id": "t09",
731
+ "title": "Return library book",
732
+ "notes": "",
733
+ "dueDate": "2026-09-28",
734
+ "completed": false
735
+ },
736
+ {
737
+ "id": "t10",
738
+ "title": "Take out recycling",
739
+ "notes": "",
740
+ "dueDate": "2026-09-28",
741
+ "completed": false
742
+ },
743
+ {
744
+ "id": "t11",
745
+ "title": "Order coffee beans",
746
+ "notes": "",
747
+ "dueDate": "2026-09-28",
748
+ "completed": false
749
+ },
750
+ {
751
+ "id": "t12",
752
+ "title": "Stretch for ten minutes",
753
+ "notes": "",
754
+ "dueDate": "2026-09-28",
755
+ "completed": true
756
+ }
757
+ ],
758
+ "view": "today",
759
+ "loading": false,
760
+ "selected": null,
761
+ "status": "error",
762
+ "pending": null,
763
+ "failedOperation": null,
764
+ "saveDelay": 500,
765
+ "failNextSave": false,
766
+ "captureDraft": " ",
767
+ "detailDrafts": {},
768
+ "showCompleted": true
769
+ },
770
+ "feedback": "Task title: enter something you need to do.",
771
+ "nativeMessage": ""
772
+ }
773
+ }
774
+ }
775
+ ]
776
+ }