add-skill
Install a pinned skill extension on demand (/add-skill <id>), or list core packs and extensions
Review a PR, branch, range or since <date> by lens; reproduce High and Critical; a numbered sheet
> /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.
/review-roundContext preview
What this command does when you run it.
Review a PR, branch, range or since <date> by lens; reproduce High and Critical; a numbered sheet
description: "Review a PR, branch, range or since <date> by lens; reproduce High and Critical; a numbered sheet"
Review `$ARGUMENTS` independently: a PR number, a branch, a range `A..B`, or `since <date>` for what landed on the base branch since then; empty means the current branch against `main` (else `master`). Any stack, not only program code. It never edits the code under review: `/diff-review` is the self-check in the context that wrote the code, and this is the independent one.
1. **Target.** Run each `gh` and network `git` call bare, as the whole Bash command: a pipe, redirect, `$(...)` or `cd` prefix keeps it in the sandbox, where it may fail to authenticate.
A review covers one commit, the head; uncommitted changes are not in it, so say so. Reviewers read the head from `git worktree add --detach .claude/worktrees/review-<slug> <head>`, which leaves the user's checkout alone. 2. **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. Every reviewer gets them verbatim. 3. **One reviewer per lens, all in parallel.** Copies of one generalist reviewer return mostly false positives; a lens each finds different things. Skip a lens with nothing to read, and say why in the header.
4. **Triage the findings, then reconcile adversarially.** Merge duplicate findings, then label them with [/explore's triage](explore.md#triage); with `/adversarial` or `/adv` in front, all of them are adversarial. Each High or Critical finding, and each one labelled adversarial, goes to a fresh agent that reproduces it against the review worktree without editing the reviewed files (a scratch test goes in its own temp directory), and returns the command and its output. A finding labelled adversarial then goes to a peer that sees the claim and the reproduction, but not the reviewer's argument, and answers CONFIRM, DISPUTE or DOWNGRADE with its reason; one labelled user is an `ask` item. A finding that does not reproduce is never reported as High or Critical: it is unverified. 5. **Sheet.** Merge duplicates, then number every item once, each with a default action: `fix` (confirmed or self-evident, and the fix is clear and fits this change), `ask` (the user's call: taste or product, scope, an interface, a decision in force, or a dispute the proof does not settle) or `defer` (real, but not this change). Write it to `.claude/context/review-<YYYY-MM-DD>-<slug>.md`, the slug ending in the short head SHA, even when it holds no items: it is the record `/ship` checks. Then remove the review worktree (outside the sandbox if it refuses).
Lenses and reproducers are independent, so run them as a dynamic workflow when the session can run one, with a findings schema per lens and the decisions in force in each prompt, so the user can watch it in `/workflows`; else as background subagents launched in one message (`/tasks`), with the triage, the reproducers and the peers as later batches. A workflow takes no input mid-run, so questions wait for the sheet.
REVIEW ROUND: <target> @ <full head SHA> vs <base> | <n> items | lenses run; skipped (why) | triage: <n> adversarial, <n> parallel, <n> serial, <n> user
## Needs your call
<n>. [<severity>][<lens>][<label>] <file:line> — <the problem in plain words>
Recommend: <action>, because <why>. Against: <the best case against>.
Evidence: <command → result> | unverified. Verdict (labelled adversarial): CONFIRM | DISPUTE | DOWNGRADE.
## Fix by default
<n>. [<severity>][<lens>][<label>] <file:line> — <problem> → <fix>. Evidence: <command → result>
## Deferred
<n>. [<severity>][<lens>][<label>] <file:line> — <problem>. Not now because: <reason>
## Disputed and dropped
- <claim> — <why the proof rejected it>The sheet goes to the file and, as the numbered list, into the last message, in the user's language. They answer by number, inline ("1 ok · 4 defer · 7 fix, but keep the API") or in the file, and a bare "ok" approves every `fix` item while each `ask` needs its own answer. `/fix-wave` applies what they approve; silence approves no
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
Put a task's load-bearing claims and key decisions through a proposer and an adversary, with proof
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