.agents/skills/maestro/SKILL.md
Build, run, and debug Maestro UI automation for Android, iOS, and Web. Use when Codex needs to install or verify Maestro, create or refactor Maestro flow YAML files, organize a `.maestro` workspace, record flows, run tests locally or in CI, configure tags/hooks/workspace config, or diagnose flaky Maestro selectors and flow logic.
npx skillsauth add thesammykins/dotfiles maestroInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to work with Maestro from first setup through flow debugging.
Start by verifying current Maestro docs and the local environment. Maestro evolves quickly, and this skill should not be used from memory alone.
Before changing flows or suggesting commands:
.maestro/maestro/config.yaml*.yaml flow filesmaestro --versionmaestro test --helpIf the repo already has Maestro flows, preserve its naming, folder structure, and selector conventions.
Prefer short, linear flows that cover one job well.
runFlow.Maestro documentation explicitly discourages overusing conditions because it increases test complexity. Follow that guidance.
Use the standard flow shape:
appId: com.example.app
name: Login
tags:
- smoke
env:
USERNAME: [email protected]
---
- launchApp
- tapOn: "Username"
- inputText: ${USERNAME}
- assertVisible: "Home"
Keep configuration above --- and commands below it.
Use:
appId for the app under testname for readable reportingtags for selective executionenv for portable parametersChoose selectors in this order:
Avoid selectors tied to volatile copy, animation timing, or layout position when a stronger identifier exists.
When a selector is flaky:
id, text, below, childOf, or index only if neededDo not paper over race conditions with arbitrary sleeps.
Prefer:
assertVisibleassertNotVisibleextendedWaitUntilscrollUntilVisiblewaitForAnimationToEndUse retry-style logic only when the UI is genuinely nondeterministic and simpler assertions are not enough.
Use env and subflows instead of duplicating near-identical files.
Prefer running one flow or one tagged subset before broader suites.
Typical commands:
maestro test .maestro/login.yaml
maestro test .maestro --include-tags smoke
maestro studio
maestro record
Check current CLI help before suggesting flags or output options.
When a flow fails:
Do not add complexity before proving the simple path fails.
Use workspace-level configuration only when it reduces repetition.
Current Maestro docs note that Maestro Studio does not currently support config.yaml for local runs. Do not assume a Studio run is honoring workspace config unless you have verified it.
If the task involves hooks, tags, workspace config, or JavaScript, read flow-patterns.md first.
When using this skill, deliver:
development
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
development
Autonomous feature development - setup and execution. Triggers on: ralph, set up ralph, run ralph, run the loop, implement tasks. Two phases: (1) Setup - chat through feature, create tasks with dependencies (2) Loop - pick ready tasks, implement, commit, repeat until done.
tools
Enforces the 2025 Python stack. Replaces legacy tools (pip, flake8, isort) with modern, fast equivalents (uv, ruff). Mandates strict type hints.
documentation
Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.