ui-check-framework
skillBuild or extend an extensible UI self-check framework for Web UIs (React/Vite or plain HTML) using Playwright. Use when asked to add/upgrade ui-check or ui-watch flows, enforce data-qa/data-testid discovery, add theme/contrast checks, animation verification, loading state-machine checks, layout stability/overlap checks, modal scroll rules, or to document QA tagging standards and UI testing commands.
apm::install
apm install @yiyousiow000814/ui-check-frameworkapm::skill.md
---
name: ui-check-framework
description: Build or extend an extensible UI self-check framework for Web UIs (React/Vite or plain HTML) using Playwright. Use when asked to add/upgrade ui-check or ui-watch flows, enforce data-qa/data-testid discovery, add theme/contrast checks, animation verification, loading state-machine checks, layout stability/overlap checks, modal scroll rules, or to document QA tagging standards and UI testing commands.
---
# UI Check Framework
## Overview
Create or refine an automated UI self-check system that discovers UI blocks via data-qa
tags and enforces behavioral/visual contracts (themes, animations, loading, layout
stability, modal usability, error visibility). The framework must scale to new cards,
modals, toasts, and actions without writing new test cases each time.
## Workflow (use in order)
1) **Inspect existing scaffolding**
- Prefer reusing the project's `ui-tests/` folder if it exists.
- Read `ui-tests/docs/UI_TESTING.md` and `ui-tests/docs/QA_TAGGING.md` if present.
- Confirm scripts in root `package.json` (`ui:test`, `ui:update-baseline`,
`ui:report`, `ui:check`, `ui:watch`) point at Playwright flows.
2) **Enforce discovery**
- Auto-collect all `data-qa` or `data-testid` elements that start with `qa:`.
- Capture component screenshots (cards, modals, menus, toolbars, toasts) at
small/medium/large sizes.
- For modals: verify internal scroll, single close button, and header visibility
at small window height.
3) **Enforce contracts (generic, not hardcoded)**
- Theme contrast/readability for dark/light/system (see references).
- Animation/motion checks for spinners, transitions, toasts.
- Loading state machine for async actions: idle -> loading -> success/error -> idle.
- Layout stability (no layout shift for transient status/toasts).
- Overlap detection for action buttons and modal header/footer.
- Error visibility and blank-page detection.
4) **Wire UI hooks for automation**
- Add minimal `window.__ui_check__` helpers (e.g., append log, trigger toast) to
make contracts testable without hardcoding selectors.
- Add required `data-qa` tags to new cards/modals/actions as they appear.
5) **Artifacts and reporting**
- Store artifacts under `artifacts/ui-check/` (snapshots, frames, video, report.html).
- Ensure `ui:check` is interactive (open/close modal, hover/press, theme toggle, scroll).
## Project-specific anchors
- Primary UI tests live in `ui-tests/` and use Playwright.
- Use `ui-tests/scripts/ui-check.mjs` and `ui-tests/scripts/ui-watch.mjs` as the
interactive validation entry points.
- Keep user-facing docs in `ui-tests/docs/UI_TESTING.md` and
`ui-tests/docs/QA_TAGGING.md`.
## References
- `references/workflow.md` - extension workflow and verification checklist.
- `references/qa-tagging.md` - required QA tokens and naming conventions.
- `references/contracts.md` - required generic contracts and how to check them.