By simiancraft
Automate mobile app testing across Android emulators and iOS simulators, drive web UI tests with Playwright, enforce accessibility, and audit code architecture and security — all as structured Claude Code skills and agents.
Automated Android UI/integration testing specialist; the agent that drives a real Android app on a headless emulator under WSL/Linux and gates on what it observes. Use when the task is "run the app on an emulator", "smoke-test a screen", "drive the Android UI", "reproduce a tap-and-crash / ANR", "automate an Android flow", "set up Android UI testing", "write a Maestro flow", "verify a change on Android without a physical device", or "test the camera/segmentation/mask on Android". Owns the boot → install → drive → assert loop: KVM AVD bring-up, APK acquisition (local gradle or EAS artifact), Maestro driving (tap-by-testID/label, wait, assert), and logcat + screenshot gating. Knows its own ceiling: it validates no-crash, navigation, wiring, flows, and effect toggles, and it does NOT validate real FPS/perf, true camera/mic fidelity, or network quality; those stay device passes and it says so plainly. Loads the android-emulator-harness skill (and android-emulator-mask-testing for camera work) before acting.
Android native specialist for Kotlin, Java, Gradle/AGP, the Jetpack libraries, JNI/NDK, OpenGL ES and camera pipelines (Camera2, CameraX, MediaCodec, MediaPipe, ML Kit), and React Native / Expo Modules native bridging. Use when the task touches `android/**` (`*.kt`, `*.java`, `*.gradle` / `*.gradle.kts`, `AndroidManifest.xml`, `libs.versions.toml`, ProGuard / R8 rules), JNI / `CMakeLists.txt`, the RN legacy bridge or TurboModules / Fabric / Codegen, the Expo Modules Kotlin DSL, or Kotlin coroutines / Flow and threading primitives. Also covers manifest-merger conflicts, `minSdk` / `compileSdk` / `targetSdk` drift, R8 reflection breakage, AGP / Kotlin Gradle Plugin / JDK version mismatches, autolinking under Expo + React Native, and "compiles locally but fails on EAS" symptoms. Two modes: implement (write/edit Kotlin or Gradle, verify with `compileDebugKotlin`) or review (audit for idiom, lifecycle, threading, and resource-management correctness); loads upstream docs (kotlinlang.org, developer.android.com, the React Native and Expo Modules guides) when prior knowledge is insufficient.
Review persona: security lens. Use for input-handling, ReDoS, prototype-pollution, supply-chain, publish-hygiene, GitHub Actions workflow exploitation, and trademark/license concerns.
Review persona: senior software architect lens for any codebase. Use for architecture review or grading of a project's shape: folder structure and module boundaries, naming, convention vs configuration, SOLID, coupling and cohesion, functional vs OOP coherence, domain-driven design, immutable vs mutable state discipline, layering and dependency direction, API surface shape, and extensibility without bloat. Trigger on "review the architecture", "grade this codebase", "is this well organized", "does the shape make sense", or any question about whether a project's structure serves it.
Bring 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-test a screen", "reproduce a tap-and-crash", "automate an Android flow", or "set up Android UI testing". Project-agnostic base; layer a domain skill on top for specialized inputs (see android-emulator-mask-testing for camera/segmentation). Validated on Linux/WSL with KVM, Maestro 2.x, and JDK 17.
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 physical device. Read android-emulator-harness FIRST for bring-up, drive, and assert; this skill only overrides the camera-specific pieces. Validated on Linux/WSL with a 32-bit x86 emulator image and MediaPipe/ML Kit segmentation.
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 wrong for the job (a no-alpha PNG-24 wants JPEG or WebP; an over-long GIF wants video). Optimizes one file or walks a whole repository. Use for "optimize/compress this image, gif, svg, video, audio, 3D model, or web font", "shrink a PNG", "which format should this asset be", or "make these assets smaller". Skip when the asset is already minimal, when the bytes must stay bit-exact for a reason other than size, or when a build-time plugin (a bundler image loader, expo-optimize) already optimizes it in the pipeline.
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 reference for reading these tools (what each shows and how to interpret it), not a driver. Use for "open the Expo dev menu", "read the performance monitor", "use the element inspector", or "inspect a component / a slow re-render with React Native DevTools".
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 id and scheme from the app config. Use for "run my Expo app on the simulator", "load a dev client", or "drive Storybook on iOS".
Uses power tools
Uses Bash, Write, or Edit tools
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Claude Code skills for the full arc of a change: farm to table, with receipts.
Curated Claude Code skills and agents from simiancraft. Most skill collections are grab bags. This one has a spine: it carries a change through its whole life. Plan it, structure it, run it and watch it behave, and prove it on the pull request. No stage advances on narrative. Every gate is something you observed: a screenshot that came back from the emulator, a logcat line, a byte count that got smaller, a plan file that deleted itself when the work shipped.
/plugin marketplace add simiancraft/simiancraft-skills
/plugin install simiancraft-skills@simiancraft-skills
Update later:
/plugin marketplace update simiancraft-skills
Each stage of a change has a home here, and each stage ends in an observable gate:
| Stage | Gate | Where it lives |
|---|---|---|
| Plan | every commit step carries a verification gate; the plan self-destructs when shipped | how-to-plan |
| Structure | domain nouns named before file structure; flag-prop relay refused | zone-composer |
| Drive and observe | screenshots, logcat, and page errors that came back for inspection | the web, Android, and iOS harness families |
| Extract evidence | artifacts a reviewer can consume: a contract-shaped bundle with a manifest, or a GIF embedded where the claim is made | ios-simulator-flow-evidence, playwright-gif-capture |
| Shrink | kept only if smaller AND still valid; never regress | asset-optimization |
| Prove it | evidence a reader can independently re-check, rendered inline on the PR | prove-work-on-github (incoming, PR #9) |
The seams are contracts with names, not habits. The evidence skill emits artifacts to a documented contract that the proof skill consumes; the GIF capture skill ends at embedding in a PR; the proof skill defers artifact shrinking back to asset-optimization. Farm to table.
how-to-plan: methodology for tactical, hand-off-ready planning docs. Goal-as-north-star with a 150-word cap, atomic commit steps with verification gates, before/after file trees, and the Inspector Gadget Rule: plans self-destruct when shipped, behind a two-key handshake.zone-composer: React composition pattern for domain features (screens, panels, tools, editors, wizards). A chassis owns data and state branching via flat early returns; presentational leaves take named zones instead of flag props; mutations live in actions/; layouts are polymorphic. Lean core plus six task references.Three harness trunks, one mental model: boot the runtime, drive the UI by stable handles rather than brittle coordinates, and gate on what comes back. Each trunk declares a specialization contract; a sibling skill reads the trunk first and adds only its delta.
The camera skills ship a person: a pre-framed human subject fixture fed to the emulator or browser camera, so segmentation models produce a real mask with no physical device in the loop.
playwright-harness: the operational trunk for browser work. Writes a script, launches Chromium (real GPU under WSLg via ANGLE when WebGL matters), drives the page, and gates on screenshots plus collected page errors. Two references carry the depth: interactions (locators, actions, waits, assertions) and flows (login and session reuse, forms, responsive sweeps, link checking, network stubbing).playwright-camera-mask-testing: puts a real person in front of getUserMedia so MediaPipe selfie segmentation produces an actual mask, then verifies background replacement, blur, and shader effects by vision. Ships a webcam-shaped subject fixture and an empty-scene negative case.playwright-gif-capture: drives a page, canvas, or WebGL animation deterministically, grabs frames, and encodes a looping GIF, with a reference on the color, frame-rate, and size dials so the output is not deep-fried, janky, or oversized.npx claudepluginhub simiancraft/simiancraft-skills --plugin simiancraft-skillsHarness-native ECC plugin for engineering teams - 67 agents, 279 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Evidence-gated AI coding workflow: scan → analyze → plan → TDD → execute → fix → verify → review, powered by Codebase Memory MCP >= 0.9.0 with optional Serena LSP intelligence. Includes blast-radius planning, test/cycle gates, independent review, and Windows Git Bash hook auto-resolution.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review