# Maestro Flutter

> |

- **Type:** Skill
- **Install:** `agentstack add skill-aleksandr-chaika-flutter-clean-arch-skills-maestro-flutter`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [aleksandr-chaika](https://agentstack.voostack.com/s/aleksandr-chaika)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [aleksandr-chaika](https://github.com/aleksandr-chaika)
- **Source:** https://github.com/aleksandr-chaika/flutter-clean-arch-skills/tree/main/skills/maestro-flutter

## Install

```sh
agentstack add skill-aleksandr-chaika-flutter-clean-arch-skills-maestro-flutter
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Maestro Flutter E2E Testing Guide

## Reference Guide

| Topic | Reference | Use When |
|-------|-----------|----------|
| Flow Patterns | `references/flow-patterns.md` | Writing YAML flows, Flutter-specific tips |
| CI & Visual Regression | `references/ci-visual-regression.md` | CI/CD setup, visual comparison, troubleshooting |

## Core Principles

1. **ADD semantic labels** — `Key()` / `Semantics` on all interactive widgets
2. **WRITE flows in YAML** — simple, readable, no code
3. **RUN on emulator first**, then real devices
4. **CAPTURE screenshots** at key assertion points
5. **USE visual regression** for Pixel Perfect validation

## TestKeys Pattern (MANDATORY)

```dart
// lib/core/constants/test_keys.dart
abstract class TestKeys {
  static const emailField = Key('email_field');
  static const passwordField = Key('password_field');
  static const loginButton = Key('login_button');
  static const registerButton = Key('register_button');
  static const homeTab = Key('home_tab');
  static const profileTab = Key('profile_tab');
  static const loadingIndicator = Key('loading_indicator');
  static const errorMessage = Key('error_message');
}
```

## Project Structure

```
.maestro/
├── config.yaml
└── flows/
    ├── auth/
    │   ├── login.yaml
    │   └── register.yaml
    ├── {feature}/
    │   └── {action}.yaml
    └── smoke_test.yaml
```

## Flow YAML Syntax

```yaml
appId: com.example.myapp
name: User Login
---
- launchApp:
    clearState: true
- extendedWaitUntil:
    visible: "Welcome"
    timeout: 10000
- tapOn:
    id: "email_field"
- inputText: ${TEST_EMAIL}
- tapOn:
    id: "password_field"
- inputText: ${TEST_PASSWORD}
- tapOn:
    id: "login_button"
- waitForAnimationToEnd
- assertVisible:
    id: "home_tab"
- takeScreenshot: "login_success"
```

## Key Commands

| Command | Description |
|---------|-------------|
| `tapOn: { id: "key" }` | Tap by widget Key |
| `inputText: "value"` | Type text |
| `assertVisible: "text"` | Assert visible |
| `assertNotVisible: "text"` | Assert gone |
| `extendedWaitUntil` | Wait for element |
| `waitForAnimationToEnd` | Wait animations |
| `takeScreenshot: "name"` | Screenshot |
| `runFlow: path.yaml` | Reuse flow |
| `launchApp: { clearState: true }` | Fresh start |

## Running Tests

```bash
flutter build apk --debug
maestro test .maestro/flows/
```

## Testing Pyramid

```
              ┌─────────────────┐
              │    Maestro      │  10% — Full user journeys
              └────────┬────────┘
            ┌──────────┴──────────┐
            │   Widget Tests      │  20% — UI components
            └──────────┬──────────┘
  ┌────────────────────┴────────────────────┐
  │              Unit Tests                  │  70% — Business logic
  │  (BLoC, UseCases, Repositories)          │  mocktail, bloc_test
  └──────────────────────────────────────────┘
```

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [aleksandr-chaika](https://github.com/aleksandr-chaika)
- **Source:** [aleksandr-chaika/flutter-clean-arch-skills](https://github.com/aleksandr-chaika/flutter-clean-arch-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-aleksandr-chaika-flutter-clean-arch-skills-maestro-flutter
- Seller: https://agentstack.voostack.com/s/aleksandr-chaika
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
