zcbot/skills/analyze/SKILL.md

7.0 KiB

name description
analyze 科学问题分析 / 拆解 / 引导。用户提出模糊的高层科研问题(如"想搞清楚 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> 待补项