flow-walkthrough

Verify iOS UI workflow correctness via static navigation audits and XCUITest-driven flow walkthroughs.

696|66|Updated Oct 29, 2025
One-click install
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill flow-walkthrough
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: flow-walkthrough
Source: https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/testing/flow-walkthrough
Command: npx skills add https://github.com/rshankras/claude-code-apple-skills --skill flow-walkthrough

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Task lists, compilers, and code reviews confirm that screens exist and compile, but they cannot tell whether the flow between screens actually works for a user — dead-ends, missing edit paths, wrong destinations after Done/Back, and undiscoverable actions all slip through. This Skill closes that gap with a three-layer verification method for iOS app UI flows.

Core Features & Use Cases

  • Static navigation-graph audit: Greps NavigationStack, navigationDestination, sheets, and dismiss calls to flag dead-ends, missing edit/reopen paths, orphaned entities, and nested navigation containers — no build required.
  • Automated flow driving: Generates XCUITest methods from PLAN.md <flows> blocks, captures per-step screenshots into a filmstrip, and asserts each step's destination, including an unseeded fresh-install pass for zero states.
  • Human discoverability checklist: Emits short per-flow scripts for a human to rate findability, catching issues automation structurally cannot.
  • Use Case: After building a create→run→results loop in a SwiftUI app, run this Skill to discover that a saved record can only be viewed, never reopened for editing, before marking the phase complete.

Quick Start

Walk the flows defined in PLAN.md for the current phase and report any dead-ends, reachability failures, or discoverability issues with screenshots.

Frequently Asked Questions about flow-walkthrough

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test iOS app navigation flows with XCUITest?

Generate one XCUITest method per user flow that taps through each step and asserts the destination screen after every transition, especially after Done or Back. Attach a screenshot per step with XCTAttachment so you can review the flow as a filmstrip.

How to find dead-end screens in a SwiftUI app?

Grep for NavigationStack, navigationDestination, sheet, dismiss, and popToRoot to build the navigation graph, then check every screen has an intentional entry and return path. Also verify every created entity has a read and reopen-for-edit path from its list or history view.

Why does my pushed SwiftUI view show two navigation bars?

The destination view declares its own NavigationStack or NavigationView while being pushed inside a parent's navigation container. A pushed view must never wrap its own container; remove the inner one so the parent's bar and back button work correctly.

Can UI tests catch discoverability problems in app flows?

No. A UI test taps a hidden control and passes, proving a path works but not that a human can find it. Discoverability requires a human checklist where a real user rates each step and notes where they hesitated.

How do I test gated or late-state flows without manual setup?

Use a DEBUG-only launch argument such as -uiTestSeed that seeds SwiftData with sample models and flips entitlement flags, making reopen, edit, and results flows reachable without a real purchase. Guard it behind the launch argument so release builds are unaffected.