
Claude Skills by simiancraft
github.com/simiancraftBring up an Android app in a headless emulator on Linux/WSL and drive it for automated integration testing, the Android analog of Playwright for web. Boots an AVD under KVM, installs an APK (standalone or dev-client+Metro), drives the UI with Maestro (resilient tap-by-label/wait/assert), and gates on logcat + screenshots that come back for inspection. Use for ANY Android/Expo/React-Native project (not just one app) when the task is "run the app on an emulator", "drive the Android UI", "smoke-...
Specialization of android-emulator-harness for CAMERA / segmentation testing: get a real PERSON in front of the emulator camera so MediaPipe / ML Kit selfie segmentation produces an actual mask, then verify background-replacement / blur / shader effects and tune mask threshold by vision. Use when the task is "test the mask", "verify segmentation", "tune mask threshold", "check a camera/background effect on Android", or any time an app must SEE a human through the emulator camera without a phy...
Shrink a media asset to the smallest bytes that still serve its purpose, keyed on asset kind (raster, vector, animation, video, audio, model, document, font) and on where it will be presented. Detects and acquires the right binary from a central tool manifest, runs a lossless-or-lossy pass decided by fidelity intent, measures before and after, validates the output, and keeps the result only if it is smaller AND still valid, redirecting to a better format or a different kind when the source is...
Read and use the Expo / React Native in-app developer tools: the developer menu (reload, go home, performance monitor, element inspector, Open DevTools, and fast refresh) and React Native DevTools (Console, Sources, Network, Memory, Performance, Components, and Profiler), plus Rozenite plugins. The tools are identical on iOS and Android; only the gesture that opens the menu differs, so this skill is the shared home referenced by both the iOS-simulator and Android-emulator skills. This is the ...
Run and drive an Expo / React Native app on the iOS Simulator. Pick an execution mode (Expo Go, dev client, Storybook-mobile, web-on-mobile), build and install a dev client, and clear the recurring Expo/RN prompts that block automation: the push-token alert that stacks until the overlay darkens the screen, the "Open in app?" deep-link dialog, the dev menu, and the element-inspector trap. Sits ON TOP of ios-simulator; failures route to ios-simulator-triage. Project-agnostic; discovers bundle i...
Capture proof of a driven iOS-simulator flow: vision-verifiable screenshots, video (mp4), and a manifest tying steps to artifacts, plus an honest list of what a simulator cannot do (deliver a push, use a real camera, place a call, fully observe the network). Produces artifacts to a contract that a separate GitHub-presentation skill consumes; this skill owns extraction, not publishing. Sits beside ios-simulator; project-agnostic. Use for "capture evidence of an iOS flow" or "record the simulat...
Diagnose and recover from failures when building, running, or driving an app on the iOS Simulator. A living catalog organized by layer: build failures (xcodebuild, CocoaPods, signing, codegen), runtime failures split into app-runtime vs Expo-runtime (the red error overlay), and automation failures that emit no error (element not found in the accessibility tree, stuck flow). Each layer names where its logs live. Used alongside ios-simulator and expo-ios-simulator when something breaks. Project...
Drive an iOS Simulator headlessly on macOS: discover and boot a device, install and launch an app, drive its UI by accessibility (AXe) rather than brittle coordinates, capture screenshots, and navigate the simulator's own chrome, menus, and execution modes. The iOS analog of android-emulator-harness and playwright-harness. Project-agnostic core; Expo/React-Native specifics live in expo-ios-simulator, and "make the app driveable" lives in mobile-accessibility. Use for any task that is "boot/ru...
Make a mobile app driveable AND auditable through the accessibility tree, the shared dependency behind every tap-by-label interaction. One tree, two consumers reading different fields: driving reads the stable handle (testID -> accessibilityIdentifier); auditing reads the user-facing semantics (label, role, state, focus order). Covers iOS-native (UIAccessibility) and React Native / Expo (accessibilityLabel/role/state/accessible + testID) and how RN maps to the native tree. Prefer accessibilit...
Specialization of playwright-harness for CAMERA / segmentation testing in the browser: put a real PERSON in front of getUserMedia so MediaPipe / selfie segmentation produces an actual mask, then verify background-replacement / blur / shader effects by vision. Use when the task is "test the mask on web", "verify segmentation in the browser", "feed the camera a person fixture", "check a camera/background effect in Chrome", or any time a web app must SEE a human through the webcam without physic...
Specialization of playwright-harness for capturing an ANIMATED GIF of web content: drive a page/canvas/WebGL animation, grab a sequence of frames, and encode a looping GIF. Use when the task is "make a gif of this", "grab a gif of the demo/animation/shader", "record the canvas as a gif", or "capture a looping clip for a PR/README/issue"; any time a still screenshot is not enough. Read playwright-harness FIRST for script conventions and execution. For the quality/size dials (preventing deep-fr...
Drive a real browser with Playwright on any OS and gate on what you observe: write a script, launch Chromium (headless by default; a shared headed window when a human must watch or drive), drive the page, and assert on screenshots plus collected page errors. The operational trunk for browser work; specializations layer on top. Use for ANY web task: "drive the UI headlessly", "smoke-test a screen", "screenshot a component or canvas", "reproduce a console error", "fill and submit a form", "test...
Specialization of playwright-harness for AUTHORING and REPRODUCING flows. A flow is a sequence of steps a human or an agent can take inside an application to demonstrate a specific feature; it is written as a Storybook docs page in a conventional location, where a human reads it as a manual walkthrough (issue reproduction, QA) and an agent driving Playwright reads it as an executable rubric (integration testing). Use when the task is "record a flow", "author a flow doc", "write repro steps as...
Prove that work claimed on a pull request or issue actually landed and is sound, with verifiable evidence a reader can independently re-check. A claim is narrative; a receipt is proof. Use when deciding what evidence a change owes, capturing it (screenshots, GIFs, logs, database shape, over-the-wire results, test and coverage output), storing it in a durable evidence branch, rendering it inline in a PR or issue comment, judging whether the evidence is adequate to merge, or checking whether ex...
React composition pattern for domain features (screens, panels, tools, editors, wizards). Trigger when designing, reviewing, or refactoring a domain-level React component, particularly when a leaf takes flag props like `disabled`, `loading`, `isSubmitting`, `canX`, `submitting`; when JSX has inline ternaries gating UI on state; when platform variance (`.tsx` / `.web.tsx`) is in play; when a hook returns multiple flags being relayed into one leaf; or when the user mentions "chassis", "zone", "...
Plans self-destruct when shipped (the Inspector Gadget Rule). Use this skill to draft tactical, hand-off-ready planning docs with a 150-word Goal cap, atomic commit steps with verification gates, before/after file trees, and a two-key handshake before deletion. Trigger on "plan this", "write a plan for X", "draft a plan", "make a plan", "plan a refactor", "plan a migration", "plan a deprecation", "design the implementation", "write a PLAN.md", or when scoping multi-commit feature work that ne...