skills/flutter-driver-cli/SKILL.md
Legacy compatibility for the old managed Flutter QA driver. Prefer designer-runtime for active QA/designer piloting. [skill-hash:3e0d6ea]
npx skillsauth add robertmsale/.codex flutter-driver-cliInstall 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.
This is a legacy compatibility skill. The active Robdex QA/designer piloting
workflow uses designer-runtime: an assigned worktree plus an assigned device
UDID, launched with designer-flutter-run and piloted with designer-drive.
Use this skill only when an existing project still names the old wrappers:
flutter-sim ...
flutter-drive ...
flutter ...
What they do:
flutter-sim
devices delegates to designer-drive devicesreserve, reboot, and dump-logs print a deprecation error instead of managing a broker-owned runtimeflutter-drive
idb driverflutter
designer-runtime for new QA and design work.idb invocations.flutter-drive commands with shell operators or wrappers.--json only when you need raw diagnostics instead of the compact human-readable output.flutter-simflutter-sim is deprecated. It no longer reserves or reboots managed runtime
slots in the active workflow.
Commands:
flutter-sim devices
flutter-sim reserve --device-id <udid> # deprecated, exits with guidance
flutter-sim reboot --device-id <udid> # deprecated, exits with guidance
flutter-sim dump-logs --device-id <udid> # deprecated, exits with guidance
What they are for:
devices
reserve, reboot, and dump-logs
flutter-driveUse flutter-drive only for compatibility with older instructions. New work
should use designer-drive directly.
Commands:
flutter-drive hierarchy --device-id <udid>
flutter-drive screenshot --device-id <udid> --out current.png
flutter-drive command <name> --device-id <udid> [--input <json>] [--label <text>] [--out <file>]
flutter-drive flow --device-id <udid> --input <json-array> [--label <text>]
Common commands:
tapOntapPointlongPressOninputTextclearAndInputTextclearFieldswipetakeScreenshotTypical sequence:
designer-flutter-run --session qa-app --device-id <udid> --workdir <worktree_path>
designer-drive hierarchy --device-id <udid>
flutter-drive command tapOn --device-id <udid> --input '{"text":"Search"}'
flutter-drive command inputText --device-id <udid> --input '"query"'
flutter-drive screenshot --device-id <udid> --out result.png
flutter-drive hierarchy prints a compact accessibility listing derived from the current UI tree.
Each line may include:
id=... when presentvalue=... when presentUse it to:
tapOntapPointtapOn, tapPoint, and longPressOn already return:
So you usually do not need an immediate extra hierarchy call after those commands.
Preferred pattern:
tapOn the fieldinputTexthierarchyTo clear a field:
flutter-drive command clearField \
--device-id <udid> \
--input '{"text":"Search"}'
clearField focuses the control, attempts hardware-keyboard select-all, then deletes.
development
Use this when QA is piloting product goals, golden paths, simulator flows, or workflow-scale usability for a real user persona.
development
Use for orchestrating or executing screenshot-driven Flutter redesign work where workers generate reference images, capture atomic Design Lab Bun/WebView proof when available, run visual design review, and implement only after visual approval. [skill-hash:2c4d9f0]
content-media
Ran into a sandbox issue, approval request, or privileged-exec rejection? Use this skill immediately for the sanctioned resolution path. [skill-hash:b8f4a20]
development
Use this when a designer needs to pilot an ad-hoc iOS simulator directly, launch Flutter from their own worktree in tmux, or trigger hot reload without the broker/device-harness path.