Learn the stack
These 21 skills use a working app to teach the pieces inside it.
Install them:
npx skills add joelhooks/rat-stack
Start here
- durability — Keep a rat-stack app standing when a provider, pool, or dependency slows down or a worker dies. Use at any I/O boundary, connection pool, provider call, shared waiter, fan-out, flag, gate, or work that can outlive a request, or when asked “what happens when this is slow”, “add a timeout20”, “make this durable”, or “what survives a crash”.
- rat-stack-mode — Route non-trivial rat-stack code, data, design, investigation, and documentation tasks to every matching playbook and principle.
- use-a-prompt — Discover and read published rat-stack prompts before starting a task with one.
See how the pieces fit
- find-peers — Refresh public peers, exact stack versions, and tiers after stack bumps. On gardener passes, refresh peers checked more than 14 days ago without blocking other work.
- learn — Present Effect, Alchemy, XState, and application-design concepts during real work when the operator enables learn mode10. Use for adaptive explanations and local learning progress.
- learn-alchemy — Learn how Alchemy 2 turns an Effect program into a planned Cloudflare deployment.
- learn-rat-stack — Trace a capability through Effect, XState, five projections, the CLI, and Alchemy. Try hosted search and read.
Learn by building
- add-a-capability — Learn how one contract and its handler become a command, HTTP route, MCP tool, browser RPC, and sandbox call.
- add-a-feature-flag — Declare a typed feature flag9, its scoped evidence ladder, approval roles, removal date, and durable ledger adapter.
- add-a-lifecycle-machine — Learn how XState owns a lifecycle while Effect owns its work, errors, and services.
- add-a-store — Add persistence through a service named for an application job, with validation, vendor Layers, migrations, bounded reads, and shared backend tests.
- onboard-a-list — Analyze or migrate an email list. Measure sanitation rules, preserve stops, choose a cohort, and verify an authorized import or sending cutover.
- query-design — Design or review SQL reads, writes, scans, backfills, and slow database paths. Use before changing a store method or any loop that queries. Covers round-trip arithmetic, batching, keyset paging, index evidence, row budgets, PlanetScale Vitess limits, Hyperdrive connections, statement-count tests, and statement-template fences.
- write-a-wiki-page — Write or revise public wiki pages with short prose, cited claims, meaningful visuals, and pinned code snippets14.
Choose what you keep
- keep-or-cut — Learn which pieces depend on each other, then keep only the ones your project needs.
- uncomplect — Find responsibilities that a rat-stack design combines, separate them into capabilities, cartridges38, machines, features, and clients, and enforce that separation through types and checks. Use when asked to simplify, review, or replace a design, “what would Rich Hickey do”, “optimize for deletion”, or “define this error out of existence”.
Keep the fence sharp
- gardener — Keep rat-stack current and clean. Update exact dependency versions, learn from repos on the same versions, and add lint rules before cleanup.
Ship with evidence
- investigate-a-failure — Find the cause of a crash, wrong output, flaky test, or slow run with evidence, fix it at its source, and leave a notebook a person can learn from. Use when something fails intermittently, when the first fix idea is “raise the timeout” or “swap the version”, or when asked “why does this break” or “make this stable”.
- profile-a-worker — Capture a CPU or heap profile of a deployed Cloudflare Worker or Durable Object and read it with pprof. Use when a Worker is slow, burns CPU, nears its memory limit, throws Exceeded Memory, or you need to know which function costs the most in production.
- ship — Learn how to ship a change through merge, CI, release, stage deployment, rollout, verification, rollback and flags.
- test-behaviour — Pick the test shape that proves a behaviour. Use when you ask “how do I test this?”, add a test, test a domain rule, a lifecycle, a retry, a session, a UI interaction, a timer, or a race, or review a test that might be tautological.
Follow ports and adapters27 for provider boundaries and agent next actions9 for hypermedia guidance. Systems shows the running behavior.