Skip to content
cccskills
FreePublished on GitHub

maestro-flow-doctor

Repair a failing WooCommerce Android Maestro flow by reproducing it against the store it runs on, inspecting Maestro selectors, patching the smallest selector/wait/setup issue, and rerunning with repeat evidence. Human-triggered only.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Maestro Flow Doctor

Use this skill only for repairing existing Maestro smoke flows under .maestro/flows/.

Ground Rules

  • Run each flow against the store it declares; don't pass --store. Flows tagged store_shared need the shared store's second store and Google for WooCommerce.
  • Never run destructive repair loops against the shared store; the runner refuses them.
  • Never ask the user to paste credentials. Validate that .maestro/.env.local has the required variable names without echoing values.
  • Use Maestro MCP as the selector source of truth: run executes the YAML we ship, and inspect_screen shows the hierarchy Maestro selectors see.
  • Keep fixes minimal: selector, wait, setup, or fixture query changes only. Do not broaden coverage while repairing a flake.

Workflow

  1. Confirm the target flow path exists under .maestro/flows/.
  2. Run syntax and coverage checks:
    • .maestro/scripts/check-smoke-coverage.py
    • source .maestro/scripts/configure-toolchain.sh && maestro check-syntax <flow>
  3. Reproduce on a device:
    • source .maestro/scripts/configure-toolchain.sh && .maestro/scripts/run-smoke-tests.sh --seed --include-tags quarantine --device <serial> <flow>
  4. At the failure point, use Maestro MCP inspect_screen.
  5. Compare the failing selector with the hierarchy:
    • Prefer id: selectors exposed through testTag.
    • Use generated strings.env values for text assertions.
    • Do not add point: selectors unless the flow comment explains why no semantic selector exists.
  6. Patch the smallest file set.
  7. Rerun the single flow with repeat evidence:
    • Non-destructive flow: source .maestro/scripts/configure-toolchain.sh && .maestro/scripts/run-smoke-tests.sh --repeat 3 --device <serial> <flow>
    • Destructive flow, which uses up the fixtures of one seed, so it runs once per seed: source .maestro/scripts/configure-toolchain.sh && for i in 1 2 3; do .maestro/scripts/run-smoke-tests.sh --seed --device <serial> <flow> || break; done
  8. Summarize:
    • root cause,
    • files changed,
    • repeat result,
    • whether the flow remains quarantined.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

pos

Free

POS (Point of Sale) architecture and patterns. Use when writing, editing, exploring, debugging, fixing bugs, implementing features, or reviewing WooPos-prefixed classes or files under ui/woopos/. POS uses a different architecture than the main app — plain ViewModel (not ScopedViewModel), pure Compose (no Fragments), Compose Navigation (no nav graphs), parent-child SharedFlow event bus. Loading this skill prevents applying main-app patterns that would be wrong for POS. For analytics use `pos-analytics`, for tests use `pos-tests`.

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

POS analytics tracking patterns (WooPosAnalyticsEvent sealed class, WooPosAnalyticsTracker, WooPosAnalyticsEventConstant). Use when writing, editing, exploring, debugging, or reviewing analytics tracking in POS (WooPos*) code. NOT for main store app — use the `store-analytics` skill instead.

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

POS unit testing patterns (WooPosCoroutineTestRule, runTest, advanceUntilIdle, mockito-kotlin, event bus mocking, analytics verification). Use when writing, editing, exploring, debugging, or reviewing unit tests for POS (WooPos*) code. NOT for main store app tests — use the `store-tests` skill instead.

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

pr

Free

Create a pull request following project conventions. Triggers on any request to create, open, make, submit, file, send, push, spin up, put up, draft, raise, or prepare a PR/pull request.

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

Address PR reviewer feedback by evaluating comments, proposing fixes, and executing after user approval. Use when the user wants to handle review comments on an existing PR, address PR feedback, fix PR comments, respond to reviewer suggestions, or process code review feedback. Triggers on "address PR feedback", "handle review comments", "fix PR comments", "respond to PR review", "process reviewer feedback", or when given a PR number/URL with intent to address its comments.

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

review

Free

Review code changes against project architecture, style, and conventions

The English summary is being prepared. Showing the original description.

woocommerce/woocommerce-android319Updated Oct 17, 2026

See all skills by woocommerce

Report a problem with this skill