Blind-Review Module Reference
Purpose: 盲审(匿名评审)送审前的个人信息隐匿检查与盲审版 tex 副本生成。 脚本定位泄露点并只写 *_blind 新文件(原文件字节不变);机械可安全项自动替换, 成果条目与正文姓名句零改写、只插 TODO 注释,由 agent 给出 [LLM] 改写建议、 用户确认后落入副本。
规则集
R1/R2 为校方盲审通知原文(逐字收录,不作改写;同步收录于 templates/yanshan.md「盲审」节):
- R1:隐去作者及导师姓名、致谢等;
- R2:"攻读学位期间取得的成果"部分,删除姓名、成果名称和期刊页码,只保留本人署名次序和期刊名称、年份。如:
[1]第一作者,机械工程学报,2024。
R3 为扩展隐匿点(常见惯例,以学校盲审通知为准,非校方通知原文,不与 R1/R2 混淆):
- 原创性声明 / 使用授权说明的签名页;
- 封面与题名页个人字段(作者、导师、学号等,多由模板宏生成);
- 英文题名页 By / Supervisor / Assistant Supervisor 行;
- 基金项目编号(可间接暴露课题组身份);
- 正文中自指身份的表述(如"作者在×××课题组")。
盲审隐匿清单
| 规则 | 检查项 | 来源性质 | 检查方式 |
|---|---|---|---|
| R1 | 作者/导师字段(\author、supervisor= 等模板宏) | 校方通知原文 | script(AUTO 替换) |
| R1 | 致谢章/致谢环境非空 | 校方通知原文 | script(AUTO 替换) |
| R1 | 全文姓名扫描(需 --author/--supervisor) | 校方通知原文 | script(TODO + [LLM]) |
| R2 | 成果条目含姓名/成果名称/期刊页码 | 校方通知原文 | script(TODO + [LLM]) |
| R3 | 声明/授权、封面字段、By/Supervisor 行、基金号、自指 | 常见惯例,以学校通知为准 | script(INFO 提示) |
Primary Command
bash
uv run python $SKILL_DIR/scripts/blind_review.py main.tex --check--check:定位泄露点,输出 findings(默认动作;存在 HIGH 时退出码 1)。--author 姓名/--supervisor 姓名:提供后对全文可见文本扫描该姓名字符串 (含去空格变体);致谢/成果章内命中 HIGH,其他章 MEDIUM。不提供时跳过并在报告中提示。--generate:生成盲审副本(详见下);--dry-run只打印计划、零写盘;--suffix自定义副本后缀(默认_blind);目标副本已存在时须--force才覆盖(退出码 3)。
生成语义(--generate)
- 内部先跑
--check,findings 分为 AUTO(字段值、致谢正文)与 TODO(R2 条目、正文姓名句)。 - 受影响文件集合 = 含 AUTO/TODO finding 的源文件 ∪ 入口文件;每个受影响文件写同目录
<stem>_blind.tex副本;副本中指向受影响文件的\input/\include同步改指_blind副本;未受影响文件不复制、引用不改。 - AUTO 替换(只发生在副本):字段值 →
□□□(保留宏与花括号结构);致谢标题保留、 正文整块替换为"(盲审版本,致谢内容略)";每处替换点上一行插% BLIND-AUTO(R1): 原内容已隐去。 - TODO 项:副本内容原样保留,只在上一行插
% TODO-BLIND(R2|R1): <指引>;报告末尾汇总 全部 TODO 供 agent 逐条给出 diff 建议。 - 写盘后对所有源文件做内容哈希前后比对,报告末尾打印"原文件未改动"确认行。
红线:原文件永不修改;\cite/\ref/\label/数学环境在副本中与原文逐字一致 (致谢中若含这些受保护标记,自动替换降级为 TODO,内容原样保留);R2 成果条目脚本零改写, 不改变署名次序等事实。
Workflow(五步)
- check:跑 Primary Command;能拿到作者/导师姓名时加
--author/--supervisor全文扫描。 - generate:先
--generate --dry-run给用户看计划,确认后去掉--dry-run生成副本。 - LLM 改写成果条目:对每条
TODO-BLIND(R2),按 R2 原文给出改写 diff 建议(标注[LLM]):保留本人署名次序(如"第一作者/第二作者")、期刊名称、年份,删除姓名、 成果名称和期刊页码。署名次序是事实,不得凭空推断——条目未标明本人位次时向用户确认。TODO-BLIND(R1)姓名句同理给出泛称化改写建议。 - 用户确认:diff 建议经用户确认后写入
_blind副本(仍不碰原文件)。 - 复查:对
main_blind.tex重跑--check --author ... --supervisor ...,确认无 HIGH 残留;R3 项人工对照学校通知逐条决定。
R2 改写示例(改写前后对照)
改写前(副本中脚本只插 TODO 注释,条目原样):
latex
% TODO-BLIND(R2): 改写为 [n] 署名次序,期刊名称,年份(如:[1]第一作者,机械工程学报,2024)
\item 张三, 李四, 王五. 某某机构的某某研究[J]. 机械工程学报, 2024, 60(5): 100-110.改写后(agent [LLM] 建议 + 用户确认落入副本;本人为第一作者时):
latex
\item 第一作者,机械工程学报,2024(示例中的姓名/题名为占位虚构,仅演示格式。)
Output Contract
- finding 行格式:
% BLIND-REVIEW (源文件:L行号) [HIGH|MEDIUM|INFO] [P0|P1|P2] [Script]: R编号 说明。 - 脚本自动定位/替换标注
[Script];agent 的成果条目与姓名句改写建议标注[LLM], 两者分开陈述,不得混淆。 - R3 输出一律带"常见惯例,以学校盲审通知为准",不与 R1/R2 混排。
- 生成模式报告必须包含副本清单、TODO 汇总与"原文件未改动"哈希确认行。
常见追问
- "帮我生成盲审版论文" → 先
--check(带姓名参数),再--generate --dry-run确认计划, 然后生成;R2/姓名句按 Workflow 第 3-4 步给[LLM]建议。 - "我们学校的盲审要求不一样" → R1/R2 是燕山大学通知原文;其他学校以其通知为准, 可让用户提供通知原文后按同一流程执行(勿把 R3 惯例当校方要求)。
- 格式合规终检 → 走
spec-check模块(两者互补:spec-check 管格式符合性, blind-review 管身份信息隐匿)。 - 摘要/结论的规范性问题(骨架缺失、展望空话、结论抄摘要等)→ 走
abstract/conclusion模块;这类问题命中盲审"规范性"维度(约 20% 权重,Info 级联动,具体口径以本校评审表为准), 与身份隐匿是两回事,不在本模块处理。