cmp-qa-prep

cmp-qa-prep is a skill for Claude Code from kvdm-co-pilot/create-cmp. It costs 131 tokens per session (827 once invoked), scanned C, original, MIT.

A setup tool that brings up end-to-end testing for a Kotlin/Compose Multiplatform app on an Android emulator. End-to-end tests check the complete app flow as a user would experience it.

In plain words
What is it for?
It is for starting the Android test environment and running the project's bottom-navigation smoke test with Maestro or, on older projects, Appium.
Why use it?
It handles the emulator, debug installation, and smoke test so the project can be checked on a running device instead of only through code tests.

Skill for Claude Code

Written for Claude Code: PreToolUse hook event.

Part of the create-cmp plugin — 18 skills, 4 agents, 3 hooks, 1 MCP server shipped together

Good fit It is for starting the Android test environment and running the project's bottom-navigation smoke test with Maestro or, on older projects, Appium.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/kvdm-co-pilot/create-cmp/cmp-qa-prep
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add kvdm-co-pilot/create-cmp --skill cmp-qa-prep
Clone the repo
git clone --depth 1 https://github.com/kvdm-co-pilot/create-cmp

Made for: Claude Code.

Or install create-cmp, the plugin that ships this one along with the rest of its 18 skills, 4 agents, 3 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cmp-qa-prep

README.md
[![agentmods](https://agentmods.dev/badge/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep/github.svg)](https://agentmods.dev/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep)
Your own site
<a href="https://agentmods.dev/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep"><img src="https://agentmods.dev/badge/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cmp-qa-prep

Your own site · 80×15
<a href="https://agentmods.dev/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep"><img src="https://agentmods.dev/badge/skills/kvdm-co-pilot/create-cmp/cmp-qa-prep.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 131 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 827 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00131 $0.00827
Opus 5.5 $0.00052 $0.00331
Sonnet 5.5 $0.00026 $0.00165
Haiku 4.5 $0.00013 $0.00083

Measured 23d ago against content hash 527280c1ea7e, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade C, and why

cmp-qa-prep scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 23d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

(CLI: `curl -fsSL https://get.maestro.mobile.dev | bash`).

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

(CLI: `curl -fsSL https://get.maestro.mobile.dev | bash`).
skills/cmp-qa-prep/SKILL.md · 53 lines

How it starts

The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.

cmp-qa-prep — E2E harness bring-up for a CMP app

Current scaffolds ship Maestro flows (qa/e2e/*.yaml). Two ways to bring the harness up; the first is almost always the one you want:

  1. Let the lane do it: node qa/verify.mjs. With nothing attached it boots the project's AVD headless (CMP_AVD overrides), installs the debug build, runs every flow in qa/e2e/, writes the receipt, and shuts the emulator down. This is the done-gate; a green run here IS the proof.

  2. By hand, for an interactive session: check disk first (df -h ~, ≥ 3 GB free — Gradle fails with "No space left on device"); boot headless —

    emulator -avd <name> -no-window -no-audio -no-boot-anim -no-snapshot -gpu swiftshader_indirect
    

    — then adb wait-for-device (the AVD cmp-doctor created; one AVD per app); ./gradlew :composeApp:installDebug; maestro test qa/e2e/smoke.yaml (CLI: curl -fsSL https://get.maestro.mobile.dev | bash). Device proof is a checkpoint, never an inner loop — the project's PreToolUse hook reminds you.

Headless is the rule, not a preference. Those flags are HEADLESS_ARGS in the cmp profile's device-provider.mjs, and they are what path 1 already uses — so do not hand-boot a windowed emulator in front of a lane that would have booted its own. A window costs GPU and RAM the build wants, makes the run depend on a desktop session, and differs from what CI does; -no-snapshot is there so every lane boots the same cold device rather than inheriting yesterday's state. If a device is already attached the lane uses it as-is, which is exactly how a windowed emulator quietly becomes the thing your proof ran on (in create-cmp, node scripts/fleet-check.mjs says so when it finds one).

Preconditions: toolchain present (JDK, Android SDK + AVD — cmp-doctor heals it); a project scaffolded with the e2e toggle on (otherwise say so — there is no harness to bring up).

Legacy pre-Maestro scaffolds (qa/appium/, tests/appium/; the toggle was renamed from appium in 0.3.0) are not covered here — migrate with cmp-upgrade, or see the skill's history.

Read the full file on GitHub · 53 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 23d ago Changed 527280c1ea7e
  2. 1mo ago Changed · +15 lines 37a6e00bd28b
  3. 1mo ago Changed · -23 lines · -51 tokens per session d5b6bfc4632e
  4. 1mo ago Changed · +2 lines ae4cc9a322fe
  5. 1mo ago First seen · 59 lines · 182 tokens per session scan C a8796c878232

Subscribe to this mod's changes

cmp-qa-prep is a skill published in the GitHub repository kvdm-co-pilot/create-cmp (0 stars, last pushed 6d ago), licensed MIT. It adds 131 tokens to every session and 827 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

ios-testing

Testing patterns for Swift and SwiftUI apps.

TalissonVitorino/kmp-ios-skills · 69 tokens

mobile-testing

Android and JVM testing - JUnit5, MockK, Turbine for Flow, and Compose UI testing for unit, integration, and UI tests; also applies to KMP commonTest running on the JVM/Android target. For iOS/Swift tests (XCTest, Swift Testing, XCUITest) use ios-testing. For TDD methodology and the three-tier test model (fake-first…

TalissonVitorino/kmp-ios-skills · 102 tokens

noqa-testing

Use this skill when the user wants to boot and interact with iOS or Android devices/simulators — inspect the screen, execute actions, generate or edit test cases, or run UI tests via the noqa platform.

noqa-ai/noqa · 47 tokens

argent-test-ui-flow

Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running end-to-end UI test scenarios, manual QA steps, visible UI changes, or visual behavior.

software-mansion/argent · 64 tokens

mobile-automation

Control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree. Use when a task involves a mobile device or app, mobile UI testing, or reproducing a bug on a phone.

mobile-next/mobile-mcp · 58 tokens

baguette

Drive iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons (Home / Lock / Volume / Action / Power), ASCII keyboard text, and frame capture, all without opening Xcode. Use when: (1) an agent needs to drive a booted iOS simulator from a script — tap a coordinate…

tddworks/baguette · 249 tokens