Weekly Report Summary(周报汇总技能)
本技能用于将中心成员提交的多份个人周报(DOCX 格式)自动解析、去重合并,并通过调用 htmltoword-service 转换服务,生成与样例模板视觉效果、章节结构完全同构的中心周报汇总文档(HTML + DOCX)。
核心功能特性
- 同构格式与目录大纲还原:
- 输出的中心周报与个人周报在标题层级、表格结构、字体规范(方正小标宋/黑体/仿宋/楷体)、页边距规范上完全同构;
- 自动在 OpenXML 底层注入 1 级(w:val="0")、2 级(w:val="1")、3 级(w:val="2")大纲级别属性(<w:outlineLvl>),使 Word/WPS/腾讯文档的左侧导航窗格(大纲目录)精准呈现 1~3 级完整目录树,并支持 Word 自动提取生成目录(TOC)。 - 多周报智能去重与人员标注:
- 结构化文本条目:按【客户名称--项目名称】主键聚合多人的工作内容与后续进展,在条目末尾智能追加(姓名1、姓名2)。
- 表格类事项:按【商机名称 / 项目名称 / 发布主题】主键去重合并行;有负责人列的自动聚合多人(如张三、李四),无负责人列的在项后标注人名。
- 特别重要的事情:合并多人的重点汇报内容并去重标注作者。 - 填报说明规范完整保留与空表同构兼容:
- 完整保留各级标题与表格下原有的(填写说明:...)、(填写规范为:...)等 11pt 仿宋斜体规范提示语;
- 无论某板块是否有人填写,均保留原始表格空行与章节结构,保持周报版面与原模版 100% 结构同构。 - MCP 在线转换服务(强制配置):
- 通过 Streamable HTTP 协议调用htmltoword-service的/mcp/接口(tools/call,工具名html_to_docx),携带 Bearer Token 鉴权并自动下载交付产物。
- 用户首次使用时必须配置 MCP 服务地址和 Token(通过--set-mcp-url和--set-token持久化保存),未配置前 Agent 必须主动询问用户,禁止绕过询问自行用本地或其他方式生成 DOCX。
Agent 执行流程与对话引导规范
当用户触发本技能时,Agent 必须严格按以下顺序执行,不可跳过任何前置步骤:
1. 【强制】检查转换服务连通性
- 必须先执行
python scripts/main.py --check-service探测当前环境是否配置了可用的htmltoword-service。 - 若返回
[离线/未配置]或退出码非 0: - 禁止直接执行合并汇总命令(
python scripts/main.py -i ...); - 必须在对话中主动询问用户:"当前尚未检测到有效的 Word 转换服务(MCP 地址)。请提供您的
htmltoword-service服务地址(例如:http://<your-server>:8002/mcp/)和鉴权 Token。" - 收到地址和 Token 后,立即持久化:
bash python scripts/main.py --set-mcp-url "<用户提供的URL>" python scripts/main.py --set-token "<用户提供的Token>" - 保存后重新
--check-service验证在线,再进入步骤 2。
2. 收集与解析个人周报
- 识别用户上传或指定目录下的个人周报文件(
.docx); - 若用户未指定输出名称或日期区间,自动从周报内容/文件名提取。
3. 执行合并与转换
- 服务在线后,运行汇总指令:
bash python scripts/main.py -i <输入周报路径或目录> -o output -n <汇总文档名称> - 若执行后退出码非 0(例如
service_status=no_service时退出码为 2,HTML 已生成但 DOCX 未生成): - 不得视为任务完成,需回到步骤 1 询问用户配置服务地址与 Token;
- 可先用
present_files向用户展示已生成的 HTML 预览,再继续引导配置。
4. 交付与结果呈现
- 使用
present_files立即向用户展示生成的.docx与.html文件; - 在对话中输出本次汇总的员工清单、合并去重亮点和统计摘要。
目录结构
weekly-report-summary/
├── SKILL.md # 技能定义与执行指南
├── requirements.txt # 依赖声明(仅需 python-docx)
├── .gitignore # 忽略本地输出、样例与配置
├── scripts/ # 核心处理脚本
│ ├── config_manager.py # MCP 服务地址与 Token 动态配置管理
│ ├── schema_config.py # HTML 样式规范与表格元数据定义
│ ├── extractor.py # DOCX 周报结构化解析器(含 OpenXML 编号还原)
│ ├── merger.py # 业务主键去重、多人聚合与人名合并引擎
│ ├── html_builder.py # 同构 HTML 排版渲染器
│ ├── converter.py # 智能 MCP/REST/本地 DOCX 转换客户端(含实线边框后处理)
│ └── main.py # CLI 统一执行入口与服务配置接口
└── output/ # 汇总产物输出目录(.gitignore 忽略)
CLI 执行与配置说明
1. 配置管理
# 检查当前转换服务连接状态
python scripts/main.py --check-service
# 持久化设置 MCP 转换服务地址
python scripts/main.py --set-mcp-url "http://<your-server>:8002/mcp/"
# 持久化设置鉴权 Token
python scripts/main.py --set-token "your-auth-token"
2. 执行周报汇总
# 扫描指定目录下的所有个人周报并合并输出
python scripts/main.py -i "./reports" -o "output"
# 指定特定周次区间与输出名称
python scripts/main.py -i "./reports" -o "output" -d "2026.8.17-8.21" -n "业务中心周报汇总-第34周"
# 临时指定 MCP 服务地址执行(不覆盖持久化配置)
python scripts/main.py -i "./reports" --mcp-url "http://<your-server>:8002/mcp/"