simiancraft-skills

Claude Code skills for the full arc of a change: farm to table, with receipts.

License: MIT Skills Agents

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.

Install

/plugin marketplace add simiancraft/simiancraft-skills
/plugin install simiancraft-skills@simiancraft-skills

Update later:

/plugin marketplace update simiancraft-skills

The arc

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.

What's in here

Plan

  • 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.

Structure

  • 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.

Drive and observe

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.

Web

  • 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.

Android

  • android-emulator-harness: the Android analog of Playwright for web. Boots an AVD headless under KVM on Linux/WSL, installs an APK, drives the UI with Maestro, and gates on logcat plus screenshots that come back for inspection.
  • android-emulator-mask-testing: gets a real person in front of the emulator camera so MediaPipe / ML Kit selfie segmentation produces an actual mask, then verifies background replacement, blur, and shader effects. Ships a pre-framed subject fixture.

iOS

  • ios-simulator: the iOS analog of the other two trunks. Discovers and boots a device, installs and launches an app, drives the UI by accessibility (AXe), captures screenshots (video capture lives in ios-simulator-flow-evidence), and covers the simulator's own chrome, device state, and execution modes.
  • expo-ios-simulator: runs an Expo / React Native app on the simulator; sits on top of ios-simulator. Picks an execution mode (Expo Go, dev client, Storybook-mobile, web-on-mobile), builds and installs a dev client, and clears the recurring Expo prompts that block automation.
  • ios-simulator-triage: a living failure catalog organized by layer: build failures, app-runtime vs Expo-runtime failures, and automation failures that emit no error. Each layer names where its logs live.
  • ios-simulator-flow-evidence: captures proof of a driven flow: vision-verifiable screenshots, video, and a manifest tying steps to artifacts, plus an honest list of what a simulator cannot do. Owns extraction, not publishing.

Shared trunks

  • mobile-accessibility: makes a mobile app driveable and auditable through the accessibility tree, the shared dependency behind every tap-by-label interaction. One tree, two consumers: driving reads the stable handle, auditing reads the user-facing semantics.
  • expo-developer-tools: reading the Expo / React Native in-app developer tools: the developer menu, React Native DevTools, and Rozenite plugins. The shared home both platform families point to; an interpretive reference, not a driver.

Shrink

  • asset-optimization: shrinks 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. Measures before and after, validates the output, and keeps the result only if it is smaller AND still valid; redirects to a better format when the source is wrong for the job.

Agents

  • android-emulator-tester: automated Android UI/integration testing specialist; drives a real app on a headless emulator and gates on what it observes. Owns the boot, install, drive, and assert loop.
  • android-kotlin-expert: Android native specialist for Kotlin, Java, Gradle, the Jetpack libraries, OpenGL ES and camera pipelines, and React Native / Expo Modules native bridging. Two modes: implement or review.
  • review-software-architect: senior architect review lens for any codebase. Judges a project against its own organizing principle first and the canon (SOLID, DDD, layering, paradigm coherence) second, and grades on request with calibrated letter grades.

Every skill names its ceiling

An emulator cannot validate real FPS or true camera fidelity, and the Android harness says so. A simulator cannot use a real camera or place a call, and the evidence skill lists that plainly. The proof skill, incoming in #9, states outright that proof is asymptotic and a total account of it would be a lie. Skills that overclaim get you confidently wrong answers; these are written to keep the model calibrated. The iOS and accessibility skills cite their upstream docs, and the web and Android harnesses name the exact stack they were validated on.

Curation policy

Deliberately small, slow-growing. Everything here is in production use at simiancraft and worth putting the name on; some skills are living catalogs that grow as use finds new cases. Nothing makes it in for completeness or volume. Gotchas in these files cost real debugging time; that is the bar for writing one down. See CONTRIBUTING.md for the contribution posture.

License

MIT. See LICENSE.