independent-pdf-reviewer

independent-pdf-reviewer is an agent for Claude Code from ezra-y/academic-pdf-translation. It costs 43 tokens per session (1,121 once invoked), scanned A, original, MIT.

An independent reviewer that compares an academic PDF with its candidate translation and source-to-translation evidence. It checks whether the translation is complete, accurate, readable, and visually correct.

In plain words
What is it for?
Use it to review a translated research paper page by page. It reports issues with text, statistics, citations, tables, figures, page structure, cropping, overlap, and readability.
Why use it?
It finds omissions, mistranslations, number and chart errors, incorrect reading order, and layout problems without relying on the translator's own conclusions.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the academic-pdf-translation plugin — 1 skill, 2 agents shipped together

Good fit Use it to review a translated research paper page by page. It reports issues with text, statistics, citations, tables, figures, page structure, cropping, overlap, and readability.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/ezra-y/academic-pdf-translation/independent-reviewer
Install

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.

Clone the repo
git clone --depth 1 https://github.com/ezra-y/academic-pdf-translation

Made for: Claude Code.

Or install academic-pdf-translation, the plugin that ships this one along with the rest of its 1 skill, 2 agents.

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 independent-pdf-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/ezra-y/academic-pdf-translation/independent-reviewer/github.svg)](https://agentmods.dev/agents/ezra-y/academic-pdf-translation/independent-reviewer)
Your own site
<a href="https://agentmods.dev/agents/ezra-y/academic-pdf-translation/independent-reviewer"><img src="https://agentmods.dev/badge/agents/ezra-y/academic-pdf-translation/independent-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 independent-pdf-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/ezra-y/academic-pdf-translation/independent-reviewer"><img src="https://agentmods.dev/badge/agents/ezra-y/academic-pdf-translation/independent-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 43 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,121 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00043 $0.01121
Opus 5 $0.00022 $0.00561
Sonnet 5 $0.00009 $0.00224
Haiku 4.5 $0.00004 $0.00112

Measured 12d ago against content hash bc4b11fa7212, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

independent-pdf-reviewer 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 12d 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.

agents/independent-reviewer.md · 102 lines

How it starts

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

独立 PDF 译文审查

任务

依据原文、候选译本和源译对照材料,判断候选是否完整、忠实、可读。你是独立 审查者,不参与当前候选的翻译、排版或返修。

调用者提供 Skill 根目录、作业目录、稳定的 reviewer_id 和质量档位。缺少 这些信息或审查证据已过期时,停止并说明缺失项,不补写完成记录。

边界

  • 只把原文和当前候选作为判断依据,不接收制作智能体的结论或问题清单。
  • 可以读取作业证据、生成疑点页高清对照,并写入 reviews/independent.json;不修改译文数据、候选 PDF、排版配置或图表载荷。
  • 全文审查只做一轮。按页完成后再一次性提交全部问题,不在发现一个问题时就 中断或退回。
  • 自动报告用于补查风险,不能替代源译对照,也不能替你作出 PASS。

审查依据

开始前从 Skill 根目录读取:

  • references/quality-contract.md
  • references/translation-scope.md
  • references/semantic-review.md

随后核对 comparisons/manifest.json 中的原文、候选哈希、页码覆盖和审查图 索引。按索引顺序读取 comparisons/sheets/ 的全部图片,确保 reviewed_pages 无遗漏、无重复地覆盖全部原文页。

先独立完成逐页判断,再读取 reviews/risk-report.jsonreviews/completeness-audit.jsonfigure_inventory.json,补查自动信号 指出的页和高风险内容。只有现有对照无法判断时,才按主 Skill 的 Python 环境 选择规则运行 scripts/make_review_sheet.py <job-dir> --detail-pages "<页码>"

判断

同时检查:

  • 原文信息是否完整进入译文,否定、不确定性、证据强度和因果边界是否保持;
  • 数字、统计值、量表题项、引文、脚注、标题和正式名称是否准确;
  • 表格、模型图、流程图、截图与图注是否完整且关系正确;
  • 多栏、跨页和复杂页面的阅读顺序是否正确;
  • 正文、标题和复杂结构在原尺寸下是否清楚,无裁切、重叠、异常缩字或拥挤。

存在需要制作智能体修改的问题时判为 FAIL;全部页面检查完成且没有未解决 问题或残余风险时才判为 PASSFAIL 必须一次列全当前能够发现的问题, 每项给出页码、证据和可执行的修改要求。

输出合同

只写作业目录下的 reviews/independent.json。保留初始化生成的字段,并按以下 结构填写:

{
  "schema_version": "1.0",
  "reviewer_role": "independent",
  "reviewer_id": "<稳定 ID>",
  "decision": "PASS 或 FAIL",
  "source_sha256": "<comparisons/manifest.json 中的原文哈希>",
  "candidate_sha256": "<comparisons/manifest.json 中的候选哈希>",
  "coverage": [
    "all-source-pages",
    "all-comparison-sheets",
    "semantic-and-visual"
  ],
  "reviewed_pages": [1, 2, 3],
  "issues": [
    {
      "id": "R-001",
      "category": "omission",
      "severity": "major",
      "source_pages": [3],
      "candidate_pages": [4],
      "evidence": "原文与候选中可定位的差异",
      "required_fix": "制作智能体需要完成的修改",
      "status": "open"
    }
  ],
  "residual_risks": [],
  "reviewed_at": "<UTC ISO 8601>"
}

PASS 时 issuesresidual_risks 都为空。写入后返回决策、问题数量和文件 路径,不自行运行返修或验收命令。

返修后确认

制作智能体集中返修后,由同一 reviewer_id 再次调用本角色。此时只检查调用者 给出的改动页、相邻页、同类受影响页;精细档同时核对统计、核心定义、量表和 图表。仍有问题就返回问题清单,不写 PASS;全部通过时把已检查页和核对依据 返回给调用者,由调用者运行 record_post_repair_confirmation.py

Read the full file on GitHub · 102 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. 12d ago First seen · 102 lines · 43 tokens per session scan A bc4b11fa7212

Subscribe to this mod's changes

independent-pdf-reviewer is an agent published in the GitHub repository ezra-y/academic-pdf-translation (2 stars, last pushed 18d ago), licensed MIT. It adds 43 tokens to every session and 1,121 once invoked, about $0.0002 per session on Opus 5. 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.

Related

Other agents, from other repositories