Use this skill to drive the active investigation features of the skydoves/compose-stability-analyzer IntelliJ / Android Studio plugin: the static Recomposition Cascade visualizer that walks the call graph from a root @Composable, and the live Recomposition Heatmap that streams D/Recomposition events from a connected…
Use this skill to install, uninstall, list, inspect, and reset Android apps via adb install (with -r reinstall, -d allow-downgrade, -t allow test packages, -g grant all runtime permissions, --user per-user install, adb install-multiple for split APKs) and the on-device pm tool (pm list packages [-f|-d|-e|-s|-3|-i|-u]…
Use this skill to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon adbd), the lifecycle commands adb start-server / adb kill-server / adb reconnect, ADB environment variables (ADBTRACE, ADBVENDORKEYS, ANDROIDADBSERVERPORT, ANDROIDSERIAL, ADBLOCALTRANSPORTMAXPORT…
Use this skill to wire adb reliably into CI — bash idioms, exit codes, parallel device fan-out with xargs -P, port forwarding (adb forward LOCAL REMOTE vs adb reverse REMOTE LOCAL — opposite argument order, the most common scripting bug), test-runner status codes (-1 error, -2 failure, -3 ignored, -4…
Use this skill to capture visual artefacts from a device for test failures, golden image generation, QA repro, and demo videos. Covers adb shell screencap -p (PNG screenshot), adb exec-out screencap -p > out.png (binary-clean stream that avoids CRLF translation on Windows), adb shell screenrecord with --size…
Use this skill to drive an Android device from the host shell — inject taps, swipes, text, key events, and drag-and-drop via adb shell input; resize the display with wm size / wm density; flip hermetic-test settings with settings put global windowanimationscale 0; reset app state with pm clear vs am force-stop; launch…
Use this skill to connect ADB to an Android 11+ device wirelessly with the modern adb pair flow (pairing code or QR via Settings → Developer options → Wireless debugging), then adb connect and adb disconnect, plus mDNS auto-discovery via adb mdns check / adb mdns services and the adb-tls-pairing.tcp /…
Use this skill to attach a USB device or emulator to ADB, list transports with adb devices / adb devices -l, disambiguate among multiple devices using -s SERIAL, -d (single USB), -e (single TCP/IP), or -t TRANSPORTID, gate scripts on a transport with the canonical adb wait-for[-TRANSPORT]- syntax (TRANSPORT in {usb…
Use this skill to read device logs for test failures, debug, smoke testing, and CI repros. Covers adb logcat (stream), adb logcat -d (dump and exit), adb logcat -c (clear), buffer selection (-b main|system|crash|events|radio|kernel|all), priority ladder (V/D/I/W/E/F/S), filter expressions like MyApp:D :S, format flags…
Use this skill to run instrumented Android tests directly through adb shell am instrument -w -r without going through Gradle. Covers the required -w (wait — REQUIRED for meaningful exit codes) and -r (raw output) flags, the -e argument table (class, class#method, package, size, numShards/shardIndex, debug, annotation…
Use this skill to move files between host and device with adb pull and adb push, including the modern -z (compression), -Z (no compression), --sync, and -a (preserve attrs) flags. Covers the path-permission rules — /data/local/tmp/ is freely writable, /sdcard/ (alias /storage/emulated/0/) is shell-writable with…
Use this skill to drive Jetpack Compose UI from tests with the high-level action APIs that do not go through a gesture builder — performClick, performScrollTo, performScrollToIndex, performScrollToKey, performScrollToNode, requestFocus, performSemanticsAction, and performFirstLinkClick. Covers picking the correct…
Use this skill to drive Jetpack Compose text fields from tests with the text-specific actions — performTextInput (insert at cursor via the InsertTextAtCursor semantics action), performTextReplacement (clear + replace via SetText), performTextClearance (replace with empty string), performTextInputSelection (set…
Use this skill to drive Jetpack Compose UI with synthetic touch events through performTouchInput and the TouchInjectionScope DSL — click, longClick, doubleClick, swipe, swipeUp / swipeDown / swipeLeft / swipeRight, swipeWithVelocity, pinch, multiTouchSwipe, plus the low-level down / moveTo / moveBy / move / up /…
Use this skill to verify Compose layout measurements from a UI test using assertWidthIsEqualTo, assertHeightIsEqualTo, assertWidthIsAtLeast, assertHeightIsAtLeast, assertTouchWidthIsEqualTo, assertTouchHeightIsEqualTo, assertPositionInRootIsEqualTo, assertTopPositionInRootIsEqualTo, assertLeftPositionInRootIsEqualTo…
Use this skill to verify a Compose semantics node's properties from a UI test using assertExists, assertDoesNotExist, assertIsDisplayed, assertIsNotDisplayed, assertIsDeactivated, assertIsEnabled, assertIsOn, assertIsOff, assertIsSelected, assertIsFocused, assertTextEquals, assertTextContains…
Use this skill to perform an end-to-end review of an existing Jetpack Compose UI test file or test suite. Sequences six audit phases (setup correctness, finder discipline, assertion strength, action correctness, time/idle correctness, debug output) and routes each finding to the precise sibling skill that fixes it.…
Use this skill to enable Espresso's AccessibilityValidator against the Compose semantics tree via enableAccessibilityChecks(...) from androidx.compose.ui:ui-test-accessibility (for ComposeUiTest) or androidx.compose.ui:ui-test-junit4-accessibility (for ComposeTestRule / AndroidComposeTestRule). Covers the API surface…
Use this skill to diagnose "no node matched", "found N nodes", and "useUnmergedTree" failures by dumping the actual semantics tree with printToLog(tag, maxDepth) and printToString(maxDepth). Covers the output grammar (Node.
Use this skill to build precise Compose UI test queries by composing SemanticsMatcher predicates with infix and, infix or, and operator not, plus the prebuilt filter library (hasText, hasClickAction, isEnabled, isOn, hasTestTag, hasContentDescription, hasParent, hasAnyAncestor, hasAnyChild, hasAnySibling…
Use this skill to locate Compose semantics nodes from a UI test using onNodeWithTag, onNodeWithText, onNodeWithContentDescription, onAllNodes, and onRoot. Covers the count contract (single-node finders fail on 0 or >1 matches; collection finders never throw on 0), the merged-vs-unmerged tree distinction, and why…
Use this skill to navigate from one Compose semantics node to its relatives via onParent, onChildren, onChild, onChildAt, onSibling, onSiblings, onAncestors, plus the collection helpers onFirst, onLast, filter, filterToOne, and the [index] operator. Covers when to traverse vs when to add a stable testTag, the…
Use this skill to mix Compose finders and Espresso onView in the same test — for Android Dialog windows, IME (soft keyboard) state, ComposeView inside an Android View hierarchy, or focus interactions that cross the Compose/View boundary. Covers createAndroidComposeRule () setup, the EspressoLink bridge that…