Borrowing it
Nothing to install: this file belongs to questdb/mcp-server-questdb. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/questdb/mcp-server-questdb/master/.claude/skills/review-pr/SKILL.mdgit clone --depth 1 https://github.com/questdb/mcp-server-questdbWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/questdb/mcp-server-questdb/review-pr)<a href="https://agentmods.dev/skills/questdb/mcp-server-questdb/review-pr"><img src="https://agentmods.dev/badge/skills/questdb/mcp-server-questdb/review-pr.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.07241 |
| Opus 5 | $0.00000 | $0.03621 |
| Sonnet 5 | $0.00000 | $0.01448 |
| Haiku 4.5 | $0.00000 | $0.00724 |
Grade A, and why
review-pr scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 236 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Review $ARGUMENTS
Review mindset
You are a senior backend engineer performing a blocking code review on the QuestDB MCP Bridge — a long-lived Node.js process that brokers tool calls between an untrusted MCP client (a coding agent) over stdio and a paired QuestDB Web Console over a local WebSocket. A bug here does not just render wrong; it can fire a data-modifying SQL statement twice, hand the agent a false error for work that committed, leak a pairing token, leave a timer or socket dangling for the life of the process, or wedge the bridge so no tool ever completes. Be critical, thorough, and opinionated. Your job is to catch problems before they ship, not to be nice.
- Assume nothing is correct until you've verified it. Read surrounding code to understand context — don't just look at the diff in isolation.
- The diff is a hint, not the boundary of the review. The highest-value bugs almost always live at the protocol seams and lifecycle edges the diff quietly shifts — a message whose shape or validation changed, a promise that can now resolve twice or never, a timer cleared on one path but not another, a state transition (
S0↔S1) that a new branch can reach in an unexpected order, a tool-resultisError/contentcontract a caller depends on. Treat the diff as the entry point, not the scope. - Flag every issue you find, no matter how small. Do not soften language or hedge. Say "this is wrong" not "this might be an issue".
- Do not praise the code. Skip "looks good", "nice work", "clever approach". Focus entirely on problems and risks.
- Think adversarially. For each change, ask: what if the browser disconnects mid-call? What if it reconnects during the reconnect-grace window and the result lands late? What if
tool_resultarrives after the deadline already fired (or after cancel, or for an unknownrequestId)? What if a second browser connects (supersede)? What ifhelloarrives twice, with a bad token, with a mismatched major version, or with malformedtools? What if the MCP client aborts the call viaextra.signal? What if a pong never comes, or comes for a stale nonce? What if the socket's outbound buffer overflows? What if the port is taken, or file descriptors are exhausted? What ifSIGTERMarrives mid-shutdown, or stdin closes? What if the same promise'sresolve/rejectis reachable from two timers at once? - Check what's missing, not just what's there. Missing timer cleanup, missing
inflight.deletebefore resolve, missing abort-listener removal, missing close-code handling, missing schema validation at the trust boundary, missing tests for the race/disconnect paths, missing handling of an empty/partial/error result. - Verify every claim. If the PR title says "fix", verify the bug actually existed and the fix is correct. If it says "improve", reason about whether it actually does — or could it regress a timing/ordering guarantee? Treat the PR description as an unverified hypothesis, not a statement of fact.
- Read the full context of changed files when the diff alone is ambiguous. Use Read/Grep/Glob to inspect callers, the message types in
types.ts, the timer it pairs with, and the related tests insrc/test. - Assess reachability before reporting. For every potential bug, trace the actual code path: which message, which timer, which signal, which CLI/env input triggers it. If a problem requires a message the protocol can't produce or a state the machine can't reach, it is not a real finding — drop it. Focus on bugs reachable from a real MCP client, a real paired console, or a real OS/network event.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 236 lines · 0 tokens per session scan A 67dad85c85c6
review-pr is a skill published in the GitHub repository questdb/mcp-server-questdb (2 stars, last pushed 4d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 7,241 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
code-review
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it.
knowledge-audit
Review and clean up stored memories — find duplicates, contradictions, stale entries, and consolidate.
review-guidelines
Additional code review guidelines specific to this codebase. Auto-loaded by the review agent during PR reviews to enforce project conventions.
gitnexus-pr-review
Use when the user wants to review a pull request, understand what a PR changes, assess risk of merging, or check for missing test coverage. Examples: "Review this PR", "What does PR #42 change?", "Is this PR safe to merge?".
tool-defs-analysis
Read-only audit of MCP definition language across an existing surface — tools, resources, prompts, server instructions. Walks every definition file and checks 16 categories the LLM reads to decide whether and how to call: voice & tense, internal leaks, audience leaks, defaults, recovery hints, field descriptions…
research-papers
Use when the user wants a literature review, paper summary, research landscape, or sourced synthesis from papers, reports, abstracts, or converted PDFs.