# Reports Summary

> 专业的周报汇总助手，负责将团队成员的周报整理成标准格式的汇总报告，并支持转换为 Word 文档。当用户提及"周报"、"汇总"、"总结"、"报告整理"，或需要处理 .docx 周报文件、生成团队工作汇总、将 Markdown 转为 Word 文档时，**必须**调用此技能。即使只提到"看看这周的工作"、"整理一下大家的工作内容"等模糊表述，也应该使用此技能。

- Skill: `zerone-agent/reports-summary` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add zerone-agent/reports-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zerone-agent/reports-summary/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: zerone-agent (https://skillmd.com/u/zerone-agent)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zerone-agent/reports-summary

---


# Weekly Report Summary Assistant

这是一个专门用于处理团队周报的技能。它可以帮助你从零散的员工周报中提取关键信息，生成结构清晰的汇总报告，并将其转换为正式的 Word 文档。

## 依赖环境 (Prerequisites)

此技能需要以下 Python 库支持：
- `python-docx` - 用于读取和生成 Word 文档
- `markdown` - 用于解析 Markdown 格式
- `beautifulsoup4` - 用于 HTML 处理

如果运行脚本时发现缺少依赖，可安装这些库。

## 工作流程 (Workflows)

### 场景 1: 从周报文件生成汇总

**触发条件**: 用户提供了周报文件或目录路径，或直接粘贴周报内容

- **Step 1**: 读取周报内容
  - 检查用户是否明确指定了文件路径或目录
  - 如果未指定，检查当前目录下是否有 `.docx` 文件
  - 如果找到文件，调用 `scripts/read_reports.py` 读取所有 Word 文档
  - 如果用户直接提供文本内容，跳过文件读取步骤
  - **错误处理**: 如果目录为空或没有 .docx 文件，友好地提示用户并提供替代方案

- **Step 2**: 内容分析与提取
  - **亮点提取**: 识别关键成就、重要进展以及对部门目标有重大贡献的事项
  - **工作总结**: 撰写一段 150-200 字以内的整体工作总结，突出主要成果和影响
  - **分类汇总**: 将所有员工的工作内容按项目或主题分类（如：DeepSeek 一体机、易嘉云算力平台等）
  - **去重合并**: 如果多人参与同一项目，合并相似内容，避免重复
  - **下周计划**: 提炼出 5-10 条重要下周工作项，按优先级排序

- **Step 3**: 生成 Markdown 报告
  - 按照 [输出格式模板](#outputformat) 组织内容
  - **日期提取**: 从各员工周报标题或内容中提取日期信息（如"3.10-3.14"、"3月10日-14日"、"2026.03.10-2026.03.14"等格式）
  - **日期统一**: 将提取到的日期统一格式化为 `yyyy.mm.dd-yyyy.mm.dd` 格式（如 `2026.03.10-2026.03.14`）
  - 如果各员工周报日期不一致，取最早开始日期和最晚结束日期作为汇总范围
  - 如果无法从任何周报中提取到日期，再询问用户:"请提供周报的时间范围（如：2026.03.10-2026.03.14）"
  - 使用三级标题 (`###`) 标识不同项目/主题

- **Step 4**: 保存 Markdown 文件
  - 使用标题作为文件名保存，格式：`工作周报-{部门名称}-{开始日期}-{结束日期}.md`
  - 例如：`工作周报-产品设计及研发-2026.03.10-2026.03.14.md`

- **Step 5**: 用户确认
  - 展示生成的 Markdown 预览
  - 告知 Markdown 文件保存路径
  - 询问用户是否满意，或是否需要调整（如：添加/删除项目、修改表述）
  - 询问是否需要转换为 Word 文档

### 场景 2: Markdown 转 Word

**触发条件**: 用户已有 Markdown 格式的周报，需要转换为 Word 文档

- **Step 1**: 确认转换需求
  - 确认源 Markdown 文件路径
  - **自动命名**: Word 文档名称与 Markdown 标题保持一致
  - 如 `工作周报-产品设计及研发-2026.03.10-2026.03.14.md` → `工作周报-产品设计及研发-2026.03.10-2026.03.14.docx`
  - 用户可以指定其他文件名或路径

- **Step 2**: 执行转换
  - **必须**使用 `scripts/md_to_docx.py` 脚本进行转换
  - 命令格式: `python3 scripts/md_to_docx.py <input.md> <output.docx>`
  - 验证输出文件是否成功生成

- **Step 3**: 交付结果
  - 告知用户 Word 文档的保存路径
  - 简要说明文档包含的内容

## 工具脚本说明 (Tools Reference)

### read_reports.py - 批量读取周报

**用途**: 读取单个 Word 文档或整个目录中的所有 .docx 文件

**用法**:
```bash
scripts/read_reports.py <file_or_directory_path>
```

**输出**: 返回 JSON 格式的文件名和内容映射

**示例**:
```bash
scripts/read_reports.py ./weekly_reports/
# 输出: {"张三_周报.docx": "本周完成了...", "李四_周报.docx": "本周进展..."}
```

**错误处理**:
- 如果路径不存在 → 提示用户检查路径
- 如果目录中没有 .docx 文件 → 提示用户目录为空，询问是否提供其他路径
- 如果文件读取失败 → 记录错误但继续处理其他文件

### md_to_docx.py - Markdown 转 Word

**用途**: 将 Markdown 格式的周报转换为格式规范的 Word 文档

**用法**:
```bash
scripts/md_to_docx.py <markdown_file_path> <word_output_path>
```

**示例**:
```bash
scripts/md_to_docx.py summary.md "周报汇总_2026.03.10-2026.03.14.docx"
```

**功能特性**:
- 自动应用模板格式（template.docx）
- 支持标题层级转换
- 保持列表和段落格式

## OutputFormat

请严格按照以下 Markdown 格式生成周报汇总：

```markdown
# 工作周报-{部门名称}-{开始日期}-{结束日期}

## {部门名称}

{150-200字的工作总结，概括本周主要成果和进展}

### 1、{项目A名称}

{第一段：描述主要完成的工作内容和成果，可包含具体数据}

{第二段：补充说明其他相关工作（可选）}

{第三段：如有更多细节需要补充（可选）}

### 2、{项目B名称}

{按照同样的格式描述该项目的工作内容，一到三段话}

### {其他项目或主题}

{继续按照上述格式描述}

## 下周工作计划

- {下周工作计划第一条，简明扼要}
- {下周工作计划第二条}
- {下周工作计划第三条}
- ...
```

### 格式说明

| 元素 | 格式要求 |
|------|---------|
| 工作总结 | 150-200字，客观概括，段首不加符号 |
| 项目标题 | `### 数字、项目名称`，如 `### 1、DeepSeek一体机` |
| 项目内容 | 一到三段话的工作总结，每段独立成行，段首不加 `-`，客观描述主要进展 |
| 下周计划 | `## 下周工作计划` 下使用列表，每行以 `-` 开头 |

### 日期格式

### 日期处理规则

**自动提取**:
系统会尝试从周报标题和内容中自动识别日期，支持的格式包括：
- `3.10-3.14` → 转换为 `2026.03.10-2026.03.14`（年份取当前年）
- `3月10日-14日` → 转换为 `2026.03.10-2026.03.14`
- `2026.03.10-03.14` → 转换为 `2026.03.10-2026.03.14`
- `2026年3月10日至3月14日` → 转换为 `2026.03.10-2026.03.14`

**多文件日期合并**:
- 如果所有员工周报日期一致，直接使用该日期
- 如果日期不一致，取最早的开始日期和最晚的结束日期

**手动确认**:
- 如果无法自动提取到日期，询问:"请提供周报的时间范围（如：2026.03.10-2026.03.14）"
- 提取到日期后，向用户确认:"检测到周报日期为 2026.03.10-2026.03.14，是否正确？"

## 示例 (Examples)

### 示例 1: 处理多个周报文件

**输入**:
用户说:"帮我汇总一下团队这周的工作，文件在 ./reports/ 目录里，日期是3月10日到14日"

**执行步骤**:
1. 检查 ./reports/ 目录，发现 张三.docx、李四.docx、王五.docx
2. 运行: `scripts/read_reports.py ./reports/`
3. 分析内容，提取关键信息
4. 生成 Markdown 汇总

**输出**:
```markdown
# 工作周报-产品设计及研发-2026.03.10-2026.03.14

## 三、产品设计及研发

本周团队主要聚焦在DeepSeek一体机API开发和易嘉云平台UI设计两大核心项目。整体进展顺利，关键技术难点得到突破，为产品按时交付奠定了坚实基础。

### 1、DeepSeek一体机

本周完成了API接口开发，实现了模型推理接口的封装，优化了接口响应速度，平均响应时间从500ms降低至200ms。修复了3个高优先级bug，包括内存泄漏和并发处理问题。编写了接口文档并完成了代码审查。

协助测试团队完成集成测试，记录了15个测试用例，编写了项目部署文档。

### 2、易嘉云平台

完成了用户界面设计，包括Dashboard和设置页面。与产品团队确认了需求变更，调整了登录流程的设计。制作了高保真原型图，完成了设计评审，整理了设计规范和组件库文档。

## 下周工作计划

- 进行DeepSeek一体机压力测试，验证系统在高并发下的稳定性
- 开始易嘉云平台前端开发，实现登录和Dashboard页面
- 准备上线前的环境配置和最终检查
- 编写技术文档、操作手册和运维手册
- 与后端团队对接API接口
```

### 示例 2: 直接处理文本内容

**输入**:
用户粘贴:"张三：完成了登录模块开发。李四：设计了首页界面。王五：写了测试用例。"

**输出**:
直接生成标准格式的 Markdown（同上格式）

### 示例 3: Markdown 转 Word

**输入**:
用户说:"帮我把 工作周报-产品设计及研发-2026.03.10-2026.03.14.md 转成 Word 文档"

**执行步骤**:
1. 读取 Markdown 文件的标题
2. 自动使用与标题一致的文件名
3. 运行转换命令:

```bash
python3 scripts/md_to_docx.py 工作周报-产品设计及研发-2026.03.10-2026.03.14.md 工作周报-产品设计及研发-2026.03.10-2026.03.14.docx
```

**输出**:
"已成功将 Markdown 转换为 Word 文档，保存在: 工作周报-产品设计及研发-2026.03.10-2026.03.14.docx"

## 最佳实践 (Best Practices)

- **客观专业**: 保持语气客观、专业，避免口语化表达（如"挺好的"、"还不错"）
- **精炼准确**: 每条总结应言简意赅，避免冗长描述，聚焦结果而非过程
- **数据支撑**: 如有具体数据（如"提升50%"、"修复3个bug"），优先保留
- **结构清晰**: 严格遵守各级标题结构，确保文档层次分明
- **隐私保护**: 在最终汇总中隐去具体员工姓名，除非特定事项必须提及负责人
- **合并相似项**: 如果多人做同一件事，合并为一条，如"团队完成API接口开发"
- **优先级排序**: 下周工作计划按重要程度排序，最重要的放前面
- **文件命名一致**: Markdown 文件和 Word 文档的文件名应与标题保持一致

## 常见错误处理 (Error Handling)

| 问题 | 处理方式 |
|------|---------|
| 目录不存在 | "指定的路径不存在，请检查路径是否正确，或上传文件到当前目录" |
| 目录为空 | "该目录下没有找到 .docx 文件。请：1) 确认路径正确 2) 直接粘贴周报内容 3) 上传文件" |
| 文件读取失败 | "部分文件读取失败，已成功读取X个文件。失败的文件：[文件名]，原因：[错误信息]" |
| 内容为空 | "读取到的内容为空，请检查文件是否正常" |
| 日期未提供 | "请提供周报的时间范围（如：2026.03.10-2026.03.14）" |

## 提示词优化建议

如果用户说：
- "看看大家这周干了什么" → 询问是否有周报文件，或直接请用户粘贴内容
- "整理一下工作" → 确认是要生成周报汇总
- "把Markdown转成Word" → 确认文件路径并执行转换
- "生成周报" → 询问数据来源（文件/文本）和时间范围

