testing
Full QA procedure — interaction map, unit tests, Maestro flows, visual review
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Full QA procedure — interaction map, unit tests, Maestro flows, visual review
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyze every interactive UI element — classify effects, detect broken promises, map cross-screen dependencies
Add/remove features, fix bugs, redesign — keeping code clean and artifacts in sync
Generate a new mobile app — full pipeline or code-only if PRD already exists
Run full QA — interaction map, unit tests, Maestro UI tests, visual review
Read screenshots and verify UI against DESIGN.md, reference mockups, and quality checklist
Build an app from a pre-written PRD file without interactive discovery
| name | testing |
| description | Full QA procedure — interaction map, unit tests, Maestro flows, visual review |
Complete testing procedure for an app. Follow EVERY step in order. Do NOT skip steps.
Read .claude/skills/interaction-map/SKILL.md and build the full interaction map for the app.
Output: table of all interactive elements with effect types. Report any bugs found (broken promises).
Grep the codebase for gesture-based components that are invisible in the UI but crash if not set up correctly:
Swipeable, ReanimatedSwipeable, PanGestureHandler, LongPressGestureHandler,
FlingGestureHandler, PinchGestureHandler, Draggable, pull-to-refresh (RefreshControl)
For each one found:
GestureHandlerRootView wraps the app rootGestures are a blind spot — tsc, bundler, unit tests, and runtime log checks all pass while the app crashes on first swipe.
Based on the interaction map + gesture scan:
Unit tests (__tests__/):
fireEvent.press → verify store/mockfireEvent.press → verify state changed (backup for Maestro)Maestro flows (.maestro/):
Before writing ANY flow:
.claude/skills/maestro/SKILL.md — flow template, tab coordinates, keyboard patternsThen generate flows from the interaction map:
Smoke (tags: smoke): launch → navigate all tabs → no crash Functional (tags: functional): one flow per screen or feature group Persistence (tags: persistence): add data → killApp → relaunch → verify Errors (tags: errors): invalid input → error shown → fix → success Gestures (tags: functional): for each gesture found in Step 1.5 — swipe/long-press/drag → verify effect + verify no crash
RULES:
tapOn → extendedWaitUntil (never waitForAnimationToEnd)hideKeyboard)takeScreenshot for Claude visual review# Unit tests
npx jest --passWithNoTests
# Maestro (all flows via smoke.sh)
../../scripts/smoke.sh .
NEVER run Maestro manually. ALWAYS use smoke.sh.
If smoke.sh fails → fix the cause (flow, code, or script) → re-run. Max 3 attempts.
Read .claude/skills/visual-review/SKILL.md and review EVERY screenshot from Step 3.
## Test Report: <app-name>
### Interaction Map
| Element | Effect type | Test method | Result |
|---------|------------|-------------|--------|
### Unit Tests
- X passed, Y failed
### Maestro Flows
- X passed, Y failed
### Visual Verification
- Screenshots reviewed: X
- Issues found: <list>
### Verdict: PASS / NEEDS FIXES