paper-review — typed, source-traced scientific review
Normative authority:
docs/SCIPAPER_STANDARD.md./sci-paper:papersupplies writing guidance; field dossiers, baselines and learned models supply evidence. None defines an independent paper verdict. Funding proposals are not papers: review them under the/sci-paper:proposal-polishregister (standard §7) — the L0 policy and §6 invariants carry over, the significance-trimming rules of paper mode do not.
本 skill 不是快速 lint。它完整读取论文与源材料,逐项验证科学声明,并把结果写成
sci-paper.feedback.v1 finding。审查循环是:
measure → type → rank → edit → re-measure → disposition
终点是 disposition-complete review state,不是“0 个审美意见”或通用 PASS。
0. Non-negotiable rules
- 当轮重新取证。 数字、公式、引用、图表、时间和版本必须在本轮从源文件、 DOI/arXiv、数据或脚本输出重新读取。记忆和旧报告只能帮助定位,不能证明事实。
- grep 只定位。 每个命中或未命中都要通过上下文 Read、替代拼写和必要的全文 检查确认;不能把 grep 当作语义证据。
- 禁止猜测。 无法验证时写明
unmeasured、NEEDS SOURCE或NEEDS PHYSICAL ACCESS,不能制造近似答案。 - 每个数值都有 provenance。 合法来源是:具体数据/脚本输出、具体 DOI/arXiv
的表/图/公式,或由本文已编号公式直接算得。缺失来源是
integrity_blocker。 - 图表看实际内容。 每个 figure 必须查看实际 PDF/PNG;每个 table 必须与上游
数据逐 cell 对位。caption、正文和制品矛盾是
integrity_blocker。 - 科学优先。 数学、物理、统计、数据或引用错误不能靠 softening、disclaimer、 “schematic” 标签或风格改写掩盖。修复根因。
- 推导三重独立验证。 每个 displayed derivation、关键物理链和数值结论都执行 M.pass-1/2/3;任一命中后修复并重跑全部三 pass。
- 后果类别不能混用。
integrity_blocker: 科学、来源、引用、构建或必需制品错误;不可由风格偏好豁免。l0_target: Tier A、em-dash、同 section 同 Tier B 词的第 2 次及以后。advisory: editorial、narrative、结构、corpus distance、learned field-similarity。
- 缺失测量不等于 0。 所有 axes 显式标
measured、degraded、unmeasured或not_applicable。 - 用户保留主观裁决权。 strong advisory 可以
acted、accepted、rejected_as_false_positive或带理由pending。普通 advisory 可以保留,但必须报告。
1. Preparation
每轮均重新执行:
- Read
docs/SCIPAPER_STANDARD.md、/sci-paper:paper和当前 SKILL.md。 - 解析 field:单 profile 可自动选;多个 profile 必须
--field;无 profile 时继续 model-free 审查并标相关 axesunmeasured。 - 从头到尾 Read 论文;分块也必须覆盖全文。
- Read bibliography、项目事实源、数据/结果索引、生成脚本和相关 companion 当前版本。
- 建立五张清单:
- claims:claim、scope、stance、evidence relation、位置;
- numbers:值、单位、位置、source trace、核验状态;
- equations:定义、量纲、假设、边界、实现位置;
- figures/tables:制品、caption claims、生成脚本、上游数据;
- interfaces:论文符号 ↔ code variable ↔ data column。
- 对 LaTeX 论文执行项目规定的完整 build;记录 errors、undefined refs、duplicate
labels、missing assets 和 warnings。项目若使用其他 build system,执行其权威命令。
6b. 长度基线快照(标准 §5.3):首次 edit 前把目标文件复制到
<scratch>/length-baseline.tex(或记下干净的 git ref)。没有诚实的 基线,收尾的 length gate 无从执行。 - 运行共享 de-AI report:
python tools/ai_ism_lint.py <file> --field <field> \
--structure --distribution --document-structure --oracle --voice \
--format json --output <scratch>/paper-review-feedback.json
解释 exit status:0 = 无 L0 target,advisories 可存在;1 = 有 L0 target;2 = 输入、 配置或执行失败。不得从打印文本反解析 JSON。
同轮补充 claim-anchoring 质量带(写作质量轴,非 AI 判别轴——EVALUATION.md §9.6 记录了被证伪的假设;发现只作为"主张缺锚"质量问题处理):
python tools/deai_anchoring.py <file> --field <field>
Cooperative-layer tools (opt-in; each is honestly unmeasured without the
author's own material, never an AI verdict). When the author supplies an AI-draft
ancestor, report which spans are still the AI draft; when they point at their own
prior papers, report whether this draft is under-varied against their own baseline
(a confound-free same-author reference — EVALUATION.md §9.9):
python tools/deai_provenance.py <file> --ai-ancestor <earlier-draft> # or --git-ai-ref <commit>
python tools/deai_personal.py <file> --prior-papers-dir <author-own-papers>
2. A–R review dimensions
每个 finding 必须给出:kind、layer、rule、scope/location、当前证据、source
trace、measurement status、priority、recommended action、disposition。确认某条 critique
存在,不自动决定它是 blocker;后果类别单独判断。
组合规则:一个维度要么调用测量原件,要么自己拥有内容——绝不复述原件已有的
检查项。 测量原件为 /sci-paper:physics、/sci-paper:logic、/sci-paper:mainline、
/sci-paper:figure-review、/sci-paper:de-ai --audit-only;它们只产 finding。修复
动作路由到动作原件 /sci-paper:condense 与 /sci-paper:de-ai Pass 3。本 skill
自身负责合并、排序与 disposition。
A. Mathematics
量纲与代数再推导调用 /sci-paper:physics(P1、P5),不在此复述。本维度自己
拥有的是数学记账:
- 所有
\eqref{}、labels 和符号定义闭合;同一符号不承担两个含义。 - 定义在首次使用前出现;近似条件、边界和适用域被写出来而不是默认。
- 数学错误、未声明的必要假设或结论无法推出均为
integrity_blocker。
B. Physics
第一原则核查(守恒、对称、宇称、渐近、量纲)调用 /sci-paper:physics,不在此
复述。本维度自己拥有的是论文与实现之间的物理一致性:
- 核心物理量、算子、滤波器、信号/噪声模式和 sign convention 与代码一致。
- 区分相关与因果;因果声明要有机制或设计支持。
- 实现与论文的物理矛盾、适用域矛盾或 claim/evidence 冲突为
integrity_blocker。
C. Logic and statistics
本维度委派 /sci-paper:logic——claim graph(循环论证、断链、偷换条件、充分/
必要条件、未声明假设)、统计方法学(样本、split、CV/grouping、泄漏防护、metric、
uncertainty、多重比较、prior)与声明-证据纪律(动词强度不超过证据强度)都由
该 skill 拥有,本维度不复述其检查项。
单独运行 paper-review 时在本维度内联执行该 protocol;--orchestrated 时标
SKIPPED_FOR_ORCHESTRATOR,由父级独立启动 logic。其 finding 并入本轮排序与 disposition。
D. Language and de-AI
- 术语、缩写、时态、句法、信息密度和段间连接支持准确阅读。
- Tier A、em-dash、Tier B cap 由共享 linter产生
l0_target。 - announced enumeration、parallel-modal runs、setup/list/wrap-up symmetry、重复段落/章节
几何、burstiness、UID、document shape、learned field-similarity、-ing 分词尾巴与
阐释式冒号(linter
ing-tail/colon-elaboration)是 advisory。 - 词汇层两条证据来自语料而非词表:
register-zero:<term>(全文逐词零命中审计, strong 除非是已证实词干的机械派生)与collocation-novel:<section>(一句中相邻 常用词对在语料里从未同现的比例,如physical cells)。零命中 strong 必须走 de-ai §4.2 的三种 disposition 之一(本文定义 / 首次引入并引用 / 换成领域词)。 deai_structure的 auxiliary 家族(paper-as-agent 主语、wh-cleft 开头、三词以上 且含两个连字符复合的修饰堆)只命名句子,不进 template score;命中是 advisory。- learned signals 只表示 field-similarity/triage,不证明作者身份;没有 calibrated
operating point 时必须
degraded。 - 结构 tell 审计(每轮必跑;
/sci-paper:de-ai--audit-only模式,其 Pass 2): 对全文执行 humanizer Layers 1--2 结构清单——2.11 长句堆叠(约 30 词以上、 3 层以上从句链或双层括号嵌套)、negative parallelism("X, not Y" 模板密度)、 elegant variation(同一对象换名)、rule-of-three padding、公式化开场白、 connective 连排。结构命中为 advisory(同类超密度升 strong advisory);该 skill 的 Layer-4 claim--evidence 命中并入上方 §C 纪律(integrity_blocker)。其 Corpus overrides 优先于上游词表:landscape / demonstrate / significantly 不做词表级标记,只走证据条件。 - 修复 de-AI finding 时遵守
/sci-paper:paper的 Preserve List:不得把证据绑定的 hedging 改强,不得为避词改动数字、引用或 stance——制造 over-claim 的"修复" 本身构成 claim-evidence defect。 - 不能要求所有结构 advisory 归零。strong advisory 要 disposition,普通 residual 要报告。
E. Document structure and narrative spine
叙事主线协议委派 /sci-paper:mainline——purpose record、contribution graph、
cold reader 七问与它们的后果分级都由该 skill 拥有,本维度不复述。
本维度自己拥有的是章节层面的编排:依赖顺序、section function、abstract coverage、intro promise、results/discussion/conclusion closure、图表首次引用位置。
单独运行 paper-review 时在本维度内联执行 mainline protocol;--orchestrated 时标
SKIPPED_FOR_ORCHESTRATOR,由父级独立启动 mainline。
F. Citation existence and relevance
- 每个 bibliography item 的作者、年份、标题和唯一标识从 DOI/arXiv/出版页核验。机械半边由
python tools/verify_references.py <bib> --tex <target>完成(CrossRef / DataCite / arXiv 可解析性,第一作者、年份、标题、期刊、卷页比对,\citekey 与条目互查);--orchestrated时读父级给出的报告。相关性仍需逐条读原文。 - 每个 citation 在当前句中确实支持所述 claim;查不到则标明访问缺口。
- fabricated、misused 或 claim-critical unverified citation 是
integrity_blocker。 - 边缘但可能更好的引用通常是 advisory,不自动阻塞。
G. Data, results, figures and tables
- 每个数字定位到 source;当轮重算能重算的结果。
- abstract、正文、table、caption、figure、conclusion 同名数字与单位一致。
- table 逐 cell 与上游数据对位。
- figure 制品本身的检查调用
/sci-paper:figure-review(150 DPI 编译页上的曲线、 点、误差棒、轴、单位、legend、caption 与画布平衡),不在此复述。本维度只负责 数字与 caption 声明的溯源与一致性。 - baseline 比较使用相同 protocol;uncertainty 的定义与样本量明确。
- mismatch、stale result、missing required artifact 或不可复现 claim 为
integrity_blocker。
H. Interfaces
- 论文公式 ↔ 实现函数、符号 ↔ code variable ↔ data column、pipeline 叙述 ↔ 执行顺序 逐项映射。
- 因子、单位、cut、mask、preprocessing、randomization 和 aggregation 不得漂移。
- 接口矛盾为
integrity_blocker。
I. Redundancy
- 先跑
python tools/condense_map.py <file> --format json:六类可删条目 (restatement / zero-gain / dead:{figure,table,label,macro,acronym} / verbose / regloss / duplicate)各带removable_words,condense_budget给出默认删减目标。 人工只补工具看不到的重复(同一 claim 换说法跨越三句以上)。 - 若冗余造成两个互相冲突的版本,则为
integrity_blocker;纯压缩与可读性通常 advisory。 - 本维度只产 finding;冗余修复的动作路由到
/sci-paper:condense执行 (one-canonical-home 去重 + length gate 收口)。
J. Reproducibility
- 数据来源、selection、preprocessing、software、hardware、seed、hyperparameters、split、 metric 和 availability 足以复现声明。
- 缺失使核心结果不可复现的必要信息是
integrity_blocker;非核心补充信息可为 advisory。
K. Modern-physics checks
本维度委派 /sci-paper:physics(P1–P8:量纲、渐近、对称/宇称/守恒、统计与
信息论前提、代数再推导、数值溯源、基础引用、编译完整性)。清单只有那一份,
本维度不复述。
- de-AI review 不得覆盖物理判断。
- 不适用项由 physics 标
not_applicable,不能虚构检查结果。 - 隔离冷读模式见 §5。
L. Systemic consistency
- 同一符号、定义、常数、样本规模、split、cut 和假设跨章节一致。
- introduced concepts 被使用;used concepts 已定义;forward references 兑现。
- method → result → discussion → conclusion 和 abstract → intro → conclusion 闭环。
- companion claims 从当前版本重新核验。
- 跨章节矛盾或未兑现的核心 claim 是
integrity_blocker。
M. Adversarial verification
M.1 — Three-pass derivation verification. 对每个关键推导块和数值结论独立执行:
- pass-1: 量纲、代数、近似、边界、数值复算。
- pass-2: 以对手 reviewer 视角提出最强的具体反驳,并用当前证据回答。
- pass-3: 守恒、对称、渐近、概率与统计前提。
规则:
- 三 pass 不共享“已经 OK”的结论;都从源重新开始。
- 任一命中 → 修复 → 三 pass 全部重跑。
- 只有三 pass 均无未解决 scientific issue 才标
VERIFIED;否则UNDER_SCRUTINY,并产生integrity_blocker。 - 报告保留每个 pass 的方法和证据,不允许只写“checked”。
M.2 — 12-framing radial escalation. 当某 claim / 推导 / 数值三 pass 后仍可疑, 或需要 checklist 之外的开放式批判时,对该节点做辐射式 critique 升级:
- 12 个 framing 各产 ≥ 1 条 critique:first-principles 剥假设、inversion 反演、 cross-disciplinary reviewer、adversarial red-team、constraint relax/tighten、 scale extrapolation、substitution/ablation、need-question 六问、contrarian 共识可错、failure-driven、asymmetric-payoff fatal、meta 自审。
- 每条 critique 完整溯源:paper_position(file:line + 当轮 Read 的引用片段)、 evidence 论证链、全文 Grep+Read 找 paper_defense、CONFIRMED 时必带具体 proposed_fix。按 Severity/Specificity/Reproducibility/Fixability/fan-out (S/P/R/F/B) 评分。
- 每条裁决到 CONFIRMED / REFUTED / MARGINAL 之一——禁止 NEEDS-MORE-INFO 滞留、禁止 defer / future-work / “待确认”;缺 position+evidence+fix 的 CONFIRMED 自动降 MARGINAL。verdict 只表证据状态;consequence class 按 §C claim-evidence 影响单独赋予,CONFIRMED 的纯 editorial critique 仍是 advisory。
- M.2 在进程内执行、不 spawn 子代理;需要大宽度并行探索时移交用户级
cc-tree:attack(同一方法学的通用引擎),结论以 finding 形式回流本审查。
N. Staleness and drift
完整检查:
- 数字、叙述、公式依赖、结论、figure、table、labels、references、markup;
- source 脚本或数据变化后,下游全部同步;
- TODO/FIXME/placeholder/commented-out deprecated blocks 为 0;
- dead artifacts 删除,必要内容更新为当前真值,不堆叠旧版。
stale scientific content、冲突副本或 required artifact drift 是 integrity_blocker。
纯 dead prose 的删除建议通常是 advisory,除非造成歧义。
O. Process-artifact removal
- 先跑
python tools/deai_residue.py <file> --before <scratch>/length-baseline.tex(或--git-ref):residue-self-history:<word>(我们最初/曾经/不再……的研究旅程)、residue-edit-meta(TODO、"see previous version" 等编辑元文本)、residue-negative-label(标题或 caption 承诺正文没有的东西)与 diff 规则residue-negative-label-added。strong finding 使工具 exit 1,本轮不得收尾。 - 只保留当前科学状态;修法是把句子改写成当前状态,不是追加解释。
- 外部 published baseline 的正式 head-to-head 比较可以保留,前提是有 citation、protocol 和 numerical comparison。
- 过程叙述若使当前 method/claim 不清或引入 stale content,按 blocker;否则按 advisory。
P. Internal and draft language
- 清理 TODO、内部路径、run/version 名、debug 名、skill/tool 名、commit-message 口吻、 实验日志语言和未定义内部缩写。
- required placeholder、内部版本残留或暴露错误来源为 blocker;普通口语和 polish 为 advisory。
Q. Reference completeness and precision
- 从论文 claim 和 field 重新识别应引用的 foundational/direct prior work。
- 对每个
\cite{}比对原文实际支持范围,分类为 CORRECT、WEAK、MISUSED、UNVERIFIABLE。 - MISUSED、fabricated、遗漏导致 novelty/attribution 错误的关键文献为 blocker。
- WEAK 或边缘 missing reference 为 advisory;不要把“可能还能多引一篇”强制成 blocker。
- paywall 不等于已验证;记录 access limitation,必要时请求用户获取原文。
R. Terminology and glossary alignment
- 优先读取项目权威 glossary/FACTS/notation source;不存在则以论文 definitions 做自洽检查,
并将外部对齐标
unmeasured。 - 关键 noun phrase、acronym、symbol 首次出现定义明确,全文单义且与权威定义一致。
- semantic conflict 为 blocker;可理解但不一致的 alias 通常 advisory。
3. Cross-validation matrix
必须完成四类对位:
- architecture in paper ↔ code/config;
- numerical claim ↔ current data/output;
- formula ↔ implementation, including corner cases;
- pipeline narrative ↔ execution order。
每个结论写 source trace,不能用“看起来一致”。
4. Fix and re-measure loop
默认修复,--no-fix 仅输出报告。
每轮:
- 按 unified priority 排序 findings;科学 blockers 先于 L0,L0 先于 advisories。
- 对每个 blocker 修根因;对每个 L0 做最小有效修改。修复遵守标准 §5.3 长度纪律:默认删减或精简,被修段落净增长必须有科学必要性理由, 报告给出每段字数差。解释性补丁(对被标记文本追加说明而非重写)是缺陷。
- 对 strong advisory:行动、接受、验证为 false positive,或带原因 pending。
- ordinary advisory 不要求消失;保留并报告即可。
- 每个 edit 后重新 Read 相关上下文。
- 改公式/数字/物理链后重跑 M 三 pass;改 figure/table 后重新查看制品与来源; 改 citation 后重新读原文;改 prose 后重新跑 shared linter。
- 重跑权威 build 和所有受影响测试/脚本。
- 收尾前跑 length gate(标准 §5.3 机械执行):
python tools/length_gate.py <file> --before <scratch>/length-baseline.tex(或--git-ref <ref>)。exit 1 = 存在无理由净增长——精简回预算内, 或用--allow "<section>=<理由>"记录作者批准的理由后重跑至 exit 0。length-growthfinding 未 disposition 时循环不得收尾。本轮若执行了 condense,加--require-shrink <condense_budget.default_target_words>: 删减未达目标产生 stronglength-shrink-short且 exit 1。 - 收尾前跑 residue diff:
python tools/deai_residue.py <file> --before <scratch>/length-baseline.tex;exit 1(strong residue)时循环不得收尾。
伪代码:
for iter in 1..max_iter:
report = full_A_to_R_review_from_current_sources()
if no integrity_blocker \
and no l0_target \
and no UNDER_SCRUTINY derivation \
and every strong advisory has a disposition:
stop with DISPOSITION_COMPLETE
if no_fix:
stop with REVIEW_ONLY
apply_ranked_root_cause_fixes(report)
re_measure_affected_axes()
if budget exhausted:
return BREAK_WITH_USER_DECISION with unresolved findings
不得自动增加 --max-iter。预算耗尽不是 paper failure verdict,而是 review workflow
尚未完成;把 pending blockers、L0 和 strong advisories交给用户决定下一步。
5. Isolated physics verification(隔离冷读模式)
单独运行 paper-review 时,达到进程内 disposition-complete 状态后,默认由主代理启动
isolated worktree agent,重新读取 /sci-paper:physics skill 并 cold-read 目标论文。
它不能继承当前审查的“已经验证”结论——这个隔离本身就是该模式的全部价值,
检查清单在 physics 里只有一份。
--skip-final-physics: 仅用户显式选择时跳过,报告unmeasured/SKIPPED_BY_USER。--orchestrated: 仅供 final-review 等父 orchestrator 避免 nested agent。physics、 mainline、logic 三个测量原件改由父级在同级独立启动;本 skill 对应维度报告SKIPPED_FOR_ORCHESTRATOR。- isolated review 产生的 critique 先判断 evidentiary verdict,再单独赋 consequence class。 CONFIRMED editorial critique 不自动成为 blocker。
- 新 blocker/L0/strong advisory 回注主循环;agent failure 必须显式报告,不能伪装通过。
6. Report contract
# Paper Review — Typed Feedback Report
Target: <file> | Iterations: K | Field: <field or none>
Workflow state: DISPOSITION_COMPLETE | REVIEW_ONLY | BREAK_WITH_USER_DECISION | EXECUTION_FAILURE
## Measurement state
| axis | status | provenance / limitation |
## Summary
- integrity_blocker: total / resolved / pending
- l0_target: total / resolved / pending
- strong advisory: acted / accepted / false-positive / pending
- ordinary advisory: total / reported
- M derivations: VERIFIED / UNDER_SCRUTINY
- build: measured status and result
- length budget (§5.3): gate exit / total words before -> after / justified sections with reasons
- isolated physics: measured / unmeasured / orchestrator-owned / failed
## Ranked findings
| id | kind | layer | rule | location | evidence | source trace | action | disposition |
## A–R coverage
For every dimension: measurement status, methods used, and finding IDs.
Do not print PASS/FAIL rows.
## Numerical anchors
| quantity | paper claim | source | verification |
## M record
| derivation | pass-1 evidence | pass-2 objections/answers | pass-3 invariants | M.2 escalations (framing/verdict) | status |
## Residual feedback
- pending strong advisories with reasons
- ordinary advisories
- degraded/unmeasured axes
- author decisions required
The human-readable report and JSON must come from the same structured findings. Totals must not change when detail is truncated.
7. Stopping semantics
Review may stop as disposition-complete only when:
- all integrity blockers are resolved or verified false positives;
- applicable L0 targets are zero;
- all critical derivations are VERIFIED;
- required build and artifacts are valid;
- the length gate (standard §5.3) exits 0 against the loop's pre-edit baseline, every recorded growth justification included in the report;
- every strong advisory has an explicit disposition or a stated pending reason;
- ordinary advisories and unavailable axes are reported.
This does not assert that the paper is universally perfect, human-authored, accepted by a journal, or free of subjective editorial alternatives.
8. Anti-patterns
- Declaring “grep found nothing, therefore correct”.
- Reusing numbers or citations from memory.
- Looking only at captions instead of figures.
- Softening a wrong claim instead of correcting its source, math, data or scope.
- Calling a learned score proof of authorship.
- Treating a missing baseline as zero findings.
- Requiring every yellow/editorial suggestion to disappear.
- Converting every confirmed critique into a blocker.
- Demanding exactly one narrative thread when multiple related contributions are legitimate.
- Calling advisory-only exit 0 a scientific or submission PASS.
- Skipping M pass-2/pass-3 because pass-1 looked correct.
- Hiding unresolved items after iteration budget exhaustion.
- Starting a nested sub-agent when
--orchestrateddelegates a primitive to the parent. - Restating a measurement primitive's checklist inside a dimension instead of calling it.