explaingit

ujffdi/maestro-testgen

17Audience · developerComplexity · 2/5Setup · easy

TLDR

A developer tool skill that takes a code diff or plain description of a UI change and generates both a step-by-step manual test case and a Maestro YAML automation script, but only after deciding whether the change actually affects what users see on screen.

Mindmap

mindmap
  root((Maestro TestGen))
    What It Does
      UI change detection
      Manual test authoring
      YAML script generation
    Workflow
      Evaluate UI relevance
      Write manual test
      Decide automation fit
    Output
      Maestro YAML file
      HTML test report
      QA screenshots
    Targets
      Android apps
      iOS apps
      Web apps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically generate a Maestro UI test script from a pull request diff to catch regressions before merging, only when the change is actually user-visible.

USE CASE 2

Produce a manual step-by-step test document for a UI change when automation is not reliable due to unstable selectors or coordinate-based tapping.

USE CASE 3

Run generated Maestro tests against a connected device from within the skill, then save the HTML report and screenshots to the project qa directory.

Tech stack

Maestro

Getting it running

Difficulty · easy Time to first run · 30min

In plain English

This tool is designed to help software developers write UI regression tests, which are checks that verify app interfaces still behave correctly after code changes. You give it either a code diff (a summary of what changed in the code) or a plain description of what changed, and it figures out whether the change is likely to affect what users see on screen. The core workflow follows a deliberate order. First, the tool decides whether a change is actually a user-visible UI behavior or purely internal logic like sorting or formatting. If the change is UI-relevant, it writes a manual test case document that you or a tester can follow step by step. Only after that does it decide whether the test can be automated. If the answer is yes, it produces a Maestro YAML file, which is a machine-readable script that drives a real mobile or web app through the test steps. Maestro is an open-source tool for writing mobile UI automation tests. This skill generates Maestro scripts only when it has enough reliable information to do so, such as stable element selectors and no coordinate-based tapping. It will not produce a script when the evidence is insufficient. When a device is available and connected, the skill can run the generated YAML automatically, capture an HTML report, and save screenshots into the project's qa directory. If no device is connected, it prints the command you would need to run manually and prompts you to start a device. Installation works either as a plugin, which automatically registers the Maestro server, or as a manual file copy. The skill targets Android, iOS, and Web projects. The repository has no primary programming language listed.

Copy-paste prompts

Prompt 1
Here is a diff of my recent UI changes: [paste diff]. Use maestro-testgen to determine whether this affects what users see, then generate a Maestro YAML test file for it.
Prompt 2
I changed the login screen to show a biometric prompt. Use maestro-testgen to write a manual QA test case document I can hand to a tester.
Prompt 3
My change only affects internal sorting logic, not any visible UI. Use maestro-testgen to confirm this does not need a UI test and explain why.
Prompt 4
Using maestro-testgen, run the generated YAML against my connected Android device and save the HTML report and screenshots to the qa directory.
Prompt 5
I installed maestro-testgen as a plugin. How does it automatically register the Maestro server, and what is the difference versus the manual file-copy install?
Open on GitHub → Explain another repo

← ujffdi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.