From sci-paper
用 brainstorm 的辐射状探索方法对论文做 critique tree 审查。每个 node = 一个 critique;用 12 条 framing pass(first-principles / 反演 / 跨学科 reviewer / 对手红队 / 约束变换 / 尺度外推 / 替换 / office-hours / contrarian / 失效驱动 / high-risk 致命攻击 / 元层)从多角度攻击每条 claim;每个 critique 必须完整推进至 CONFIRMED(有 file:line 证据 + 具体修复方案)/ REFUTED(有 file:line 证据证明论文已处理)/ MARGINAL(依赖解读,列入作者判断)。**严禁** "defer / NEEDS-MORE-INFO 滞留 / 因成本 / 因时间 / future work / 可能存在该问题待确认" 等推脱式不完整 verdict;递归发散直至无新颖增益;强制 cc-enslaver 七规则全程证据可追溯。与 paper-review 互补(paper-review 是预设 checklist 静态审查;本 skill 是开放式 adversarial radial 探索)。Use when 用户说 "attack tree" / "adversarial review" / "对抗审查" / "找 reviewer 会挑什么刺" / "audit this claim" / 用 paper-review 跑完仍想 open-ended 攻击关键 claim / rebuttal 准备阶段。
How this skill is triggered — by the user, by Claude, or both
Slash command
/sci-paper:paper-attack-tree <file_path> [--width N|∞] [--depth N|∞] [--rounds N|conv] [--focus <section|claim|equation>] [--field <name>] [--from-paper-review <report>] [--out <dir>] [--no-online] [--max-branches N|∞] — 指定论文 (.tex/.md),可选树宽/深度/轮次上限 / 聚焦某节或某 claim / 显式 field / 与已跑过的 paper-review 报告联合 / 输出目录 / 离线模式 / 每节点分支上限<file_path> [--width N|∞] [--depth N|∞] [--rounds N|conv] [--focus <section|claim|equation>] [--field <name>] [--from-paper-review <report>] [--out <dir>] [--no-online] [--max-branches N|∞] — 指定论文 (.tex/.md),可选树宽/深度/轮次上限 / 聚焦某节或某 claim / 显式 field / 与已跑过的 paper-review 报告联合 / 输出目录 / 离线模式 / 每节点分支上限The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **本 skill 不是 lint,不是 checklist 审查。** 它是一台**递归式的 critique 生成—溯源—验证—剪枝—再发散**机器,等价于一棵从论文向外扩张的"攻击树(attack tree)"。
本 skill 不是 lint,不是 checklist 审查。 它是一台递归式的 critique 生成—溯源—验证—剪枝—再发散机器,等价于一棵从论文向外扩张的"攻击树(attack tree)"。 每个 critique 必须经过完整溯源(file:line + 论文实际内容)才有资格存活; 每个存活 critique 必须重新做一次发散(用 12 framing pass 攻击该 critique 本身)直到无新颖增益。 每一个最深叶 critique 都必须完整裁决到 CONFIRMED / REFUTED / MARGINAL——禁止 NEEDS-MORE-INFO 滞留、禁止 defer、禁止"可能有问题待确认"。
把整棵审查想象成以论文为圆心向外扩张的径向树(与 brainstorm 同结构):
--focus <X> 时为某一节 / 某一 claim / 某一 equation)。--depth N 显式封顶)。--width N 显式封顶)。INCOMPLETE_FORBIDDEN 并触发再循环。禁止凭记忆/印象引用论文内容、文献、定理、数值、API、库特性。
每条断言必须当轮 Read 论文 / WebFetch / Grep+Read 上下文验证;无法验证 → 标 [NEEDS VERIFICATION] 并降级该 critique 评分;不得作为下游 critique 的前提。
禁止"伪 critique"——同一个攻击角度换几个词重写、不同 framing 包装但内核相同。
每个新 critique 必须能给出至少一个与父 critique 和兄弟 critique 都不同的:(a) 具体被攻击位置(file:line + 引用片段),或 (b) 不同的 falsification 路径,或 (c) 不同的修复方案。否则合并到最相近的兄弟节点并标 MERGED_INTO。
禁止跳过溯源——任何 critique 的"看起来有问题"都不算 CONFIRMED。
CONFIRMED 必要条件:(a) paper_position 字段含真实存在的 file:line + Read 验证过的引用片段;(b) proposed_fix 给出具体改动建议(不是"重新考虑此处"这种空话);(c) severity ≥ 2(cosmetic 不上 CONFIRMED)。三条缺一即 → MARGINAL 或 REFUTED。
禁止避险——不允许只生成"安全、保守、显然"的 critique。 每个 framing pass 必须至少产出 1 个 high-severity critique(如"central claim 站不住"、"数据 leakage"、"推导有循环"等致命级)并完整探索;否则该 pass 无效。
禁止伪收敛——"没什么新 critique 了"不是收敛证据。
收敛必须满足§6 的全部硬判据,且最近 2 轮分支生成中"CONFIRMED 占比 < --min-confirmed-ratio(默认 0.15)",且至少触发过§3 全部 framing pass 各 1 次。
禁止用户中断决策——本 skill 是全自动的。 遇到歧义优先选信息量最大的 critique 继续;只有当 (a) 触及不可逆操作、(b) 触及 §0.7 资源参数显式 cap、(c) 论文文件无法解析时才停下。
资源参数(默认全部不限;caps 仅在用户显式提供数值时生效):
--width N 默认 ∞ — 最终 critique 叶节点总数上限--depth N 默认 ∞ — 树深度上限--rounds N|conv 默认 conv — 发散轮次,由§6 收敛判据终止--max-branches N 默认 ∞ — 每节点单轮新增分支上限(§3 强制 12 条 framing pass 各产 ≥1 分支,下限实际为 12)WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED 标记,但所有可见叶节点必须完整。完整推进禁令(hard ban on deferred / incomplete critique leaves) —— 见§0 数据模型最后一条:
INCOMPLETE_FORBIDDEN,必须继续推进至完整:
/sci-paper:paper-attack-tree <file_path> [flags]
file_path 解析:
--focus <section|claim|equation>:root 缩窄到该单元(用 grep + Read 定位)flags(全部可选):
| flag | 默认 | 含义 |
|---|---|---|
--width N | ∞ | 最终 critique 叶节点总数上限 |
--depth N | ∞ | 树深度上限(从 root 起最大层数) |
--rounds N | conv | 发散轮次上限;conv = 不限,由§6 终止 |
--max-branches N | ∞ | 每节点单轮新增分支上限(下限 = 12 framing) |
--focus <id> | 无 | 把 root 缩窄到某 section / claim / equation;其余视为外部上下文 |
--field <name> | 见§1.1 | 与 paper-style 同名 field,用于文献先验加权 |
--from-paper-review <path> | 无 | 与已跑过的 paper-review 报告联合:已 CONFIRMED 的问题不重复,但每条要作为 critique 树的种子拓展 sub-critique |
--out <dir> | attack-tree-out/<UTCdate>__<filename-slug>/ | 树输出目录 |
--no-online | 关 | 关闭 WebSearch / WebFetch;只用本地 + 已读引用做文献核对 |
--min-frameworks N | 12 | 每节点至少跑过的 framing pass 数(下限 = §3.A–§3.L 全 12 条) |
--min-confirmed-ratio R | 0.15 | 收敛要求的"近 2 轮 CONFIRMED 占比"下限(详§6) |
§1.1 field 选择:与 paper-style 行为一致 —
解析 style-profile/ 下子目录:1 个 → 自动选;多个 → 要求 --field;0 个 → 跳过 corpus 加权(不阻塞,仅警告)。
目的:让 root critique 候选不是空中楼阁,而是与论文的真实内容、约束、声明对齐。
执行步骤(顺序、每步必做):
--focus <id> → Grep + Read 定位,把目标缩窄到该 section / claim / equation;同时保留 ±20 行上下文以判定 critique 是否被论文其它位置反驳。CLAUDE.md / README.md(若存在)—— 拿到论文领域 / project 背景,用于 §3.C 跨学科 + §3.I contrarian 的 field-aware 加权。style-profile/<field>/style_dossier.md(若存在) —— 拿到 field 知识基线 + 该 field 的常见 reviewer 关注点。references.bib —— 拿到论文自己引用的文献集,用于 §3.D 检查"引用是否真支持论点",以及 §3.C 跨学科批判前先确认论文是否已引用相关外部文献。--from-paper-review <path> → Read 该 report:把其中标记的 🔴/🟡 issue 提取为 root 的"已知 critique"种子集;本 skill 在此基础上继续发散而非重审。已知 critique 作为深度 1 的 "已 CONFIRMED" 节点直接入树,并对每条用 12 framing pass 攻击其 sub-critique(深度 2+)。<out>/tree.md 与 <out>/tree.json。如果 step 7 任一项空白:停止,向用户报"无法从论文推断 root(论文太短 / 格式异常 / claim 不清)",不进入§3。
核心创新点:每个节点走完 §3.A–§3.L 全部 12 条 framing pass,每条至少产出 1 个 critique 分支; 之后由§4 完整溯源每个 critique,§5 评估并决定是否进一步展开。 "全部"是硬性要求 ——
--min-frameworks仅控制下限,下限 = 12,不允许低于。
§3 完成判据:上述 12 条全部跑完 +
--min-frameworks下限满足 + 每条至少有 1 条 critique 带完整溯源。
--no-online 或纯文档审查)为当前节点的 critique,按以下顺序核对:
arxiv comment / erratum / failure mode,看是否已有 published 批评--no-online 时跳过§3.X 在线部分,仅做项目内代码 + 论文文本核对;标记节点 external_check_partial=true。
每个 §3 产出的 critique 节点必须填充以下 12 个字段后才能进入§5 评估:
| 字段 | 要求 | 容错 |
|---|---|---|
critique_statement | ≤ 3 句,单一明确的对论文的攻击声明(如 "Equation (12) 量纲在化简中漏因子 c²") | 必填 |
parent_framing | 来自§3.A–§3.L 的哪一节 | 必填 |
paper_position | 被攻击位置的 file:line + Read 出来的引用片段(不接受仅 file:line 没引用) | 必填 |
evidence | 支持该 critique 的完整论证链 + 第三方可验证证据——含 (a) 论文中的具体引用,(b) 必要时项目内代码 / CSV 对位结果,(c) 必要时外部文献 file:line + DOI | 必填 |
assumptions | 显式列出本 critique 依赖的全部前提(如 "我假设论文的 Σ_crit 定义遵循 §2 的 SI 单位制"),≥ 2 条 | 必填 |
predictions | 若 critique 成立,论文应在哪里自相矛盾 / 复现失败 / 与 prior work 不一致?给可观察的具体表征 | 必填 |
paper_defense | 论文有没有在别处预先回应这条 critique?逐段 Grep + Read 全文找应答;找到则贴 file:line + 引用片段;没找到则写 "no defense found in " | 必填 — 不允许只查相邻段就下"no defense" |
alternative_interpretations | 这条 critique 是不是误读?至少列 2 种"可能是我看错了"的解读路径;逐条用论文文本检验 | 必填 |
proposed_fix | 若 CONFIRMED,给具体修复建议(改某行 / 改某公式 / 跑某 ablation / 加某假设说明);不接受"作者应重新考虑此处"的空话 | 必填(CONFIRMED 时硬性) |
external_check | §3.X 找到的代码对位 / 文献核实结果;带具体路径 / URL;标注是否实际验证过 | --no-online 时部分可空 |
sub_critique_potential | 这条 critique 若成立,能再发散出哪些 sub-critique?给 ≥ 2 条 hint | 必填(用于决定是否进一步递归) |
verdict_provisional | CONFIRMED / MARGINAL / REFUTED / INCOMPLETE_FORBIDDEN | 必填,由§5 决定是否升级为 final |
深度执行约束:
evidence 中含数值时当轮用 Bash + python(sympy / numpy)跑一次自检脚本;输出贴入字段;无法跑则在字段最后写 [unverified — needs symbolic check] 并强制 §5 verdict 不能为 CONFIRMED(最多 MARGINAL)paper_position 必须真实存在;用 Read 一次确认引用片段;任何 file:line 写错 → critique 整条作废重做paper_defense 必须用 Grep + Read 至少查论文 5 个主要 section(abstract / intro / method / result / discussion / appendix / supplementary),不允许只查相邻段INCOMPLETE_FORBIDDEN,必须继续推进至该字段完整。不允许把半成品节点提交进 verdict。每完成一节点的§4,进入评估:
score = S + P + R + F + B(满分 15)
paper_defense 不为空且充分) → REFUTED,无论 score 多高score ≥ 11 且 paper_defense 为空 → CONFIRMED8 ≤ score ≤ 10 且 paper_defense 部分回应但不充分 → MARGINAL(保留但不再深 expand;列入"作者判断清单")score ≤ 7 → 不算 critique,等同 DEAD-END,剪枝(标灰;推导仍保留供后续参考避免重复)[NEEDS VERIFICATION] / unverified 占主导 → INCOMPLETE_FORBIDDEN(强制回到§4 补全;不允许永久 NEEDS-MORE-INFO 滞留 — 与 brainstorm 不同的硬约束)CONFIRMED 与 MARGINAL critique 进入下一轮(即在该 critique 上重新跑§3 全部 framing pass,挖 sub-critique)REFUTED 保留在树上但不再 expand(仍有价值:证明论文确已处理某攻击角度)DEAD-END 标灰;不再 expandINCOMPLETE_FORBIDDEN 强制回 §4 补全,不允许直接进入下一轮也不允许结案critique_statement + paper_position 语义相似 ≥ 0.85(人工判断也可),合并为单节点,保留 score 高的一方,另一方记 MERGED_INTO=<id>"看起来差不多了"不是收敛证据。下面 6 条同时为真才允许声明 CONVERGED。
verdict_provisional=INCOMPLETE_FORBIDDEN 的节点。§0.8 完整推进禁令在此强制生效。verdict=CONFIRMED 的占比 < --min-confirmed-ratio(默认 0.15)。--width N / --depth N / --rounds N 并触顶 → 不算 CONVERGED,按下表报状态;但所有已展开节点必须完整(§0.7 后半段 + §0.8)。终止状态决策表(执行优先级从上到下):
| 触发条件 | 报告状态 | 必要前置 |
|---|---|---|
| §6 六条全过 | CONVERGED | — |
--width N 触顶且全部叶完整 | WIDTH_CAP_REACHED | 所有叶 §4 12 字段填满 + §5 verdict 定论 |
--depth N 触顶且全部叶完整 | DEPTH_CAP_REACHED | 同上 |
--rounds N 用完且全部叶完整 | ROUNDS_EXHAUSTED | 同上 |
| 任一 cap 触顶但仍有半成品节点 | 不允许停止 | 必须先把所有 INCOMPLETE_FORBIDDEN 推进到完整,再报上面任一 cap 状态 |
| 论文文件完全无法解析 | EARLY_STOP=paper_unparseable | 仅在§2 基线阶段;进入§3 后此项不再适用 |
CONVERGED / WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED 时输出最终报告(§7)。 "探索成本太高"不构成停止理由——这是本 skill 与"快速 lint"的关键区别。
每完成一个 critique 节点的§4 都立即追加进 <out>/tree.md 与 <out>/tree.json。
不允许"探索完再统一写"——断电恢复要求树状态随时可读。
<out>/
├── tree.md # 人类可读,markdown 大纲格式
├── tree.json # 机器可读,含完整字段
├── confirmed.md # 终态;按 score 排序的 CONFIRMED critique 列表 (主交付物)
├── marginal.md # MARGINAL critique 列表(作者判断清单)
├── refuted.md # REFUTED critique 列表(论文已成功处理的角度;正面记录)
└── nodes/
└── <id>.md # 字段过长的节点单独成文件(evidence > 100 行时强制)
### <id> <critique_statement[:80]>
- **parent**: <parent_id> | **framing**: §3.X | **score**: S=_ P=_ R=_ F=_ B=_ → total=_
- **verdict**: CONFIRMED / MARGINAL / REFUTED / DEAD-END
- **paper_position**: <file:line> — `<引用片段>`
- **evidence**: …(或 `→ nodes/<id>.md`)
- **assumptions**: …
- **predictions**: …
- **paper_defense**: <file:line + 引用片段 / "no defense found in §X, §Y, §Z">
- **alternative_interpretations**: …
- **proposed_fix**: …(CONFIRMED 时必填具体)
- **external_check**: …
- **sub_critique_potential**: …
- **children**: [id1, id2, ...]
## paper-attack-tree 终态报告 — <file_path>
### 状态
- 状态:CONVERGED / WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED
- 模式:whole-paper / focused (--focus=<id>) / from-paper-review join
- 树形:max_depth_reached=D, leaf_count=W (= 最终 width), 总节点数=N
- 节点分布:CONFIRMED=c, MARGINAL=m, REFUTED=r, DEAD-END=d, INCOMPLETE_FORBIDDEN=0
(若 INCOMPLETE_FORBIDDEN > 0 → 报告非法,必须回到§4 补全再发本节)
- 总轮次:R
- 触发收敛/停止的判据:…
- 用户 cap:width=<N|∞>, depth=<N|∞>, rounds=<N|conv>;触顶情况:…
### 主交付 — CONFIRMED critiques(按 severity 降序)
1. [id] <critique_statement> — score=14, S=3, paper_position=<file:line>
- evidence: …
- proposed_fix: …
2. ...
### MARGINAL critiques(作者判断清单 — 不能直接修,需作者裁决)
1. [id] <critique_statement> — score=9; 论文部分回应见 <file:line>;建议作者澄清 …
2. ...
### REFUTED critiques(论文已正面应答 — 正面记录,对作者答辩 reviewer 有用)
1. [id] <critique_statement> — 论文在 <file:line> 处已应答:"<引用片段>"
2. ...
### 元层自检结果(§3.L 第 7 题汇总)
- 最 weird critique:…
- 高风险 fatal critique 收成:…
- 元层未能跳出的盲区(坦诚承认):…
### 完整推进自审(§0.8)
- 所有 leaf critique 100% 完整推进,无任何 defer / NEEDS-MORE-INFO 滞留 / future-work 字样:是 / 否
- 若"否" → 报告非法,必须回到§4 / §5 修复
### 推荐下一步
- 给作者:CONFIRMED 全列表 + 修复优先级
- 给 reviewer / referee:MARGINAL 清单可作为 reviewer report 的具体提问
- 与 paper-review 联合:建议把 CONFIRMED 注入 paper-review 的 🔴 队列重跑收敛
| 任务 | 必用工具 | 禁止 |
|---|---|---|
| 论文 root 内容提取 | Read(全文) | 凭印象 / grep-only |
| critique paper_position 验证 | Read 引用片段 ±20 行 | 仅 grep 命中行号下判 |
| paper_defense 查找 | Grep 全文 + Read 每个命中段 | 只查相邻段 |
| 数学/数值 critique 自检 | Bash + python(sympy/numpy) | "易证 / 显然" |
| 文献引用核对 | WebFetch arXiv abs / DOI | WebSearch 摘要做结论 |
| 平行 critique 探索 | Agent(Explore / general-purpose) 子代理;多分支可并行 | 串行偷懒 |
| 代码 / CSV 对位 | Read / Bash 重跑脚本 | 凭"我记得脚本输出 X" |
子代理使用建议:
nodes/<id>.md。--rounds conv 模式下并行是性能必需。--from-paper-review 时已知 critique 直接入树作种子,重点是发散 sub-critique,不是重审。与 /sci-paper:paper-review:互补关系——
paper-review = 预设 checklist 静态审查(A–O 维度逐项 PASS/FAIL);适合"修到零问题"流程paper-attack-tree = 开放式 adversarial radial 探索;适合"作者准备 rebuttal 前自检最坏批评"或"找 checklist 不覆盖的 weird 攻击角度"paper-review 把 checklist 项收敛到零;再 paper-attack-tree --from-paper-review <report> 在已干净的 baseline 上找 reviewer 仍可能挑出的非 checklist 问题paper-attack-tree 发现一批 critique,再用 paper-review 在每条 critique 涉及的具体维度上做静态验证与 /sci-paper:brainstorm:本 skill 就是 brainstorm 的方法学在论文 critique 上的应用;二者在 width/depth/node/12-framing/完整推进禁令上结构同构。若同时跑两个 skill:brainstorm 用于"该写什么新论文"(前向探索),paper-attack-tree 用于"已写的论文哪些会被批"(后向探索)。
与 /sci-paper:mainline:mainline 处理结构 spine;本 skill 在 §3.A / §3.H / §3.L 等 framing 会自然命中 spine 类 critique。建议次序:先 mainline 锐化 spine,再 paper-attack-tree(spine 不清楚时大量 critique 会卡在"我看不出论文要说什么"层级)。
与 /sci-paper:paper-style:若 style-profile/<field>/style_dossier.md 存在,§3.C 跨学科 reviewer 视角加入 field-aware 加权(该 field 的常见 reviewer 关注点优先)。
与 /sci-paper:paper:本 skill 不写作;它产出的 proposed_fix 是写作 task 的输入,可交给 /sci-paper:paper 配合标准做实际编辑。
npx claudepluginhub skymanbp/sci-paper --plugin sci-paperGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.