cmp-testlisted
Install: claude install-skill kvdm-co-pilot/create-cmp
# cmp-test — generate the regression suite from the rendered tree
> Current scaffolds ship **Maestro** flows (`qa/e2e/*.yaml` — `# SPEC:`-cited, testTag `id:` selectors;
> see `smoke.yaml` for the shape). Durable screen behavior belongs in Compose UI Tests (spec-cited);
> E2E stays a thin smoke layer. Legacy pre-Maestro scaffolds (`qa/appium/`) are not covered here.
## Before anything: confirm the capability (fail loud)
The cmp-inspector MCP tools are a capability, not a given. Before your first inspector call,
confirm they resolve (ToolSearch for "cmp-inspector"). If no tools match, **STOP — do not fall
back to screenshots, raw adb, or uiautomator dumps silently.** Diagnose in order and REPORT to
the human:
1. **Plugin enabled?** Check `enabledPlugins` in `~/.claude/settings.json` (or the project's
`.claude/settings.json`).
2. **Session older than the plugin's enablement?** MCP servers attach at session START — a
session born without the plugin never gains its tools, and no amount of in-session
retrying will surface them. The fix is restarting the session.
3. **Plugin copy stale or server broken?** Run cmp-doctor's inspector-MCP check group.
Only after reporting may the documented degraded path (tier-2 uiautomator page-source) be
used — and the report must name what is lost: structured semantics trees replaced by pixels
and raw XML.
Your job: turn "write tests for my app" into a committed, passing E2E suite — by **observing
the app, not guessing from source**.