proofread
Skill8 starsChanged 7 months agoApache-2.0View on GitHub
使用场景:用户对 OCR 出来的 Markdown 运行 `/collate:proofread`、说出"校对这份稿子""看看 OCR 对不对""检查字形""有没有识别错""这段繁体有没有问题""专名校对""标点校对""帮我过一遍"等。这个 skill 会判定文献类型(繁体古籍 / 民国排印 / 现代简体),加载对应的专业知识 reference,然后调用 historical-proofreader agent 输出一份**标注清单**(A 类 OCR 错 / B 类规范问题 / C 类存疑待考),不直接改原文。社科院历史学者的日常核心工作就是这一步——凡是涉及"校对"的请求都要主动触发这个 skill,不必等用户说 proofread 三个字。
26 other projects use a version of this.
Adopted by
Most recently taken up by
- pedrohcgs/claude-code-my-workflowtheir own version, first seen Nov 8, 2026
- NilsHellwig/acl-paper-skillstheir own version, first seen Nov 8, 2026
- flonat/flonat-researchtheir own version, first seen Nov 3, 2026
- obviousbread/docs-skillstheir own version, first seen Nov 1, 2026
- shuymn/skillstheir own version, first seen Nov 1, 2026
- dewil/claude-toolkittheir own version, first seen Nov 1, 2026
Used with
Projects with it also use humanize, deploy and 2 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
eherrerosjSkillhumanize
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive 'Signs of AI writing' guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases. Triggers on: 'humanize', 'make this sound human', 'remove AI writing', 'de-AI', 'sound more natural', 'less robotic', 'too AI-sounding', or when reviewing text that reads like AI output.
Also in 3 projects that use this
VercelSkilldeploy
Deploy applications to Vercel. Use when the user says "deploy", "deploy to Vercel", "push to production", "deploy my app", or "go live".
Also in 3 projects that use this
Microsoft AzureSkillverify
End-to-end app testing pipeline for browser-based web apps on cloud browsers via Azure Playwright Workspaces: verify the live app, author tests for working flows, heal failing tests, then re-run with video and produce one consolidated report. Three phases (app verification, test authoring, test healing) plus a scoped final sanity run; each phase emits a sub-report. Use when asked to "verify my app", "make sure my app works and has good test coverage", "do a full QA pass", "add tests where I'm missing coverage", "fix failing tests and add new ones", "smoke test before deploy", "QA my deployment", or any combined verify-and-test ask. Requires Azure CLI (`az login`) and a Playwright Workspace resource ID — bootstraps configs on first invocation. Browser-based web apps with Playwright only — not for unit/API tests, native mobile/desktop, load/perf, or full accessibility audits.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 3 projects that use this
Other versions26 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 26
- pedrohcgs/claude-code-my-workflow★ 1.7ksame name
- flonat/flonat-research★ 150same name
- maxwell2732/paper-replicate-agent-demo★ 134same name
- sonilo-ai/skills★ 117same name
- maxwell2732/my-submission-formatting-agent★ 106same name
- tance-mang/chinese-webnovel-skills★ 97same name
- JakobThumm/proofreading★ 38same name
- christopherkenny/skills★ 26same name
- AlessandroCaforio/Academic-Writing★ 17same name
- amondnet/yoonmoon★ 17same name
16 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/collate.mdcCursor rule
- chunqiuSkill
- constellatioSkill
- diff-reviewSkill
- kaozhengSkill
- mp-formatSkill
- ocr-runSkill
- paper-summarySkill
- prep-scanSkill
- prometheusSkill
- real-thesisSkill
- setupSkill
- to-docxSkill
- visual-previewSkill
- xray-paperSkill
The file
Files
校对 — 历史文献三类知识库 + 专家 Agent
Task
给 historical-proofreader agent 喂一份 OCR 产出的 Markdown,让它输出一份校对清单。用户最核心的工作(校对)就围绕这份清单展开。
你的责任是:
- 从
raw.md+prep/pages/page_*.png构建review/page_review_packets.json,把“哪一页原图对应哪一段 OCR 文本”固定下来 - 加载
prep/pages/page_*.png作为第一类证据(subagent 必须对着原图判 OCR 对错,不能只盯 Markdown 自证) - 读用户给的 Markdown
- 判断文献类型(也可以用户指定)
- 加载对应 reference 文件到上下文
- 调用
historical-proofreaderagent,传入文本 + reference +page_images_dir+page_packets_path - 用
verify_page_grounded_review.py验证这份 review 是否真的覆盖了全部页面 - 把 agent 返回的标注清单保存到工作区的
review/raw.review.md,并在_pipeline_status.json记录proofread_method: "page-grounded" - 刷新工作区 README.md,然后用
open打开 review 供用户审阅
目录约定:清单固定落在
<workspace>.ocr/review/raw.review.md,不落在工作区根目录。权威规范见插件的references/workspace-layout.md。
Process
Step 1:读输入
INPUT="<markdown-path>"
test -f "$INPUT" || { echo "文件不存在"; exit 1; }Read 这个 Markdown 前 50 行,判断文献类型(或读 meta.json 如果存在)。
同时生成 deterministic page packets:
INPUT="<markdown-path>"
OCR="$(dirname "$INPUT")"
python3 "${CLAUDE_PLUGIN_ROOT}/skills/proofread/scripts/build_page_review_packets.py" \
--workspace "$OCR"产物固定是:
<workspace>/review/page_review_packets.jsonStep 2:判定文献类型
| 提示 | 类型 | |
| 竖排标志「 | 」夹杂、繁体、无现代标点、年号纪年(乾隆、道光) | classics 繁体古籍 |
| 繁体或繁简混、有「.」等旧式标点、年份在 1912-1949、出现"民國"年号 | republican 民国排印 | |
| 纯简体、现代学术格式、年份在 1980 后、参考文献 GB/T 或 APA | modern 现代简体 |
命令行 --type=xxx 覆盖自动判断。不确定就问用户。
Step 3:加载对应 reference
根据类型读对应文件到上下文:
| 类型 | reference 路径 |
| classics | ${CLAUDE_PLUGIN_ROOT}/skills/proofread/references/traditional-classics.md |
| republican | ${CLAUDE_PLUGIN_ROOT}/skills/proofread/references/republican-era.md |
| modern | ${CLAUDE_PLUGIN_ROOT}/skills/proofread/references/modern-chinese.md |
为什么分开:古籍异体字表塞不进民国校对会浪费上下文;反之亦然。三份分别加载,agent 不被不相关知识干扰。
Step 4:调 historical-proofreader agent
用 Task / Agent 机制调起 historical-proofreader(agent 定义在 plugin 的 agents/historical-proofreader.md),传入:
任务:校对 OCR 出的历史论文 Markdown
文献类型:<type>
reference 已加载:<path>
待校对文本:<path>
page_images_dir:<workspace>/prep/pages/ # PNG 序列;subagent 必须把它当第一类证据,逐页对照原图判对错,不能只盯 Markdown
page_image_format:png # 默认 png;prep-scan 的 split_pages.py 落盘即为此格式
page_packets_path:<workspace>/review/page_review_packets.json # 必填;机械 recipe,固定每页原图与 OCR 文本的对应
low_confidence_pages:[3, 7, 12] # 从 meta.json 来;若有,这些页优先对图核查
输出要求:按 A/B/C 分类的标注清单(参见 agent 内部规范),不改原文page-grounded 硬约束:如果 prep/pages/ 不存在或未含 page_*.png,直接终止并报"校对阶段缺少原图证据",不要退化为纯文本校对。纯文本校对会把 OCR 错当"笔误存疑",让导出 gate 无法把关。
packet 硬约束:page_packets_path 是 subagent 的固定工作底稿。subagent 必须逐页处理这些 packet,并在输出 frontmatter 里写:
proofread_method: page-grounded
checked_pages: [1, 2, 3]如果 text-layer fallback 触发过结构风险,还必须再写:
structure_approved: true同时读 OCR 阶段产出的 meta.json(如果存在),把 low_confidence_pages 传给 agent 作为重点盯防提示。
读取时的防御性规则(老版本产物也要能跑):
import json
from pathlib import Path
meta = {}
# meta.json 永远在工作区根(<...>.ocr/meta.json),不在任何子目录
ocr = Path("<workspace-path>") # 通常 = dirname(INPUT)
meta_path = ocr / "meta.json"
if meta_path.is_file():
try:
meta = json.loads(meta_path.read_text(encoding="utf-8"))
except Exception:
meta = {}
# 字段缺失时的兜底:
low_conf = meta.get("low_confidence_pages") or [] # 列表,可能空
avg_conf = meta.get("avg_confidence") # 可能是 None(MinerU/百度都不直接给)
pages = meta.get("pages") or 0low_confidence_pages缺失或为空 → agent 按全文均匀盯防,不降级avg_confidence为None→ 只展示,不做阈值判断pages为 0 → 说明是旧版 meta 或解析失败,不要阻塞流程
Step 5:保存报告并验证
推导工作区根,把 agent 输出写到 <workspace>/review/raw.review.md,并在 _pipeline_status.json 写入 proofread_method: "page-grounded" 作为 fidelity gate 识别证据:
INPUT="<input-markdown-path>"
# INPUT 一定在 .ocr/ 根下(raw.md 或 final.md),所以 OCR 是它的父目录
OCR="$(dirname "$INPUT")"
mkdir -p "$OCR/review"
REVIEW_OUT="$OCR/review/raw.review.md"保存清单后,用 pipeline_status.write_status 附加一个 marker(保留 status/stage 不变),例如:
from pipeline_status import read_status, write_status
from pathlib import Path
ws = Path("$OCR")
payload = read_status(ws) or {}
payload["proofread_method"] = "page-grounded"
write_status(ws, payload)Bundle 4 的 fidelity gate 会检查这个字段;缺失则拒绝导出。
例:~/Downloads/论文.ocr/raw.md → ~/Downloads/论文.ocr/review/raw.review.md
为什么固定叫
raw.review.md而不是跟着输入文件命名:diff-review 默认从<workspace>/review/raw.review.md读清单,路径稳定才不会 every-skill-reinvents-path。
写完之后立刻跑 verifier:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/proofread/scripts/verify_page_grounded_review.py" \
--workspace "$OCR"只有 verifier 通过,才算这份 review 真正完成。
Step 6:刷新 README + 打开 + 报告
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/workspace_readme.py" --workspace "$OCR"
open "$REVIEW_OUT"汇报格式:
校对清单已生成。共 N 条标注:
- A 类 OCR 错:X 条(建议直接改)
- B 类规范:Y 条(按刊物要求判断)
- C 类存疑:Z 条(需核对原书)
位置:$REVIEW_OUT
已打开。
后续:
- 改完 raw.md 保存为 final.md(放在 $OCR/final.md)
- 再跑一次 proofread 复校(可选)
- 进入 diff-review 核对改动闭环
- 进入 to-docx / mp-format 产出最终稿判断规则
- 校对清单为空:意味着 OCR 质量极高,或 agent 漏扫。结合
meta.json的pages与low_confidence_pages判断。若低置信度页有值却未出现在清单,大概率是漏扫,应重跑。 - A 类超过 50 条:OCR 质量不佳,回到 prep-scan / ocr-run 重跑(换引擎或加
--aggressive)。 - reference 是知识,不是策略。策略层由 agent prompt 控制,不应通过改 reference 调节。
分轮校对
支持按类别分轮调用:
/collate:proofread raw.md --focus=A
/collate:proofread raw.md --focus=B
/collate:proofread raw.md --focus=C--focus 透传给 agent,用于仅输出指定类别条目。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

