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.
- package/AGENTS.md +156 -0
- package/CHANGELOG.md +71 -0
- package/CODE_OF_CONDUCT.md +29 -0
- package/CONTRIBUTING.md +128 -0
- package/LICENSE +21 -0
- package/README.md +283 -0
- package/RELEASE_NOTES_v0.1.0.md +45 -0
- package/RELEASE_NOTES_v0.3.0.md +47 -0
- package/RELEASE_NOTES_v0.4.0.md +29 -0
- package/RELEASE_READINESS.md +107 -0
- package/ROADMAP.md +60 -0
- package/SECURITY.md +40 -0
- package/assets/logo.svg +9 -0
- package/benchmarks/README.md +19 -0
- package/benchmarks/chat.md +37 -0
- package/benchmarks/mobile-home-screen.md +38 -0
- package/benchmarks/notes-app.md +37 -0
- package/benchmarks/settings.md +37 -0
- package/benchmarks/shopping-list.md +37 -0
- package/benchmarks/todo-app.md +144 -0
- package/checklists/DESIGN_QA.md +102 -0
- package/checklists/GENERATED_INDEX.md +7 -0
- package/docs/AGENT_CONTEXT.md +111 -0
- package/docs/BENCHMARK.md +170 -0
- package/docs/DESIGNLINT_READINESS.md +110 -0
- package/docs/DESIGN_SYSTEM.md +23 -0
- package/docs/EVALUATION_RUBRIC.md +154 -0
- package/docs/GITHUB_SETUP.md +28 -0
- package/docs/GLOSSARY.md +45 -0
- package/docs/INDEX.md +109 -0
- package/docs/KNOWLEDGE_ENGINE.md +594 -0
- package/docs/MOBILE_FIRST.md +18 -0
- package/docs/NPM_RELEASE.md +43 -0
- package/docs/PATTERN_SPEC.md +113 -0
- package/docs/PHILOSOPHY.md +25 -0
- package/docs/PRODUCT_THINKING.md +26 -0
- package/docs/STYLE_GUIDE.md +49 -0
- package/docs/TRACEABILITY.md +45 -0
- package/evidence/README.md +64 -0
- package/evidence/TEMPLATE.md +46 -0
- package/evidence/chat/.gitkeep +1 -0
- package/evidence/mobile-home/.gitkeep +1 -0
- package/evidence/notes/.gitkeep +1 -0
- package/evidence/settings/.gitkeep +1 -0
- package/evidence/shopping/.gitkeep +1 -0
- package/evidence/todo/.gitkeep +1 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/EVALUATION.md +66 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/README.md +40 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/generated-output.md +163 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/metadata.json +38 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/notes.md +20 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/prompt.md +16 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/ai-design-rules/scores.md +18 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/baseline/generated-output.md +98 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/baseline/metadata.json +19 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/baseline/notes.md +19 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/baseline/prompt.md +9 -0
- package/evidence/todo/2026-06-25-codex-gpt-5/baseline/scores.md +18 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/EVALUATION.md +70 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/README.md +52 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/GENERATION_NOTES.md +133 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/app.js +289 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/context-preserving-preview.json +443 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/daily-home-surface.json +373 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/quick-capture.json +301 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/context/sources-read.txt +36 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/generated-output.md +11 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/index.html +64 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/launch-prompt.md +1 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/metadata.json +55 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/notes.md +15 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/parent-status-message.md +1 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/prompt.md +49 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/runtime-checks.json +776 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/scores.md +20 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-completed.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-default.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-detail-reduced-motion.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-detail.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-empty.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-keyboard-focus.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-save-error.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-saved.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-saving.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/desktop-validation.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-completed.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-default.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-detail-reduced-motion.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-detail.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-empty.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-keyboard-focus.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-save-error.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-saved.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-saving.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/screenshots/mobile-validation.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/source-hashes.json +5 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/ai-design-rules/styles.css +122 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/GENERATION_NOTES.md +86 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/app.js +303 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/generated-output.md +11 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/index.html +71 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/launch-prompt.md +1 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/metadata.json +55 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/notes.md +15 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/parent-status-message.md +1 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/prompt.md +49 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/runtime-checks.json +772 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/scores.md +20 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-completed.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-default.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-detail-reduced-motion.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-detail.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-empty.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-keyboard-focus.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-save-error.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-saved.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-saving.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/desktop-validation.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-completed.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-default.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-detail-reduced-motion.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-detail.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-empty.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-keyboard-focus.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-save-error.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-saved.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-saving.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/screenshots/mobile-validation.png +0 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/source-hashes.json +5 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/baseline/styles.css +9 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/capture-ai-design-rules.js +60 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/capture-baseline.js +60 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/brief.md +35 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/knowledge-files.json +127 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/knowledge.patch +890 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/review-context.json +550 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/seed.json +86 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/setup.json +47 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/common/technical-envelope.md +11 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/layout-metrics.json +133 -0
- package/evidence/todo/2026-09-28-codex-paired-todo/layout-probe.js +15 -0
- package/examples/GENERATED_INDEX.md +8 -0
- package/examples/INDEX.md +16 -0
- package/examples/README.md +15 -0
- package/examples/consequential-action-confirmation-reference.md +83 -0
- package/examples/todo-app-benchmark.md +117 -0
- package/examples/todo-reference/README.md +29 -0
- package/examples/todo-reference/app.js +154 -0
- package/examples/todo-reference/favicon.svg +4 -0
- package/examples/todo-reference/index.html +67 -0
- package/examples/todo-reference/review-evidence/2026-07-15/desktop-default.png +0 -0
- package/examples/todo-reference/review-evidence/2026-07-15/desktop-detail.png +0 -0
- package/examples/todo-reference/review-evidence/2026-07-15/mobile-detail.png +0 -0
- package/examples/todo-reference/review-evidence/2026-07-15/mobile-error.png +0 -0
- package/examples/todo-reference/styles.css +241 -0
- package/graph/GENERATED_GRAPH.md +71 -0
- package/observations/README.md +23 -0
- package/observations/accessibility/reduced-interaction-motion.md +49 -0
- package/observations/accessibility/textual-error-recovery.md +50 -0
- package/observations/accessibility/visible-keyboard-focus.md +49 -0
- package/observations/ai/agent-consequential-action-controls.md +56 -0
- package/observations/ai/agent-work-visibility-and-intervention.md +51 -0
- package/observations/ai/figma-agent-context-and-skills.md +52 -0
- package/observations/finance/high-risk-wallet-recovery-flows.md +55 -0
- package/observations/finance/market-interface-adaptive-trading-surfaces.md +55 -0
- package/observations/interaction/chrome-scoped-view-transitions.md +52 -0
- package/observations/interaction/figma-motion-as-system-capability.md +53 -0
- package/observations/mobile/mobile-bottom-sheet-choice-contracts.md +55 -0
- package/observations/performance/reserved-loading-space.md +51 -0
- package/observations/product-repos/pinned-ai-design-rules-integration.md +49 -0
- package/observations/visual/apple-liquid-glass-functional-layer.md +52 -0
- package/observations/visual/chrome-content-first-adaptive-ui.md +51 -0
- package/observations/visual/material-3-expressive-system.md +52 -0
- package/package.json +65 -0
- package/patterns/GENERATED_INDEX.md +13 -0
- package/patterns/INDEX.md +41 -0
- package/patterns/README.md +5 -0
- package/patterns/consequential-action-confirmation.md +127 -0
- package/patterns/context-preserving-preview.md +145 -0
- package/patterns/daily-home-surface.md +134 -0
- package/patterns/mobile-primary-action.md +110 -0
- package/patterns/object-status-list.md +114 -0
- package/patterns/progressive-detail.md +113 -0
- package/patterns/quick-capture.md +132 -0
- package/prompts/CONSEQUENTIAL_ACTION_REVIEW.md +100 -0
- package/prompts/DESIGN_EVIDENCE_REVIEW.md +49 -0
- package/prompts/GENERATED_INDEX.md +11 -0
- package/prompts/INDEX.md +24 -0
- package/prompts/PROTOTYPE_REVIEW.md +189 -0
- package/prompts/QUICK_CAPTURE_STATE_REVIEW.md +74 -0
- package/prompts/TODO_APP_BENCHMARK.md +88 -0
- package/registry/objects.json +568 -0
- package/registry/relationships.json +972 -0
- package/research/GENERATED_INDEX.md +18 -0
- package/research/INDEX.md +40 -0
- package/research/accessibility/keyboard-focus-and-interaction-motion.md +62 -0
- package/research/accessibility/textual-error-recovery.md +57 -0
- package/research/performance/reserved-loading-space.md +56 -0
- package/research/products/apple-reminders.md +59 -0
- package/research/products/arc.md +61 -0
- package/research/products/linear.md +62 -0
- package/research/products/telegram.md +61 -0
- package/research/products/things-3.md +60 -0
- package/research/ux/contextual-agentic-interface.md +68 -0
- package/research/ux/high-risk-operational-flows.md +89 -0
- package/research/ux/motion-as-state-continuity.md +71 -0
- package/research/visual/expressive-system-ui-2026.md +75 -0
- package/reviews/GENERATED_INDEX.md +9 -0
- package/reviews/README.md +25 -0
- package/reviews/consequential-action-confirmation-review.md +92 -0
- package/reviews/todo-app-benchmark-reference-review.md +86 -0
- package/reviews/todo-reference-fixture-review.md +77 -0
- package/rules/GENERATED_INDEX.md +23 -0
- package/rules/INDEX.md +37 -0
- package/rules/accessibility/A11Y-001.md +58 -0
- package/rules/accessibility/A11Y-002.md +55 -0
- package/rules/accessibility/A11Y-003.md +54 -0
- package/rules/accessibility/A11Y-004.md +54 -0
- package/rules/ia/IA-001.md +60 -0
- package/rules/ia/IA-002.md +61 -0
- package/rules/performance/PERF-001.md +55 -0
- package/rules/product/PRD-001.md +61 -0
- package/rules/product/PRD-002.md +61 -0
- package/rules/ux/UX-001.md +58 -0
- package/rules/ux/UX-002.md +61 -0
- package/rules/ux/UX-003.md +60 -0
- package/rules/ux/UX-004.md +61 -0
- package/rules/ux/UX-005.md +62 -0
- package/rules/ux/UX-006.md +69 -0
- package/rules/visual/VIS-001.md +59 -0
- package/rules/visual/VIS-002.md +59 -0
- package/schema/checklist.schema.json +21 -0
- package/schema/common.schema.json +178 -0
- package/schema/observation.schema.json +21 -0
- package/schema/pattern.schema.json +21 -0
- package/schema/prompt.schema.json +21 -0
- package/schema/reference-project.schema.json +21 -0
- package/schema/research.schema.json +21 -0
- package/schema/review.schema.json +21 -0
- package/schema/rule.schema.json +21 -0
- package/skills/README.md +48 -0
- package/skills/accessibility-reviewer/SKILL.md +101 -0
- package/skills/agent-context/SKILL.md +34 -0
- package/skills/agent-context/agents/openai.yaml +4 -0
- package/skills/design-evidence-researcher/SKILL.md +47 -0
- package/skills/design-evidence-researcher/agents/openai.yaml +4 -0
- package/skills/design-reviewer/SKILL.md +113 -0
- package/skills/design-system-architect/SKILL.md +101 -0
- package/skills/information-architect/SKILL.md +97 -0
- package/skills/interaction-designer/SKILL.md +104 -0
- package/skills/knowledge-graph-architect/SKILL.md +96 -0
- package/skills/mobile-ux-expert/SKILL.md +105 -0
- package/skills/motion-designer/SKILL.md +100 -0
- package/skills/performance-reviewer/SKILL.md +97 -0
- package/skills/product-designer/SKILL.md +104 -0
- package/skills/prompt-architect/SKILL.md +105 -0
- package/skills/reference-driven-design/SKILL.md +119 -0
- package/skills/ux-reviewer/SKILL.md +99 -0
- package/skills/visual-designer/SKILL.md +107 -0
- package/starter-kit/AGENTS.md +37 -0
- package/starter-kit/BOOTSTRAP.md +13 -0
- package/starter-kit/INSTALL_WITH_AGENT.md +133 -0
- package/starter-kit/PROJECT_INTEGRATION.md +60 -0
- package/starter-kit/README.md +41 -0
- package/starter-kit/benchmarks/BENCHMARK_CHECKLIST.md +10 -0
- package/starter-kit/docs/DESIGN_DECISIONS.md +22 -0
- package/starter-kit/docs/INFORMATION_ARCHITECTURE.md +25 -0
- package/starter-kit/docs/PERSONAS.md +14 -0
- package/starter-kit/docs/PRD.md +32 -0
- package/starter-kit/docs/USER_FLOWS.md +19 -0
- package/starter-kit/reviews/DESIGN_REVIEW.md +49 -0
- package/starter-kit/templates/FEATURE_TEMPLATE.md +36 -0
- package/starter-kit/templates/TASK_TEMPLATE.md +22 -0
- package/templates/CHECKLIST_TEMPLATE.md +43 -0
- package/templates/OBSERVATION_TEMPLATE.md +41 -0
- package/templates/PATTERN_TEMPLATE.md +100 -0
- package/templates/PROMPT_TEMPLATE.md +46 -0
- package/templates/PROTOTYPE_REVIEW.md +50 -0
- package/templates/REFERENCE_PROJECT_TEMPLATE.md +49 -0
- package/templates/REVIEW_TEMPLATE.md +55 -0
- package/templates/RULE_TEMPLATE.md +57 -0
- package/tools/cli.mjs +46 -0
- package/tools/context.mjs +342 -0
- package/tools/designlint.mjs +77 -0
- package/tools/generate-indexes.mjs +621 -0
- package/tools/init.mjs +99 -0
- package/tools/validate-benchmark-evidence.mjs +248 -0
- 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.
|