cdkd: Agent for Claude Code

.claude/agents/pr-test-reviewer.md

pr-test-reviewer is an agent for Claude Code from go-to-k/cdkd. It costs 34 tokens per session (706 once invoked), scanned A, original, Apache-2.0.

A read-only pull-request review skill that checks whether new behavior is adequately tested. A pull request is a proposed code change submitted for review before it is merged.

In plain words
What is it for?
Use it to compare changed code with its tests, identify untested branches, inspect test coverage gaps, and report the repository’s state before and after the review.
Why use it?
It finds missing test cases, unrealistic fixtures, and problematic mocks without changing the repository or its tests.

Agent for Claude Code

Written for Claude Code: installed under .claude/.

This is go-to-k/cdkd's own configuration. It tells Claude Code how to work on cdkd itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything cdkd configures →

View source ↗ go-to-k/cdkd
Reuse

Borrowing it

Nothing to install: this file belongs to go-to-k/cdkd. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/go-to-k/cdkd/main/.claude/agents/pr-test-reviewer.md
Clone the repo
git clone --depth 1 https://github.com/go-to-k/cdkd

Made for: Claude Code.

Wrote 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.

agentmods badge for pr-test-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/go-to-k/cdkd/pr-test-reviewer/github.svg)](https://agentmods.dev/agents/go-to-k/cdkd/pr-test-reviewer)
Your own site
<a href="https://agentmods.dev/agents/go-to-k/cdkd/pr-test-reviewer"><img src="https://agentmods.dev/badge/agents/go-to-k/cdkd/pr-test-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pr-test-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/go-to-k/cdkd/pr-test-reviewer"><img src="https://agentmods.dev/badge/agents/go-to-k/cdkd/pr-test-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 34 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 706 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00034 $0.00706
Opus 5.5 $0.00014 $0.00282
Sonnet 5.5 $0.00007 $0.00141
Haiku 4.5 $0.00003 $0.00071

Measured 1mo ago against content hash b46ebb4aae4f, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pr-test-reviewer scanned grade A with 1 finding 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 1mo 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

- **Mock calling-convention mismatches**: `child_process.execFile` mocked for only the 3-arg form when production calls the 4-arg form (or vice versa); a `vi.mock` factory referencing a module-scope variable that hoistin
.claude/agents/pr-test-reviewer.md · 50 lines

How it starts

The opening of the file, as written. The whole thing — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.

PR Test Adequacy Reviewer

You verify the test suite actually covers the new behavior. The caller provides a PR number.

Inputs you read

  1. PR test files — gh pr view <N> --json files -q '.files[].path' | grep -E "^tests/".
  2. Test contents — git fetch origin <branch> then git show origin/<branch>:tests/<path>. (Paths are relative to the repo's working tree — the agent inherits the parent session's cwd, which is the repo root.)
  3. Implementation files to identify untested branches.

Never run a WRITING git verb — anywhere, including in a copy. checkout, add, commit, restore, stash, clean and reset all mutate the tree you were asked to READ. A copy is not an escape: a linked worktree's .git is a FILE holding gitdir: <repo>/.git/worktrees/<name>, which cp -R carries, so a git add -A inside the copy stages into the REAL worktree's index. Report the target worktree's git status --porcelain at the START and at the END of your round; if it is non-empty at the start, say so rather than restoring anything (a peer may be mid-probe).

Review focus

For each meaningful new behavior in the implementation, find a corresponding test or flag the gap. Specifically watch for:

  • Branches with no test: every if / switch arm in new code; failure paths of external calls.
  • Mocks that pass for the wrong reason: e.g. vi.mock(...) returning {} so the production code returns undefined and "passes"; mocks that handle a single call when production code makes multiple; expect(x).toBe(true) against an unconditional return.
  • Fixture data that doesn't match real-world output: e.g. a CDK Code.ImageUri as a flat string when CDK actually emits {Fn::Sub: ...}.
  • Tests that call the function but never assert behavior: await fn() followed by no expect.
  • Mock calling-convention mismatches: child_process.execFile mocked for only the 3-arg form when production calls the 4-arg form (or vice versa); a vi.mock factory referencing a module-scope variable that hoisting leaves undefined.

Read the full file on GitHub · 50 lines

Changes

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.

  1. 1mo ago Changed · -2 lines b46ebb4aae4f
  2. 2mo ago First seen · 52 lines · 34 tokens per session scan A 37d26baba0f3

Subscribe to this mod's changes

pr-test-reviewer is an agent published in the GitHub repository go-to-k/cdkd (156 stars, last pushed today), licensed Apache-2.0. It adds 34 tokens to every session and 706 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

ai-hygiene-auditor

Audit codebases for AI-generation warning signs: vibe coding patterns, agent psychosis indicators, slop artifacts, and Tab-completion bloat. Specialized complement to bloat-auditor.

athola/claude-night-market · 48 tokens

sap-test-plan-reviewer

Adversarial review of a test-case plan produced by design-cases. READS the actual ABAP source snapshot (plus findings.md, flow.md, units.md, and the TC-.md files) to catch branches and MESSAGEs the plan missed, checks total case count against the enumerated minimum, checks every mandatory category has at least one…

marcellourbani/vscode_abap_remote_fs · 161 tokens

edge-case-explorer

Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…

testdouble/han · 135 tokens

ring:qa

Senior QA Analyst for financial systems. Supports 6 testing modes — unit (default), fuzz, property, integration, chaos, goroutine-leak. Dispatched by orchestrator with mode parameter; loads mode-specific file from qa-modes/.

LerianStudio/ring · 52 tokens

Smart Exclude

Picks folders a SAST run doesn't need to scan (test directories, fixtures, docs, generated code, vendored deps) so the scan skips them.

agentgg-dev/agentgg · 36 tokens

verification-subagent

Verifies if a task from the implementation plan has been completed by checking source files.

closedloop-ai/claude-plugins · 21 tokens