← ClaudeAtlas

cmp-testlisted

Generate a regression test suite for a Compose Multiplatform app by OBSERVING it — read the running app's semantics tree as JSON via the cmp-inspector MCP (testTags, text, clickables, bounds, nav state), derive a test plan from what actually rendered, and write the tests into the app's shipped harness (Maestro flows in qa/e2e/*.yaml with testTag selectors, plus spec-cited Compose UI tests). Use this when the user says "write tests for my app", "create a regression suite", "test this screen", "cover this flow with tests", "add UI tests to my CMP app", or "generate tests from the running app". Tests are derived from the rendered structure — never guessed from source, never from screenshots.
kvdm-co-pilot/create-cmp · ★ 0 · Testing & QA · score 72
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**.