add-skill
Install a pinned skill extension on demand (/add-skill <id>), or list core packs and extensions
Put a task's load-bearing claims and key decisions through a proposer and an adversary, with proof
> /plugin marketplace add solanabr/ai-kit > /plugin install solana-ai-kit@stbr
How it fires
How this command gets triggered: by you, by Claude, or both.
/adversarialContext preview
What this command does when you run it.
Put a task's load-bearing claims and key decisions through a proposer and an adversary, with proof
description: "Put a task's load-bearing claims and key decisions through a proposer and an adversary, with proof" disable-model-invocation: true
Do `$ARGUMENTS`, building on nothing that has not survived an adversary. An empty task, or a bare `proceed`, means the unfinished work: take stock as [/proceed](proceed.md) does, then put what is left through pairs. This command is literal: every task given runs adversarially, each with at least one proposer and adversary pair, and none is dropped as not worth one. It does no triage; [/explore](explore.md) is the command that sorts tasks by what they need. Stacked with `/parallel` (`/parallel /adversarial <task>`), every pair below runs as a lane of that fan-out. Stacked in front of a step that triages (`/research`, `/decide`, `/plan-work`, `/review-round` or `/explore`), it runs no pairs of its own: it makes that step send every item to its adversary, and the step's adversarial pass is the run. Calls written into the task, `/name(...)`, run as [/parallel's Composition](parallel.md#composition) says; as an outer call, this command attacks what its inner calls returned and runs none of them again.
1. **Decisions in force:** `bash .claude/bin/decisions.sh in-force`. If the helper is missing or fails, or the record is empty, say so and use the decisions made in this conversation. An entry is a premise, not a question to reopen: evidence against it goes to the user as a brief, and only the user supersedes it (their newest explicit instruction does). 2. **Items:** per task, every claim and decision that changes what gets built if it is wrong; a task with none still gets a pair, on its result. Leave the rest. 3. **Pairs:** per item (closely related items can share one), a proposer subagent that makes the case and an independent adversary briefed to refute it ("be right, not contrarian: say so if it holds"). Neither edits the checkout; a reproduction runs in a scratch worktree or a temp directory. An item that can fail more than one way gets an adversary per lens (security, correctness, cost, the user's intent). A security call also gets a cross-model adversary when Codex is installed (`codex exec --sandbox read-only '<brief>'`): same-model pairs share blind spots. Run the pairs at once, as a dynamic workflow when the Workflow tool is available (the user watches it in `/workflows`), else as background subagents (`/tasks`); each brief carries the decisions in force. 4. **Proof per premise:** a command and its output, a doc quote with its URL, a test, or `file:line`, from a source other than the one making the claim. Current official docs outrank a local install or memory. 5. **Verdicts,** each with its proof and one plain-language line: **PASS** (holds, proven), **NEEDS-FIX** (holds once a named change is made), **REFUTED** (disproven, proof attached), **UNVERIFIED** (no proof either way: it could not run, the source was unreachable, a limit hit; never counted as PASS or REFUTED). A High or Critical finding is reproduced, command and output, before it is reported; one that does not reproduce is UNVERIFIED. 6. **Whose call:**
7. **Record each clear call.** Only this session writes the record; agents propose in their reports. `bash .claude/bin/decisions.sh add --kind decision --by panel --question '<question>' --decision '<decision>' --words '<user words>' --premises '<premise [verified: how]; premise [assumed]>' --enforced-by '<test or hook, or none yet>'` `--words` quotes, never paraphrases, the user words the call rests on (the principle it applies, or the request itself); the helper stamps today's date, so add `--date YYYY-MM-DD` when those words are from another day. `none yet` keeps the call in Warnings until a test or hook enforces it. Single-quote every value (an apostrophe is `'\''`): in double quotes the shell expands `$` and backticks inside the user's words.
Inside the usual Done / Warnings / Open:
3. <id> — <the question in plain words>
Recommend: <answer>, because <why>. Against: <the best case against>.
Premises: <premise> [verified: <how>]; <premise> [assumed]. Reversible | One-way. Blocks: <what waits on it>.The numbered list is the channel. Use AskUserQuestion only for at most two concrete choices at the end of the turn, mirrored in the list. A timeout, an away notice, or a reply asking to wait or explain leaves the item unanswered.
Claude Code, set up to ship on Solana. Not programs alone — the whole lifecycle: validating the idea, building the program and the app around it, shipping it, and the launch and growth work that follows.
Install a pinned skill extension on demand (/add-skill <id>), or list core packs and extensions
Short for /adversarial: run every task through proposer and adversary pairs, no triage
Audit infra security: secrets, deps, CI/CD, webhooks, AI/skill files
Audit Solana program code for exploitable bugs and write a findings report
Compare per-instruction CU with the stored baseline to catch regressions
Build the web client (Next.js, Vite, React) and check env, types and bundle