sample-pr-summary
A complete summary of a hypothetical PR, in the standard format. Use this as the model for tone, structure, and the Summary → Risk areas → Test plan flow. Note how the summary leads with the security-relevant change, surfaces a buried config change the description didn't
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
Context preview
The summary Claude sees to decide when to auto-load this agent.
A complete summary of a hypothetical PR, in the standard format. Use this as the model for tone, structure, and the Summary → Risk areas → Test plan flow. Note how the summary leads with the security-relevant change, surfaces a buried config change the description didn't
Agent definition
sample-pr-summary.mdSample PR Summary
A complete summary of a hypothetical PR, in the standard format. Use this as the model for tone, structure, and the Summary → Risk areas → Test plan flow. Note how the summary leads with the security-relevant change, surfaces a buried config change the description didn't mention, and turns every risk area into a concrete test-plan item.
---
PR Summary — feat: cache product listings in Redis
**Summary** Introduces a Redis-backed read-through cache for `GET /products` and `GET /products/:id`, added in `services/productCache.js` and wired into `routes/products.js` (+264/-31 across 7 files). The PR is described as "add caching," but it also changes `getProduct()` to swallow cache-miss errors and fall through to the DB silently (`services/productCache.js:44`) and bumps the connection-pool size in `config/db.js:12` from 10 to 50 — both worth review alongside the cache logic. First thing to look at: the cache-invalidation path on writes, which is where read-through caches usually go wrong.
**Risk areas**
- `services/productCache.js:44` — cache/Redis errors are caught and ignored, falling through to the
DB. Good for availability, but it means a misconfigured Redis degrades silently to full DB load with no signal. Confirm this path at least logs/metrics the fallback.
- `services/productCache.js:71` — invalidation on product update deletes `product:{id}` but not the
`products:list` aggregate key, so the list endpoint can serve stale data after an edit.
- `config/db.js:12` — pool size raised 10→50, unrelated to the stated purpose. Verify the DB can
sustain 50 connections per instance × instance count before merging.
- `services/productCache.test.js` — tests cover the cache-hit and cache-miss read paths but **not**
invalidation-on-write. The staleness risk above is currently unproven.
**Test plan**
- [ ] Read `GET /products/:id` twice → second call served from cache (assert no DB query fired).
- [ ] Update a product → subsequent `GET /products/:id` **and** `GET /products` both return fresh
data (currently untested; covers the stale-list risk).
- [ ] Redis unavailable → endpoints still return correct data from the DB, and the fallback is
logged/metered (not silent).
- [ ] Load test at pool size 50 confirms the DB tolerates the new connection count, or the bump is
reverted to a justified value.
- [ ] Concurrent read + write of the same product does not leave a permanently stale cache entry.
---
Why this summary works: it summarizes the branch at HEAD (not the last commit), it does not claim anything the diff doesn't show (it says the fallback "means" DB load, anchored to line 44, rather than asserting Redis is misconfigured), it surfaces the two changes the description omitted, and every risk area has a matching test-plan item — including the missing invalidation test.
Read more
Sample PR Summary
A complete summary of a hypothetical PR, in the standard format. Use this as the model for tone, structure, and the Summary → Risk areas → Test plan flow. Note how the summary leads with the security-relevant change, surfaces a buried config change the description didn't mention, and turns every risk area into a concrete test-plan item.
---
PR Summary — feat: cache product listings in Redis
**Summary** Introduces a Redis-backed read-through cache for `GET /products` and `GET /products/:id`, added in `services/productCache.js` and wired into `routes/products.js` (+264/-31 across 7 files). The PR is described as "add caching," but it also changes `getProduct()` to swallow cache-miss errors and fall through to the DB silently (`services/productCache.js:44`) and bumps the connection-pool size in `config/db.js:12` from 10 to 50 — both worth review alongside the cache logic. First thing to look at: the cache-invalidation path on writes, which is where read-through caches usually go wrong.
**Risk areas**
- `services/productCache.js:44` — cache/Redis errors are caught and ignored, falling through to the
DB. Good for availability, but it means a misconfigured Redis degrades silently to full DB load with no signal. Confirm this path at least logs/metrics the fallback.
- `services/productCache.js:71` — invalidation on product update deletes `product:{id}` but not the
`products:list` aggregate key, so the list endpoint can serve stale data after an edit.
- `config/db.js:12` — pool size raised 10→50, unrelated to the stated purpose. Verify the DB can
sustain 50 connections per instance × instance count before merging.
- `services/productCache.test.js` — tests cover the cache-hit and cache-miss read paths but **not**
invalidation-on-write. The staleness risk above is currently unproven.
**Test plan**
- [ ] Read `GET /products/:id` twice → second call served from cache (assert no DB query fired).
- [ ] Update a product → subsequent `GET /products/:id` **and** `GET /products` both return fresh
data (currently untested; covers the stale-list risk).
- [ ] Redis unavailable → endpoints still return correct data from the DB, and the fallback is
logged/metered (not silent).
- [ ] Load test at pool size 50 confirms the DB tolerates the new connection count, or the bump is
reverted to a justified value.
- [ ] Concurrent read + write of the same product does not leave a permanently stale cache entry.
---
Why this summary works: it summarizes the branch at HEAD (not the last commit), it does not claim anything the diff doesn't show (it says the fallback "means" DB load, anchored to line 44, rather than asserting Redis is misconfigured), it surfaces the two changes the description omitted, and every risk area has a matching test-plan item — including the missing invalidation test.
🐒 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
Other agents on vanara-agents-skills.
- AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination, filtering, error envelopes, versioning, and idempotency. Produces a reviewable API contract plus an OpenAPI snippet, not
Open agent - review-notes
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity legend: **CRITICAL** (breaks clients / data risk), **HIGH** (real bug or inconsistency), **MEDIUM** (maintainability),
Open agent - contract-and-openapi
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 structure that document and what `scripts/lint-openapi.mjs` enforces.
Open agent - design-checklist
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 place real APIs go wrong in production.
Open agent - versioning-and-evolution
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 explicitly when you must break.
Open agent - pr-comment-template
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.
Open agent

