@ccoalm/ccl-skills 0.6.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/hooks.json +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/remind-unverified-cli-flag.sh +309 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_remind_unverified_cli_flag.sh +483 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/ccl-skills.ts +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +10 -8
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-quality-release.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +16 -17
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/client-routing.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +195 -7
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/timeout-auth-and-capabilities.md +3 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/claude_review.sh +13 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +9 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_review.sh +9 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/normalize_review_timeout.sh +22 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/opencode_review.sh +9 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +1540 -129
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_claude_review_probe.sh +8 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +76 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +1858 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_update_review_plan_intent.sh +789 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/update_review_plan_intent.py +513 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/SKILL.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/architecture-playbook.md +2 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-platform-architecture.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/event-driven-architecture.md +14 -11
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/multi-tenant-isolation.md +2 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +5 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +2 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +13 -11
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/SKILL.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/references/async-lifecycle-and-performance.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/references/runtime-and-project-contract.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/references/source-map.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/nodejs-service-dev/references/verification-diagnostics-and-security.md +63 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/sli-slo-design.md +25 -9
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/source-register.md +1 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/promotion-gate-and-review.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/secret-and-config-management.md +7 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/retry-timeout-circuit-breaker.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +8 -10
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-routing-and-readiness.md +10 -14
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/verify-developer-experience.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/SKILL.md +135 -86
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/behavioral-aesthetic-logic.md +66 -80
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/delivery-contract.md +275 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-execution-checklist.md +88 -214
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-impl-naming-and-versioning.md +2 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-intake-and-acceptance.md +10 -8
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-system-source-of-truth.md +4 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md +112 -95
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/frontend-code-evidence-map.md +30 -21
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/interaction-design-patterns.md +22 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/layout-recipes-and-screenshot-acceptance.md +20 -17
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-project-token-consistency.md +7 -9
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-stack-strategy.md +14 -10
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/operational-processing-workflows.md +2 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-mobile-patterns.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-lifecycle-acceptance-and-iteration.md +9 -6
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-surface-patterns.md +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/source-map.md +37 -10
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/tokens-and-components.md +7 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-audit.md +8 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-design-development.md +16 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/visual-craft.md +4 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/SKILL.md +5 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/architecture-playbook.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/audit-history-architecture.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-platform-architecture.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/event-driven-architecture.md +7 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/multi-tenant-isolation.md +2 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/notification-architecture.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/packaging-runtime-readiness.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/replay-comparison-architecture.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/workflow-state-architecture.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +10 -7
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/ai-service-wiring-patterns.md +8 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/audit-history-patterns.md +29 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/background-job-patterns.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/batch-and-artifact-patterns.md +25 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/notification-patterns.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/public-api-security-patterns.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/replay-comparison-patterns.md +30 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/state-machine-task-patterns.md +48 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/testing-and-quality-patterns.md +10 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/SKILL.md +2 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +4 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/coverage-exhaustion-traps.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +142 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +21 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +11 -9
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +8 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/parallel-stack-references-pattern.md +5 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/r0-leakage-audit.md +102 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-judgment-extraction.md +6 -6
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/validation-and-landing.md +4 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +93 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-parallel-stack-parity.sh +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/extraction_review_gate.sh +22 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +49 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/obligation-ledger.py +2748 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb +20 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/shared_git_surface_gate.py +1142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_parallel_stack_parity.sh +183 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_skill_catalog.sh +41 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ci_checkout_ref_binding.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_entrypoint_domain_scan_terms.sh +82 -8
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_extraction_review_gate.sh +336 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_self_adjudication.sh +82 -10
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_obligation_ledger.sh +1416 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_obligation_ledger_repo_audit.sh +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_wiring.sh +141 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_pointer_integrity.sh +3 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_shared_git_surface_gate.sh +1696 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_uiux_delivery_contract.sh +2117 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_uiux_loading_budget.sh +316 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_extraction_review_state.sh +1176 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_cross_refs.sh +31 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate-skill.sh +9 -4
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate_extraction_review_state.py +980 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +9 -6
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +11 -11
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/client-runtime-test-matrices.md +10 -2
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/fitness-functions.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/scenario-testing.md +1 -1
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-code-authoring-patterns.md +16 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +5 -3
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/delivery-face-closeout.md +16 -6
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/self-benchmark-baseline.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +7 -5
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/complex-workspace-patterns.md +1 -1
- package/dist/assets/release.json +275 -105
- package/package.json +1 -1
|
@@ -1,128 +1,145 @@
|
|
|
1
|
-
#
|
|
1
|
+
# UI/UX Evidence And Theory Ledger
|
|
2
2
|
|
|
3
|
-
Use this
|
|
3
|
+
Use this ledger when a design judgment cites theory, a standard, a benchmark, or a platform convention. It prevents a useful source from being promoted beyond what its original text supports.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Last verified: 2026-08-29. Recheck sources whose version, status, platform behavior, or recommendation can change before relying on them for a new release or compliance claim.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Evidence classes
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
| Class | Meaning | How it may be used |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Standard | Normative standard or success criterion for its stated scope | May block a scoped conformance claim when applicable and tested correctly |
|
|
12
|
+
| Specification or draft | Technical mechanism defined by a standards body, with its published maturity retained | May justify mechanism-level implementation checks; recheck status/support and never infer design quality from feature existence |
|
|
13
|
+
| Community Group report | Final report published by a W3C Community Group; not a W3C Standard or Standards Track deliverable | May support mechanism-level interoperability checks at its published status; never use it as a conformance standard or infer design quality from feature existence |
|
|
14
|
+
| Stable mechanism | Repeatedly useful explanatory mechanism with a bounded domain | Generates a design hypothesis; does not set a universal UI recipe or numeric threshold |
|
|
15
|
+
| Contextual empirical | Study result tied to its method, sample, task, and environment | Informs risk and test design; must retain the study boundary |
|
|
16
|
+
| Conceptual framing | Named distinction or expert argument that sharpens observation | Generates a hypothesis and vocabulary; is not empirical proof or a numeric acceptance rule |
|
|
17
|
+
| Informative guidance | Non-normative method or practice from an authoritative body | Starting method or checklist; verify against the target context |
|
|
18
|
+
| Vendor convention | First-party platform guidance | Acceptance input for that platform only; preserve the source's requirement/recommendation strength |
|
|
19
|
+
| Local heuristic | Team or product pattern supported by local evidence | Starting hypothesis until target evidence verifies it; never present as external theory |
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
Write a claim as:
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
`observation → mechanism/risk → design hypothesis → observable check → boundary`
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
- **User control**: users can cancel, undo, retry, close, go back, clear, edit, regenerate, or recover when the action has consequence.
|
|
22
|
-
- **Consistency**: repeated surfaces use the same action hierarchy, navigation, selected states, empty states, and feedback strength.
|
|
23
|
-
- **Error prevention**: destructive, public, irreversible, expensive, or trust-sensitive actions require clear consequence copy and confirmation.
|
|
24
|
-
- **Recognition over recall**: current object, active mode, applied filters, selected source/context, and next action stay visible.
|
|
25
|
-
- **Recovery**: every recoverable error gives a path forward; unrecoverable errors explain what still works.
|
|
25
|
+
Do not write “Hick says,” “Fitts says,” “Miller says,” or “Doherty says” as the complete rationale. Name the actual decision variable: option search, target acquisition, hidden-context recall, feedback/state uncertainty, or another observable burden.
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Claim ledger
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
### Human-centred design and usability
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
- Motion, streaming, progress, and loading indicators do not block comprehension or task completion.
|
|
37
|
-
- Layout works with longer localized strings, larger text settings, and long generated content.
|
|
38
|
-
- **WCAG 2.2 (W3C Recommendation 5 October 2023) added 9 new success criteria; the 6 most product UI surfaces will hit are**: pointer-target ≥24×24 CSS px (AA, SC 2.5.8 — five exceptions per W3C: Spacing where a 24px circle centered on each undersized target does not intersect siblings, Equivalent control elsewhere on the page, Inline-in-text targets, User-agent default controls, Essential when the *presentation* of the target is essential to the information being conveyed and cannot be programmatically determined — narrow scope, e.g. map pins on geographic-density maps or fine-grained selection in a data-viz cluster; this exception is NOT a blanket pass for dense data-table row actions, inline icon buttons in toolbars, or close buttons on cards, which still need 24px geometry or the Spacing/Equivalent exception); focus ring not obscured by sticky bars / cookie banners (AA, SC 2.4.11 Focus Not Obscured Minimum); single-pointer alternative for any *authored* dragging interaction (AA, SC 2.5.7 Dragging Movements — drag-to-reorder, drag-to-resize, draggable map markers, custom-canvas pan; does NOT apply to native browser scroll, OS-level pinch-to-zoom, or assistive-tech gestures, and multipoint gestures like pinch fall under SC 2.5.1 Pointer Gestures, not 2.5.7); accessible authentication without a cognitive-function test like solving puzzles or remembering generated codes (AA, SC 3.3.8 — supporting `autocomplete="username"` and `autocomplete="current-password"` plus allowing paste counts; SMS OTP, email magic link, OAuth, passkeys all satisfy; image-CAPTCHA and "type the code we just showed you" do not); consistent help placement across pages (A, SC 3.2.6); redundant entry — re-using previously entered data unless re-entry is essential (A, SC 3.3.7). The remaining 3 SC (2.4.12 Focus Not Obscured Enhanced AAA, 2.4.13 Focus Appearance AAA, 3.3.9 Accessible Authentication Enhanced AAA) are AAA-only and rarely a launch gate. Treat WCAG 2.2 (not 2.1) as the current acceptance line; 2.1-only audit checklists silently miss the above.
|
|
39
|
-
- **Reduced-motion / color-scheme / contrast / transparency design intent must be declared, not auto-derived from `@media` query alone**. For each non-decorative animation, name whether it is *essential* (progress indicator, drag preview, view transition that conveys a state change) or *decorative* (parallax, autoplay carousel, hover bounce); `prefers-reduced-motion: reduce` should remove or replace decorative motion by default and may shorten essential motion but cannot omit feedback. An explicit in-product opt-in (e.g. user setting "Show celebration animation even when system asks for reduced motion") MAY override the default for brand-splash / completion-celebration moments when policy permits, but the override must be opt-in not opt-out and the default behavior must respect the system preference. `prefers-color-scheme` requires the design system to ship Light + Dark token pairs (no missing pair = no dark-mode claim). `prefers-contrast: more` and `prefers-reduced-transparency` are useful supplements where browser support permits but are NOT Baseline yet — do not gate accessibility compliance on them; route them through a separate "increased contrast" theme variant when product needs require it.
|
|
40
|
-
- **APCA (Accessible Perceptual Contrast Algorithm) is the WCAG 3 / Silver candidate contrast method, not a WCAG 2.2 replacement**. WCAG 2.2 SC 1.4.3 / 1.4.11 (4.5:1 body / 3:1 large text + UI components) remains the legal/audit baseline. APCA can be used as a *supplementary* perceptual check (per APCA Bronze Simple Mode, Lc 75 minimum / Lc 90 preferred for body text) when WCAG 2.x mathematical contrast passes but the result looks washed-out, or when designing dark mode where WCAG 2.x ratios systematically over-permit low-readability combinations. Decision matrix: WCAG 2.x fail blocks accessibility/legal compliance claims regardless of APCA result; WCAG 2.x pass + APCA fail is NOT a WCAG failure but should be treated as a readability / product-quality defect — either adjust the color tokens to also pass APCA Bronze, or document the acceptance with a rationale (brand constraint, dark-mode literal preserved). Do not ship a design that passes only APCA but fails WCAG 2.2.
|
|
31
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
32
|
+
| --- | --- | --- | --- | --- |
|
|
33
|
+
| HCD-01 | Standard — [ISO 9241-210:2019, Human-centred design for interactive systems](https://www.iso.org/standard/77520.html) | Consider users, tasks and use context throughout the interactive-system lifecycle; iterate design and evaluation | The ISO abstract says it gives requirements/recommendations and an activity overview, not detailed coverage of methods and techniques | Context brief names target users, representative task, use environment, constraints, and iteration evidence |
|
|
34
|
+
| HCD-02 | Standard — [ISO 9241-11:2018, Usability: Definitions and concepts](https://www.iso.org/standard/63500.html) | Treat usability as an outcome of use in a specified context rather than an intrinsic visual property | The standard does not prescribe a specific design/evaluation process | Acceptance names user, goal/task, environment, effectiveness/efficiency/satisfaction outcome, and limits |
|
|
35
|
+
| HCD-03 | Informative guidance — [GOV.UK, Learning about users and their needs](https://www.gov.uk/service-manual/user-research/start-by-learning-user-needs) | Base user needs on evidence from actual/likely users and keep validating across delivery stages | Government-service practice, not a universal regulatory standard; stakeholder opinions remain assumptions until researched | Source of each user need is named; solution wording is not substituted for the underlying need |
|
|
41
36
|
|
|
42
|
-
|
|
37
|
+
Design implication: start with a context brief and phrase the first design as a testable hypothesis. “Best design” without users, task, environment, and evidence is overclaimed.
|
|
43
38
|
|
|
44
|
-
|
|
39
|
+
### Heuristic review
|
|
45
40
|
|
|
46
|
-
|
|
41
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
42
|
+
| --- | --- | --- | --- | --- |
|
|
43
|
+
| HEU-01 | Contextual empirical — [Nielsen & Molich 1990, Heuristic evaluation of user interfaces](https://doi.org/10.1145/97243.97281) | Broad heuristics can identify candidate usability problems early and multiple evaluators improve coverage | An evaluator's findings are not a complete problem inventory or user-task acceptance evidence | Findings state observed surface, violated heuristic, user consequence, severity basis, and evidence needed to confirm |
|
|
44
|
+
| HEU-02 | Informative guidance — [Nielsen Norman Group, 10 Usability Heuristics](https://www.nngroup.com/articles/ten-usability-heuristics/) | Review status visibility, real-world match, control, consistency, prevention, recognition, flexibility, restraint, recovery and help | The source calls them broad rules of thumb; they are not detailed interface standards | Use them to create risk hypotheses, then close important findings with runtime/task evidence |
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
- **Disabled semantics are real, not painted (Material).** A disabled component cannot be focused, dragged, or pressed, and does not change state when tapped or hovered — unrelated explanatory feedback (a tooltip saying why it is disabled) is not prohibited. Components whose class does not take a disabled state in Material — app bars, badges, dialogs, FABs, menus, navigation bar/drawer/rail, sheets, tabs, tooltips — never render a "disabled" look: when a FAB's action is unavailable, remove the FAB rather than disabling it. Fail: a grayed-out FAB or tab sits on screen, or a "disabled" card still accepts a drag.
|
|
50
|
-
- **Each state change is signaled by more than one visual cue (Material).** Material's baseline is two visual indicators per state so state remains perceivable under color-vision or contrast loss; opacity-only or color-only state styling fails.
|
|
51
|
-
- **Transient input states are singletons (Material).** At most one hover, one focus, one pressed, and one dragged state visible at a time in a layout; persistent states (selected, activated) may combine with them on the same element (e.g. a selected chip showing hover).
|
|
52
|
-
- **Feedback reaches people through more than one channel (HIG).** Significant feedback pairs color with text/icon, and sound with haptic where sound is used, so it survives a silenced device, a glance away, or a screen reader. Fail: success/failure conveyed by hue change alone or by sound alone.
|
|
53
|
-
- **Interruption level matches significance (HIG).** Passive status renders in-context near the item it describes (badge, inline line); modal alerts are reserved for critical, ideally actionable information. Fail: routine status delivered as a modal, or a data-loss warning delivered as a passive toast.
|
|
54
|
-
- **Data-loss warnings fire on the unexpected-and-irreversible boundary, both directions (HIG).** Warn before an action whose data loss is unexpected and irreversible; do NOT interpose confirmation when loss is the expected result of the user's own action (e.g. moving a file to trash). Fail in either direction: silent irreversible loss, or confirmation nagging on expected outcomes.
|
|
55
|
-
- **Completion feedback is reserved for significant outcomes; failure feedback is never omitted (HIG).** People expect success, so confirm only payment-grade/significant completions — but every command that cannot be carried out must say so and say why, with the next step. Fail: a no-op button press with no explanation.
|
|
56
|
-
- **Content loading shows something immediately and frees the user (HIG).** HIG scopes this to content/asset loading: placeholder/skeleton content appears at once instead of a blank wait, loading continues in the background so unrelated safe actions stay available, a determinate indicator is used when duration is known and indeterminate only when it is not, and an unavoidably long load gets meaningful interim content. This does not apply to in-flight mutations (payment, deletion, submission): while one is pending, its duplicate or conflicting mutation controls are blocked per the high-risk resilience states in `SKILL.md`, not left available.
|
|
46
|
+
Heuristic review is risk discovery, not acceptance proof. One Agent review cannot prove usability, accessibility, or launch readiness.
|
|
57
47
|
|
|
58
|
-
###
|
|
48
|
+
### Cognition, signifiers, and choice
|
|
59
49
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
- **Reading and focus order follows content hierarchy (Material).** Screen-reader order follows the top-down source/DOM structure, headings do not skip levels, one H1 per web page, repeated landmarks get unique labels. Fail: visual order diverges from traversal order with no remediation.
|
|
65
|
-
- **Focus is managed across context changes (Material).** Initial focus is defined per screen; opening a dialog moves focus into it; closing returns focus to the element that opened it; a visible focus ring appears on keyboard traversal. Fail: focus lost to page top after a dialog closes.
|
|
66
|
-
- **Labels describe purpose, not appearance, and omit the role (Material).** Icon-only controls, meaningful images, and progress/error cues carry labels naming the action or meaning ("Voice search", not "Microphone"); decorative images are hidden from assistive tech; the role word ("button") never appears inside the label.
|
|
67
|
-
- **Core functionality is never gesture-only (HIG).** Any action in the UI's core functionality or supported task flows that a gesture performs (swipe-to-dismiss, swipe-row actions, custom gestures) is also reachable through a visible onscreen control; an optional convenience gesture duplicating an already-visible control needs no second alternative. Frequent actions use the simplest gesture available, no custom multi-finger requirements.
|
|
68
|
-
- **Keyboard access is complete and system shortcuts stay untouched (HIG).** Core flows complete with the keyboard alone (Full Keyboard Access on Apple platforms), and system-defined keyboard shortcuts are not overridden.
|
|
69
|
-
- **Custom shortcuts default to two-key combinations and are discoverable (Material).** Custom keyboard shortcuts use two or more keys by default — a single-key shortcut needs a remap option, component-focus scoping, or an off switch — and a help surface lists them.
|
|
70
|
-
- **Timed UI does not self-dismiss content people must act on (HIG).** Views and controls that auto-dismiss on a timer are minimized; anything carrying a decision or unfinished reading dismisses by explicit action. Fail: an error toast that disappears before its recovery action can be reached.
|
|
71
|
-
- **Reduce Motion is honored with concrete substitutions (HIG).** When the OS reduce-motion setting is on, decorative/repetitive animation stops by default — the Accessibility Baseline's narrowly scoped, explicitly opt-in in-product override for brand-splash/celebration moments remains valid and is the only exception. For animations that use these effects: springs tighten (no bounce), x/y/z transitions become fades, z-depth and blur animations are avoided, and gesture-driven animation tracks the gesture. Essential status motion (progress) remains. Declare essential-vs-decorative intent per the reduced-motion rule in the Accessibility Baseline above; native OS setting detection routes to `platform-mobile-patterns.md` Mobile Motion Discipline.
|
|
50
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
51
|
+
| --- | --- | --- | --- | --- |
|
|
52
|
+
| COG-01 | Contextual empirical — [Sweller 1988, Cognitive Load During Problem Solving](https://doi.org/10.1207/s15516709cog1202_4) | Means–ends search can consume processing capacity that would otherwise support learning/schema acquisition | The study concerns learning and problem solving. It does not prove a universal “chunk every UI” rule or a fixed item count | Identify the exact hidden-context recall, cross-step search, task switching, or means–ends burden; compare task errors/time/hesitation after the change |
|
|
53
|
+
| COG-02 | Conceptual framing — [Norman 2008, Signifiers, not affordances](https://jnd.org/signifiers-not-affordances/) | Provide perceivable cues for what an element/state means, what action is possible, and what is happening | This is a conceptual distinction, not a controlled UI-effect estimate. A signifier can be conventional or unreliable; recognition does not justify displaying every option | Check signifier → action → feedback mapping with new and experienced users; remove ambiguous or misleading cues |
|
|
72
54
|
|
|
73
|
-
|
|
55
|
+
Design implication: reduce a named burden. Examples include keeping current object/state visible, preserving return context, narrowing active choices for the current decision, and exposing advanced controls when relevant. Do not use “lower cognitive load” as an acceptance criterion without an observable task effect.
|
|
74
56
|
|
|
75
|
-
|
|
76
|
-
- **The surface adapts to user-chosen appearance settings (HIG).** A screen passes walkthrough only after being checked under orientation change, Dark Mode, and enlarged Dynamic Type — the platform treats these as user choices the app must follow, not edge cases.
|
|
77
|
-
- **Standard platform components are the default for standard tasks (Material).** Standard platform controls and semantic elements inherit assistive-technology support for free; a custom replacement for a standard task (e.g. a non-standard dialog) carries the burden of extra AT verification before it passes walkthrough.
|
|
78
|
-
- **Contrast and appearance adaptation is verified on the rendered surface (HIG).** Beyond the orientation/Dark Mode/Dynamic Type checks above, the walkthrough gate is observable: the surface renders correctly with the Increase Contrast setting on — text, icons, and state indicators keep sufficient contrast and their meaning. Preferring system-defined colors (whose accessible variants adapt automatically) and familiar system behaviors is non-blocking implementation guidance verified in code review, because two token implementations can render identically.
|
|
57
|
+
### Accessibility and inclusive evaluation
|
|
79
58
|
|
|
80
|
-
|
|
59
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
60
|
+
| --- | --- | --- | --- | --- |
|
|
61
|
+
| A11Y-01 | Standard — [WCAG 2.2](https://www.w3.org/TR/WCAG22/) | Apply testable web-content success criteria for perceivable, operable, understandable and robust content | WCAG does not address every disability need; a conformance claim must follow its scope and complete-process rules | Map applicable criteria to automated and manual checks, target pages/processes, technologies, versions and known gaps |
|
|
62
|
+
| A11Y-02 | Informative guidance — [W3C, Involving Users in Evaluating Web Accessibility](https://www.w3.org/WAI/test-evaluate/involving-users/) | Combine standards evaluation with disabled-user evaluation to find issues either method can miss | One participant does not represent all users; user evaluation alone cannot determine accessibility conformance | Record participant characteristics, task/protocol, assistive technology, scope, findings, limits and standards checks |
|
|
63
|
+
| A11Y-03 | Informative guidance — [ARIA Authoring Practices Guide introduction](https://www.w3.org/WAI/ARIA/apg/about/introduction/) | Use common role/state/keyboard patterns as implementation references for rich web widgets | APG explicitly is not a complete design system or production-ready code; examples may omit localization and platform robustness | Verify normative ARIA/HTML requirements, browser/AT behavior, keyboard/focus, localization and production constraints |
|
|
64
|
+
| A11Y-04 | Standard — [WCAG 2.2 SC 2.5.8, Target Size Minimum](https://www.w3.org/TR/WCAG22/#target-size-minimum); informative explanation — [Understanding SC 2.5.8](https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum) | For Web Level AA, pointer targets are at least 24×24 CSS px or meet a named exception such as spacing/equivalent/inline/user-agent/essential | The Understanding document is informative; the criterion is Web-scoped and allows explicit exceptions. It is not the Apple/Android platform target | Measure target geometry/spacing at relevant zoom and pointer modes; record the exception when used |
|
|
65
|
+
| A11Y-05 | Vendor convention — [Android, Make apps more accessible](https://developer.android.com/guide/topics/ui/accessibility/apps) | Android recommends at least 48×48dp focusable/touch targets for touch interfaces and tests semantics with manual/automated tools | Precise mouse/trackpad input may use smaller targets; this is Android guidance, not a cross-platform constant | Measure the actual touch/focusable region, not only the icon; test touch, accessibility service output and custom components |
|
|
66
|
+
| A11Y-06 | Vendor convention — [Apple Human Interface Guidelines, Buttons](https://developer.apple.com/design/human-interface-guidelines/buttons) | Apple states as a general rule that a button needs a hit region of at least 44×44pt; visionOS uses 60×60pt | This is first-party Apple-platform guidance for button hit regions, not a universal touch-target constant or evidence that every control is usable | Measure the actual hit region separately from the glyph on each target Apple platform; retain the platform/input context and verify selection with the intended input modes |
|
|
67
|
+
| A11Y-07 | Standard — [WCAG 2.2 SC 4.1.2, Name, Role, Value](https://www.w3.org/TR/WCAG22/#name-role-value) and [SC 2.5.3, Label in Name](https://www.w3.org/TR/WCAG22/#label-in-name) | For Web, every user-interface component covered by SC 4.1.2 exposes a programmatically determinable name and role; when a visible text label exists, SC 2.5.3 requires the accessible name to contain that text | A visible label is not sufficient unless the target technology exposes it through the accessible-name computation. These criteria do not require a visible label for every control or define native-platform semantics | Inspect the accessibility tree/name computation and role/state/value; test visible-label speech input and browser/assistive-technology output |
|
|
68
|
+
| A11Y-08 | Standard — [WCAG 2.2 SC 1.4.3, Contrast Minimum](https://www.w3.org/TR/WCAG22/#contrast-minimum) and [SC 1.4.11, Non-text Contrast](https://www.w3.org/TR/WCAG22/#non-text-contrast) | For scoped Web Level AA, text and images of text meet 4.5:1; large-scale text (at least 18pt regular or 14pt bold, or an equivalent relative size) meets 3:1, while visual information required to identify UI components/states and graphical objects meets 3:1 | SC 1.4.3 retains incidental-text and logotype exceptions. SC 1.4.11 retains inactive/user-agent component and essential-graphic exceptions; neither criterion makes every pixel or decorative graphic subject to 3:1 | Measure rendered foreground/background or adjacent colors in the applicable states and retain the criterion, large-text basis and any named exception in the result |
|
|
69
|
+
| A11Y-09 | Vendor convention — [Apple Human Interface Guidelines, Accessibility](https://developer.apple.com/design/human-interface-guidelines/accessibility) | Apple says that, in general, about 12pt of padding around elements with a bezel and about 24pt around the visible edges of bezel-less elements works well to reduce accidental selection | This is approximate Apple-platform spacing guidance, not a minimum target size, a universal inter-control distance, or an unconditional acceptance threshold | Measure the rendered target and surrounding spacing separately on each target Apple platform, then exercise adjacent controls with the intended input modes and record exceptions or mis-selections |
|
|
81
70
|
|
|
82
|
-
|
|
71
|
+
Do not collapse accessibility into color contrast. Include semantics/name-role-value, keyboard/focus, pointer/touch, reflow/text scale, error identification and suggestion, status messages, motion, authentication, and complete task processes as applicable.
|
|
83
72
|
|
|
84
|
-
|
|
85
|
-
- HIG platform-capability integrations (Siri/Shortcuts, Switch Control, Voice Control setup, Assistive Access optimization) and watchOS/visionOS-specific rules — implementation- or platform-mode-specific; route to the stack implementation skill if those surfaces enter scope. One exception is retained: the visionOS 60×60pt hit-region figure stays inside the iOS hit-region criterion as informational context only — this walkthrough's scope remains iOS/Android mobile surfaces and does not govern visionOS.
|
|
86
|
-
- Material state-layer token mechanics (fixed opacity percentages, on-color derivation) — design-kit implementation detail owned by token/component references, not an acceptance criterion.
|
|
87
|
-
- Material web-landmark role enumeration (the eight ARIA roles) — imported only as the "landmarks get unique labels" criterion; the full role catalog is reference material, not a checklist.
|
|
88
|
-
- Visual-style content from either spec (Liquid Glass materials, M3 Expressive shapes/motion values) — style adoption is a product decision covered by `platform-mobile-patterns.md` Platform OS Updates; copying platform visual language is already ruled out by "What Not To Absorb" below.
|
|
73
|
+
### Responsive and adaptive layout
|
|
89
74
|
|
|
90
|
-
|
|
75
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
76
|
+
| --- | --- | --- | --- | --- |
|
|
77
|
+
| RESP-01 | Specification or draft — [Media Queries Level 5](https://www.w3.org/TR/mediaqueries-5/) | Adapt to observable environment features such as viewport, input, display and user preferences; re-evaluate when environment changes | Retain the source's publication status and check target-browser support. Media queries test environment/device aspects, not component content; device categories alone are insufficient | Resize/orient/change preferences at runtime; test intermediate values, input changes and text zoom, not only named devices |
|
|
78
|
+
| RESP-02 | Specification or draft — [CSS Containment Level 3, Container Queries](https://www.w3.org/TR/css-contain-3/#container-queries) | Adapt a component to its query container when local available space differs from viewport space | Retain the source's publication status and check target-browser support. The spec defines mechanisms, not which breakpoints or visual composition are good | Test component instances in narrow/wide containers, nested contexts, long content and dynamic resize |
|
|
79
|
+
| RESP-03 | Vendor convention — [Android, Window size classes](https://developer.android.com/develop/adaptive-apps/guides/use-window-size-classes) | Use actual app-window space to select adaptive layouts | Android describes its thresholds as opinionated platform guidance; a window class is not a physical-device identity | Test resizable windows, split screen, orientation and posture transitions; choose layout changes from content/task constraints |
|
|
91
80
|
|
|
92
|
-
|
|
81
|
+
Breakpoints are implementation decisions derived from content, available space, input and state transitions. “Desktop/tablet/mobile” screenshots alone do not prove adaptation.
|
|
93
82
|
|
|
94
|
-
|
|
95
|
-
- Avoid layout shifts when cards, media, citations, ads/promotions, AI output, or toolbars load.
|
|
96
|
-
- User input should remain responsive during streaming, upload, PDF/document rendering, long tables, and chart rendering.
|
|
97
|
-
- Heavy panels should lazy-load without hiding the primary task.
|
|
98
|
-
- Progress should be visible for long-running operations; if duration is uncertain, show staged progress and recovery options.
|
|
99
|
-
- Repeated rerenders, oversized bundles, unbounded lists, and hidden but mounted expensive viewers should be treated as launch risks.
|
|
83
|
+
### Motion and feedback
|
|
100
84
|
|
|
101
|
-
|
|
85
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
86
|
+
| --- | --- | --- | --- | --- |
|
|
87
|
+
| MOT-01 | Contextual empirical — [Tversky, Morrison & Bétrancourt 2002, Animation: can it facilitate?](https://doi.org/10.1006/ijhc.2002.1017) | Match graphic form to the concept and use interaction to help users apprehend change over time | Comparable animations were not generally superior to static graphics; complexity and speed can make them harder to perceive | State the animation's information job, compare an equivalent static/reduced-motion form, and test comprehension/control |
|
|
88
|
+
| MOT-02 | Specification or draft — [Media Queries Level 5, `prefers-reduced-motion`](https://www.w3.org/TR/mediaqueries-5/#prefers-reduced-motion) | Detect a user's request to minimize non-essential motion | Retain the source's publication status and check target-browser support. The preference does not mean remove state feedback or all animation | For each motion, name purpose and essential/decorative status; verify reduced-motion output retains state/causal information |
|
|
89
|
+
| MOT-03 | Standard — [WCAG 2.2 SC 2.3.3, Animation from Interactions](https://www.w3.org/TR/WCAG22/#animation-from-interactions); informative explanation — [Understanding SC 2.3.3](https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions) | For Web Level AAA, provide a way to disable non-essential motion animation triggered by interaction | The Understanding page is informative. This Web Level AAA criterion is not a universal duration/SLO or cross-platform rule | Exercise triggering interactions with the preference/setting and verify equivalent non-motion feedback |
|
|
102
90
|
|
|
103
|
-
|
|
91
|
+
Model feedback as `event → acknowledged/pending → success/failure/partial/unknown → recovery`. A remembered “0.1/1/10 second” heuristic is not a service SLO or universal acceptance threshold.
|
|
104
92
|
|
|
105
|
-
|
|
106
|
-
- **Engagement**: feed depth, comments/replies, reactions, follows, topic joins, creation attempts, AI draft usage.
|
|
107
|
-
- **Adoption**: first successful action, first follow, first post/comment, first AI-assisted contribution, onboarding completion.
|
|
108
|
-
- **Retention**: return from notification, repeat visits, recurring creation, saved topics, creator return.
|
|
109
|
-
- **Task success**: completion rate, time to complete, error rate, retry rate, abandon step, moderation appeal success.
|
|
93
|
+
### Error prevention and recovery
|
|
110
94
|
|
|
111
|
-
|
|
95
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
96
|
+
| --- | --- | --- | --- | --- |
|
|
97
|
+
| ERR-01 | Standard — [WCAG 2.2 SC 3.3.4](https://www.w3.org/TR/WCAG22/#error-prevention-legal-financial-data); informative explanation — [Understanding SC 3.3.4](https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data) | For covered high-consequence submissions, make changes reversible, checked/correctable, or reviewable/confirmable | The Understanding page is informative. The criterion does not require confirmation for every save or routine edit | Classify consequence; verify the selected reversible/check/review mechanism and recovery path |
|
|
98
|
+
| ERR-02 | Standard — [WCAG 2.2 SC 3.3.3](https://www.w3.org/TR/WCAG22/#error-suggestion) and [SC 4.1.3](https://www.w3.org/TR/WCAG22/#status-messages); informative explanations — [Error Suggestion](https://www.w3.org/WAI/WCAG22/Understanding/error-suggestion.html) and [Status Messages](https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html) | Identify errors and suggestions when known; expose status without unnecessary focus movement | The Understanding pages are informative. Suggestions can be inappropriate when they would compromise purpose/security; status semantics do not prescribe one visual carrier | Test local error association, repair guidance, retained input, assistive announcement, focus and retry/restore outcome |
|
|
112
99
|
|
|
113
|
-
|
|
100
|
+
Select constraint, inline validation, preview, undo, confirmation, retry or restore from consequence and reversibility. Confirmation everywhere creates friction and habituation; transient toasts are insufficient for errors users must act on.
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
### Design systems and executable claims
|
|
116
103
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
-
|
|
121
|
-
- Content clarity smoke test: empty/error/success states say what happened and what to do next.
|
|
104
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
105
|
+
| --- | --- | --- | --- | --- |
|
|
106
|
+
| DS-01 | Community Group report — [Design Tokens Format Module 2025.10](https://www.w3.org/community/reports/design-tokens/CG-FINAL-format-20251028/) | Exchange typed token values, groups, aliases, deprecation metadata and extensions across tools | The report explicitly is not a W3C Standard or Standards Track deliverable and does not define visual quality, semantic naming, governance or runtime correctness | Validate format/alias resolution, then render representative components across themes/platforms and inspect contrast/state drift |
|
|
107
|
+
| DS-02 | Informative guidance — [GOV.UK Design System contribution criteria](https://design-system.service.gov.uk/community/contribution-criteria/) | Reusable patterns need an evidenced user need, broad usefulness, quality, documentation and maintenance | A mature component still needs target-service validation; contribution rules are not universal regulation | Record purpose, states, accessibility/research evidence, implementation mapping, version/owner and current-context test |
|
|
122
108
|
|
|
123
|
-
|
|
109
|
+
A token file is not a design system. A story is not an executed test. A component-library dependency is not accessibility proof. Encode stable invariants in semantic APIs/types/tests and verify representative rendered states.
|
|
124
110
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
111
|
+
### Usability and acceptance evidence
|
|
112
|
+
|
|
113
|
+
| ID | Class and source | Supported use | Boundary | Observable check |
|
|
114
|
+
| --- | --- | --- | --- | --- |
|
|
115
|
+
| EVAL-01 | Informative guidance — [GOV.UK, Moderated usability testing](https://www.gov.uk/service-manual/user-research/using-moderated-usability-testing) | Observe actual/likely users attempting credible, goal-based tasks; agree questions, users and target areas first | Think-aloud and moderated protocols can affect behavior; findings depend on participants/tasks/prototype fidelity | Record research question, participant criteria, neutral task, expected outcome, observations, errors, help, completion and limits |
|
|
116
|
+
| EVAL-02 | Contextual empirical — [Faulkner 2003, Beyond the five-user assumption](https://doi.org/10.3758/BF03195514) | Choose sample size from study risk and problem variability instead of a fixed folklore number | In this 60-person study, random groups of five found 55%–99% of known issues; the exact range does not transfer to every product | Predeclare purpose and stopping rule; report sample, task coverage, issue yield/severity and what the study cannot generalize |
|
|
117
|
+
| EVAL-03 | Informative guidance — [WCAG-EM](https://www.w3.org/WAI/test-evaluate/conformance/wcag-em/) | Structure a scoped website accessibility conformance evaluation | Sampling/method execution must match the claim; it does not establish general usability | Identify scope, complete processes, representative pages/states, technologies, evaluation methods and result limitations |
|
|
118
|
+
|
|
119
|
+
Evidence types answer different claims: source/intent, static implementation, automated acceptance, rendered/device runtime, representative task/user, and production outcome. Select every dimension required by the claim; there is no globally highest rung. Later field evidence may strengthen its own outcome claim, but it cannot discharge independent standards-conformance, automated-oracle, runtime-state, or user-task obligations. Do not let a heuristic review, linter, screenshot, or single user opinion stand in for a claim it does not establish.
|
|
120
|
+
|
|
121
|
+
## Platform convention use
|
|
122
|
+
|
|
123
|
+
Platform guidance is an adapter, not shared theory:
|
|
124
|
+
|
|
125
|
+
- Web uses WCAG and web-platform specifications for conformance claims, plus target browser/assistive-technology evidence.
|
|
126
|
+
- Apple-platform work uses the current Apple Human Interface Guidelines and platform APIs; preserve whether a statement is a requirement, general rule, or recommendation.
|
|
127
|
+
- Android work uses current Android/Material guidance and runtime APIs.
|
|
128
|
+
- Mini-programs use the target host's current conventions and capability/permission model.
|
|
129
|
+
- Terminal/TUI work uses terminal geometry, input, color/fallback, selection/copy, scrollback and real-PTY evidence.
|
|
130
|
+
- Windows/Linux native desktop, Electron, TV, and any other rendered client use their current first-party platform guidance plus the installed client owner; when no owner is installed, use the fail-closed project-convention lookup in `delivery-contract.md`. An embedded renderer and its shell remain separate owner/evidence members.
|
|
131
|
+
|
|
132
|
+
When two platforms give different numbers or behavior, keep both platform-scoped. Do not average them into a “universal” rule.
|
|
133
|
+
|
|
134
|
+
For cross-platform criteria, use one row per target for native units and target
|
|
135
|
+
geometry/spacing, text scale, size/orientation extremes, input and
|
|
136
|
+
assistive-technology traversal, motion, and contrast/state cues. Mark `not
|
|
137
|
+
applicable` with a reason; one platform never proves another.
|
|
138
|
+
|
|
139
|
+
## Maintenance rules
|
|
140
|
+
|
|
141
|
+
1. Add or change a blocking claim only with an exact named source, direct URL, scope, authority class, observable check, and verification date.
|
|
142
|
+
2. Preserve normative strength. Recommendation/“consider” language cannot become an unconditional failure without an independently owned product rule.
|
|
143
|
+
3. If a source is unreachable, follow blocked-source remediation; do not reconstruct precise wording or numbers from memory.
|
|
144
|
+
4. Mark local observations and aesthetic preferences as local heuristics. Promote them only after target evidence and independent review.
|
|
145
|
+
5. Recheck version-sensitive platform and performance claims at use time. Stable theory still retains its original population/task boundary.
|
|
@@ -8,53 +8,62 @@ Users without code access can still use the distilled patterns in this file and
|
|
|
8
8
|
|
|
9
9
|
- Absorb implementation mechanics only: state ownership, async handling, navigation, permissions, upload/progress, preview, review, charts, tables, tooltips, layout recovery, and build scripts.
|
|
10
10
|
- Do not copy source product names, business workflows, legacy information architecture, or visual taste into a generic product skill.
|
|
11
|
-
-
|
|
12
|
-
-
|
|
11
|
+
- Pin the fetched ref and candidate before comparing sources. “Latest” means the verified development ref after refresh, not the repository's default branch or a remembered path.
|
|
12
|
+
- Rank code by demonstrated mechanism and verification, not framework prestige or dependency presence. A component, story, test, or script that exists but was not executed is static-source evidence only.
|
|
13
|
+
- Trace at least one complete path from product-visible state or component API through its owner, renderer, test, and CI invocation before promoting a mechanism to a hard rule. Record what the gate scans and what it cannot detect.
|
|
14
|
+
- When auditing, updating, or re-extracting from source, treat package scripts and source structure as evidence only after confirming the subproject and invocation exist at the pinned ref. For normal use, rely on the distilled patterns below.
|
|
13
15
|
|
|
14
|
-
## Source
|
|
16
|
+
## Source Evidence Classification
|
|
15
17
|
|
|
16
18
|
For each frontend subproject in scope, classify the code evidence before extracting rules. The shape below is the classification frame; specific paths live in the private archive.
|
|
17
19
|
|
|
18
|
-
|
|
|
20
|
+
| Evidence level | Required evidence | Permitted use |
|
|
19
21
|
| --- | --- | --- |
|
|
20
|
-
| **
|
|
21
|
-
| **
|
|
22
|
-
| **
|
|
22
|
+
| **Runtime-verified** | An executed runtime path on the pinned candidate plus bound focused assertions or deterministic gate results | Verified state semantics, component invariants, recovery, preservation, token use, accessibility mechanics, and gate boundaries within the executed scope |
|
|
23
|
+
| **Rendered, incomplete** | Current rendered output with traceable owners but incomplete test/CI or runtime coverage | Candidate interaction/state mechanisms and known evidence gaps; do not promote the missing layer by inference |
|
|
24
|
+
| **Static-source candidate** | Relevant source, focused test files, scripts, or CI wiring exist at the pinned ref, but execution and rendered/runtime output were not observed | Candidate mechanism and intended check only; never claim execution, runtime behavior, accessibility, visual quality, or completion |
|
|
25
|
+
| **Context only** | Dependency lists, examples, stories, screenshots, legacy code, or isolated source fragments without a traced mechanism | Hypothesis or matching-stack context only; never a visual benchmark or completion claim |
|
|
23
26
|
| **Backend (out of scope)** | Service-side code | Out of scope for this skill except for product-visible lifecycle consequences; route to the backend skill |
|
|
24
27
|
|
|
25
|
-
A
|
|
28
|
+
A dependency or directory name can classify likely stack shape; it cannot establish source strength, runtime behavior, accessibility, visual quality, or test execution.
|
|
26
29
|
|
|
27
|
-
##
|
|
30
|
+
## Static-Source Candidate Patterns
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
Retained evidence for the source-neutral patterns below is limited to the implementation paths, focused test files, scripts, or CI wiring actually observed for each pattern at the pinned ref; not every pattern has every layer. It contains no executed test/gate result and no rendered/runtime observation. The list therefore records candidate mechanisms and intended checks, not verified behavior or product quality.
|
|
30
33
|
|
|
31
|
-
-
|
|
34
|
+
- Product-visible error semantics: classify errors by affected scope, recovery path, durability/finality, and retry safety. Map each class to one primary carrier and safe action; prove mapping coverage when source error classes are enumerable.
|
|
35
|
+
- Component contracts: encode stable visual, state, and accessibility invariants in typed component APIs or semantic primitives, then pin the highest-cost invariants with focused tests. A component library import is not proof that callers preserve those invariants.
|
|
36
|
+
- Stateful workspaces: keep the draft/focus/selection/scroll/media core mounted across transient overlays, loading, errors, and mode changes when remounting would lose work. Verify preservation at runtime.
|
|
37
|
+
- Deterministic design gates: automate a small set of costly, enumerable failures such as unmapped states, forbidden raw values, missing semantic roles, or invalid component variants. Record scan scope, known false negatives, and the manual/rendered checks that remain.
|
|
38
|
+
- Semantic tokens and previews: treat tokens, state catalogs, stories, and examples as implementation sources that need drift checks. Token existence proves reference, not rendered theme quality; story existence proves source, not execution.
|
|
39
|
+
- Explicit async and trust states: represent initial/loading/partial/failure/retry/final states and expose source, freshness, permission, or automation status where it changes user decisions.
|
|
40
|
+
- Identity-scoped async effects: snapshot enough session identity at request dispatch to distinguish an account switch from same-account credential rotation, compute stale/current ownership once where request-time and current state are both visible, and expose only a non-secret conclusion to consumers. Before destructive cleanup, logout, navigation, or delayed initialization compensation, ignore superseded work and re-check queued work against the current session. Focused tests should cover account switches, credential rotation, anonymous-to-authenticated races, unchanged-session failure, overlapping initialization, legacy or missing metadata, and listener disposal.
|
|
41
|
+
- Analytics identity lifecycle: model binding, reset, pending cleanup, and rebinding as an explicit state machine across telemetry providers. On logout or authentication expiry, clear each provider and cached user dimensions; when a provider is unavailable, persist only the minimum scoped pending marker and flush it before binding another identity. Anonymous reset is a no-op, provider/storage failures stay isolated, credentials never enter page-wide events, and cross-tab/runtime limits remain explicit.
|
|
42
|
+
- Build scripts: preserve environment-mode, generated-client, preview, test, and build separation when the target codebase supports it; verify the actual script/CI execution and result before citing it as an executed gate.
|
|
32
43
|
- Mobile primitives: responsive shell, route guard, bottom navigation, safe-area/keyboard behavior using viewport-aware fallbacks, WebView bridge initialization, development-only debug tooling, touch gestures, portrait/landscape review modes, left/right-handed toolbar adaptation, toast/notice provider with queue/dedupe behavior, consent/update dialogs, image/media preview, document viewer, async loading/error/retry, no-data states, report/chart containers, and mobile feature modularization. These cross-check the mobile design-system primitives for NoticeBar, Dialog, Modal, ErrorBlock, Toast, SafeArea, TabBar, Popup, ImageUploader, and ResultPage.
|
|
33
44
|
- Web primitives: central API request wrapper, design-system shell, route-selected sidebar, collapsible navigation, route metadata for layout/menu/permission, process tabs for active jobs, permission-gated menus/actions, drawer/modal/detail inspection, upload and document preview, scan/review progress drawers, rich media viewers, chart/report sections, data tables, event bridge for active workflow tabs, download task entries, and long-label truncation with measured overflow tooltips. These cross-check the web design-system patterns for Sidebar, Content Card, Chat Bot, Empty, Alert, Message, Dialog, Steps, responsive widths, and card min/max height.
|
|
34
45
|
- Complex interaction primitives: dnd/drag selection, canvas/image/PDF preview, zoom/pan/crop, source upload, parse/process progress, manual correction, structured editing, split/merge/reorder, preview before commit, and export/download.
|
|
35
46
|
- Review and ops primitives: workbench/task queues, content/audit/check pages, search forms, pagination, persisted filters, multi-select, batch operation, operation-after-reload/reset, distribution/download, filters/search, segmented controls, no-data/empty states, direct row actions, and affected-scope summaries.
|
|
36
|
-
- Visual/runtime
|
|
47
|
+
- Visual/runtime candidates: source paths include chart value-normalization and instance-cleanup logic; canvas/image paths include device-pixel-ratio, zoom/pan, drag, reset, and preview-state handling. Treat visible long-running export/download jobs as a design hypothesis until runtime evidence exists.
|
|
37
48
|
- Structured editor primitives: engine initialization, initialization-failure retry, side settings panel, validation-driven disabled save, preview/render callback, zoom/pan canvas controls, object grouping, and editable vs preview object distinction.
|
|
38
49
|
- Native/device task primitives: host bridge initialization, old/new bridge fallback, callback id lifecycle and cleanup, device status taxonomy, preflight configuration, wait state, success continuation, retry/reselect/report recovery, and automatic support reporting for classified failures.
|
|
39
|
-
- Design-system reference primitives (from refreshed
|
|
50
|
+
- Design-system reference primitives (from refreshed source files): application navigation, modals, table header/cell/row actions, empty states, chart axes/legends/markers, metrics, progress steps, alerts/notifications, icon best practices, flowchart nodes, decision branches, hot zones, annotations, measurement labels, cursor/gesture cues, and UAT/workflow templates. Use these to scope source review, not as proof of product capability, product IA, or brand direction.
|
|
40
51
|
|
|
41
52
|
## Cross-Skill Routing
|
|
42
53
|
|
|
43
54
|
- Visual/state acceptance → stays in this skill (`product-ui-ux-design`).
|
|
44
|
-
- React
|
|
55
|
+
- React browser implementation ownership → `web-react-dev`; Vue/Svelte/static/vendor/other browser implementation → its installed web-content owner or the fail-closed project-convention lookup in `delivery-contract.md`.
|
|
45
56
|
- Flutter/Android/iOS/RN implementation ownership → `app-cross-platform-dev`.
|
|
46
57
|
- Mini-program implementation ownership → `miniapp-product-dev`.
|
|
58
|
+
- Full-screen terminal/TUI implementation ownership → `terminal-cli-dev`.
|
|
59
|
+
- Electron/desktop/TV shell or another rendered layer without an installed owner → the fail-closed project-convention lookup in `delivery-contract.md`; use `no-installed-owner` only after that lookup completes.
|
|
47
60
|
- Test-layer planning → `testing-strategy`.
|
|
48
61
|
- Backend service implementation → the relevant backend skill (e.g. Python service, Go microservice).
|
|
62
|
+
- Shared handoff fields, handoff order, evidence semantics, and verdict → `delivery-contract.md`.
|
|
49
63
|
|
|
50
|
-
##
|
|
64
|
+
## Mechanism Translation
|
|
51
65
|
|
|
52
|
-
When
|
|
53
|
-
|
|
54
|
-
- Mobile app implementation → community mobile shell, onboarding, profile/settings, AI creation, notification, feed/detail, and insight surfaces.
|
|
55
|
-
- Web shell implementation → creator center, moderation/trust workspace, AI workspace, asset/resource governance, analytics, and settings.
|
|
56
|
-
- Creation/editing implementation → AI draft creation, media/content import, structured post/event/content-pack setup, and review-before-publish.
|
|
57
|
-
- Scan/print/canvas implementation → media ingestion, document preview, QR/device flows, evidence capture, and export/share flows.
|
|
66
|
+
When moving a mechanism into another product or stack, preserve the problem and observable invariant, not source nouns or component shape. Re-derive the target task, state and adaptation matrices, error/recovery semantics, platform convention, and evidence layer through `delivery-contract.md`. A source implementation becomes a candidate mechanism until the target runtime proves it.
|
|
58
67
|
|
|
59
68
|
Discard the source product's nouns, role labels, and workflow copy from any extracted rule.
|
|
60
69
|
|
|
@@ -43,7 +43,7 @@ Use the canonical state taxonomy in `product-surface-patterns.md`. This file add
|
|
|
43
43
|
- Progress states should distinguish short loading, streaming, upload/parse, long-running background task, and pagination/loading-more.
|
|
44
44
|
- Result states should distinguish success, partial success, no result, stale result, and generated-but-unreviewed result.
|
|
45
45
|
- Error states should distinguish retryable, non-retryable, permission denied, unsupported input, offline/network, and backend rejection.
|
|
46
|
-
- Control states should include selected, active, hover, pressed, focused, disabled, expanded/collapsed, and long-content behavior.
|
|
46
|
+
- Control states should include selected, active, hover, pressed, focused, disabled, expanded/collapsed, and long-content behavior when applicable. Make consequentially different states perceivable with more than a barely visible opacity change; preserve a visible focus indicator for keyboard-focusable controls. Disabled controls expose a safe reason and enablement condition, or are hidden when disclosure would be unsafe. Do not require every platform/state to use a different decorative effect; verify distinguishability and meaning in the target runtime.
|
|
47
47
|
- Reversal states should include undo, cancel, remove, retake, replace, exit, clear, reset, and return.
|
|
48
48
|
- Trust states should include source visible, AI caveat, moderation/review label, reported/blocked/muted state, and risk-sensitive confirmation.
|
|
49
49
|
|
|
@@ -118,14 +118,30 @@ When this skill is used for finance, health, legal, enterprise admin, or other t
|
|
|
118
118
|
|
|
119
119
|
This adaptation does not turn the skill into a finance compliance skill. It only prevents generic consumer interaction patterns from becoming unsafe in serious domains.
|
|
120
120
|
|
|
121
|
+
Dangerous operations expose accountability in the interaction itself: the reason, acting operator, consequence-aware confirmation, and a support/audit identifier or context. Backend logs alone do not satisfy this user-facing contract.
|
|
122
|
+
|
|
123
|
+
## Configurable Shortcuts And Command Palettes
|
|
124
|
+
|
|
125
|
+
Treat configurable shortcuts, command palettes, and keyboard-first tools as a user-facing interaction contract, not invisible implementation glue. The design brief and runtime evidence cover this complete set:
|
|
126
|
+
|
|
127
|
+
- discoverability in context and in the configuration surface;
|
|
128
|
+
- reserved or non-rebindable key combinations and actions;
|
|
129
|
+
- conflict and invalid-binding messages with a repair path;
|
|
130
|
+
- mode/context priority when the same key can mean different things;
|
|
131
|
+
- text-input, IME/composition, and editable-content safety;
|
|
132
|
+
- keyboard-only access to the same primary actions; and
|
|
133
|
+
- a visible reset-to-defaults recovery path.
|
|
134
|
+
|
|
135
|
+
Do not claim the shortcut system accepted when any applicable item is unspecified or verified only as a source mapping.
|
|
136
|
+
|
|
121
137
|
## Form & Defensive UI Patterns
|
|
122
138
|
|
|
123
|
-
- **
|
|
139
|
+
- **Display-data label economy is not permission to remove form semantics**: (a) **display data** may omit a repeated visible prefix when layout, grouping, value format, and programmatic relationship keep the meaning unambiguous for sighted and assistive-technology users; an icon or familiar-looking value alone is not proof. (b) **Form inputs** need an accessible name and any necessary visible label/instructions; placeholder text cannot be the only label. A visually hidden label is valid only when programmatic association, persistent context, and speech-input naming remain correct. Standard sources and boundaries live in `external-ui-ux-quality-benchmarks.md`.
|
|
124
140
|
- **User-supplied / 外部资源必有 fallback,按内容类型分对应模式**:avatar → initials / 默认头像;通用 media (cover/banner) → placeholder / blurhash;语义关键媒体(chart / map / PDF preview / 法律凭据)→ **不可用"看起来正常"的默认替代**(会误导用户认为渲染成功),必给明确"unavailable"或"无法渲染"状态;远程加载 → skeleton + retry control;生成型 preview → 明确"生成失败"状态 + retry。设计时显式给 fallback 视觉,不让 dev "实现时再说"。
|
|
125
141
|
|
|
126
142
|
## UI Copy Patterns(quick reference)
|
|
127
143
|
|
|
128
|
-
Operational microcopy patterns;
|
|
144
|
+
Operational microcopy patterns. The bullets below are the operative criteria; bind their applicable results through `delivery-contract.md` rather than a separate checklist section.
|
|
129
145
|
|
|
130
146
|
- **Button label**:verb + 具体对象(`Save changes` / `Send message`),avoid generic when action 不明(`Submit` 弱、`OK` 遮蔽结果);platform dialog 标准位 `Cancel`/`OK` 仍可用。Destructive 更显式(`Delete forever`)
|
|
131
147
|
- **Error**:happened / why(安全可披露时给)/ what to do;不出 stack trace 或纯 error code 作主文案
|
|
@@ -136,11 +152,14 @@ Operational microcopy patterns; 完整规则见 `design-execution-checklist.md`
|
|
|
136
152
|
|
|
137
153
|
## Review Checklist
|
|
138
154
|
|
|
155
|
+
This checklist contributes interaction criteria to the applicable design record; it cannot issue ready/complete. Apply it to every affected client owner in `delivery-contract.md` and close only through the complete design/test/producer/client binding set, Test Phase 1, and design verdict.
|
|
156
|
+
|
|
139
157
|
- The primary loop is visible without reading documentation.
|
|
140
158
|
- The next action is clear in happy, empty, loading, error, and partial states.
|
|
141
159
|
- Feedback strength matches the canonical ladder in this file.
|
|
142
160
|
- Mobile screens handle keyboard, safe area, return navigation, long labels, and one-handed action placement.
|
|
143
161
|
- Web screens handle collapsed navigation, selected state, filters, task/process entries, detail drawers, and responsive secondary panels.
|
|
162
|
+
- Mini-app, ordinary CLI or terminal/TUI, other-Web, Electron/desktop/TV, and composite-host surfaces add their actual owner-specific input, host, geometry, fallback, bridge, and recovery checks; the Mobile/Web bullets are examples, not a closed platform set.
|
|
144
163
|
- AI flows include generating, failed, reviewed, editable, source/citation, and regenerate paths.
|
|
145
164
|
- Trust-sensitive actions include source, timestamp, confirmation, retry, and audit-friendly state labels.
|
|
146
165
|
- Domain terms from source Figma/code have been translated or discarded.
|