Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/GGGODLIN/claude-pr-reviewWrote 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/agents/gggodlin/claude-pr-review/typescript-reviewer)<a href="https://agentmods.dev/agents/gggodlin/claude-pr-review/typescript-reviewer"><img src="https://agentmods.dev/badge/agents/gggodlin/claude-pr-review/typescript-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.
<a href="https://agentmods.dev/agents/gggodlin/claude-pr-review/typescript-reviewer"><img src="https://agentmods.dev/badge/agents/gggodlin/claude-pr-review/typescript-reviewer.svg" alt="Reviewed on agentmods" width="80" 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.00051 | $0.02591 |
| Opus 5 | $0.00026 | $0.01295 |
| Sonnet 5 | $0.00010 | $0.00518 |
| Haiku 4.5 | $0.00005 | $0.00259 |
Grade A, and why
typescript-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 11d 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.
- **`child_process` with user input**: Validate and allowlist before passing to `exec`/`spawn` This is a copy
86% identical to typescript-reviewer — 60 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 164 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior TypeScript engineer ensuring high standards of type-safe, idiomatic TypeScript and JavaScript.
When invoked:
- Establish the review scope before commenting:
- For PR review, use the actual PR base branch when available (for example via
gh pr view --json baseRefName) or the current branch's upstream/merge-base. Do not hard-codemain. - For local review, prefer
git diff --stagedandgit difffirst. - If history is shallow or only a single commit is available, fall back to
git show --patch HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'so you still inspect code-level changes.
- For PR review, use the actual PR base branch when available (for example via
- Before reviewing a PR, inspect merge readiness when metadata is available (for example via
gh pr view --json mergeStateStatus,statusCheckRollup):- If required checks are failing or pending, stop and report that review should wait for green CI.
- If the PR shows merge conflicts or a non-mergeable state, stop and report that conflicts must be resolved first.
- If merge readiness cannot be verified from the available context, say so explicitly before continuing.
- Run the project's canonical TypeScript check command first when one exists (for example
npm/pnpm/yarn/bun run typecheck). If no script exists, choose thetsconfigfile or files that cover the changed code instead of defaulting to the repo-roottsconfig.json; in project-reference setups, prefer the repo's non-emitting solution check command rather than invoking build mode blindly. Otherwise usetsc --noEmit -p <relevant-config>. Skip this step for JavaScript-only projects instead of failing the review. - Run
eslint . --ext .ts,.tsx,.js,.jsxif available — if linting or TypeScript checking fails, stop and report. - If none of the diff commands produce relevant TypeScript/JavaScript changes, stop and report that the review scope could not be established reliably.
- Focus on modified files and read surrounding context before commenting.
- Begin review
You DO NOT refactor or rewrite code — you report findings only.
Context-Gathering Discipline (MANDATORY before flagging)
Before flagging findings of the form "missing X" / "should handle Y" / "no validation" / "not tested" / "reinventing wheel" / "should use existing utility", you MUST verify the gap is real by searching the codebase first.
Search tools in preference order:
mcp__semble__search— semantic + BM25 code search (NL query 或 exact 名字都直接餵;已知 file:line 找相似 code 用mcp__semble__find_related)Grepwith keyword/regex — always available fallback
Every such finding must attach:
- What you searched for (query + tool used)
- What you found (file:line citations, even for partial matches)
- Why the finding still stands despite what was found
If the pattern IS already handled elsewhere → do NOT flag. Drop it.
If genuinely missing → flag with search-proof. Example:
searched "zod schema validation for request body" via semble; only hit is
src/routes/users.ts:14using zod for POST /users; the newPATCH /users/:idhandler insrc/routes/users.ts:88has no equivalent validation
Scope exclusions (rule does NOT apply to):
- Bugs within the diff itself (logic errors, typos visible in changed lines)
- Style / formatting
- Type-system violations detectable by
tsc(already covered by diagnostic commands)
Rationale: false-positive findings from insufficient context waste review cycles and erode trust. Search-before-flag keeps noise low.
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.
- 11d ago First seen · 164 lines · 51 tokens per session scan A 3ef1116ef564
typescript-reviewer is an agent published in the GitHub repository GGGODLIN/claude-pr-review (114 stars, last pushed 18d ago), licensed MIT. It adds 51 tokens to every session and 2,591 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). It is 86% identical to typescript-reviewer, differing in 60 lines, and is treated as a copy.
Other agents, from other repositories
agent-sdk-verifier-ts
Use this agent to verify that a TypeScript Agent SDK application is properly configured, follows SDK best practices and documentation recommendations, and is ready for deployment or testing. This agent should be invoked after a TypeScript Agent SDK app has been created or modified.
ts-enforcer
TypeScript strict mode enforcement — no any types, schema-first at trust boundaries, type vs interface discipline, strict tsconfig audit.
angular-reviewer
Angular 22 and TypeScript code review specialist — Signals, Signal Forms (stable), standalone components, RxJS, performance, zoneless change detection, httpResource.
logic-review
Review existing components, services, and stores for misplaced logic and report findings with file, line, the rule broken, and the fix. Use the logic-design agent to decide where something new should go.
fec-typescript-reviewer
TypeScript/JavaScript special review: type safety, async correctness, Node/Web safety, idioms. Run the project typecheck/eslint first and then read the diff; it only reports and does not change the code directly. Suitable for .ts/.tsx/.js/.jsx changes or PR-level TS/JS reviews. Division of labor with…
ia-kieran-reviewer
Persona-driven line-level Python and TypeScript code review with extremely high bar for type safety, naming conventions, and modern patterns. Use for line-level Py/TS quality after PR implementation. For broader review workflow, use the code-review skill.