AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
The test plan is the payoff of the risk analysis: it tells the reviewer (and the author) exactly what to verify before merge. A weak test plan says "test the feature." A strong one names the specific path, input, and edge case that would catch a regression. Each item derives
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
The test plan is the payoff of the risk analysis: it tells the reviewer (and the author) exactly what to verify before merge. A weak test plan says "test the feature." A strong one names the specific path, input, and edge case that would catch a regression. Each item derives
The test plan is the payoff of the risk analysis: it tells the reviewer (and the author) exactly what to verify before merge. A weak test plan says "test the feature." A strong one names the specific path, input, and edge case that would catch a regression. Each item derives from a risk area.
Every risk area should produce at least one test-plan item. Walk the risk list and ask, for each: "what concrete check would prove this is safe?"
| Risk area | Test-plan item it yields | |---|---| | Auth check changed | Valid credential → 200; missing/expired/revoked → 401; wrong-owner → 404. | | Migration adds NOT NULL column | Migration runs cleanly on a DB with existing rows, not just empty. | | Public API signature changed | Existing client calling the old shape still works, or is intentionally broken + versioned. | | Rate-limit / config default changed | Behavior at the new limit matches expectation under load. | | Injection surface added | Malicious input (`'; DROP`, `../../etc`) is rejected/escaped. |
A test-plan item must name the **input or condition** that exercises the path, not just the feature.
without locking and backfills `api_key_id`.`
Cover the unhappy paths explicitly — empty, null, zero, max, unicode, unauthorized, concurrent. Happy-path-only test plans miss exactly the cases that break in production.
New risky behavior with no accompanying test is a finding, not an omission to stay quiet about. Cross-reference the **Tests** bucket from `reading-the-diff.md` against the **Feature** bucket:
path." Put this in Risk areas *and* as an unchecked test-plan item.
was called) rather than behavior (the response is 401).
after can silently regress. This is a HIGH-value gap to name.
red flag; call it out.
(Bash), do, and report results separately, but the plan stands regardless.
taken on faith.
**Test plan** - [ ] Valid API key → 200 with PDF; missing/expired/revoked → 401 (no test currently exists). - [ ] Migration `0007_api_keys` runs on a non-empty `accounts` table without lock or failure. - [ ] Constant-time key comparison — valid vs invalid keys take indistinguishable time. - [ ] Rate limit at the new 1000/min default behaves as intended under burst load, or is reverted.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity…
The contract is the deliverable. Express it as an **OpenAPI 3.1** document so it is human-readable *and* machine-checkable. This reference covers how to…
Run through this before declaring an API contract done. It is ordered the way you should *design*: resources first, cross-cutting rules last. Every box is a…
APIs are forever once published: a consumer you've never met may depend on any field you expose. Design so you can **add without breaking**, and version…
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.