# zcbot Skill 清单 服务对象:中国建筑材料科学研究总院 —— 无机非金属材料 R&D(水泥 / 混凝土 / 玻璃 / 陶瓷 / 耐火 / 新型建材) 最后更新:2026-06-01 Skill 总数:13 zcbot 的"skill"是一份可加载的工作流脚本(`skills//SKILL.md` + 配套 templates / scripts / Python helper),模型在识别用户意图后挂载对应 skill,按其内置的阶段化流程产出可交付物。本文档面向**使用方 / 协作方**,按"做什么、什么时候用、什么时候别用、典型产物"组织。 --- ## 速览 | 分类 | Skill | 一句话 | |---|---|---| | 科研写作 | [proposal](#proposal) | 写本子 / 申报书 / 任务书(6 类基金) | | 科研写作 | [patent](#patent) | 写发明专利技术交底书(供代理师转写) | | 科研写作 | [review](#review) | 审稿 / 润色 / 校对(中英文,长文档分段深审) | | 演示出图 | [ppt](#ppt) | 生成 PowerPoint 演示稿(商务红主题,逐页验收) | | 演示出图 | [plot_pub](#plot_pub) | 出版级 matplotlib 学术图(中文 + viridis + 矢量) | | 文献检索 | [research](#research) | 查 paper_server(OpenAlex 元数据 + Sci-Hub 下载) | | 文献检索 | [documents](#documents) | 查内部 7 学科材料知识库(21W+ 论文,跨语言检索;host-side tool 持 key) | | 科研计算 | [pymatgen](#pymatgen) | 晶体结构 / XRD 模拟 / 相图 / Materials Project(host-side tool 持 key) | | 科研计算 | [stats_ml](#stats_ml) | 配方-性能建模与机器学习(三库分工) | | 内容生成 | [imagegen](#imagegen) | 豆包 Seedream 5.0 文生图(¥0.22 / 张) | | 内容生成 | [videogen](#videogen) | 豆包 Seedance 2.0 文生视频(¥1.86 起 / 段) | | 通用 | [analyze](#analyze) | 科学问题拆解 / 引导(模糊命题 → 子问题 + 路线图) | | 通用 | [coding](#coding) | 修代码 / 调试 / 重构 | --- ## 科研写作 ### proposal **撰写中国科研项目申报书 / 课题任务书。** 把课题信息整理成可提交的申报书 .docx。流程是**先定基金类型 → 八条对齐 spec → 逐章列要点 → 起草 → 渲染 docx**,不一口气出全文,每个关键章节"一段一卡"等用户确认。 **覆盖基金类型**: - 国家重点研发计划(`key_rd`) - 国家科技重大专项(`major_project`) - 国自然面上 / 青年(`nsfc_general` / `nsfc_youth`) - NSFC 联合基金(`nsfc_joint_fund`) - 省 / 地方基金(`provincial`) - 横向(`enterprise`) **何时用**:写本子、立项依据、研究方案、技术路线、申报书、任务书、申请书。 **核心能力**: - 6 类基金的章节骨架 + 字数预算 + 必填表格(`fund_types.md`) - GB/T 7714 顺序编码制 + 文献真实性铁律(不允许编造引文) - 评审雷区清单与"不可考核词"过滤(`review_redlines.md`) - 间接费用台阶 + B1-B4 经费表自动生成 - mermaid 技术路线图自动渲染成 PNG 并按 caption 编号插图 - `quality_check.py` 校验:结构完整性 / 假大空 / 占位符 / 指南覆盖度 / 插图引用 **典型产物**:`/.docx`(带目录 + 自动图题 + 图表编号) + sections/ 分章草稿。 --- ### patent **撰写中国发明专利技术交底书(供专利代理师转写为正式申请文件)。** 把项目素材(方案 docx / 汇报 pptx / 论文 pdf / 代码)变成可交给代理师的技术交底书 .docx。流程:**摄取素材 → 挖专利点 → 现有技术检索 → 八条对齐 spec → 逐章起草 → 渲染**。 **何时用**:写交底书、挖专利点、做现有技术检索、把项目材料 / 代码 / 论文整理成可申报的发明专利材料。 **核心能力**: - 专利点分类(方法 / 装置 / 系统 / 介质)+ 三性自检(新颖 / 创造 / 实用) - 客体排除清单(纯商业方法 / 智力活动规则 / 数学算法本身 → 直接淘汰) - 现有技术检索:web_search 搜中国专利文库 + Google Patents + documents 本地命中 - 七章交底书骨架(技术领域 / 背景 / 发明内容 / 实施例 / 有益效果 / 附图说明 / 摘要) - 渲染脚本复用 proposal skill(同样的 markdown + mermaid 约定) - 自查清单:参数 / 公式一致、逻辑闭环、脱敏边界、附图编号 **典型产物**:技术交底书 .docx(7 章,含创新点对照表 + 区别技术特征 + 附图)。 --- ### review **审稿 / 润色 / 校对中英文文本。** 面向中文、英文或中英混排文本。**保住作者意图与事实边界**,再提升结构、语义、连贯性和语言质量。不是只改错别字 —— 全局问题优先于局部润色。 **何时用**: - 用户说"审稿" / "帮我看看" / "润色" / "校对" - 给论文 / 申报书 / 报告 / 邮件 / PPT 文案 / 合同说明 / 宣传稿要求改进 - 要求指出问题、给修改意见、生成修改稿、做前后对照 - 关心读者理解、语气、说服力、专业性、一致性或投稿 / 评审风险 **何时不用**: - 从零起草新文本 → 走对应写作 skill(proposal / patent) - 事实核查 / 文献真伪 / 最新政策 → 先用 research / documents / web 核验 - 代码审查 → 走 coding **审稿顺序**(先大后小,分层处理): 1. 任务与读者 → 2. 结构与主旨 → 3. 语义与事实边界 → 4. 逻辑与连贯 → 5. 表达与风格 → 6. 语言细节 **长文档处理**(≥5000 字 / 8 页 / ≥4 个一级章节): - **阶段 1 骨架扫描**:通读全文,只出"章节目录 + 全局问题表 + 章节粗读印象 + 疑点章节",**不出修改稿**;等用户挑章节 - **阶段 2 分段深审**:用户指定章节后再出"问题表 + 修改稿",每轮 1-3 章 --- ## 演示出图 ### ppt **生成 PowerPoint 演示文稿 (.pptx)。** 把材料(汇报草稿 / 项目方案 / 调研报告)变成可演示的 .pptx。流程:**先定调 → 逐页生成 → 验收**,不一口气把整份 deck 丢出去。 **触发**: - ✅ 用户明确点名 PPT / 幻灯片 / 演示文稿 / .pptx / slide / deck - ⛔ 用户明确说"报告 / 文档 / 纪要"等纯文档产物 → 不走本 skill - ⚠️ 用户说"汇报 / 方案 / 材料"等产物形态不明 → **先反问** PPT 还是 Word/Markdown,确认后再 load **默认主题 —— 商务红**(硬约束): - 主色 `#C00000` / 辅色 `#E15554` / 强调色 `#FFC107` - ⛔ 不允许擅自换色,除非用户明确点其它配色或提供 brand guideline **八条对齐**(spec 阶段定稿): | # | 项 | 默认值 | |---|---|---| | 1 | 画布 | 16:9 (13.33×7.5 in) | | 2 | 页数 | 封面 + 5-8 页正文 + 尾页(Q&A) = 7-10 页 | | 3 | 受众 | 看材料推断:领导汇报 / 同行评审 / 客户 pitch | | 4 | 风格 | 现代简约(白底 + 细线 + 留白) | | 5 | 配色 | 商务红 | | 6 | 字体 | 微软雅黑 + Arial | | 7 | 图标 | Iconify `tabler` 集(主色染色,本地缓存) | | 8 | 图表 | 数据 ≥ 3 个点的页用 matplotlib 配图 | **核心能力**: - 9 种版式起手代码(封面 / 大标题 / 双栏 / 三栏 / 时间线 / 表格 / 图文混排 / 引子 / 尾页) - 业务图标双层兜底(Iconify CDN 拉 SVG → 本地缓存 → unicode 字形) - `apply_brand` 品牌条 + 安全区 / 越界保护 - `quality_check.py` 验收(越界 / 文本溢出 / 颜色一致) - 素材摄取走 markitdown 把 PDF/DOCX/PPTX/XLSX/HTML/URL 统一转 Markdown **典型产物**:`.pptx`(逐页用户确认后 append,可中途修改)。 --- ### plot_pub **出版级 matplotlib 绘图(论文 / 报告 / 申报书用)。** 核心是 `apply_pub_style()` **一键设置 rcParams**(中文字体 + viridis 默认 + 字号 + dpi + 矢量优先),避免每次手动配十几行还忘装中文字体。 **何时用**: - ✅ 写论文要投 *Cement and Concrete Research* / *J. Am. Ceram. Soc.* / *Construction and Building Materials* 等期刊 - ✅ 报告 / 申报书要中文标题 + 中文图例的高 dpi 图 - ✅ 多组样本数据对比(XRD 多谱叠图、强度发展曲线、温度场) - ✅ 双 Y 轴(TG-DSC 是典型) - ✅ 要 SVG / PDF 矢量图给论文 **何时不用**: - ⛔ PPT 里要嵌图 → 走 `ppt` skill(那边已有配色 / 尺寸规范) - ⛔ 交互式探查数据 → 用 plotly / 直接 jupyter - ⛔ 只要看趋势不出版 → `df.plot()` 一行搞定 **典型场景**:XRD pattern(多相叠图 + 标峰)、TG-DSC 双 Y 轴、应力-应变曲线、SEM 标注、多 panel 学术图。 **默认配色**:viridis(jet 是现代审稿雷区)。 --- ## 文献检索 ### research **查 paper_server 文献库(基于 OpenAlex 元数据 + Sci-Hub 下载的内部部署)。** paper_server 是内部 Django 文献库:元数据来自 OpenAlex,PDF / XML 由 Sci-Hub / OpenAlex 异步抓取。**库里主语料是英文**(OpenAlex 主索引英文文献),少量中文。 **何时用**: - 查 / 找 / 看 / 推荐文献 - 要 DOI、要某篇 PDF、要 abstract - 写申报书 / 研究方案 / 调研报告的"国内外现状"段需要真实文献支撑 - 配合 `proposal` skill 的「立项依据」起草 **何时不用**: - 只问通识 → 直接答 - 已经给了具体文献清单 → 直接用,不要二次校验 **关键规则**:`keyword` 优先用英文(库里 95%+ 文献 title 是英文,中文 keyword 命中率很低)。中文术语先转专业英文术语再搜。 **四个 helper**: - `search(keyword, year, year_gte, year_lte, doi, first_author, publication_name, has_pdf, is_oa, limit)` —— SearchFilter 匹配 title / first_author / first_author_institution - `get_paper(id_or_doi)` —— 精准取一篇 - `fetch_pdf(id_or_doi)` —— 拉 PDF 文件 - `fetch_xml(id_or_doi)` —— 拉 OpenAlex 全文 XML **典型产物**:候选文献清单(16 字段) → 选定文献的 abstract / PDF / 引用条目。 --- ### documents **查内部材料学科知识库(document_search API)。** 部署在 `https://ai.ctc-zc.com:8100/api`。后端按 `kb_name` 分库存 7 个材料学科,共 **21W+ 英文学术论文**(Elsevier 期刊为主,DOI 前缀文件名)。每个文档带 `md_content`(整篇 Markdown,LLM 友好)+ 可选原 PDF 下载。 **7 大学科库**(`classification_id` 1-7): | 学科 | 内容 | |---|---| | 胶凝材料 | 水泥 / 混凝土 / 砂浆 | | 陶瓷基材料 | 结构 / 功能 / 先进陶瓷 | | 玻璃基材料 | 平板 / 光学 / 玻璃陶瓷 | | 晶体材料 | 单晶 / 多晶 / 晶体生长 | | 复合材料 | 纤维 / 颗粒 / 层状复合 | | 耐火材料 | 耐火砖 / 不定形 / 高温防护 | | 检验检测 | 表征方法 / 标准 / 仪器 | **核心特色**: - **跨语言语义检索** —— 中文 query 也能命中英文论文(API 后端处理) - **已 Markdown 化** —— LLM 直接读,免 OCR / XML 解析 **何时用**: - 查材料领域文献 / 特定材料性能 / 工艺数据 - 写申报书 "国内外现状" 段(本库 Markdown 比 research 拿到的裸 PDF/XML 更直接可用) **关系**:与 research 互补 —— research 搜全网,documents 是本地预收的材料学科子集。**找材料类文献优先 documents,找其他学科或要 DOI 走 research,两者命中不重叠时可并用**。 **三个 host-side tool**:`document_list_kb` / `document_search` / `document_download`。只有宿主配置 `DOCUMENT_SEARCH_API_KEY` 时注册;key 不进入 sandbox。 --- ## 科研计算 ### pymatgen **无机材料计算(晶体结构 I/O、XRD 模拟、相图、对称性、Materials Project 查询)。** 底层用 pymatgen 官方 API。离线计算在 sandbox 里跑,本 skill 提供 `CEMENT_PHASES` 常量(中文相名 → 化学式映射);Materials Project 联网查询走 host-side tool,`MP_API_KEY` 不进入 sandbox。 **触发**: - ✅ 水泥熟料相 / 玻璃陶瓷物相 / 耐火砖矿物相 - ✅ XRD 谱图反演与正向模拟 - ✅ 晶格参数 / 空间群 / 配位环境 - ✅ 相稳定性 / 相图 - ✅ 查 Materials Project 数据(MP_API_KEY) - ✅ 写 VASP / Gaussian / Quantum ESPRESSO 输入文件 **不触发**: - ⛔ 只问宏观性能(强度 / 导热)→ 走 `stats_ml`(回归建模) - ⛔ 有机分子 / 药物(那是 RDKit 范畴,本仓库未集成) - ⛔ 只要画图,没有晶体计算需求 → 走 `plot_pub` **关键能力 —— 中文相名映射**:`CEMENT_PHASES` dict 收水泥 / 陶瓷 / 耐火 / 玻璃常见相中英文 ↔ 化学式(C3S→`Ca3SiO5`、钙矾石→`Ca6Al2(SO4)3(OH)12·26H2O`、莫来石→`Al6Si2O13`、方镁石→`MgO`...)。用户用中文报相名时先查表转化学式再喂 pymatgen。 **典型工作流**: - 读 .cif / POSCAR / .xyz → `Structure.from_file` - 正向算 XRD pattern → `XRDCalculator`,跟实测谱对比 - 物相对称性 → `SpacegroupAnalyzer` - 凝胶 / 水化产物热力学稳定性 → `PhaseDiagram` + `PDEntry` - 从 MP 拉已知结构 / 性质 → `mp_search_summary` / `mp_get_structure` / `mp_get_entries` --- ### stats_ml **统计建模与机器学习(sklearn / statsmodels / PyMC 三库合一,场景导航选库)。** 服务建材院典型场景:**掺合料配比 → 性能(强度 / 流动度 / 凝结时间)** 的建模与推断。 **三库分工速查**: | 你要做 | 用 | 一句话理由 | |---|---|---| | 要 p-value、置信区间、假设检验 | **statsmodels** | OLS / ANOVA 是 statsmodels 主场,sklearn 不给 p-value | | 要预测精度高,可解释性次要 | **sklearn** | RandomForest / GBDT / XGBoost 是性能预测的现代基线 | | 样本 < 30 且要不确定度估计 | **PyMC** | 贝叶斯给参数后验分布,小样本下比频率派的置信区间更稳 | | DoE 响应面拟合 | statsmodels(二次回归 + ANOVA) | 系数显著性直接读 | | 聚类找异常配方 | sklearn(KMeans / DBSCAN) | 标准工具 | | 降维可视化(配方空间) | sklearn(PCA / t-SNE) | 标准工具 | **触发**: - ✅ 配方-性能建模 / DoE 响应面 / 强度预测 - ✅ 特征重要性 / 假设检验 / 置信区间 - ✅ 贝叶斯小样本估计 - ✅ 聚类异常实验检测 **不触发**: - ⛔ 只问描述性统计(均值方差),pandas + matplotlib 一行搞定 - ⛔ 数据只有 3-5 个点 —— 任何 ML / 统计都不可靠,先补数据 - ⛔ 深度学习(CNN / Transformer)—— 不在本 skill 范围 **典型工作流**: - 配方-性能回归(sklearn 上 Pipeline + 5-fold CV + 特征重要性) - 统计推断(statsmodels OLS / ANOVA + p-value + 置信区间) - DoE 响应面(二次回归 + 主效应 / 交互效应显著性) - 小样本(PyMC 贝叶斯 + arviz 可视化) --- ## 内容生成 ### imagegen **用豆包 Seedream 5.0 生图(`seedream` tool)。** 把"我想要张图"变成一张能用的图。流程:**诊断模糊度(六维)→ 给推断 + 待确认项 → 用户拍板 → 装配最终 prompt → 把 prompt 完整贴给用户确认 → 调 tool**。 **成本**:每次 ¥0.22(`search=true` 加 ¥0.05),3-5 秒出图。 **⛔ 调 tool 前的强制门(铁律)**: 任何情况下,`seedream` tool call 发出去之前,**必须**先把最终装配好的 prompt(含 size / watermark / search 参数)用对话消息明文展示给用户,问"这样画?要改什么?"并 **BLOCKING 等明确确认**。 **触发词**:画 / 绘制 / 出图 / 来张 / 生成图 / 做张 + 图 / 图片 / 图像 / 配图 / 封面 / 概念图 / 效果图 / 示意图 / 场景图 / 海报 / 插画 / 插图 / 封皮 / 头图。 **何时用**: - ✅ 用户明确说"画一张" / "出张图" / "来个封面" - ✅ 拿到 mermaid 结构图后说"太干了想要有质感的版本" - ✅ ppt / proposal 流程中要往 deck / docx 里塞概念图 / 引子图 **何时不走本 skill**: - ⛔ 用户没主动要图 —— 别为"丰富回复"装饰性生图 - ⛔ 用户给参考图说"按这个改" —— Seedream 5.0 是文生图,不接图像输入 - ⛔ 已有合适素材 —— 直接 read / 引用,别重新生成 **关键岔路**: - 节点-箭头-结构关系明确(技术路线 / 流程图)→ **走 mermaid**(矢量、零成本、可编辑) - 视觉冲击 / 美感(汇报封面 / 营销 / 抽象意象)→ **走 seedream** --- ### videogen **用豆包 Seedance 2.0 Fast 生视频(`seedance` tool)。** 把"我想要个视频"变成一段能用的视频。流程类似 imagegen 但**门更严**:**诊断模糊度(六维,含「运动」)→ 给推断 → 用户拍板 → 装配 prompt + 参数 → 完整贴给用户确认 → BLOCKING 等明确确认 → 调 tool**。 **成本**: - 480p / 4s:¥1.86 起 - 720p / 5s:¥4.00 起 - 720p / 15s:¥12+ - 等待:Fast 30-90s / Pro 2-3min **⛔ 比 imagegen 还严的强制门**:视频单价 ¥4 起,**比图贵 10 倍以上**;一次失败 ≈ 18 张错图;等待代价也高。**装配 prompt 不等于授权调用**。 **触发词**:视频 / 动画 / 动起来 / 做个 video / 做段视频 / 出段视频 / 生成视频 / mov / mp4 / 短片 / 镜头 / 运动镜头 / 演示视频 / 动效。 **何时用**: - ✅ 用户明确说"做个视频" / "出段视频" / "动画" / "动起来" / "镜头扫过" - ✅ 用户原本要 ppt,主动问能不能配段视频(介绍价格 + 时长引导决策) - ✅ 拿到 seedream 静态图后说"想动起来"(注意:Phase 1 仅支持 t2v 文生视频,**不支持 i2v** 图生视频) **何时不走本 skill**: - ⛔ 用户没主动要视频 - ⛔ 流程 / 结构动效(节点-箭头逐次出现)→ 是 ppt 动画 / mermaid 的事 - ⛔ 要实拍素材 / 已有视频剪辑 → seedance 是 AI 生成,告诉用户走 unsplash / pexels - ⛔ 用户有具体参考视频说"按这个改" → Phase 1 不支持 i2v / v2v **关键岔路**:静态图够用就别上动态(seedream ¥0.22 vs seedance ¥4 起)。 --- ## 通用 / 元能力 ### analyze **科学问题分析 / 拆解 / 引导。** 用户抛过来一个模糊的高层科研问题,本 skill 引导用户把它**翻译成可操作的子问题 + 实施路线图**,然后把每个子问题接力给合适的下游 skill(proposal / research / pymatgen / stats_ml ...)。 **本 skill 不直接产出最终交付物**(不查文献 / 不写本子 / 不跑模型),只产出 `analysis.md` —— 一个共识性的"问题理解 + 路线图"文件。 **何时用**: - ✅ 用户说"我想搞清楚 / 想研究 / 不知道从哪入手 / 这个问题怎么拆 / 我们能做什么" - ✅ 问题宽泛只到效应层("早强偏低"、"耐久性差"、"性能不稳定"),没到具体变量 / 指标 / 假设 - ✅ 用户在评估要不要立项,问"这个方向值不值得做" - ✅ 用户想在不熟悉的领域结合本院能力做点事,要先理一下问题 **何时不用**: - ⛔ 用户已经写明要做什么(配方对比 / 标准检测 / 文献综述 / 写本子)→ 直接走对应 skill - ⛔ 用户问通识知识 / 名词定义 → 直接答 - ⛔ 用户要审稿 / 改文 → 走 review - ⛔ 用户做异常排查但已经定位到具体环节 → 走 research **四段工作流**: 1. **PICO 化**(BLOCKING)—— P 对象 / I 干预 / C 对照 / O 输出(必须量化:指标 + 单位 + 期望值),跑 FINER 自检 2. **Issue Tree 拆解**(BLOCKING)—— 选拆分维度(机理-现象-工艺 / 输入-过程-输出 / 材料-工艺-装备-检测),拆 2-3 层,每个叶子标"类型(根因/创新/优化) / 优先级 / 能力描述" 3. **分支深化** —— 根因型走 5Whys + Fishbone;创新型走 First-principles + TRIZ 矛盾矩阵;优化型走 DoE 4. **路线图汇总** —— 优先级排序 + 推荐下游 skill + 风险与依赖 --- ### coding **修代码 / 调试 / 实现。** 通用工具足够,没有专属 scripts 或 templates —— 代码任务的多样性来自代码本身。 **核心原则**: - **先看后改** —— grep / glob 定位 → read 上下文 → edit。盲改会出错。 - **改动最小** —— 只动必要行,不顺手重构、不改无关空白 - **edit 唯一匹配** —— old_str 必须在文件里出现且仅出现一次,不够唯一就多带上下文 - **验证优先** —— 项目有测试就 `pytest` / `npm test`;没有就写最小复现脚本 - **不臆造 API** —— 没用过的库先 read 它的源码或文档,不要凭直觉拼方法名 **反模式**(明确禁止): - 一次性 write 整个大文件(改 3 行就别 write 200 行) - 没读过文件直接 edit(大概率 old_str 匹配不上) - 跑测试失败就立刻改测试(先看是测试错还是代码错) **输出**:改完后一两句话说清「改了什么、为什么、怎么验证」,**不复述 diff** —— 用户会自己看。 --- ## 跨 skill 协作 实际任务往往跨多个 skill,典型组合: - **写本子全流程**:analyze(拆问题) → research / documents(查文献) → stats_ml(算配方-性能模型出预实验数据) → plot_pub(出图) → proposal(写本子) → review(审稿) - **写专利全流程**:patent(挖点 + 检索 + 起草) → research(查现有技术) → plot_pub(出附图) → review(终审) - **PPT 汇报**:analyze(提炼论点) → research / documents(找数据 + 引文) → plot_pub(出图) → ppt(组装 deck) → imagegen(可选,做封面 / 引子页) - **晶体计算**:pymatgen(算 XRD / 相图) → plot_pub(出图) → proposal / patent(写到本子 / 交底书里) --- ## 更新方式 - 新增 / 修改 / 删除 skill 后,告诉 Claude Code 更新本文件 - 每个 skill 源在 `skills//SKILL.md`,frontmatter 里有 `description` 字段 - 发给他人时:可直接发 .md(GitHub / VSCode / Typora 都能渲染),或用 pandoc / VSCode "Markdown PDF" 插件导出 PDF