---
title: "Shannon Atkinson (@rainmanjam) skills · skilld"
canonical_url: "https://skilld.dev/gh/rainmanjam"
meta:
  description: "13 agent skills written by Shannon Atkinson on skilld."
  "og:description": "13 agent skills written by Shannon Atkinson."
  "og:title": "Shannon Atkinson on skilld"
---

`

![Avatar for Shannon Atkinson](https://skilld.dev/_img/avatar?url=https%3A%2F%2Fgithub.com%2Frainmanjam.png)

# **Shannon Atkinson**

[@rainmanjam](https://github.com/rainmanjam)person

I build (developer) and break stuff (tester)

13 skills 22 Portland, OR Synced 1 month ago

[GitHub](https://github.com/rainmanjam) [Website](https://shannonatkinson.com)

## Skills

### [rainmanjam/poka-yoke](https://skilld.dev/gh/rainmanjam/poka-yoke)

Mistake-proofing for software. Shigeo Shingo's poka-yoke method as a Claude Code plugin: audit code for footguns, design APIs that resist misuse, install guardrails, turn incidents into devices.

13 skills 22

`npx skilld add rainmanjam/poka-yoke`

- [

  **/agent-guardrails**22

  Stop an AI agent damaging your repo: PreToolUse hooks, permission deny rules, protected paths, verification gates. Use when "claude keeps force pushing", "CLAUDE.md says X but it still does Y", "stop the agent touching prod or .env", or making a repo safe for unattended agent work. For AI features you ship to users use llm. /agent-guardrails by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/agent-guardrails)
- [

  **/audit**22

  Find footguns in code that already exists: swappable arguments, silent fallbacks, unguarded deletes, signatures that are easy to misuse. Use when someone asks "what could bite us here", "what is easy to misuse", "poka-yoke this repo", or wants a diff or PR reviewed for ways to get it wrong. Ranks by blast radius. For code not yet written use design; for something that already broke use retro. /audit by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/audit)
- [

  **/authz**22

  Multi-tenant isolation, IDOR and row-level security. Use to find every path where one tenant could read or write another tenant data: "we forgot to filter by org\_id", "can users see each other data", "audit these endpoints for cross-tenant leaks", "make an unscoped query impossible". Covers scoped repositories, RLS, default-deny routing and the two-tenant test. For what the UI shows use ux. /authz by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/authz)
- [

  **/clean-code**22

  Software quality review and design guidance for any code: naming, cohesion, coupling, duplication, function size, dependency direction, and testability. Use when someone asks to improve, review, refactor, or design code, or asks what good structure looks like here. Routes to the sub-skill matching the kind of work. /clean-code by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/clean-code)
- [

  **/data**22

  Pipelines, warehouses, dbt models and metrics, where failure is silently wrong numbers rather than a crash. Use when "the dashboard is wrong", "the numbers do not match", "add data quality checks", "safe backfill", or an upstream schema change broke a join. Covers freshness, row-count and null-rate assertions, data contracts, reconciliation. For a crash rather than wrong numbers use audit. /data by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/data)
- [

  **/defensive**22

  Defensive programming for any code: validating inputs at every boundary, checking for null and absent values, supplying safe fallbacks, catching and logging exceptions, and degrading gracefully rather than failing. Use when someone asks to make code robust, resilient, safer, or harder to crash. Routes to the sub-skill matching the kind of work. /defensive by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/defensive)
- [

  **/design**22

  Design APIs, schemas, types and state machines so misuse cannot be expressed. Use when writing a new interface and someone asks "what should the types look like", "make invalid states unrepresentable", "so callers cannot screw it up", or wants illegal state transitions rejected. Covers branded types, discriminated unions, typestate, parse-don't-validate. For code that already exists use audit. /design by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/design)
- [

  **/guardrails**22

  Pre-commit hooks, CI gates, lint rules, database constraints and branch protection. Use when a rule needs enforcing rather than documenting: "set up enforcement", "unformatted or untyped code must not get merged", "gate this in CI", "we agreed to X and people still do not", "stop secrets getting committed". Covers baselining and ratcheting so existing violations do not block anyone. For constraining an AI agent use agent-guardrails. /guardrails by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/guardrails)
- [

  **/llm**22

  AI features you ship to users: structured output, tool schemas, prompt injection, evals. Use when "the model returns bad JSON", "it hallucinates", "stop it calling the wrong tool", "add evals", or an LLM feature can trigger refunds, emails or writes. Covers schema-constrained output, idempotent tool calls, confirmation gates. For agents editing your repo use agent-guardrails. /llm by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/llm)
- [

  **/ops**22

  Deploys, schema migrations, rollback and infrastructure. Use when "can I ship this on Friday", "this migration is scary", "what is the blast radius", "prevent accidental deletion of the database", or a change drops a column. Covers expand/contract, canary rollout, kill switches, prevent\_destroy, tested backups. For an incident that already happened use retro. /ops by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/ops)
- [

  **/poka-yoke**22

  Mistake-proofing for anything: code, config, a schema, a process, a runbook, a form. Use when someone says "poka-yoke this", "mistake-proof it", "make this harder to get wrong", or runs /poka-yoke with no mode named. Applies Shigeo Shingo's method directly to any subject, and hands off to a specialist mode when one clearly fits. Start here when no other poka-yoke mode obviously applies. /poka-yoke by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/poka-yoke)
- [

  **/retro**22

  Turn a bug, outage or repeated mistake into a device that makes the whole class impossible. Use when something already broke: "make sure this never happens again", "this is the third time", "postmortem", "how did this get through". Root-causes to the missing constraint, then sweeps every other site where the mistake is still available. For a pipeline use data, a deploy use ops, cross-tenant use authz, an AI feature use llm. /retro by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/retro)
- [

  **/ux**22

  Forms, flows and screens. Structure, naming and clarity of user-facing interaction code: component boundaries, state ownership, and keeping presentation separable from the rules behind it. /ux by rainmanjam](https://skilld.dev/gh/rainmanjam/poka-yoke/ux)

Curated skills from @rainmanjam. Checked GitHub just now