# DOCX Work Report

> 生成实习生结构化工作记录文档（格式对齐官方「AI Agent 小团队实习生工作记录模板包」）。当用户说"日报"、"新增"、"周报"、"任务看板"、"台账"、"生成docx"、"写日报"、"填新增"、"打包提交"时触发。支持日报、新增记录、周报、任务看板（五表联动）四类 docx 自动生成；台账不生成 Word，而是用 openpyxl 追加到汇总 Excel。输入为口语化的工作内容描述，输出为格式化的 .docx / .xlsx 文件。

- Skill: `14790897/docx-work-report` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add 14790897/docx-work-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/14790897/docx-work-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: 14790897 (https://skillmd.com/u/14790897)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/14790897/docx-work-report

---


# docx-work-report

将口语化的工作内容描述转化为结构化文档，用于实习生/小团队的日常工作记录。**输出格式对齐官方模板包**（01 每日工作记录 / 02 每日新增记录 / 03 周报 / 04 任务看板与导师反馈 / 05 台账 Excel）。日报/新增/周报/任务看板输出为 Word；**台账不生成 Word**，而是用 openpyxl 追加到汇总 Excel。

**注意**：此为通用版，不含具体姓名等个人信息。首次使用需配置姓名、导师和项目名。

## 触发条件

- "日报"、"新增"、"周报"、"任务看板"、"台账"、"生成docx"、"写日报"、"填新增"、"打包提交"
- 用户提供某天/某周的工作内容并要求生成文档

## 依赖

- Python 3.12+，需安装 `python-docx`、`lxml`、`openpyxl`
- 安装命令：`pip install python-docx lxml openpyxl`

## 工作流程

### 第一步：收集信息

**首次使用需用户提供（后续沿用）：**
- 姓名、导师姓名
- 项目名称（填在基本信息"所在小组/项目"栏）

**必填项（用户需提供）：**
- 工作/任务内容（口语化即可）
- 用户给 PR 链接时，产出/证据列直接放对应链接

**可选项（有则填，无则跳过）：**
- 实验记录、调试过程、风险问题
- 导师反馈、每日站会信息
- 下周计划、明日计划
- 能力建设进展、个人成长沉淀（周报第四、六节）

### 第二步：确定输出类型

根据用户请求生成对应文档：

| 用户请求 | 输出文件 | 命名格式 |
|---------|---------|---------|
| 日报 | 日报.docx（对齐 01 模板），**每周一到周五每天各一份** | 姓名-YYYY-MM-DD-日报.docx |
| 新增记录 | 新增.docx（对齐 02 模板），**每天各一份，编号每天从 NEW-001 重新起** | 姓名-YYYY-MM-DD-新增.docx |
| 周报 | 周报.docx（对齐 03 模板） | 姓名-YYYY-WXX-周报.docx |
| 任务看板 | 任务看板.docx（对齐 04 模板） | 姓名-YYYY-WXX-任务看板.docx |
| 台账 | **追加到汇总 Excel，不生成 Word** | 追加到汇总台账 .xlsx |

### 第三步：运行生成脚本

**核心库**：`scripts/generate_all.py` 提供 4 个函数（`create_daily_report`、`create_new_record`、`create_weekly_report`、`create_kanban`）。`create_ledger` 已弃用——台账改用 Excel 追加方式（见下节）。

**实际生成模式**：以已有的数据脚本为模板，复制后只替换 NAME/REVIEWER 和数据区段（`d0622`、`new_0622`、`weekly_data`、`kanban_data` 等变量内容）。一次运行生成该周全部 docx（**不含台账**）。

脚本通用结构（复制后只改数据）：
```python
import sys
sys.path.insert(0, r"<本技能目录>\scripts")
from generate_all import (create_daily_report, create_new_record,
    create_weekly_report, create_kanban)

OUTPUT_DIR = os.path.dirname(os.path.abspath(__file__))
import generate_all; generate_all.OUTPUT_DIR = OUTPUT_DIR

NAME = "填写姓名"
REVIEWER = "填写导师"
PROJECT = "填写项目名"

# 数据定义区（唯一需要修改的部分）
d0622 = { "date": "2026-06-22", "goals": [...], ... }
# ... 更多数据 ...

# 生成区（不变）
create_daily_report(date_str=d0622["date"], ...)    # 日报
create_new_record(date_str=new_0622["date"], ...)    # 新增
create_weekly_report(..., capability_rows=[...], growth_rows=[...])  # 周报（8节）
create_kanban(...)                                   # 任务看板
```

**重要规则**：
- 脚本结构不变，只替换 NAME/REVIEWER 和数据；不要每次重写生成逻辑
- 通过 `generate_all.OUTPUT_DIR` 覆盖输出目录到脚本所在位置
- 日期在表格数据行内使用 `YYYY/M/D`（不补零），由 `format_date()` 辅助
- 基本信息表日期使用 `YYYY年M月D日`，由 `format_date_cn()` 辅助

### 台账生成（Excel 追加方式，不生成 Word）

台账不再生成 docx，而是把本周数据**追加**到汇总 Excel（改前先备份 `.bak`）。Excel 结构对齐官方 05 模板：**6 个 sheet = 使用说明 + 4 个数据 sheet + 评价与反馈**。

**若找不到之前每周叠加的汇总 Excel 文件，先向用户询问其位置或名称，不要自行新建或猜测。**

**Excel 结构（表头行位置与列数）：**

| Sheet | 表头行 | 数据起始行 | 列数 | 追加内容 |
|-------|-------|-----------|------|---------|
| 每日工作记录 | 第 8 行 | 第 9 行 | 13 | 整周逐日任务记录 |
| 每日新增记录 | 第 4 行 | 第 5 行 | 11 | 整周逐日新增事项 |
| 周报 | 第 4 行 | 第 5 行 | 10 | 一行周报汇总 |
| 任务看板 | 第 4 行 | 第 5 行 | 11 | 任务行，ID T-XXX 全表递增 |
| 评价与反馈 | 第 4 行 | 第 5 行 | 9 | 导师反馈/阶段评价行 |

各 sheet 列头（与 05 模板一致）：
- 每日工作记录（13列）：日期/姓名/Agent模块/任务类型/今日目标/实际产出/证据链接/验证方式·指标/状态/工时/阻塞事项/明日计划/导师备注
- 每日新增记录（11列）：日期/新增类型/关联模块/标题/来源/价值·影响/处理建议/是否进看板/是否进周报/证据·链接/备注
- 周报（10列）：周次/周期/姓名/项目·小组/一句话总结/关键产出/指标·证据/问题与风险/下周计划/导师评价
- 任务看板（11列）：任务ID/任务名称/负责人/优先级/状态/Agent模块/验收标准/开始日期/截止日期/阻塞·依赖/备注
- 评价与反馈（9列）：日期/反馈对象/反馈类型/具体反馈/行动项/复查日期/完成状态/评分/备注

注意：每日工作记录 sheet 顶部第 4-5 行是"本周汇总信息块"，追加时**不动**该块，只在第 8 行表头下方追加。模板自带下拉选项（数据验证），实际覆盖范围往往不完整——追加新行前先用 `ws.data_validations` 检查覆盖范围；新行超出范围时，复制原 DataValidation 并扩展其 `sqref`（或确认该列无需下拉后留空）。

**追加流程（openpyxl）：**

1. **备份**：修改前先 `cp` 一份 `.bak.xlsx`（若同目录已存在则跳过或覆盖前确认）
2. **探测结构**：用 openpyxl 读文件，逐 sheet 找到最后一个非空数据行（不能只看 `max_row`，可能有空行）
3. **追加数据**：从 `最后数据行+1` 开始写入，**日期列用 `datetime` 对象**，其余为字符串。任务看板的开始/截止日期列必须把 `number_format` 设为 `m"月"d"日"`——若沿用模板行的"常规"格式，日期会显示成 46251 这样的序列数字
4. **继承样式**：每行逐列 `copy()` 上一数据行的 font/border/fill/alignment/number_format 作为模板（不要只写值，否则新行无边框无字体）
5. **任务看板 ID**：读上一行的 T-XXX 编号，+1 递增分配
6. **保存并验证**：save 后重新 load 打印新增行，确认列数和内容正确
7. **同步本周副本**：追加完成后，把台账复制一份（对齐官方模板包的 05 号文件命名）放进本周打包文件夹。若复制报 Device or resource busy，说明文件正被 Excel 打开，提醒用户关闭后重试
8. **git 存档**（目录已 git init 时）：`git add -A && git commit -m "WXX: 工作记录追加"`，与 `.bak` 备份互为双保险

**追加行核心代码模式：**

```python
import openpyxl
from copy import copy
from datetime import datetime

def append_row(ws, row_idx, data, template_row, max_cols):
    for col_idx in range(1, max_cols + 1):
        cell = ws.cell(row=row_idx, column=col_idx)
        cell.value = data[col_idx - 1] if col_idx - 1 < len(data) else None
        tpl = ws.cell(row=template_row, column=col_idx)
        cell.font = copy(tpl.font)
        cell.border = copy(tpl.border)
        cell.fill = copy(tpl.fill)
        cell.alignment = copy(tpl.alignment)
        cell.number_format = tpl.number_format
```

### 第四步：交付

生成的 docx 文件保存到当前工作区，交付给用户。

**文件夹命名规范**：每周的文件统一放入一个文件夹，命名格式为 `YYYYMMDD-YYYYMMDD_工作记录汇报_姓名`。**文件夹内必须包含台账 Excel 副本**（对齐官方模板包的 05 号文件编号），与 docx 一起打包提交。

## 文档结构规范（对齐官方模板包）

每份文档开头统一为：**文档标题 + 副标题 + 规则说明框**，然后进入分节。

### 日报结构（7节，对齐 01 模板）

标题「AI Agent 小团队实习生每日工作记录」+ 副标题 + 「填写规则」说明框（3条）。

1. 基本信息（4列表：日期/姓名/所在小组·项目/导师/今日工作时长/整体状态）
2. 今日目标与实际结果（4列：类别/内容/验收标准·证据/完成情况）
3. 任务执行记录（6列：序号/Agent模块·任务/输入与方法/今日产出/验证方式·指标/状态与下一步）
4. 实验/调试记录（**5列**：实验ID/假设·问题/配置或变更/结果/结论与下一步）— 无则写"无"
5. 风险、问题与支持需求（4列：问题/风险/影响范围/已尝试方案/需要支持）— 无则写"无"
6. 明日计划（4列：优先级/计划事项/预期产出/依赖·风险）
7. 自评与导师反馈（3列：维度/自评/导师反馈留空）

### 新增记录结构（6节，对齐 02 模板）

标题「AI Agent 实习生每日新增记录」+ 副标题 + 「适用范围」说明框（3条）。

1. 基本信息（4列表：日期/记录人/关联项目/关联模块）
2. 新增事项清单（6列：编号/新增类型/标题/来源/价值·影响/处理建议）
3. 新知识/新方法沉淀（5列）— 无则写"无"
4. 新问题/缺陷记录（5列）— 无则写"无"
5. 可复用资产登记（5列）— 无则写"无"
6. 是否同步到周报（4列）— 无则写"无"

### 周报结构（8节，对齐 03 模板）

标题「AI Agent 小团队实习生周报」+ 副标题 + 「周报原则」说明框（3条）。

1. 基本信息（4列表：周次/周期/姓名/导师·Reviewer/项目·小组/本周总工时）
2. 本周一句话总结（2列：一句话结论/本周最重要证据）
3. 本周关键产出（4列：产出类别/具体产出/质量·影响证据/当前状态）
4. AI Agent 能力建设进展（4列：能力维度/本周动作/指标或观察/结论）— 无则写"无"
5. 问题、风险与决策需求（4列：问题/风险/影响/已采取动作/需要团队决策·支持）
6. 个人成长与方法沉淀（3列：本周学到的关键点/对应实践/可复用沉淀）— 无则写"无"
7. 下周计划（5列：优先级/计划事项/预期产物/验收标准/依赖）
8. 导师评价（3列：评价维度/评分/建议，留空待填）

### 任务看板（对齐 04 模板，五表联动）

标题「AI Agent 小团队任务看板与导师反馈模板」+ 副标题 + 「使用方式」说明框（3条）。

1. 一、任务看板（7列：任务ID/任务名称/负责人/优先级/状态/验收标准/截止日期，T-001递增）
2. 二、每日站会记录（5列：日期/昨日完成/今日计划/阻塞/需同步事项）
3. 三、导师反馈记录（6列）— 无数据则写"暂无数据"
4. 四、阶段评价表（4列：评价维度/观察证据/评分/改进建议，评分留空）
5. 五、团队复盘（2列：复盘问题/记录，5个固定问题）

### 台账（汇总 Excel，对齐 05 模板，6 sheet）

1. 使用说明（不动）
2. 每日工作记录（13列，数据从第 9 行起，第 4-5 行为本周汇总信息块）
3. 每日新增记录（11列）
4. 周报（10列）
5. 任务看板（11列，T-XXX 全表递增）
6. 评价与反馈（9列）

数据通过 openpyxl 追加到汇总 Excel，各表信息与 docx 日报/新增/周报/任务看板保持一致。

## 排版规范（对齐官方模板）

- 页面：A4（21cm × 29.7cm），边距上 1.6cm、下 1.5cm、左右各 1.6cm
- 文档标题：仿宋 20pt 加粗，深蓝 #1F4E79，居中；下方副标题：仿宋、灰色 #666666、居中
- 节标题（一、基本信息…）：仿宋 14pt 加粗 #1F4E79
- 数据表：仿宋 9.5pt；边框单线 0.75pt（#B7CBD8）；表头底纹 #D9EAF7、文字加粗 #1F4E79 居中；数据行首列 #555555、其余黑色
- 基本信息表：4 列 [标签, 值, 标签, 值]，列宽 3.0/5.8/3.0/5.8cm，标签列底纹 #D9EAF7 加粗 #1F4E79 居中
- 规则说明框：1×1 表格，底纹 #F7FBFD、边框 #C7DCE8，标签加粗 #1F4E79，条目 9.5pt
- 正文默认：宋体 10.5pt
- 各数据表列宽已按官方模板逐表固定（见 `generate_all.py` 各函数 `widths=` 参数），不要随意改动
- 日期格式：基本信息表日期用 `YYYY年M月D日`；表格数据行日期用 `YYYY/M/D`（不补零）；文件名用 `YYYY-MM-DD`
- 周次格式：`YYYY-WXX`

## 枚举值参考

### 优先级
P0（阻塞/核心）、P1（重要）、P2（锦上添花）

### 状态
Backlog / Todo / Doing / Review / Done / Blocked

### 新增类型
知识 / 问题 / 机会 / 资产 / 风险 / 需求 / 其他

### 任务类型
学习 / 开发 / 实验 / 调试 / 文档 / 会议 / Review / 其他

### Agent模块
Planner / RAG / Tool Use / Memory / Eval / UI / Infra / Other

## 关键规则

1. 不编造用户未提供的信息，缺失项填"-"
2. 导师评价/反馈列始终留空，等待导师填写
3. 任务看板中 Done 的任务带截止日期，未完成的不填
4. 五表联动：各表信息自动流转，保持一致性
5. 产出文件的命名严格按格式，便于排序和查找
6. 每周文件统一放入文件夹，命名格式：`YYYYMMDD-YYYYMMDD_工作记录汇报_姓名`
7. **每行数据的列数必须与表头一致**，多一列会导致 `IndexError`。常见易错点：
   - 日报 experiments：**5列** = 实验ID/假设·问题/配置或变更/结果/结论与下一步（**不要加适用范围列**）
   - 日报 risks：4列 = 问题/风险/影响范围/已尝试方案/需要支持
   - 周报 outputs：4列 = 产出类别/具体产出/质量·影响证据/当前状态
   - 周报 capability：4列 = 能力维度/本周动作/指标或观察/结论
   - 周报 growth：3列 = 本周学到的关键点/对应实践/可复用沉淀
   - 周报 risks：4列 = 问题/风险/影响/已采取动作/需要团队决策·支持
   - 看板 tasks：7列 = 任务ID/任务名称/负责人/优先级/状态/验收标准/截止日期（**不要加模块列**）
8. **台账走 Excel 追加，不生成 Word**：追加前先备份 `.bak.xlsx`；追加行必须 `copy()` 模板行样式；日期用 `datetime` 对象；改完重新 load 验证；历史信息**不删除、不覆盖，只新增**。Excel 各 sheet 列数：每日工作记录 13、每日新增记录 11、周报 10、任务看板 11、评价与反馈 9
9. 日报和新增记录**按天各生成一份**（不是周五汇总一份），新增记录编号每天从 NEW-001 重新开始；台账「每日新增记录」sheet 同步写入逐日行
10. 任务看板 Excel 的开始/截止日期列：值用 `datetime` 对象 + `number_format` 设为 `m"月"d"日"`，禁止序列数字 + 常规格式（会显示成 46251）

