Imported from muratcakmak/Shipwright (
skills/verify-flow/SKILL.md). Install upstream withnpx skills add muratcakmak/Shipwright --skill verify-flow. Copyright stays with the author.
Verify Flow
Verify a multi-screen flow by recording it in the iOS Simulator.
Flow: $ARGUMENTS
MANDATORY PREPARATION
- Read Shipwright Context from CLAUDE.md for navigation structure and bundle ID
- Understand the flow — which screens are involved, in what order, and what interactions trigger transitions
- Read the screen source files to understand expected behavior at each step
VERIFICATION PROTOCOL
Step 1: Boot & Launch
- Boot the simulator and launch the app
- Navigate to the starting point of the flow
Step 2: Start Recording
Use mcp__ios-simulator__record_video to start recording the flow
Step 3: Execute Flow Steps
For each step in the flow:
- Screenshot — Capture the current screen state
- Describe — Get the accessibility tree to verify correct elements are present
- Interact — Tap, type, or swipe to advance to the next step
- Wait — Allow transitions to complete (animations, loading states)
- Screenshot — Capture the result of the interaction
Document each step:
Step 1: [Screen Name]
- Elements present: [key elements from accessibility tree]
- Action: [what interaction was performed]
- Expected result: [what should happen]
- Actual result: [what did happen]
- Screenshot: [captured]
Step 4: Stop Recording
Use mcp__ios-simulator__stop_recording to save the video
Step 5: Flow Analysis
Transition Quality
- Were transitions smooth (no jank or stuttering)?
- Did navigation animations use the correct iOS pattern (push from right, modal from bottom)?
- Were there any flash of blank/white screens between transitions?
Data Persistence
- Did data entered on one screen appear correctly on the next?
- Did selections persist through the flow?
- Was form state preserved when navigating back?
State Consistency
- Were loading states shown when data was being fetched?
- Did error states appear when expected?
- Were all UI elements updated after state changes?
Back Navigation
- Does pressing back return to the previous screen in correct state?
- Is the back gesture (swipe from left edge) working?
- On modals, does the dismiss gesture work?
Step 6: Generate Report
## Flow Verification Report: [Flow Name]
**Device:** [simulator device]
**Date:** [date]
**Video:** [video file path]
### Flow Steps
| Step | Screen | Action | Result | Status |
|---|---|---|---|---|
| 1 | [name] | [action] | [result] | PASS/FAIL |
| 2 | ... | ... | ... | ... |
### Transition Quality: [PASS/FAIL]
- [details on any transition issues]
### Data Persistence: [PASS/FAIL]
- [details on data flow between screens]
### Back Navigation: [PASS/FAIL]
- [details on back navigation behavior]
### Issues Found
1. [Severity: HIGH/MEDIUM/LOW] — [description + suggested fix]
### Overall: [PASS/NEEDS WORK/FAIL]
CHECKLIST
- Simulator booted and app launched
- Video recording started
- Each flow step captured with screenshot + accessibility tree
- All transitions verified for smoothness
- Data persistence checked across screens
- Back navigation tested
- Video recording saved
- Report generated
