Blind-Review Module Reference
Purpose: perform personal-information redaction checks and generate blind-review tex copies before anonymous review. The script locates leaks and writes only new *_blind files, leaving original bytes unchanged. Mechanically safe items are replaced automatically; achievement entries and personal names in body sentences are not rewritten. The script inserts TODO comments only, the agent provides [LLM] rewrite suggestions, and changes enter the copy only after user confirmation.
Rule Set
R1/R2 are the verbatim university blind-review notice (recorded without rewriting and mirrored in the “盲审” section of templates/yanshan.md):
- R1: hide author and supervisor names, acknowledgments, and similar information;
- R2: in “Achievements During Degree Study,” delete names, achievement titles, and journal page numbers; retain only the author's signing order, journal name, and year. Example:
[1]第一作者,机械工程学报,2024.
R3 covers extended redaction points (common practice; follow the university's blind-review notice, not verbatim university rules and not to be confused with R1/R2):
- signature pages for originality declarations / authorization statements;
- personal fields on cover/title pages (author, supervisor, student number, etc., often generated by template macros);
- By / Supervisor / Assistant Supervisor lines on the English title page;
- funding project numbers that can indirectly reveal the research group;
- self-identifying body text, such as “the author works in the XXX research group.”
Blind-Review Redaction Checklist
| Rule | Check Item | Source Nature | Check Method |
|---|---|---|---|
| R1 | Author/supervisor fields (\author, supervisor= and other template macros) | Verbatim university notice | script (AUTO replace) |
| R1 | Nonempty acknowledgment chapter/environment | Verbatim university notice | script (AUTO replace) |
| R1 | Full-text name scan (requires --author/--supervisor) | Verbatim university notice | script (TODO + [LLM]) |
| R2 | Achievement entry contains names/title/journal pages | Verbatim university notice | script (TODO + [LLM]) |
| R3 | Declaration/authorization, cover fields, By/Supervisor line, fund number, self-identification | Common practice; follow university notice | script (INFO note) |
Primary Command
uv run python $SKILL_DIR/scripts/blind_review.py main.tex --check--check: locate leaks and output findings (default action; exit code 1 when HIGH exists).--author 姓名/--supervisor 姓名: when provided, scan visible full text for the name string, including variants without spaces. A match in acknowledgments/achievements is HIGH; other chapters are MEDIUM. When omitted, skip the scan and note this in the report.--generate: generate blind-review copies as described below;--dry-runprints the plan with zero disk writes;--suffixcustomizes the copy suffix (default_blind); overwriting an existing copy requires--force(exit code 3).
Generation Semantics (--generate)
- Run
--checkinternally and classify findings as AUTO (field values, acknowledgment body) or TODO (R2 entries, body name sentences). - Affected file set = source files containing an AUTO/TODO finding union the entry file. Write each affected file as
<stem>_blind.texin the same directory. In copies, redirect\input/\includethat point to affected files to their_blindcopies. Do not copy or redirect unaffected files. - AUTO replacement, in copies only: field value ->
□□□, preserving macro/braces; retain the acknowledgment title but replace the whole body with “(盲审版本,致谢内容略)”; insert% BLIND-AUTO(R1): 原内容已隐去on the preceding line of each replacement. - TODO item: retain copy content verbatim and insert
% TODO-BLIND(R2|R1): <指引>on the preceding line. Summarize all TODOs at the end of the report for the agent to provide individual diffs. - After writing, compare before/after content hashes for every source file and print an “original files unchanged” confirmation line at the end of the report.
Red lines: never modify originals. In copies, \cite/\ref/\label/math environments remain byte-identical to source. If acknowledgments contain these protected markers, automatic replacement degrades to TODO and retains the content verbatim. The script never rewrites R2 achievement entries or changes factual authorship order.
Workflow (Five Steps)
- check: run the Primary Command; add
--author/--supervisorfor a full-text scan when names are available. - generate: first show the user a plan with
--generate --dry-run; after confirmation, remove--dry-runand generate copies. - LLM rewrite of achievement entries: for each
TODO-BLIND(R2), provide a diff suggestion marked[LLM]following the verbatim R2 rule. Retain the author's signing order (“first author/second author”), journal name, and year; delete names, achievement title, and journal pages. Signing order is a fact and must not be inferred. Ask the user when an entry does not state the author's position. HandleTODO-BLIND(R1)name sentences similarly with a generic rewrite suggestion. - User confirmation: write confirmed diff suggestions into
_blindcopies only, never originals. - Recheck: for
main_blind.tex, rerun--check --author ... --supervisor ...and confirm no HIGH remains. Decide R3 items manually against the university notice one by one.
R2 Rewrite Example (Before and After)
Before (the script inserts only a TODO comment in the copy and retains the entry):
% TODO-BLIND(R2): 改写为 [n] 署名次序,期刊名称,年份(如:[1]第一作者,机械工程学报,2024)
\item 张三, 李四, 王五. 某某机构的某某研究[J]. 机械工程学报, 2024, 60(5): 100-110.After (agent [LLM] suggestion applied to the copy after user confirmation, assuming the author is first author):
\item 第一作者,机械工程学报,2024(Names/title in the example are fictional placeholders used only to demonstrate format.)
Output Contract
- Finding line:
% BLIND-REVIEW (源文件:L行号) [HIGH|MEDIUM|INFO] [P0|P1|P2] [Script]: R编号 说明. - Script location/replacement is marked
[Script]; agent rewrites of achievement entries/name sentences are marked[LLM]. State them separately and never conflate them. - Every R3 output carries “common practice; follow the university blind-review notice” and is not mixed with R1/R2.
- Generation reports must include the copy list, TODO summary, and “original files unchanged” hash confirmation line.
Common Follow-Ups
- “Generate a blind-review thesis for me” -> run
--checkwith name parameters, show and confirm the--generate --dry-runplan, then generate. Handle R2/name sentences with[LLM]suggestions in Workflow Steps 3-4. - “Our university's blind-review requirements differ” -> R1/R2 are verbatim Yanshan University notice text. Follow the other university's notice; ask the user for its original text and use the same workflow. Do not treat R3 conventions as university requirements.
- Final format compliance check -> use the
spec-checkmodule. The two complement each other: spec-check handles format compliance, blind-review handles identity redaction. - Abstract/conclusion compliance issues such as missing skeleton, empty outlook, or conclusion copying the abstract -> use the
abstract/conclusionmodules. Such issues fall under the blind-review “normative quality” dimension (about 20% weight, linked at Info level; follow the university review form), not identity redaction, and are outside this module.