ADDED Requirements
Requirement: Per-Screen Flow Architecture
The system SHALL provide individual Maestro flow files for each app screen, enabling agents to launch specific views with parameterized data states.
Scenario: Agent launches cleaning task detail screen
- WHEN agent invokes
maestro test -e TASK_ID=task-bathroom .maestro/screens/cleaning/manage_cleaning_task.yaml
- THEN the flow navigates to the manage cleaning task view for task-bathroom
- AND captures a screenshot at the specified output path
Scenario: Agent launches home screen with defaults
- WHEN agent invokes
maestro test .maestro/screens/home/home.yaml without parameters
- THEN the flow uses default seed data values
- AND navigates to the home view successfully
Scenario: Agent filters flows by tag
- WHEN agent invokes
maestro test --includeTags screenshot .maestro/screens/
- THEN only flows tagged with
screenshot execute
- AND non-screenshot utility flows are excluded
Requirement: Device Configuration Matrix
The system SHALL support screenshot capture across all mandatory app store device configurations.
Scenario: iOS App Store screenshots
- WHEN agent runs orchestration flow for iOS
- THEN screenshots are captured at 1290x2796 for iPhone 16 Pro Max (6.9")
- AND screenshots are captured at 2064x2752 for iPad Pro 13"
Scenario: Google Play Store screenshots
- WHEN agent runs orchestration flow for Android
- THEN screenshots are captured at 1080x1920 for Pixel 8
- AND screenshots are captured at 600x1024 for Nexus 7 (7" tablet)
- AND screenshots are captured at 1200x1920 for Pixel Tablet (10")
Requirement: Semantic Identifier Coverage
The system SHALL provide semantic identifiers on all views required for Maestro automation.
Scenario: View has required identifiers
- WHEN Maestro flow attempts to interact with a view
- THEN the view exposes semantic identifiers for all interactive elements
- AND identifiers follow the pattern
{screen}_screen for containers and {action}_button for actions
Scenario: List items have indexed identifiers
- WHEN Maestro flow needs to select a specific list item
- THEN list items expose identifiers in the pattern
{feature}_{item}_{index} or {feature}_{item}_{id}
Requirement: Utility Flow Library
The system SHALL provide reusable utility flows for common operations.
Scenario: Conditional login utility
- WHEN a screen flow needs authentication
- THEN the login utility flow checks if already authenticated
- AND performs auto-login only when the home screen is not visible
Scenario: Tab navigation utility
- WHEN a screen flow needs to navigate to a specific tab
- THEN the navigation utility accepts a
TAB_ID parameter
- AND taps the corresponding semantic identifier
Requirement: Orchestration Flow Suites
The system SHALL provide orchestration flows that capture all screens for a specific device configuration.
Scenario: Full iPhone screenshot suite
- WHEN agent invokes
maestro test .maestro/orchestration/appstore_iphone.yaml
- THEN all 21 screen flows execute in sequence
- AND screenshots are saved to device-specific output directory
Scenario: Full Android phone screenshot suite
- WHEN agent invokes
maestro test .maestro/orchestration/playstore_phone.yaml
- THEN all 21 screen flows execute in sequence
- AND screenshots are saved to device-specific output directory
Requirement: Mobile MCP Integration
The system SHALL integrate mobile-mcp for agent-driven screenshot and interaction capabilities.
Scenario: Agent takes screenshot via MCP
- WHEN agent calls
mobile_take_screenshot MCP tool after Maestro navigation
- THEN the current simulator/emulator screen is captured
- AND the screenshot is saved to the specified location
Scenario: Agent lists available devices
- WHEN agent calls
mobile_list_devices MCP tool
- THEN all booted iOS simulators and Android emulators are listed
- AND device identifiers can be used for subsequent operations
Requirement: Directory Structure Organization
The system SHALL organize Maestro flows in a feature-based directory structure.
Scenario: Feature-based flow location
- WHEN developer searches for a screen flow
- THEN flows are located at
.maestro/screens/{feature}/{screen}.yaml
- AND features match the app's lib/ directory organization (auth, home, cleaning, shopping, payments, settings)
Scenario: Utility flow location
- WHEN developer searches for a reusable utility
- THEN utilities are located at
.maestro/utils/{utility}.yaml
- AND utilities are excluded from screenshot tags
Reacties