Skip to content

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

RuleCheck ItemSource NatureCheck Method
R1Author/supervisor fields (\author, supervisor= and other template macros)Verbatim university noticescript (AUTO replace)
R1Nonempty acknowledgment chapter/environmentVerbatim university noticescript (AUTO replace)
R1Full-text name scan (requires --author/--supervisor)Verbatim university noticescript (TODO + [LLM])
R2Achievement entry contains names/title/journal pagesVerbatim university noticescript (TODO + [LLM])
R3Declaration/authorization, cover fields, By/Supervisor line, fund number, self-identificationCommon practice; follow university noticescript (INFO note)

Primary Command

bash
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-run prints the plan with zero disk writes; --suffix customizes the copy suffix (default _blind); overwriting an existing copy requires --force (exit code 3).

Generation Semantics (--generate)

  1. Run --check internally and classify findings as AUTO (field values, acknowledgment body) or TODO (R2 entries, body name sentences).
  2. Affected file set = source files containing an AUTO/TODO finding union the entry file. Write each affected file as <stem>_blind.tex in the same directory. In copies, redirect \input/\include that point to affected files to their _blind copies. Do not copy or redirect unaffected files.
  3. 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.
  4. 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.
  5. 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)

  1. check: run the Primary Command; add --author/--supervisor for a full-text scan when names are available.
  2. generate: first show the user a plan with --generate --dry-run; after confirmation, remove --dry-run and generate copies.
  3. 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. Handle TODO-BLIND(R1) name sentences similarly with a generic rewrite suggestion.
  4. User confirmation: write confirmed diff suggestions into _blind copies only, never originals.
  5. 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):

latex
% 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):

latex
\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 --check with name parameters, show and confirm the --generate --dry-run plan, 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-check module. 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/conclusion modules. 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.

Released under the MIT License.