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,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PAT-00007
|
|
3
|
+
alias: PAT-007
|
|
4
|
+
slug: consequential-action-confirmation
|
|
5
|
+
title: Consequential Action Confirmation
|
|
6
|
+
object_type: pattern
|
|
7
|
+
status: active
|
|
8
|
+
version: 0.1.0
|
|
9
|
+
category: ux
|
|
10
|
+
tags:
|
|
11
|
+
- ux
|
|
12
|
+
- confirmation
|
|
13
|
+
- recovery
|
|
14
|
+
- finance
|
|
15
|
+
- ai
|
|
16
|
+
maturity: validated
|
|
17
|
+
risk_level: high
|
|
18
|
+
last_reviewed_at: 2026-08-12
|
|
19
|
+
relationships:
|
|
20
|
+
- type: requires
|
|
21
|
+
target: RULE-00017
|
|
22
|
+
- type: requires
|
|
23
|
+
target: RULE-00007
|
|
24
|
+
- type: requires
|
|
25
|
+
target: RULE-00010
|
|
26
|
+
- type: requires
|
|
27
|
+
target: RULE-00016
|
|
28
|
+
- type: related_to
|
|
29
|
+
target: PAT-00005
|
|
30
|
+
- type: related_to
|
|
31
|
+
target: PAT-00006
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Consequential Action Confirmation
|
|
35
|
+
|
|
36
|
+
## Purpose
|
|
37
|
+
|
|
38
|
+
Let users verify and recover from actions with meaningful side effects without losing the object, inputs, or scope they are acting on.
|
|
39
|
+
|
|
40
|
+
## User Goal
|
|
41
|
+
|
|
42
|
+
Make a high-consequence decision with enough context to confirm, cancel, edit, retry, or hand control back from an agent.
|
|
43
|
+
|
|
44
|
+
## Product Context
|
|
45
|
+
|
|
46
|
+
Wallets, trading products, admin tools, account-security flows, publishing flows, destructive durable-data actions, and agentic systems that can act on the user's behalf.
|
|
47
|
+
|
|
48
|
+
## Use When
|
|
49
|
+
|
|
50
|
+
- The action can move money, change account access, publish externally, delete durable data, or affect other people.
|
|
51
|
+
- The action requires 2FA, passkey, KYC, server approval, permissions, or human approval.
|
|
52
|
+
- An agent is about to perform a consequential action outside a read-only summary.
|
|
53
|
+
- The user must compare critical inputs before execution.
|
|
54
|
+
|
|
55
|
+
## Do Not Use When
|
|
56
|
+
|
|
57
|
+
- The action is low-risk, reversible, and better handled with undo.
|
|
58
|
+
- The confirmation would interrupt a safe repeated expert workflow without adding review value.
|
|
59
|
+
- The UI cannot truthfully describe the side effects or recovery path yet.
|
|
60
|
+
- Legal, compliance, security, or trading policy is unclear and must be resolved outside design.
|
|
61
|
+
|
|
62
|
+
## UX Rules
|
|
63
|
+
|
|
64
|
+
- `UX-006` Confirm Consequential Actions With Preserved Context
|
|
65
|
+
- `UX-003` Preserve Context During Inspection
|
|
66
|
+
- `UX-005` Expose Agent Work And Intervention
|
|
67
|
+
|
|
68
|
+
## Accessibility Rules
|
|
69
|
+
|
|
70
|
+
- `A11Y-002` Textual Input Error Recovery
|
|
71
|
+
- `A11Y-001` 44x44 Touch Targets when controls are present
|
|
72
|
+
- `A11Y-003` Visible Keyboard Focus when the confirmation is keyboard-operable
|
|
73
|
+
|
|
74
|
+
## Mobile Behavior
|
|
75
|
+
|
|
76
|
+
Use a focused screen, bottom sheet, or modal that keeps critical context readable: object, amount, recipient, destination, scope, side effects, and primary recovery action. Preserve safe-area spacing and reachable controls. Do not hide the acted-on object behind a generic confirmation title.
|
|
77
|
+
|
|
78
|
+
## Desktop Behavior
|
|
79
|
+
|
|
80
|
+
Use a modal, side panel, inline challenge step, or review page depending on consequence and density. Keep the source context visible when it helps comparison. Dense operational products may use a review pane beside the original form.
|
|
81
|
+
|
|
82
|
+
## Empty State
|
|
83
|
+
|
|
84
|
+
Do not open a confirmation without a selected object or valid action. Show the missing prerequisite and a route back to the required selection or setup step.
|
|
85
|
+
|
|
86
|
+
## Loading State
|
|
87
|
+
|
|
88
|
+
Keep the reviewed object and critical inputs visible while the challenge or submission is pending. Disable only controls that would create duplicate execution. Show cancelability truthfully.
|
|
89
|
+
|
|
90
|
+
## Error State
|
|
91
|
+
|
|
92
|
+
Preserve entered data and add only the missing or failed challenge field. Explain what failed, what remains unchanged, and what the user can do next. Avoid raw backend codes as product copy.
|
|
93
|
+
|
|
94
|
+
## Required Rules
|
|
95
|
+
|
|
96
|
+
- `UX-006` Confirm Consequential Actions With Preserved Context
|
|
97
|
+
- `UX-003` Preserve Context During Inspection
|
|
98
|
+
- `A11Y-002` Textual Input Error Recovery
|
|
99
|
+
- `UX-005` Expose Agent Work And Intervention
|
|
100
|
+
|
|
101
|
+
## Related Research
|
|
102
|
+
|
|
103
|
+
- `research/ux/high-risk-operational-flows.md`
|
|
104
|
+
- `research/ux/contextual-agentic-interface.md`
|
|
105
|
+
- `research/accessibility/textual-error-recovery.md`
|
|
106
|
+
|
|
107
|
+
## Related Patterns
|
|
108
|
+
|
|
109
|
+
- Parent: none
|
|
110
|
+
- Child: none
|
|
111
|
+
- Alternative: lightweight undo for low-risk reversible actions
|
|
112
|
+
- Depends on: `context-preserving-preview.md` when source context must remain inspectable
|
|
113
|
+
- Adjacent: `object-status-list.md` when multiple affected objects must be reviewed
|
|
114
|
+
|
|
115
|
+
## Examples
|
|
116
|
+
|
|
117
|
+
- A wallet withdrawal challenge keeps provider, amount, destination, fee, and selected asset visible while requesting 2FA.
|
|
118
|
+
- An admin bulk delete confirmation lists affected objects and explains reversibility before execution.
|
|
119
|
+
- An agent asks approval before sending a message, changing permissions, running a paid operation, or publishing externally.
|
|
120
|
+
|
|
121
|
+
## Agent Checklist
|
|
122
|
+
|
|
123
|
+
- What is the consequence and how reversible is it?
|
|
124
|
+
- Which object, amount, recipient, scope, or side effects must remain visible?
|
|
125
|
+
- Can the user cancel, edit critical inputs, and retry without restarting unrelated work?
|
|
126
|
+
- Does the error state preserve entered data and ask only for the missing challenge?
|
|
127
|
+
- For agentic work, is explicit approval required before the side effect and is interruption still available?
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PAT-00005
|
|
3
|
+
alias: PAT-005
|
|
4
|
+
slug: context-preserving-preview
|
|
5
|
+
title: Context-Preserving Preview
|
|
6
|
+
object_type: pattern
|
|
7
|
+
status: draft
|
|
8
|
+
version: 0.2.0
|
|
9
|
+
category: ux
|
|
10
|
+
tags:
|
|
11
|
+
- ux
|
|
12
|
+
- preview
|
|
13
|
+
maturity: seed
|
|
14
|
+
risk_level: medium
|
|
15
|
+
relationships:
|
|
16
|
+
- type: requires
|
|
17
|
+
target: RULE-00007
|
|
18
|
+
- type: requires
|
|
19
|
+
target: RULE-00004
|
|
20
|
+
- type: requires
|
|
21
|
+
target: RULE-00003
|
|
22
|
+
- type: requires
|
|
23
|
+
target: RULE-00009
|
|
24
|
+
- type: requires
|
|
25
|
+
target: RULE-00013
|
|
26
|
+
- type: requires
|
|
27
|
+
target: RULE-00015
|
|
28
|
+
- type: related_to
|
|
29
|
+
target: PAT-00006
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Context-Preserving Preview
|
|
33
|
+
|
|
34
|
+
## Purpose
|
|
35
|
+
|
|
36
|
+
Let users inspect detail without losing their source context.
|
|
37
|
+
|
|
38
|
+
## User Goal
|
|
39
|
+
|
|
40
|
+
Compare, inspect, or triage items while keeping place in the list or workspace.
|
|
41
|
+
|
|
42
|
+
## Product Context
|
|
43
|
+
|
|
44
|
+
Lists, workspaces, conversations, and browsers where users inspect multiple items in sequence.
|
|
45
|
+
|
|
46
|
+
## Use When
|
|
47
|
+
|
|
48
|
+
- Users need to open several items quickly.
|
|
49
|
+
- The source context, filters, or scroll position matter.
|
|
50
|
+
- Detail is inspection-heavy rather than a long edit flow.
|
|
51
|
+
|
|
52
|
+
## Do Not Use When
|
|
53
|
+
|
|
54
|
+
- The detail view is a long editing workflow.
|
|
55
|
+
- The preview would hide critical primary actions.
|
|
56
|
+
- The source list is not important after selection.
|
|
57
|
+
|
|
58
|
+
## UX Rules
|
|
59
|
+
|
|
60
|
+
- `UX-003` Preserve Context During Inspection
|
|
61
|
+
- `IA-002` Define The Object Model Before Screens
|
|
62
|
+
- `IA-001` One Stable Home Surface
|
|
63
|
+
- `UX-004` Use Motion To Explain State Continuity
|
|
64
|
+
|
|
65
|
+
## Accessibility Rules
|
|
66
|
+
|
|
67
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
68
|
+
- `A11Y-004` Reduce Non-Essential Interaction Motion
|
|
69
|
+
|
|
70
|
+
## Motion Behavior
|
|
71
|
+
|
|
72
|
+
If opening or closing preview uses non-essential motion, respect a reduced-motion preference or provide an equivalent way to disable it. The reduced-motion state may switch directly to the same sheet, panel, or preview state; it must not remove the preview or its return path.
|
|
73
|
+
|
|
74
|
+
Use motion only to explain the selected item's relationship to its preview (`UX-004`). Reuse the product's named timing and easing roles; do not introduce a fixed duration or require a particular animation API. Define the following behavior before implementing the transition:
|
|
75
|
+
|
|
76
|
+
| State or transition | Required outcome |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| Closed to open | Keep the selected item, filters, and scroll position; show which item the preview belongs to. Define the focus destination for the chosen panel or dialog behavior. |
|
|
79
|
+
| Loading or error | Keep the source usable and show feedback in the preview. Feedback must remain understandable without movement. |
|
|
80
|
+
| Close | Restore the source context. If focus moved into the preview, return it to the invoking control or a logical surviving control if that item was removed. |
|
|
81
|
+
| Interrupted opening or item switch | The latest selection determines the visible item. A delayed transition must not reopen a closed preview or move focus to an old item. |
|
|
82
|
+
| Reduced motion or unsupported animation | Reach the same selected item, information, controls, and focus outcome without non-essential movement. |
|
|
83
|
+
|
|
84
|
+
## Mobile Behavior
|
|
85
|
+
|
|
86
|
+
Use a sheet, drawer, or temporary detail view that preserves return state. Avoid resetting filters or scroll on close.
|
|
87
|
+
|
|
88
|
+
## Desktop Behavior
|
|
89
|
+
|
|
90
|
+
Prefer side panel, split view, peek, or preview pane when space allows.
|
|
91
|
+
|
|
92
|
+
## Empty State
|
|
93
|
+
|
|
94
|
+
Show the source list empty state and avoid opening an empty preview by default.
|
|
95
|
+
|
|
96
|
+
## Loading State
|
|
97
|
+
|
|
98
|
+
Keep the source context visible while preview content loads.
|
|
99
|
+
|
|
100
|
+
## Error State
|
|
101
|
+
|
|
102
|
+
Show preview-level error and keep the source list usable.
|
|
103
|
+
|
|
104
|
+
## Required Rules
|
|
105
|
+
|
|
106
|
+
- `UX-003` Preserve Context During Inspection
|
|
107
|
+
- `IA-002` Define The Object Model Before Screens
|
|
108
|
+
- `IA-001` One Stable Home Surface
|
|
109
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
110
|
+
- `A11Y-004` Reduce Non-Essential Interaction Motion
|
|
111
|
+
- `UX-004` Use Motion To Explain State Continuity
|
|
112
|
+
|
|
113
|
+
## Related Research
|
|
114
|
+
|
|
115
|
+
- `research/products/arc.md`
|
|
116
|
+
- `research/products/linear.md`
|
|
117
|
+
- `research/products/telegram.md`
|
|
118
|
+
- `research/ux/motion-as-state-continuity.md`
|
|
119
|
+
|
|
120
|
+
## Related Patterns
|
|
121
|
+
|
|
122
|
+
- Parent: none
|
|
123
|
+
- Child: none
|
|
124
|
+
- Alternative: full detail page when editing is the main task
|
|
125
|
+
- Depends on: `object-status-list.md` when previewing structured objects
|
|
126
|
+
|
|
127
|
+
## Examples
|
|
128
|
+
|
|
129
|
+
- A consumer task app opens task detail from Today without losing the Today list.
|
|
130
|
+
- An issue tracker opens issue detail beside the filtered issue list.
|
|
131
|
+
|
|
132
|
+
For a task preview, a brief local transition can connect the selected row to its details. With reduced motion, open those same details immediately. Animating every list row or waiting for a closing animation before accepting the next selection would add motion without preserving useful context.
|
|
133
|
+
|
|
134
|
+
## Agent Checklist
|
|
135
|
+
|
|
136
|
+
- Does opening detail preserve source context?
|
|
137
|
+
- Can users inspect several items quickly?
|
|
138
|
+
- Is the return path obvious?
|
|
139
|
+
- Does preview stay smaller than a full workspace?
|
|
140
|
+
- When motion exists, can reduced motion reach the same preview and return state?
|
|
141
|
+
- Are the start state, end state, focus destination, interruption behavior, and fallback recorded?
|
|
142
|
+
- Can a user close or switch items during opening without stale content or focus taking over?
|
|
143
|
+
- Is loading and error feedback still clear with animation disabled?
|
|
144
|
+
|
|
145
|
+
The motion guidance remains `draft` / `seed`; this revision does not establish rendered or independent validation.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PAT-00001
|
|
3
|
+
alias: PAT-001
|
|
4
|
+
slug: daily-home-surface
|
|
5
|
+
title: Daily Home Surface
|
|
6
|
+
object_type: pattern
|
|
7
|
+
status: draft
|
|
8
|
+
version: 0.2.0
|
|
9
|
+
category: product
|
|
10
|
+
tags:
|
|
11
|
+
- product
|
|
12
|
+
- home
|
|
13
|
+
maturity: seed
|
|
14
|
+
risk_level: medium
|
|
15
|
+
relationships:
|
|
16
|
+
- type: requires
|
|
17
|
+
target: RULE-00001
|
|
18
|
+
- type: requires
|
|
19
|
+
target: RULE-00003
|
|
20
|
+
- type: requires
|
|
21
|
+
target: RULE-00006
|
|
22
|
+
- type: requires
|
|
23
|
+
target: RULE-00009
|
|
24
|
+
- type: requires
|
|
25
|
+
target: RULE-00008
|
|
26
|
+
- type: requires
|
|
27
|
+
target: RULE-00014
|
|
28
|
+
- type: related_to
|
|
29
|
+
target: PAT-00002
|
|
30
|
+
- type: related_to
|
|
31
|
+
target: PAT-00003
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Daily Home Surface
|
|
35
|
+
|
|
36
|
+
## Purpose
|
|
37
|
+
|
|
38
|
+
Provide one stable starting surface for repeated daily work.
|
|
39
|
+
|
|
40
|
+
## User Goal
|
|
41
|
+
|
|
42
|
+
Start the day or session and act on the most relevant current work.
|
|
43
|
+
|
|
44
|
+
## Product Context
|
|
45
|
+
|
|
46
|
+
Consumer products with recurring workflows, such as family tasks, reminders, routines, daily planning, and recurring conversations.
|
|
47
|
+
|
|
48
|
+
## Use When
|
|
49
|
+
|
|
50
|
+
- Users return frequently to the same product context.
|
|
51
|
+
- One repeated action or current-work view anchors the product.
|
|
52
|
+
- Secondary modes exist but should not replace the starting point.
|
|
53
|
+
|
|
54
|
+
## Do Not Use When
|
|
55
|
+
|
|
56
|
+
- The product is primarily exploratory.
|
|
57
|
+
- The user goal changes completely between sessions.
|
|
58
|
+
- Parallel workflows are equally important and cannot share one home.
|
|
59
|
+
|
|
60
|
+
## UX Rules
|
|
61
|
+
|
|
62
|
+
- `PRD-001` Daily Actions First
|
|
63
|
+
- `IA-001` One Stable Home Surface
|
|
64
|
+
- `UX-002` Progressively Disclose Power
|
|
65
|
+
|
|
66
|
+
## Accessibility Rules
|
|
67
|
+
|
|
68
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
69
|
+
|
|
70
|
+
## Mobile Behavior
|
|
71
|
+
|
|
72
|
+
Show the current work and primary daily action in the first 390px-wide viewport. Keep navigation secondary and reachable.
|
|
73
|
+
|
|
74
|
+
Keep current-work labels readable beside the primary action. Use the same semantic content, action, and supporting-surface roles as desktop; reducing width must not give every row or navigation control the same emphasis as the main action (`VIS-001`, `VIS-002`).
|
|
75
|
+
|
|
76
|
+
## Desktop Behavior
|
|
77
|
+
|
|
78
|
+
Use the extra width for supporting context, not competing entry points. Keep the same home concept as mobile.
|
|
79
|
+
|
|
80
|
+
Identify the content layer (current work), functional layer (navigation and controls), focal emphasis (the repeated daily action), and quiet supporting surfaces. Reuse existing typography, spacing, and color roles. Strong material, shape, or color treatments must clarify that hierarchy; removing decorative effects must leave content order and the primary action understandable (`VIS-001`, `VIS-002`).
|
|
81
|
+
|
|
82
|
+
## Empty State
|
|
83
|
+
|
|
84
|
+
Explain what belongs here and provide the primary create or start action.
|
|
85
|
+
|
|
86
|
+
## Loading State
|
|
87
|
+
|
|
88
|
+
Keep the home shell and primary action position stable while current work loads.
|
|
89
|
+
|
|
90
|
+
## Error State
|
|
91
|
+
|
|
92
|
+
Preserve the home surface and show a recovery action without replacing the whole screen.
|
|
93
|
+
|
|
94
|
+
## Required Rules
|
|
95
|
+
|
|
96
|
+
- `PRD-001` Daily Actions First
|
|
97
|
+
- `IA-001` One Stable Home Surface
|
|
98
|
+
- `UX-002` Progressively Disclose Power
|
|
99
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
100
|
+
- `VIS-001` Semantic Tokens Only
|
|
101
|
+
- `VIS-002` Keep Expression Subordinate To Content
|
|
102
|
+
|
|
103
|
+
## Related Research
|
|
104
|
+
|
|
105
|
+
- `research/products/things-3.md`
|
|
106
|
+
- `research/products/telegram.md`
|
|
107
|
+
- `research/products/apple-reminders.md`
|
|
108
|
+
- `research/visual/expressive-system-ui-2026.md`
|
|
109
|
+
|
|
110
|
+
## Related Patterns
|
|
111
|
+
|
|
112
|
+
- Parent: none
|
|
113
|
+
- Child: `quick-capture.md`, `mobile-primary-action.md`
|
|
114
|
+
- Alternative: none
|
|
115
|
+
- Depends on: none
|
|
116
|
+
|
|
117
|
+
## Examples
|
|
118
|
+
|
|
119
|
+
- A consumer task app opens to Today, showing current tasks and the main add action.
|
|
120
|
+
- A reminders app opens to the user's current list instead of settings or analytics.
|
|
121
|
+
|
|
122
|
+
For a household shopping list, the current items form the content layer, list switching belongs to the functional layer, and Add item is the focal action. Bought items remain readable but quieter. Giving every item, navigation control, and background the same strong accent would obscure this hierarchy. This is an application of `VIS-002`, not a required brand style or a new component system.
|
|
123
|
+
|
|
124
|
+
## Agent Checklist
|
|
125
|
+
|
|
126
|
+
- Is there one recognizable home surface?
|
|
127
|
+
- Is the repeated daily action visible without scrolling?
|
|
128
|
+
- Can users return after exploring secondary modes?
|
|
129
|
+
- Are advanced controls quieter than current work?
|
|
130
|
+
- Can the content, functional layer, focal emphasis, and supporting surfaces be identified on both mobile and desktop?
|
|
131
|
+
- Does the hierarchy remain clear without transparency, shadows, or decorative motion?
|
|
132
|
+
- Do repeated visual decisions reuse the project's semantic roles?
|
|
133
|
+
|
|
134
|
+
The visual guidance remains `draft` / `seed`; this revision adds an application contract, not rendered benchmark validation.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PAT-00003
|
|
3
|
+
alias: PAT-003
|
|
4
|
+
slug: mobile-primary-action
|
|
5
|
+
title: Mobile Primary Action
|
|
6
|
+
object_type: pattern
|
|
7
|
+
status: draft
|
|
8
|
+
version: 0.1.0
|
|
9
|
+
category: mobile
|
|
10
|
+
tags:
|
|
11
|
+
- mobile
|
|
12
|
+
- action
|
|
13
|
+
maturity: seed
|
|
14
|
+
risk_level: high
|
|
15
|
+
relationships:
|
|
16
|
+
- type: requires
|
|
17
|
+
target: RULE-00005
|
|
18
|
+
- type: requires
|
|
19
|
+
target: RULE-00001
|
|
20
|
+
- type: requires
|
|
21
|
+
target: RULE-00009
|
|
22
|
+
- type: related_to
|
|
23
|
+
target: PAT-00002
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Mobile Primary Action
|
|
27
|
+
|
|
28
|
+
## Purpose
|
|
29
|
+
|
|
30
|
+
Make one repeated mobile action physically reachable and safely tappable.
|
|
31
|
+
|
|
32
|
+
## User Goal
|
|
33
|
+
|
|
34
|
+
Trigger the main action quickly with one hand.
|
|
35
|
+
|
|
36
|
+
## Product Context
|
|
37
|
+
|
|
38
|
+
Touch-first screens with one dominant repeated action, such as add, send, complete, or start.
|
|
39
|
+
|
|
40
|
+
## Use When
|
|
41
|
+
|
|
42
|
+
- One action is clearly more frequent than others.
|
|
43
|
+
- The screen is used on mobile.
|
|
44
|
+
- The action is safe enough to make prominent.
|
|
45
|
+
|
|
46
|
+
## Do Not Use When
|
|
47
|
+
|
|
48
|
+
- Multiple actions are equally important.
|
|
49
|
+
- The action is destructive or high-risk.
|
|
50
|
+
- The screen is primarily for reading or comparison.
|
|
51
|
+
|
|
52
|
+
## UX Rules
|
|
53
|
+
|
|
54
|
+
- `UX-001` Thumb-Zone Primary Actions
|
|
55
|
+
- `PRD-001` Daily Actions First
|
|
56
|
+
|
|
57
|
+
## Accessibility Rules
|
|
58
|
+
|
|
59
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
60
|
+
|
|
61
|
+
## Mobile Behavior
|
|
62
|
+
|
|
63
|
+
Place the action in a thumb-friendly zone. Keep the clickable area at least 44x44 CSS pixels and separate it from destructive controls.
|
|
64
|
+
|
|
65
|
+
## Desktop Behavior
|
|
66
|
+
|
|
67
|
+
Keep the same primary action visible, but position it according to desktop hierarchy and keyboard access instead of thumb reach.
|
|
68
|
+
|
|
69
|
+
## Empty State
|
|
70
|
+
|
|
71
|
+
Keep the action available and pair it with concise start guidance.
|
|
72
|
+
|
|
73
|
+
## Loading State
|
|
74
|
+
|
|
75
|
+
Keep the action position stable. Disable or show progress only while duplicate actions would be harmful.
|
|
76
|
+
|
|
77
|
+
## Error State
|
|
78
|
+
|
|
79
|
+
Show recovery near the action and preserve the user's context.
|
|
80
|
+
|
|
81
|
+
## Required Rules
|
|
82
|
+
|
|
83
|
+
- `UX-001` Thumb-Zone Primary Actions
|
|
84
|
+
- `PRD-001` Daily Actions First
|
|
85
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
86
|
+
|
|
87
|
+
## Related Research
|
|
88
|
+
|
|
89
|
+
- `research/products/things-3.md`
|
|
90
|
+
- `research/products/apple-reminders.md`
|
|
91
|
+
|
|
92
|
+
## Related Patterns
|
|
93
|
+
|
|
94
|
+
- Parent: none
|
|
95
|
+
- Child: none
|
|
96
|
+
- Alternative: none
|
|
97
|
+
- Depends on: none
|
|
98
|
+
- Adjacent: `quick-capture.md` owns the creation flow after tap
|
|
99
|
+
|
|
100
|
+
## Examples
|
|
101
|
+
|
|
102
|
+
- A mobile todo app places Add Task in the reachable bottom area.
|
|
103
|
+
- A messaging screen keeps Send reachable without placing Delete nearby.
|
|
104
|
+
|
|
105
|
+
## Agent Checklist
|
|
106
|
+
|
|
107
|
+
- Is there one clear primary action?
|
|
108
|
+
- Is it reachable at 390px width?
|
|
109
|
+
- Is the target at least 44x44 CSS pixels?
|
|
110
|
+
- Is the destructive path spatially separate?
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PAT-00006
|
|
3
|
+
alias: PAT-006
|
|
4
|
+
slug: object-status-list
|
|
5
|
+
title: Object Status List
|
|
6
|
+
object_type: pattern
|
|
7
|
+
status: draft
|
|
8
|
+
version: 0.1.0
|
|
9
|
+
category: ia
|
|
10
|
+
tags:
|
|
11
|
+
- ia
|
|
12
|
+
- status
|
|
13
|
+
maturity: seed
|
|
14
|
+
risk_level: medium
|
|
15
|
+
relationships:
|
|
16
|
+
- type: requires
|
|
17
|
+
target: RULE-00004
|
|
18
|
+
- type: requires
|
|
19
|
+
target: RULE-00007
|
|
20
|
+
- type: requires
|
|
21
|
+
target: RULE-00008
|
|
22
|
+
- type: requires
|
|
23
|
+
target: RULE-00009
|
|
24
|
+
- type: related_to
|
|
25
|
+
target: PAT-00005
|
|
26
|
+
- type: related_to
|
|
27
|
+
target: PAT-00004
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Object Status List
|
|
31
|
+
|
|
32
|
+
## Purpose
|
|
33
|
+
|
|
34
|
+
Make structured objects scanable by state, owner, and next action.
|
|
35
|
+
|
|
36
|
+
## User Goal
|
|
37
|
+
|
|
38
|
+
Understand what exists, what state it is in, and what needs attention.
|
|
39
|
+
|
|
40
|
+
## Product Context
|
|
41
|
+
|
|
42
|
+
Products with stable objects and states, such as issues, projects, shared tasks, requests, or household workflows.
|
|
43
|
+
|
|
44
|
+
## Use When
|
|
45
|
+
|
|
46
|
+
- Items have stable states.
|
|
47
|
+
- Users need to scan or filter many objects.
|
|
48
|
+
- Ownership, status, or next action affects decisions.
|
|
49
|
+
|
|
50
|
+
## Do Not Use When
|
|
51
|
+
|
|
52
|
+
- Items are mostly unstructured notes or messages.
|
|
53
|
+
- The product does not have stable states.
|
|
54
|
+
- A dense list would make a consumer workflow feel administrative.
|
|
55
|
+
|
|
56
|
+
## UX Rules
|
|
57
|
+
|
|
58
|
+
- `IA-002` Define The Object Model Before Screens
|
|
59
|
+
- `UX-003` Preserve Context During Inspection
|
|
60
|
+
|
|
61
|
+
## Accessibility Rules
|
|
62
|
+
|
|
63
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
64
|
+
|
|
65
|
+
## Mobile Behavior
|
|
66
|
+
|
|
67
|
+
Show object name and most important status first. Move secondary metadata into detail or progressive disclosure.
|
|
68
|
+
|
|
69
|
+
## Desktop Behavior
|
|
70
|
+
|
|
71
|
+
Use columns, grouping, filters, or side panels for scanability without duplicating objects.
|
|
72
|
+
|
|
73
|
+
## Empty State
|
|
74
|
+
|
|
75
|
+
Explain what object will appear here and provide the relevant create or import action.
|
|
76
|
+
|
|
77
|
+
## Loading State
|
|
78
|
+
|
|
79
|
+
Preserve row structure or grouping while loading to avoid scan disruption.
|
|
80
|
+
|
|
81
|
+
## Error State
|
|
82
|
+
|
|
83
|
+
Show list-level recovery and preserve filters when possible.
|
|
84
|
+
|
|
85
|
+
## Required Rules
|
|
86
|
+
|
|
87
|
+
- `IA-002` Define The Object Model Before Screens
|
|
88
|
+
- `UX-003` Preserve Context During Inspection
|
|
89
|
+
- `VIS-001` Semantic Tokens Only
|
|
90
|
+
- `A11Y-001` 44x44 Touch Targets
|
|
91
|
+
|
|
92
|
+
## Related Research
|
|
93
|
+
|
|
94
|
+
- `research/products/linear.md`
|
|
95
|
+
- `research/products/arc.md`
|
|
96
|
+
|
|
97
|
+
## Related Patterns
|
|
98
|
+
|
|
99
|
+
- Parent: none
|
|
100
|
+
- Child: `context-preserving-preview.md`
|
|
101
|
+
- Alternative: `progressive-detail.md` when metadata should stay hidden
|
|
102
|
+
- Depends on: none
|
|
103
|
+
|
|
104
|
+
## Examples
|
|
105
|
+
|
|
106
|
+
- A household task archetype shows tasks with owner, status, and due cue.
|
|
107
|
+
- A project tool lists issues with status, owner, priority, and next action.
|
|
108
|
+
|
|
109
|
+
## Agent Checklist
|
|
110
|
+
|
|
111
|
+
- What object does each row represent?
|
|
112
|
+
- Are statuses stable and consistently named?
|
|
113
|
+
- Is ownership visible when it affects action?
|
|
114
|
+
- Can users change view without duplicating data?
|