testing
Full QA procedure โ interaction map, unit tests, Maestro flows, visual review
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Full QA procedure โ interaction map, unit tests, Maestro flows, visual review
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
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