# 系统 Skill 清单

本文列出当前随 `zm-ai-server` 一起部署的系统 skill。系统 skill 在 Tomcat 启动时由 `SystemSkillLoader` 扫描并 upsert 到 `SkillDefinition`，ID 统一为 `sys_<name>`。

## 类型说明

| 类型 | 来源目录 | runtimeKind | 是否可被 `code_exec` 挂载 | 典型用法 |
|---|---|---|---|---|
| 沙箱资源型 | `web/WEB-INF/lobster/deploy/skills/<name>/` | `iterative` | 是，先 `use_skill` 后 `code_exec(activated_skill=...)` | 带 `scripts/`、模板、字体、参考文档等文件，需要在沙箱内通过 `/skill/<skillId>/...` 使用 |
| 纯指导型 | `web/WEB-INF/lobster/skills/<name>/` | `single_shot` | 否 | 只提供方法论、写作规范、检查清单，不需要沙箱挂载 |

## 沙箱资源型 Skill

| skillId | name | 功能说明 | 主要资源/执行方式 |
|---|---|---|---|
| `sys_docx` | `docx` | Word 文档创建、读取、编辑、格式调整、转换前处理 | 官方文档处理 skill，供 `python-docx`、Pandoc、LibreOffice 等工作流参考 |
| `sys_xlsx` | `xlsx` | Excel/CSV 数据处理、公式、格式、图表、表格输出 | 表格生成和分析类脚本参考 |
| `sys_pptx` | `pptx` | PowerPoint 幻灯片创建、编辑、主题、版式、导出 | `pptxgenjs`、LibreOffice 转换、相关参考文档 |
| `sys_pdf` | `pdf` | PDF 读取、拆分、合并、表单、转换和文本抽取 | `pypdf`、Poppler、LibreOffice/Pandoc 相关流程 |
| `sys_web-artifacts-builder` | `web-artifacts-builder` | 构建离线可交付的 HTML/Web artifact | 依赖镜像内预构建的 Node/Web artifact 工具链 |
| `sys_canvas-design` | `canvas-design` | 生成或编辑 Canvas 设计文件、字体和视觉资源 | 沙箱内可访问字体、脚本和设计资源 |
| `sys_meeting-minutes` | `meeting-minutes` | 会议纪要、决策记录、督办事项和责任清单 | `scripts/build_minutes.py`，业务 spec 写入 `/work/meeting_spec.json` |
| `sys_data-cleaning-report` | `data-cleaning-report` | 表格数据质量审计、缺失/重复/异常/字段画像报告 | `scripts/profile_table.py`，默认从 `/inputs/manifest.json` 选择首个表格文件 |
| `sys_statistical-briefing` | `statistical-briefing` | 统计简报、排名汇总、图表和 Word 简报 | `scripts/build_briefing.py`，默认从 `/inputs/manifest.json` 选择首个表格文件 |
| `sys_materials-assembly` | `materials-assembly` | 多文件材料目录、附件清单、PDF 汇编包 | `scripts/assemble_manifest.py`，默认读取系统 manifest，也支持 `/work/materials_manifest.json` |
| `sys_budget-analysis` | `budget-analysis` | 预算、支出、项目资金、付款台账分析 | `scripts/analyze_budget.py`，默认从 `/inputs/manifest.json` 选择首个表格文件 |

## 纯指导型 Skill

| skillId | name | 功能说明 |
|---|---|---|
| `sys_code-exec-guide` | `code-exec-guide` | `code_exec` 使用规范、输入输出目录、跨轮次 artifact 复用、常见错误处理 |
| `sys_doc-coauthoring` | `doc-coauthoring` | 文档协作、改写、审阅、成稿流程 |
| `sys_frontend-design` | `frontend-design` | 前端界面设计规范、交互和视觉质量要求 |
| `sys_gov-writing` | `gov-writing` | 政务材料写作、公文格式、版式参考、行文语气、结构和事实约束 |
| `sys_inspection-checklist` | `inspection-checklist` | 督查检查、问题清单、整改台账和核验口径 |
| `sys_long-doc-authoring` | `long-doc-authoring` | 超长文档分章节生成、Markdown 主源、任务台账、分段摘要、合并校验和最终 Word/PDF 渲染流程 |
| `sys_policy-brief` | `policy-brief` | 政策解读、要点提炼、任务拆解和影响分析 |
| `sys_procurement-review-assist` | `procurement-review-assist` | 采购材料辅助审查、合规风险点和材料完整性检查 |
| `sys_public-disclosure` | `public-disclosure` | 政务公开稿件、公开属性、敏感信息处理和发布口径 |

## 使用约束

- 模型先通过 `list_skills` 看到 `skillId/name/description/runtimeKind`，命中后调用 `use_skill(skillId)` 读取完整 `SKILL.md`。
- `use_skill` 每次都返回完整 guidance；重复调用会记录 `duplicate=true`，但不会省略正文，避免历史 tool result 被压缩后模型读不到方法论。
- 沙箱资源型 skill 要先 `use_skill`，再允许 `code_exec(activated_skill=skillId)` 挂载到容器的 `/skill/<skillId>/`。
- `sys_long-doc-authoring` 对应三个内置工具：`long_doc_create_project`、`long_doc_update_node`、`long_doc_merge`；长文档正文应通过这三个工具形成 plan/ledger/leaf/merged Markdown，再用 `sys_docx` 或 `code_exec` 做最终 Word/PDF 渲染。
- `read_skill_resource(skillId, path)` 只用于读取已激活 skill bundle 内的安全相对文本资源，不用于读取用户文件、artifact 或 `/skill/...` 绝对路径。
- `input_refs` 挂载到 `/inputs` 后，真实文件路径以 `/inputs/manifest.json` 的 `path` 字段为准，不依赖 `00-xxx` 这类文件名猜测。
- 业务参数、临时 JSON spec 和中间文件写到 `/work`；最终交付文件写到 `/outputs`。
- 后端重启时，内置系统 skill 会和代码目录对账：新增/修改的目录会 upsert，代码目录中已不存在的 `scope=system` 且 `skillId` 以 `sys_` 开头的 skill 会自动禁用但不物理删除；重新加入目录后会再次启用。管理端创建的 `sk_` skill 不参与文件系统对账。
