From adcp-client
Runs parallel expert reviewers (protocol, code, security) before substantive PRs like protocol changes, multi-tenant/auth, examples, spanning refactors. Blocks on 2+ flags.
npx claudepluginhub adcontextprotocol/adcp-client --plugin adcp-clientThis skill uses the workspace's default tool permissions.
Multi-reviewer parallel review where **convergence is the load-bearing signal**. Items flagged by two or more reviewers are real blockers. Single-reviewer findings are usually preferences worth considering but not gating.
Conducts deep PR reviews using 6-7 parallel specialized agents for code quality, security, testing, frontend/backend architecture. Use for thorough pull request analysis before merging.
Reviews code changes using parallel personas for correctness, testing, maintainability, and conditional areas like security, performance, APIs. Merges into P0-P3 severity reports for PR prep and iterative feedback.
User-triggered multi-agent code review that spawns 3-5 parallel specialist sub-agents to analyze diffs across perspectives like correctness and security, verifies citations against source files, and synthesizes a prioritized review artifact for PRs, multi-commits, or security-sensitive code.
Share bugs, ideas, or general feedback.
Multi-reviewer parallel review where convergence is the load-bearing signal. Items flagged by two or more reviewers are real blockers. Single-reviewer findings are usually preferences worth considering but not gating.
This skill exists because solo Claude review on a non-trivial PR catches obvious bugs but misses domain-specific landmines (multi-tenant isolation, protocol shape, type-system gotchas, adopter-DX cliffs). Each expert reviewer carries different domain priors; running them in parallel and acting on the intersection produces a better signal than any single review.
Always run before opening:
examples/hello_*, skill files, public docs)Optional but high-value:
Skip:
Pick the relevant subset for the PR. Default for a substantive change is all four:
| Reviewer | Focus | Fire when |
|---|---|---|
ad-tech-protocol-expert | Wire shape vs spec, error code placement, schema conformance, protocol contract | Any protocol-touching change |
code-reviewer | Correctness, type-safety, dead code, casts, edge cases, hidden control flow | All non-trivial code changes |
security-reviewer | Tenant isolation, auth/credential handling, prompt-injection surfaces, fail-open vs fail-closed gates, SSRF | Any change that touches auth, multi-tenancy, or buyer-supplied data flowing through error envelopes |
dx-expert | Forkability, SWAP markers, header doc clarity, copy-paste anti-patterns, README discoverability | Any adopter-facing example or doc change |
For protocol-only / spec-side changes, adtech-product-expert (buy-side / sell-side product fit) is often a fifth.
Single message, multiple Agent tool calls in parallel — never sequential. Run-in-background unless the PR is so small that you'll wait on the first one. Each prompt is self-contained: the agent has no memory of the conversation, so include:
Example brief shape (excerpted from bokelley/hello-adapters-gov-rights round 2):
Re-review of PR #XXXX. Prior round flagged 17 findings; all blockers + must-fix concerns claimed addressed. Verify, and flag any NEW issues introduced by the fixes.
Files in scope:
examples/foo.ts(new, ~1200 lines).Prior-round items that should be fixed — verify each:
- ...
- ...
New questions for this round:
- ...
Report: blockers / suggestions / nits. Under 500 words. Don't restate prior-round findings unless the fix introduces a new issue.
Convergence (2+ reviewers same finding) = real blocker. Act on these unconditionally.
Single-reviewer must-fix = should-fix. Read the reasoning; usually it's worth doing but defensibly skippable. Push back if the finding contradicts the convergent signals.
Advisory = nice-to-have. Roll into a follow-up issue or comment-only fix.
The convergence signal is doing real work. From the production example (round 1 of the multi-tenant adapter PR):
as unknown as { account?: ... } cast was flagged by THREE of four reviewers (code: "may be reading a runtime-undefined field"; DX: "cargo-cult-bait"; protocol: implicitly endorsed by saying "should pull from ctx.account"). All three independently spotted that the cast was a real bug, not a style preference.For substantive PRs, run two rounds:
Round-2 finds the regressions fix-blindness misses. Production example: round 2 caught a fail-OPEN tenant gate that round 1's fix had introduced (the gate was if (homeTenantId && tenantId !== homeTenantId) — when homeTenantId is undefined, the check skips; round 1 hadn't considered that path).
After all rounds land, the PR description should include:
skills/triage-storyboard-failure/)npm run typecheck / npm run format:check / CI — those gate-before-reviewskills/triage-storyboard-failure/ — when an expert review (or your own testing) surfaces a storyboard-vs-spec mismatchexamples/CONTRIBUTING.md — the SWAP-marker and DO-NOT-DEPLOY-AS-IS conventions DX reviewers will check for~/.claude/commands/prep-for-pr.md (personal command) — calls this skill plus the build/test/security-review chain