@cdr-kit/Plugin / Skill

Claude Code plugin

A multi-skill Claude Code plugin that teaches any agent the cdr-kit workflows. Pairs with the cdr CLI and the @cdr-kit/mcp server — three coordinated surfaces, one bundle.

Install (four paths)

terminal
# 1. skills.sh — works across Claude Code, Cursor, Copilot, Cline, 18+ agents (recommended)
$ npx skills add Blockchain-Oracle/cdr-kit
# adds all 11 cdr-kit skills, auto-detects your agent
# Pick a subset:
$ npx skills add Blockchain-Oracle/cdr-kit --skill design-condition
$ npx skills add Blockchain-Oracle/cdr-kit --skill 'design-*'
# Install to every agent on your machine:
$ npx skills add Blockchain-Oracle/cdr-kit --all

# 2. via the cdr CLI (cdr-kit-bundled, Claude Code only)
$ npm install -g @cdr-kit/cli
$ cdr skill install

# 3. via Claude Code's plugin marketplace
$ claude
/plugin marketplace add Blockchain-Oracle/cdr-kit
/plugin install cdr-kit@cdr-kit

# 4. manual
$ git clone https://github.com/Blockchain-Oracle/cdr-kit
$ cp -r cdr-kit/packages/plugin/cdr-kit ~/.claude/skills/cdr-kit

How skills.sh actually packages cdr-kit — the CLI treats the whole GitHub repo as the package (Blockchain-Oracle/cdr-kit), then walks the repo's top-level skills/ directory to discover each individual skill inside it. So npx skills add Blockchain-Oracle/cdr-kit installs all 11 by default; --skill <name> picks one or more, --skill '*' is shorthand for all, and --all installs every skill into every detected agent.

The CLI clones the repo into a cache, copies (or symlinks with --copy off) the matching SKILL.md files into your agent's skill folder (e.g. ~/.claude/skills/<name>/), and writes a skills-lock.json next to your project so re-installs are reproducible. Update everything later with npx skills update.

This means cdr-kit ships once (one repo, one badge) but each consumer can pull in only the skills they actually use — same model as a JS monorepo.

Skills (11)

SkillWhen it firesWhat it teaches
design-conditionWhich CDR condition should I use for X?Decision tree for picking among open / subscription / tier-gate / composable / license-read. Encoding cheatsheet per condition.
wire-allocate-pay-readHow do I create a vault and read it?The canonical 4-step flow (creator + consumer sides). Gotchas: OOG, uuid-from-receipt, value-must-match-price.
debug-cdr-precompileOOG / ReentrancySentryOOG / AlreadyConfigured / partial-collection timeout7 failure modes with root cause + fix. Backed by the gotchas in context/research/cdr-protocol-truth.md.
audit-vault-configShould I subscribe to this? / Did my deploy configure right?4-call view-only audit. Red-flag checklist (payee mismatch, never-expiring period, missing licenseTermsId).
explain-cdr-error(Any raw error message)Lookup table from error code → root cause + fix. Maps every @piplabs/cdr-sdk error class.
design-storage-adapterWhich storage backend for my CDR file vault? Pinata / Supabase / R2 / Storacha?Decision tree for picking among the 6 official adapters + 3 ecosystem packages. Wiring examples, common failure modes (CORS, RLS, CID drift).
design-multisig-conditionMulti-sig CDR vault / N-of-M approval / off-chain signingN-of-M EIP-712 setup, signer rotation, sig-collection UX, caller binding, ECDSA-malleability dedupe, EIP-1271 gap.
design-deadman-switchDead-man switch / wallet recovery / leak-on-disappearance / heartbeatTrapdoor semantics, poke() cadence, block-vs-timestamp tradeoff, heir variants, operational risk (forgotten heartbeat).

Plugin layout

tree
packages/plugin/cdr-kit/
├── .claude-plugin/
│   └── plugin.json             # plugin manifest (11 skills registered)
├── skills/
│   ├── design-condition/           SKILL.md
│   ├── wire-allocate-pay-read/     SKILL.md
│   ├── debug-cdr-precompile/       SKILL.md
│   ├── audit-vault-config/         SKILL.md
│   ├── explain-cdr-error/          SKILL.md
│   ├── design-storage-adapter/     SKILL.md
│   ├── design-multisig-condition/  SKILL.md
│   ├── design-deadman-switch/      SKILL.md
│   ├── design-time-window/         SKILL.md
│   ├── design-escrow/              SKILL.md
│   └── design-publish-with-story/  SKILL.md
├── references/
│   ├── conditions-cheatsheet.md  # full ABI + encoding per condition
│   └── error-catalog.md          # every CdrErrorCode + SDK mapping
└── README.md

Skill vs MCP vs CLI

Per the Anthropic-blessed boundary (guide): MCP = let Claude access external systems; Skill = let Claude know how to do something; CLI = the same operations exposed for a human in the terminal.

cdr-kit ships all three from one shared core: the 34 CDR operations are MCP tools in @cdr-kit/mcp; this plugin's 11 SKILL.mds teach Claude the procedural knowledge for designing, wiring, and debugging around those tools; cdr exposes the same surface for terminal use.