zcbot/skills/analyze/SKILL.md

124 lines
7.0 KiB
Markdown

---
name: analyze
description: 科学问题分析 / 拆解 / 引导。用户提出模糊的高层科研问题(如"想搞清楚 X 是什么原因 / 怎么提升 Y / 该不该做 Z")、还没决定要不要立项、还在想方向、不知道从哪入手时使用。本 skill 不执行任务,而是把模糊命题翻译成可操作子问题 + 实施路线图,最后导向其他 skill。已经明确要写本子 / 查文献 / 跑实验时不用,直接走 proposal / research 等。
---
# Analyze - 科学问题分析
服务建材院无机非金属材料 R&D 场景。用户抛过来一个**模糊的高层科研问题**,本 skill 引导用户把它**翻译成可操作的子问题 + 实施路线图**,然后把每个子问题接力给合适的下游 skill。
**本 skill 不直接产出最终交付物**(不查文献 / 不写本子 / 不跑模型),只产出 `analysis.md` —— 一个共识性的"问题理解 + 路线图"文件。
进度展示建议:用 `task_progress` 标记「PICO 规范化 / Issue Tree 拆解 / 分支深化 / 实施路线图」四个阶段;用户确认卡点仍按正文工作流执行。
## 何时用
- 用户说"我想搞清楚 / 想研究 / 不知道从哪入手 / 这个问题怎么拆 / 我们能做什么"
- 用户问题宽泛,只到效应层("早强偏低"、"耐久性差"、"性能不稳定"),没到具体变量 / 指标 / 假设
- 用户在评估要不要立项,问"这个方向值不值得做"
- 用户想在不熟悉的领域结合本院能力做点事,要先理一下问题
## 何时不用
- 用户已经写明白要做什么(配方对比 / 标准检测 / 文献综述 / 写本子)→ 直接走对应 skill
- 用户问通识知识 / 名词定义 → 直接答
- 用户要审稿 / 改文 → 走 review
- 用户要做异常排查但已经定位到具体环节(只差查文献验证) → 走 research
## 资源
所有路径相对 `<skill_dir>`(`load_skill` 返回头里给的绝对路径):
- `<skill_dir>/references/pico_template.md` — PICO/PECO 问题规范化模板 + FINER 自检(阶段一前 always read)
- `<skill_dir>/references/issue_tree_patterns.md` — MECE 拆分模板(机理-现象-工艺三层)(阶段二前 always read)
- `<skill_dir>/references/root_cause.md` — 5Whys + Fishbone(根因型分支用)
- `<skill_dir>/references/innovation.md` — First-principles + TRIZ 矛盾矩阵(创新型分支用)
- `<skill_dir>/references/doe_planning.md` — DoE 选型(优化型分支用,衔接 stats_ml)
- `<skill_dir>/templates/analysis_report.md` — 最终产物 `analysis.md` 的格式模板
## 工作流(四段式,关键阶段卡)
### 阶段一: 问题规范化(PICO 化)— BLOCKING
`<skill_dir>/references/pico_template.md`,把用户原话填进 PICO 表。
1. 复制 `<skill_dir>/templates/analysis_report.md``<task_dir>/analysis.md`
2. 填 §1 原始问题(用户原话照抄)
3. 填 §2 PICO 草稿:
- **P** 对象(研究材料 / 体系 / 工艺环节)
- **I** 干预(自变量 / 被你改变的量)
- **C** 对照(参照基准:基准配方 / 国标 / 国外同类型材料)
- **O** 输出(**必须量化**:具体指标 + 单位 + 期望数值)
4. 跑 §3 FINER 自检(Feasible / Interesting / Novel / Ethical / Relevant)五维评级 + 一句话说明
5. 把表格呈现给用户,问:"PICO 这样填对吗?O 这一栏需要更具体的指标吗?"
6. **BLOCKING:用户确认后才进阶段二**
字段填不出 / 用户说"不知道"是常态 —— 别强逼,在表里写 `<TODO 用户补充>`,但**至少 P 和 O 要落地**,否则没法拆。
### 阶段二: Issue Tree 拆解(MECE)— BLOCKING
`<skill_dir>/references/issue_tree_patterns.md`,选一个拆分模板搭树。
1. 选拆分维度:**机理-现象-工艺**(建材最常用,默认选)/ **输入-过程-输出** / **材料-工艺-装备-检测**
2. 拆 2-3 层(别过深,叶子节点 5-10 个最舒服)
3.`analysis.md` §4 写 issue tree(用缩进列表或 mermaid 块,LLM 自选)
4. 每个叶子节点标注三个 tag:
- **类型**:根因 / 创新 / 优化(决定阶段三用哪个分支)
- **优先级**:高 / 中 / 低(凭"是否瓶颈 + 解决后收益")
- **能力描述**:一句话动词短语(查文献 / 算结构 / 实验测样 / 数据建模 / 出图 / 写本子...) —— **不写 skill 名**,让 LLM 后续按当时看到的 skill 清单自匹配
5. 预览给用户,问:"叶子节点是否漏了?优先级判断对吗?"
6. **BLOCKING:用户确认后才进阶段三**
### 阶段三: 分支深化(按叶子类型选 framework)
对**高优先级**叶子节点,按类型走对应分支:
| 叶子类型 | 读哪份 reference | 做什么 |
|---|---|---|
| **根因型**(为什么 X 异常 / 不达标) | `root_cause.md` | Fishbone 列广 → 5Whys 深挖优先支 |
| **创新型**(怎么突破常规 / 找新路径) | `innovation.md` | First-principles 拆假设 → TRIZ 矛盾矩阵找发明原理 |
| **优化型**(多因素调参找最优) | `doe_planning.md` | 选 DoE 类型(正交 / Plackett-Burman / 响应面)→ 输出实验设计表 |
把分支结果写到 `analysis.md` §5(每个高优先叶子一小节)。这一步**不每个叶子都卡** —— 一次性写完高优先叶子的深化分析,最后整体给用户看。
### 阶段四: 实施路线图 + 接力
`analysis.md` 写 §6 实施步骤、§7 风险与备选、§8 TODO。
**§6 每一步要标四件事**:
- **干什么**(动词开头)
- **用什么能力**(一句话能力描述,**不写 skill 名**,让用户 / LLM 自路由)
- **产物**(交付物名 + 格式)
- **判停条件**(什么时候算这步做完)
最后给用户:
- `analysis.md` 路径
- 建议"下一步用 X 能力推进"(X 是能力描述,LLM 按当下 skill 清单匹配 skill 名,不在 SKILL.md 写死)
- TODO 待补项清单
## 工作目录
`<task_dir>` = system prompt 给的绝对路径。本 skill 只写 **`<task_dir>/analysis.md`** 一个文件,不需要 `figures/` / `sections/` / `source/` 子目录 —— analyze 是引导式分析,无大型多文件产物。
需要参考素材时:让用户提供材料路径,不要自己 fetch / search(那是下游 skill 的事)。
## 反模式
- 阶段一不让用户确认 PICO 就开拆解(O 没量化的 issue tree 拆出来全是空话)
- Issue tree 拆到 4 层以上(LLM 容易堆细节,3 层足够 R&D 决策用)
- 叶子节点写"用 research skill"/"用 stats_ml skill"(skill 名硬编码,将来 skill 改名要回来改;用能力描述代替)
- 用户已经知道要做什么时强行让填 PICO(走对应 skill 即可,不要浪费时间)
- 真去执行子问题(查文献 / 算 XRD / 跑回归) —— analyze 只做"想清楚",执行交棒下游
- 编造文献 / 数据支撑某个分支的可行性(不知道就标 `<TODO>` + 建议接 research 验证)
- TRIZ / DoE 全套强推 —— 只在叶子节点性质匹配时用对应分支,不为了用框架而用
- 报告写成学术综述(分支只是工具,产物是路线图不是 paper)
## 输出
完成后给用户:
- `<task_dir>/analysis.md` 路径
- PICO 表(回顾用)
- 高优先级叶子节点清单(3-5 个)
- 推荐下一步:"先用 <能力描述> 推进 <某叶子>" —— 由 LLM 按看到的 skill 清单匹配
- `<TODO>` 待补项