From sci-paper
全自动辐射状探索器。可用于发散式寻找研究 ideas,也可用于穷尽地寻找解决某个切实难题的途径。以"系统发生树(phylogenetic tree)"为数据模型:root = 起点(topic / 问题 / 当前研究状态);node = 一个想法;depth = 发散层数;width = 最终结果数。每一节点用多种视角(first-principles / 反演 / 跨学科迁移 / 对抗 / 约束变换 / 尺度外推 / office-hours / contrarian / 失效驱动 / high-risk / 元层 等)穷尽 brainstorm,每个分支完整严谨推导(数学/物理/逻辑/文献核对/可行性/可证伪性),递归发散直至每一最深叶节点完整推进。启动时强制 §2.0 glossary grill 预热(与 mattpocock-skills:grill-with-docs 同源),把 root 节点术语锁到项目 FACTS.md。默认 width / depth / rounds **全部不限**,由收敛判据终止。**严禁** "defer / 因成本限制 / future work / TODO" 等推脱式不完整结果。强制 cc-enslaver 七规则全程证据可追溯。Use when 用户说 "brainstorm" / "发散思考" / "找研究方向" / "怎么解决这个难题" / "explore options" / 想穷尽某个研究问题的解法 / 论文 motivation 阶段需要 radial 探索。
How this skill is triggered — by the user, by Claude, or both
Slash command
/sci-paper:brainstorm [topic] [--width N|∞] [--depth N|∞] [--rounds N|conv] [--max-branches N|∞] [--field <name>] [--out <dir>] [--seed <text>] [--no-online] — 不传 topic 则自动从当前项目状态推断[topic] [--width N|∞] [--depth N|∞] [--rounds N|conv] [--max-branches N|∞] [--field <name>] [--out <dir>] [--seed <text>] [--no-online] — 不传 topic 则自动从当前项目状态推断The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **本 skill 不是头脑风暴清单。** 它是一台递归式的**想法生成—推导—评估—剪枝—再发散**机器,等价于一棵向外扩张的"系统发生树(phylogenetic tree)"。
本 skill 不是头脑风暴清单。 它是一台递归式的想法生成—推导—评估—剪枝—再发散机器,等价于一棵向外扩张的"系统发生树(phylogenetic tree)"。 每个想法必须经过完整推导才有资格存活;每个存活节点必须重新做一次发散直到无新颖性增益; 每一个最深叶节点都必须完整推进到底——禁止 defer / 因成本 / 因时间 / future-work 等不完整结果。
把整棵探索想象成下面这张径向树(参考用户示例图):
--depth N 显式封顶)。--width N 显式封顶)。INCOMPLETE_FORBIDDEN 并触发再循环。禁止凭记忆/印象引用文献、定理、数值、API、库特性。
每条外部断言必须当轮 WebFetch / Read / Grep 验证;无法验证 → 标 [NEEDS VERIFICATION] 并降级该分支评分,不得作为推导前提。
禁止"伪发散"——同一个想法换几个词重写、不同 framing 包装但内核相同。
每个新分支必须能给出至少一个与父节点和兄弟节点都不同的可证伪预测、可观测量、或可分离的实验设计;否则合并到最相近的兄弟节点并标 MERGED_INTO。
禁止跳过推导——任何节点的"看起来有意思"都不算 PROMISING。 PROMISING 必要条件:(a) 有完整数学/物理推导链或可行性论证,(b) 有至少一处可与现有文献区分的新颖性声明(带具体引用),(c) 有可证伪/可观测的判据。三条缺一即 → MARGINAL 或 NEEDS-MORE-INFO。
禁止避险——不允许只生成"安全、保守、增量"分支。 每个 framing pass 必须至少产出 1 个 high-risk-high-reward 分支并完整探索;否则该 pass 无效。
禁止伪收敛——"没什么新想法了"不是收敛证据。 收敛必须满足§6 的全部硬判据,且最近 2 轮分支生成中"新颖分支 / 总分支"比 < 0.15,且至少触发过§3 全部 framing pass 各 1 次。
禁止用户中断决策——本 skill 是全自动的。 遇到歧义优先选信息量最大的分支继续;只有当 (a) 触及不可逆操作、(b) 触及 §0.7 资源安全阀、(c) 用户原始 topic 完全无法解析时才停下。
资源参数(默认全部不限;caps 仅在用户显式提供数值时生效):
--width N 默认 ∞ — 最终叶节点总数上限--depth N 默认 ∞ — 树深度上限--rounds N|conv 默认 conv — 发散轮次,由§6 收敛判据终止--max-branches N 默认 ∞ — 每节点单轮新增分支上限(注意:§3 强制 12 条 framing pass 各产 ≥1 分支,所以下限实际是 12;该 flag 仅可放大)--width N / --depth N / --rounds N 并触顶时,已展开的节点必须先全部完整推进到§4 12 字段填满、§5 verdict 定论之后才允许停止;不允许"刚到上限立即停留下半成品"。报告以 WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED 标记,但所有可见叶节点必须完整。--max-nodes 200 / --max-time-min 60 已移除。"探索成本太大"不构成停止理由;这是本 skill 与普通 brainstorm 工具的关键区别。完整推进禁令(hard ban on deferred / incomplete leaves) —— 见§0 数据模型最后一条:
INCOMPLETE_FORBIDDEN,必须继续推进至完整:
/sci-paper:brainstorm [topic] [flags]
topic 解析:
tree.md 的 root 节点)flags(全部可选):
| flag | 默认 | 含义 |
|---|---|---|
--width N | ∞ | 最终叶节点总数上限(最外弧的结果数);ASCII "inf"、字面 ∞ 与不传均视为不限 |
--depth N | ∞ | 树深度上限(从 root 起的最大层数);不传 = 不限 |
--rounds N | conv | 发散轮次上限;conv = 不限轮次,由§6 收敛判据终止 |
--max-branches N | ∞ | 每节点单轮新增分支上限。注意:§3 强制 12 条 framing pass 各产 ≥1 分支,下限实际为 12;该 flag 仅用于放大(极少需要) |
--field <name> | 见§1.1 | 与 paper-style 同名 field,用于文献先验加权 |
--out <dir> | brainstorm-out/<UTCdate>__<topic-slug>/ | 树输出目录 |
--seed <text> | 无 | 额外种子提示,作为 root 节点的 hint |
--no-online | 关 | 关闭 WebSearch / WebFetch;只用本地 + 已读引用 |
--min-frameworks N | 12 | 每节点至少跑过的 framing pass 数(§3);下限即 §3.A–§3.L 全 12 条 |
--min-novelty-ratio R | 0.15 | 收敛要求的"近 2 轮新颖比"下限(详§6) |
--no-grill | 关 | 跳过 §2.0 glossary grill 预热(弱收敛模式;root 节点术语标 unverified) |
关于"无上限":本 skill 的设计哲学是用§6 收敛判据(substantive convergence)而不是用资源 cap(resource exhaustion)来终止。当用户既不传
--width / --depth / --rounds也不触§6 收敛 → 它会一直跑直到收敛,这是预期行为而非 bug。
§1.1 field 选择:与 paper-style 行为一致 —
解析 style-profile/ 下子目录:1 个 → 自动选;多个 → 要求 --field;0 个 → 跳过文献先验加权(不阻塞,仅警告)。
目的:让 root 节点不是空中楼阁,而是与"当前真实状态"或"用户给定问题的真实约束"对齐。
--no-grill)借鉴
mattpocock-skills:grill-with-docs的"挑战术语 + 锐化模糊语言"模式。 brainstorm 的 root 节点用错术语 → 整棵树发散偏方向 → 一千个子节点解决一个不存在的问题。 这一步先于 §2.A / §2.B mode 判别——因为术语错了再判 mode 也没用。
操作(一次一问、每问给推荐答;用户传 --no-grill 才跳过):
定位 glossary 来源(按优先级 Read 第一个存在的):
wgl-suite/FACTS.md + wgl-suite/KEY_NUMBERS.md(WGL 项目 single source of truth)CLAUDE.mdstyle-profile/<field>/style_dossier.md 中含 glossary 表的段落[NEEDS_GLOSSARY],可继续但 §6 收敛判据加一条警告"未做 glossary grill"拆解 topic 中的关键 noun:
逐 term 对照 glossary:
<out>/glossary-anchors.mdglossary-anchors.md 注 aka: "<别名>",无须打扰用户产物:写 <out>/glossary-anchors.md:root 节点用的术语 + 对应 glossary 定义 + file:line 引用。后续每个 framing pass / 每个分支生成时用本文件做术语锁——若新分支引入新 noun,要追加到本文件并 grill 一次。
跳过 grill 的弱后果:传 --no-grill → root 节点术语状态全标 unverified → §6 收敛判据加警告 "未做 glossary grill;不允许声称强收敛"。
模式判别(必做,作为§2 的第 0.5 步):
CLAUDE.md、README.md —— 拿到项目自我描述。*.tex / *.md 草稿 —— 识别"目前在写什么、写到哪一步"。如果存在多文件,取最新修改的 3 篇全文 Read;其余 metadata only。style-profile/<field>/style_dossier.md(若存在) —— 拿到 field 知识基线。references.bib / *.bib(若存在) —— 拿到当前文献网络的"已知集"。git log --oneline -20) —— 拿到最近工作焦点。--no-online) topic 关键词 + solution / benchmark / prior art,找已知方案与已知失败模式;WebFetch 至少 3 篇关键命中。[NEEDS VERIFICATION])<out>/tree.md 与 <out>/tree.json。如果 Mode A 第 6 步或 Mode B 第 4 步任一项空白:停止,向用户报"无法从当前状态推断 root;请显式传 topic 或补足问题陈述",不进入§3。
核心创新点:每个节点走完 §3.A–§3.L 全部 12 条 framing pass,每条至少产出 1 个分支; 之后由§4 完整推导每个分支,§5 评估并决定是否进一步展开。 "全部"是硬性要求 ——
--min-frameworks仅控制下限可放宽至 5(紧急快速场景),不允许低于 5。
§3 完成判据:上述 12 条全部跑完 +
--min-frameworks下限满足 + 每条至少有 1 条分支带完整推导。
--no-online)为当前节点的研究方向,按以下顺序搜索:
arxiv / github / dataset / benchmarkclaude code plugin / mcp server / langchain tool(找现成可调用的工具)external_resources 字段--no-online 时跳过§3.X,标记节点 external_resources_unchecked=true。
每个 §3 产出的分支节点必须填充以下 12 个字段后才能进入§5 评估:
| 字段 | 要求 | 容错 |
|---|---|---|
idea_statement | ≤ 3 句,单一明确假设 | 必填 |
parent_framing | 来自§3.A–§3.L 的哪一节 | 必填 |
derivation | 完整数学/物理推导链或可行性论证;不接受 "details omitted";公式必须可被独立第三方走通 | 必填 |
assumptions | 显式列出推导依赖的全部假设(≥ 3 条) | 必填 |
predictions | 至少 1 条定量、可证伪的预测;带量级 + 误差 | 必填 |
falsifiability | 何种观测/计算结果会否定此分支? | 必填 |
novelty_vs_literature | 与至少 3 篇真实文献逐条对比;每条带 DOI/arXiv ID + 一句话差异声明 | 必填;无可比时必须 WebSearch 至少 1 轮再下结论 |
feasibility | 数据/算力/时间/技能 4 项各 1 行 | 必填 |
risks | 至少 3 条;每条标注是技术风险/科学风险/资源风险 | 必填 |
branch_potential | 这个分支若成功,能再发散出哪些子问题?给 ≥ 2 条 hint | 必填(用于决定是否进一步递归) |
external_resources | §3.X 找到的 repo/plugin/dataset;带 URL;标注是否实际可用 | --no-online 时可空 |
verdict_provisional | PROMISING / MARGINAL / DEAD-END / NEEDS-MORE-INFO | 必填,由§5 决定是否升级为 final |
深度执行约束:
derivation 中含数值时当轮用 Bash + python(sympy / numpy)跑一次自检脚本;输出贴入字段;无法跑则在字段最后写 [unverified — needs symbolic check]novelty_vs_literature 中每篇引用必须 WebFetch arXiv abs / DOI 页确认作者+年份+标题至少匹配;不可仅凭 WebSearch 摘要下结论INCOMPLETE_FORBIDDEN,必须继续推进至该字段完整。不允许把半成品节点提交进 verdict。每完成一节点的§4,进入评估:
score = S + N + F + K + B(满分 15)
score ≥ 11 → PROMISING8 ≤ score ≤ 10 → MARGINAL(保留但不再深 expand)score ≤ 7 → DEAD-END(标灰,停止 expand)[NEEDS VERIFICATION] 或 unverified 占主导 → NEEDS-MORE-INFO(不下 verdict,挂"待补充")PROMISING 节点进入下一轮(即在该节点上重新跑§3 全部 framing pass)MARGINAL 保留在树上但不再 expandDEAD-END 标灰;其推导仍保留供后续参考NEEDS-MORE-INFO 列入"待补充清单";下一轮起始时优先 WebFetch 补充,再决定 verdictidea_statement 余弦语义相似 ≥ 0.85(人工判断也可),合并为单节点,保留得分高的一方,另一方记 MERGED_INTO=<id>"看起来差不多了"不是收敛证据。下面 6 条同时为真才允许声明 CONVERGED。
verdict_provisional=NEEDS-MORE-INFO 或 INCOMPLETE_FORBIDDEN。§0.8 完整推进禁令在此强制生效。verdict=PROMISING 的占比 < --min-novelty-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 状态 |
| Topic 完全无法解析 | EARLY_STOP=topic_unparseable | 必须在§2 baseline 阶段;进入§3 之后此项不再适用 |
CONVERGED / WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED 时输出最终报告(§7)。 "资源不够"不构成停止理由——本 skill 不接受 "exploration cost too high" 之类的隐含 early-stop(与 §0.7 / §0.8 一致)。
每完成一个节点的§4 都立即追加进 <out>/tree.md 与 <out>/tree.json。
不允许"探索完再统一写"——断电恢复要求树状态随时可读。
<out>/
├── tree.md # 人类可读,markdown 大纲格式
├── tree.json # 机器可读,含完整字段
├── shortlist.md # 终态;按 score 排序的 PROMISING 列表
├── pending.md # NEEDS-MORE-INFO 待补充清单
└── nodes/
└── <id>.md # 字段过长的节点单独成文件(derivation > 100 行时强制)
### <id> <idea_statement[:80]>
- **parent**: <parent_id> | **framing**: §3.X | **score**: S=_ N=_ F=_ K=_ B=_ → total=_
- **verdict**: PROMISING / MARGINAL / DEAD-END / NEEDS-MORE-INFO
- **derivation**: …(或 `→ nodes/<id>.md`)
- **assumptions**: …
- **predictions**: …
- **falsifiability**: …
- **novelty_vs_literature**:
- [arXiv:xxxx.xxxxx] <一句话差异>
- [DOI:10.xxx/...] <一句话差异>
- **feasibility / risks / branch_potential / external_resources**: …
- **children**: [id1, id2, ...]
## brainstorm 终态报告 — <topic>
### 状态
- 状态:CONVERGED / WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED / EARLY_STOP=<reason>
- 模式:research / problem-solving / hybrid
- 树形:max_depth_reached=D, leaf_count=W (= 最终 width), 总节点数=N
- 节点分布:PROMISING=p, MARGINAL=m, DEAD-END=d, NEEDS-MORE-INFO=0, INCOMPLETE_FORBIDDEN=0
(若上面后两项不为 0 → 报告非法,必须回到§4 把它们推进到完整再发本节)
- 总轮次:R
- 触发收敛/停止的判据:…
- 用户 cap:width=<N|∞>, depth=<N|∞>, rounds=<N|conv>;触顶情况:…
### 最终 width — 所有完整推进的叶节点(按 score 降序)
(即最外弧上每一片"完整推进到底"的叶;含 PROMISING + MARGINAL + DEAD-END 的终态叶)
1. [id] <idea_statement> — verdict=…, score=…; 关键判据=…; 第一个实验=…
2. ...
### Top-K 推荐方向(按 score 降序,仅 PROMISING)
1. [id] <idea_statement> — score=14; 关键判据=…; 第一个实验=…
2. ...
### 元层自检结果(§3.L 第 7 题汇总)
- 最 weird 分支:…
- 高风险分支收成:…
- 元层未能跳出的盲区(坦诚承认):…
### 完整推进自审(§0.8)
- 本次报告中所有叶节点已 100% 完整推进,无任何 defer / future-work / TODO 字样:是 / 否
- 若"否" → 报告非法,必须回到§4 / §5 修复
### 推荐下一步
(仅给 1–3 条具体行动,每条带 file:line 或 URL 证据)
| 任务 | 必用工具 | 禁止 |
|---|---|---|
| 项目当前状态推断 | Read / Glob / Grep / Bash(git log) | 凭印象 |
| 文献核对 | WebFetch arXiv abs / DOI 页 | WebSearch 摘要做结论 |
| 数学推导自检 | Bash + python(sympy/numpy) | "易证 / 显然" |
| 平行分支探索 | Agent(Explore) 子代理;多分支可并行 | 串行偷懒 |
| 寻找现成插件/repo | WebSearch + WebFetch README | 凭"我记得有个工具叫 X" |
| 代码搜索 | Grep / Glob | 关键词推测路径 |
子代理使用建议:
nodes/<id>.md。--rounds conv 模式下并行是性能必需。--min-frameworks 下限即 12)。INCOMPLETE_FORBIDDEN 触发再循环。/sci-paper:brainstorm 找出 PROMISING 方向 → 用 /sci-paper:paper 加载写作标准 → 起草新论文style-profile/<field>/:自动叠加 paper-style 的 dossier 作为风格基线shortlist.md 是 /paper skill 的合法输入(用户挑一条交给 paper)Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub skymanbp/sci-paper --plugin sci-paper