From sci-paper
主线增强 / 叙事脊柱锐化器。完整阅读全文(禁止 grep-only / 记忆 / 猜测),从 7 个正向维度(主线锐化 / 语言精简 / 叙事结构 / 隔离可读性 / 推导完整 / 逻辑合理 / 主线串联)和 8 个反向维度(定义模糊 / 主线分散 / 多而不精 / 章节无关联 / 结构不清 / 缺学术叙事 / 上下文不统一 / 低信息量形容语句)双向审查并自动修复;专门处理 brainstorm 发散后的观点收敛与叙事整合;强制隔离上下文 cold-read 可读性二审;零问题收敛硬闭环。与 paper-review 互补(paper-review 管 per-claim 正确性,本 skill 管结构层 spine)。Use when 用户说 "主线不清" / "叙事乱" / "结构层审查" / "mainline" / "整合 brainstorm 输出" / "章节衔接有问题" / "story 不顺" / 想做 spine-level 审查(per-claim 已经 paper-review 过)。
How this skill is triggered — by the user, by Claude, or both
Slash command
/sci-paper:mainline <file_path> [--max-iter N] [--no-fix] [--skip-isolated-readability] [--from-brainstorm <shortlist>] [--field <name>] — 指定论文 (.tex/.md),可选迭代上限 / 只审不改 / 跳过隔离可读性二审 / 显式引用 brainstorm shortlist / 显式 field<file_path> [--max-iter N] [--no-fix] [--skip-isolated-readability] [--from-brainstorm <shortlist>] [--field <name>] — 指定论文 (.tex/.md),可选迭代上限 / 只审不改 / 跳过隔离可读性二审 / 显式引用 brainstorm shortlist / 显式 fieldThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **v1 — 与 paper-review v3 / brainstorm v0.5 互补的结构层主线增强器。**
v1 — 与 paper-review v3 / brainstorm v0.5 互补的结构层主线增强器。 调用:
/sci-paper:mainline <file>。 写作标准(含 anti-AI-isms 硬规则)由 sibling skill/sci-paper:paper提供, per-claim 正确性 / 引用溯源 / 数据漂移由/sci-paper:paper-review处理, 本 skill 专攻结构 + 叙事 + spine 一致性层级。
本 skill 不是 lint,是审查 + 主线增强迭代器 + 隔离上下文可读性终验器:
用户原话:"完整阅读全文,禁止关键词检索、记忆依赖、猜测,增强论文的主线叙事。" 这是本 skill 的根本约束,落实为 §0 顶层禁令的硬条款。
禁止使用记忆 / 缓存 / 历史对话作为事实依据。 每个 spine 判定、每个 claim 抽取、每个推导评估都必须当轮重新打开源文件读取。 "我印象中""上次说过""我相信"都不算证据。
禁止 grep / 关键词检索作为主要证据。 主线 / 叙事 / 章节关联 / spine 这类高维结构属性不可能 grep 出来; 必须 Read 上下文(章节级别,必要时全文)。 grep 仅用于辅助定位反模式 token(如 §2.B8 低信息量形容词清单),定位后必须 Read 句段确认语义才能下判。
禁止猜测 / 推断 / 外推。
不知道 spine 是什么 → 写 SPINE NOT INFERRED;
章节关联不明 → 写 CHAIN BROKEN at §X→§Y;
不写"应该是 X / 大致是 Y"。
完整阅读强制(与用户原话一致)。 论文 > 2000 行用 offset/limit 分块读完,全部读过为止。 spine 是全局属性,任何抽样 / 跳读 / "看 abstract 即可"都必然漏判。
修复时禁止"加过渡词软化"。
两段之间有 logical jump → 不允许用 furthermore / moreover / additionally / importantly / in addition / on top of that 之类的 AI-tell 过渡词缝合;
必须重组结构 / 补缺失前提 / 删除其中一段。
过渡词缝合是反 spine——它把结构问题伪装成衔接问题。
隔离上下文 cold-read 二审是 spine 验证唯一可信源。 主代理在 §2 已读全文,其"spine 清楚"判定带框架偏见("我懂作者意思" ≠ "spine 客观清楚")。 §3 子代理必须冷读完成;其 cold-read 结果优先于主代理自我评估。
零问题收敛硬约束。 合法终止 = §4.3 进程内 0 issue + §3 子代理 cold-read 7-Q 全过。 "基本清晰 / 主线大致出来了 / 大部分章节关联 / 剩下都是 minor"一律视为未收敛。
读 sibling skill paper/SKILL.md — 内化写作标准(特别是 Anti-AI-isms 节,会影响 §0.5 修复反模式)。
解析 field 并读 style-profile/<field>/style_dossier.md(若存在) — 单 field 自动选;多 field 要求 --field;0 个 → 跳过 corpus-style 加权,仅警告。
从头到尾 Read 论文全文(不抽样、不跳读)。超过 2000 行用 offset/limit 分块读完,全部读过为止。
若传入 --from-brainstorm <shortlist.md> → Read shortlist 拿到原始发散方向集合(用于 §2.C)。若未传:跳过该输入,但 §2.C 仍强制执行(即使没有 brainstorm 来源也要查发散)。
生成 spine 五元组:
root_question — 本文要回答什么问题(一句话)central_claim — 主张是什么(一句话)method_promise — 用什么方法 / 工具 / 数据(一句话)key_evidence — 核心证据是什么(一句话 + file:line 指向 figure/table/equation)take_home — 读者读完应记住什么(一句话)每元素必须能 file:line 定位到论文具体句子;定位不到 → 标 MISSING。
任一 MISSING = 🔴 spine 缺失,且后续 §2 全部其它检查在该项被修复前都受其污染(spine 残缺时其它结构判定意义减半)。
生成 outline 三层结构:
生成 claim chain 图:
§2 必须先做正向 §2.A(建立 spine 标准),再做反向 §2.B(按标准找反模式),最后 §2.C(brainstorm 发散收敛)。次序不可颠倒。
"perform an analysis of" → "analyze";"conduct a comparison between" → "compare"。动词驱动 > 名词驱动。"the method that we propose, namely our proposed approach, which is called X," )→ 收敛为单一名称。problem → gap → approach → result → implication?任一缺失 = 🔴(与 §2.B6 联合)。设问 → 实验 / 推导 → 数据 → 解读 → 联系下游?step k → step k+1 的理由(algebraic / physical / approximation)是否给出?"易得 / 显然 / 直接得到 / by inspection / it follows that")= 🟡,必须补步骤或显式标注"省略代数化简,详 Appendix X"。/sci-paper:paper-review §2.M 的 3-pass 协同:本项只查"完整性"(步骤是否齐全 + 前提是否给出),不重复 §2.M 的"对错性"。"A leads to B" / "A drives B" / "due to A" / "because of A"):是否有机制说明?仅相关性 = 🟡,必须改为相关性陈述或补机制。"if / iff / only if" / "necessary / sufficient" 使用是否正确?"Building on the above, we now…")。"As discussed before, …" 这种空白指代)?每条反模式给出识别规则 + 修复动作;命中即标 🔴 / 🟡,不允许"语境合适保留"。
"X is a kind of approach to handle Y");定义内部循环("X is defined as Y where Y is X with property Z");用"some kind of / a type of / something like"代替严格定义。thematic groups + 一句关键差异;同点重复 → 保留首次最完整版本,其它删。"Using the kernel from §3.2, we now …"),不接受空白指代("As described, we now …");若实际无关联 → 重新组织章节顺序 或 合并相邻章节。"Discussion" / "Other Results")。"Discussion" → "Why the kernel saturates at small scales")。"We did X. Then we did Y. We got Z." 流水账(无 motivation / 无 implication);或仅有结果罗列无 interpretive synthesis;或 results 后没有 "what this means" 段。"This implies / suggests / indicates X.";section 开头加 motivation 句("To answer Q1, we …");conclusion 段补全 implication("Our result extends / refines / refutes the prior framework of [cite].")。强制 grep 清单(命中后必须 Read 上下文判定,禁止只看 grep 命中数下判):
# 程度副词堆叠
grep -nE -i '\b(very|quite|rather|fairly|extremely|highly|substantially|significantly|considerably|notably|particularly|especially|remarkably|surprisingly|importantly|crucially|markedly|profoundly|deeply)\s+\w+' <file>
# AI-tell 形容词(与 /paper Anti-AI-isms 重叠;本节着重检查"低信息量"维度)
grep -nE -i '\b(comprehensive|extensive|thorough|systematic|robust|seamless|holistic|sophisticated|elegant|powerful|effective|efficient|advanced|cutting-edge|state-of-the-art|novel|innovative|groundbreaking|paradigm-shifting)\b' <file>
# 模糊量化
grep -nE -i '\b(various|several|a number of|many|some|certain|different|diverse|multiple|numerous|a wide range of|a variety of)\b' <file>
# 低信息名词
grep -nE -i '\b(insights?|implications?|aspects?|dimensions?|considerations?|nuances?|complexities)\b' <file>
判定规则(每个 grep 命中必走):
"significantly higher (p<0.01)") → 保留"significantly improved performance") → 删除程度副词,量化具体数字("30% lower MSE on dataset X")"very robust") → 删除程度副词;若想保留 → 加数值"various / several / a number of" → 改为具体数字("3 datasets" / "5 surveys")"insights / aspects / dimensions" 等空名词 → 替换为具体名词("the role of the kernel" / "the saturation behavior at low SNR")B8 命中必须全部 Read 复核后判定;不允许仅凭 grep 命中数下判(避免 false positive);但判定为低信息后必须全部修复(不允许只修一部分)。
--from-brainstorm)用户原话:"由于 brainstorm 技能会发散性思考,你也可以检查是否有过于分散的观点,并尝试让这些方向集中起来,让叙事更加完整。" brainstorm 默认产出多条 PROMISING 方向;论文 draft 阶段,作者容易把多条方向都写进同一篇文章,导致主线分散。本节专门处理这种"发散 → 收敛失败"。
"we also explore X" / "another direction is Y" / "an additional avenue is Z")?这是 brainstorm 残影。--from-brainstorm <shortlist> 提供:shortlist 中 verdict=PROMISING ≥ 2 条,且 paper 试图同时论证 ≥ 2 条 → 🟡 分散警告。"open question"(不是 "future work";避免与 brainstorm §0.8 / paper-review §2.O 的过程残影禁令冲突;不要写成"我们曾考虑过 X")--skip-isolated-readability)用户明确要求"隔离上下文检查可读性"。 主代理在 §2 已读全文,其"spine 清晰"判定带框架偏见("我懂作者意思" ≠ "spine 客观清楚")。 必须用独立 cold-read 子代理做第三方可读性验证。
--skip-isolated-readability主代理通过 Agent tool 启动子代理,参数:
subagent_type: general-purposeisolation: worktree(隔离 git worktree,避免污染主工作树;若子代理无改动,worktree 自动清理)description: "Isolated cold-read readability check for paper spine"prompt:自包含,必须含以下内容(不允许省略):
Target file: <absolute path>
You are reading this paper cold. You have NEVER seen this paper or any prior conversation about it. Do NOT rely on prior context, summaries, or "I think I remember" — Read the file from line 1 to the end as if for the first time. cc-enslaver rules apply (no memory, no guessing, no grep-only).
"看起来还行" / "整体清晰" / "spine 基本能看出来"等无证据总评。| 子代理状态 | 主代理动作 |
|---|---|
| Q1-Q5 全 1 句话答出 + 与主进程五元组一致 + Q6 = 0 confusion + Q7 = single thread | spine 验证通过,进入 §4.5 最终报告 |
| Q1-Q5 任一答不出 / 答错 / 与主进程不一致 | 🔴 spine 不可推断;注入主队列回 §4.3 重启 |
| Q6 列出 ≥ 1 confusion | 每条 confusion 转 🟡 注入主队列回 §4.3 |
| Q7 = multiple threads | 🔴 主线分散;转 §2.B2 + §2.C 处理,回 §4.3 |
| 子代理调用失败 / 超时 | 报 READABILITY_AGENT_FAILED;不允许伪装通过;要求用户介入决定是否手工 cold-read 或允许跳过 |
--max-iter 的 2 倍(默认 10)NOT CONVERGED (process+isolated-readability);列全部未解项;不允许声称完成## 主线增强报告: <filename> — Iter <N>
### Spine 五元组
- root_question: <一句话> (file:line)
- central_claim: <一句话> (file:line)
- method_promise: <一句话> (file:line)
- key_evidence: <一句话> (file:line)
- take_home: <一句话> (file:line)
[任一 MISSING → 🔴]
### Claim chain 图
- 节点数: N
- 边数: E
- 连通子图数: K (K > 1 = 🔴 spine break)
- 孤立节点: [C_i, C_j, ...] (若有)
### §2.A 正向 7 维度
A1 主线锐化 / A2 语言精简 / A3 叙事结构 / A4 隔离可读性 (dry-run) /
A5 推导完整 / A6 逻辑合理 / A7 主线串联
[逐项 PASS / FAIL + file:line + 证据]
### §2.B 反向 8 维度
B1 定义模糊 / B2 主线分散 / B3 多而不精 / B4 章节无关联 /
B5 结构不清 / B6 缺学术叙事 / B7 上下文不统一 / B8 低信息量形容
[逐项命中数 + 修复优先级]
### §2.C brainstorm 发散收敛
- C1 独立 core claim 数: M (= 1 才算合规)
- C2 应用的降级策略 (若 M > 1)
- C3 收敛后 spine 完整性自检结果
### 修改清单(按优先级)
1. 🔴 必改 (spine 缺失 / 分散 / 章节断链 / 推导跳越): [file:line + 当前 + 建议]
2. 🟡 建议改 (语言精简 / 形容词低信息 / padding): [同上]
3. 🟢 可选: [...]
--no-fix)furthermore / moreover / additionally / importantly / crucially / in addition) 缝合 logical jumpcomprehensive / robust / sophisticated / elegant 类形容词 puff 来掩盖结构松散"We investigate three aspects: ..." 三平行结构掩盖主线缺失"future work" 当掩护(与 paper-review §2.O 联合禁止)
命中任一 → 修复无效,回 §4.2 重选。ITER_BUDGET = --max-iter N (默认 5)
for iter in 1..∞:
report_k = full_review(file) # §1 + §2.A + §2.B + §2.C
if all hard_criteria(report_k) met:
run_isolated_readability(§3) # 首次进入 §3
if §3 passes: break (CONVERGED)
else: inject §3 findings into queue; continue
apply_fixes(report_k.🔴 ∪ report_k.🟡) # §4.2
if iter >= ITER_BUDGET:
BREAK_WITH_USER_DECISION() # 不允许偷偷宣布完成
进程内(§2)收敛硬判据(必须全部满足;任一不满足即未收敛):
| 判据 | 阈值 |
|---|---|
| Spine 五元组 MISSING 数 | = 0 |
| Claim chain 连通子图数 K | = 1 |
| 孤立 claim 节点数 | = 0 |
| 🔴 issue 数 (§2.A + §2.B 合计) | = 0 |
| 🟡 issue 数 | = 0 |
| §2.B8 grep 命中 Read 复核后真低信息的数量 | = 0 |
| §2.C1 独立 core claim 数 | = 1 |
| LaTeX 编译错误(若是 .tex) | = 0 |
绝对禁止的"软收敛"出口:
"spine 基本清晰,剩下的是表达问题""两条 thread 都有价值,保留作为 multi-contribution paper""用户没时间做 §3 cold-read,跳过宣布完成"进程内 §4.3 收敛 AND §3 子代理 Q1-Q5 全对 + Q6 = 0 + Q7 = single thread → CONVERGED,进入 §4.5。
# Mainline Enhancement — Final Convergence Report
**Target**: <file_path> (N pages)
**Process-internal iters**: K
**Isolated cold-read re-verifications**: J
**Final state**: ✅ spine 五元组齐全 / claim chain K=1 / 0 🔴 / 0 🟡 / cold-read 7-Q 全过
## Final spine 五元组(与 §3 子代理 Q1-Q5 对齐)
[逐元素一行 + file:line]
## §2.A–§2.B–§2.C summary
[每维度一行 PASS + 关键证据]
## §3 子代理 cold-read 报告(贴入原文,不允许摘要)
[Q1-Q7 完整回答]
## 修复痕迹(按 iter 分组)
### Iter 1
- 🔴 [file:line] description → fix
- ...
## Convergence verification (cc-enslaver rule 06 + rule 07 自答)
1. 是不是真的解决了问题?✓ (证据: 五元组齐全 + K=1 + cold-read Q1-Q5 全对)
2. 有没有更好的解决方法?✓ (chosen min-effective-change at each fix; 未用过渡词缝合)
3. 改动是否经过验证?✓ (per-fix re-Read + claim chain 重跑 + §3 cold-read)
4. 验证是否合理?✓ (覆盖正/反双向 + 隔离 cold-read 验证)
5. (rule 07 覆盖性) 用户原始 7 正 + 8 负 + brainstorm 收敛全部落实?✓
6. (rule 07 标准性) "完整阅读 / 禁止关键词检索 / 禁止记忆 / 禁止猜测 / 隔离上下文检查" 全部硬动作?✓
7. (rule 07 忠实性) 无静默降级、无 TODO、无 future-work、无 transitional-phrase 缝合?✓
/sci-paper:paper:本 skill 假设作者已遵守 /paper 的写作标准(特别是 Anti-AI-isms)。本 skill 修复时不允许违反 /paper 的 Tier A 禁词清单。/sci-paper:paper-review:互补关系——
paper-review 管 per-claim 正确性(数字 / 引用 / 推导 / 数据漂移 / 过程残影)mainline 管结构层 spine(叙事 / 章节关联 / 主线收敛)paper-review 把内容正确性收敛到零,再 mainline 锐化结构 spine。反之亦可,但 spine 大改后通常需 re-run paper-review 验证 per-claim 仍正确。/sci-paper:brainstorm:若论文 draft 起源于 brainstorm 的 shortlist,调用本 skill 时建议传 --from-brainstorm <out>/shortlist.md,让 §2.C 拿到原始发散方向集合做精准收敛检测。/sci-paper:paper-style:若 style-profile/<field>/style_dossier.md 存在,§2.A2 / §2.B8 的形容词清单按 corpus 实测频率加权,优先于本 skill 内置默认清单。"spine 大致清楚就行,不必锱铢必较。" — 违反 §0.7;spine 是 0/1 属性。"用 furthermore / moreover 缝合两段。" — 违反 §0.5;过渡词是 AI-tell,不是 spine。"形容词 'comprehensive' 在这里是必要描述,保留。" — 违反 §2.B8;几乎所有 comprehensive / robust / sophisticated 都可删或量化。"claim chain 图分两块是因为文章本来就讨论两个方面。" — 违反 §2.B2 / §2.A7;要么选一个作主 spine,要么拆为两篇 paper;不允许"two-contribution paper"自我蒙混。"隔离 cold-read 子代理读不懂是因为这是技术性强的论文,正常。" — 违反 §0.6 / §3;冷读子代理读不懂 = 真的 spine 不清楚;技术性论文也必须 spine 可推断。"推导中 'by inspection' 是行业惯例,保留。" — 违反 §2.A5;至少加 Appendix 或一行 reasoning。"Q6 confusion 是子代理理解能力问题,丢弃。" — 违反 §3.3;冷读 confusion 必须当 🟡 处理。"把不相关方向移到 future work 当掩护。" — 违反 §2.C2;future work 不能成为"藏垃圾的地方";用 open question 短句或完全删除。"B8 grep 命中太多,挑几个修。" — 必须全部 Read 复核后判定,且真低信息的全删;不允许抽样修。"iter 5 没收敛,宣布完成附残留清单。" — 违反 §4.3 末尾;ITER_BUDGET 用满 = BREAK_WITH_USER_DECISION,不允许偷偷宣布完成。"§3 cold-read 太慢,跳过宣布完成。" — 违反 §0.7 / §3;除非用户显式传 --skip-isolated-readability,否则必须跑。"分散的两条 thread 都是 brainstorm shortlist 上的 PROMISING,都保留。" — 违反 §2.C2;brainstorm shortlist 是候选池,论文只挑一条。"先用 grep 找 spine 关键词位置。" — 违反 §0.2;spine 不是关键词,必须 Read 全文判定。npx claudepluginhub skymanbp/sci-paper --plugin sci-paperCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.