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(不含台账)。
脚本通用结构(复制后只改数据):
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):
- 备份:修改前先
cp一份.bak.xlsx(若同目录已存在则跳过或覆盖前确认) - 探测结构:用 openpyxl 读文件,逐 sheet 找到最后一个非空数据行(不能只看
max_row,可能有空行) - 追加数据:从
最后数据行+1开始写入,日期列用datetime对象,其余为字符串。任务看板的开始/截止日期列必须把number_format设为m"月"d"日"——若沿用模板行的"常规"格式,日期会显示成 46251 这样的序列数字 - 继承样式:每行逐列
copy()上一数据行的 font/border/fill/alignment/number_format 作为模板(不要只写值,否则新行无边框无字体) - 任务看板 ID:读上一行的 T-XXX 编号,+1 递增分配
- 保存并验证:save 后重新 load 打印新增行,确认列数和内容正确
- 同步本周副本:追加完成后,把台账复制一份(对齐官方模板包的 05 号文件命名)放进本周打包文件夹。若复制报 Device or resource busy,说明文件正被 Excel 打开,提醒用户关闭后重试
- git 存档(目录已 git init 时):
git add -A && git commit -m "WXX: 工作记录追加",与.bak备份互为双保险
追加行核心代码模式:
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条)。
- 基本信息(4列表:日期/姓名/所在小组·项目/导师/今日工作时长/整体状态)
- 今日目标与实际结果(4列:类别/内容/验收标准·证据/完成情况)
- 任务执行记录(6列:序号/Agent模块·任务/输入与方法/今日产出/验证方式·指标/状态与下一步)
- 实验/调试记录(5列:实验ID/假设·问题/配置或变更/结果/结论与下一步)— 无则写"无"
- 风险、问题与支持需求(4列:问题/风险/影响范围/已尝试方案/需要支持)— 无则写"无"
- 明日计划(4列:优先级/计划事项/预期产出/依赖·风险)
- 自评与导师反馈(3列:维度/自评/导师反馈留空)
新增记录结构(6节,对齐 02 模板)
标题「AI Agent 实习生每日新增记录」+ 副标题 + 「适用范围」说明框(3条)。
- 基本信息(4列表:日期/记录人/关联项目/关联模块)
- 新增事项清单(6列:编号/新增类型/标题/来源/价值·影响/处理建议)
- 新知识/新方法沉淀(5列)— 无则写"无"
- 新问题/缺陷记录(5列)— 无则写"无"
- 可复用资产登记(5列)— 无则写"无"
- 是否同步到周报(4列)— 无则写"无"
周报结构(8节,对齐 03 模板)
标题「AI Agent 小团队实习生周报」+ 副标题 + 「周报原则」说明框(3条)。
- 基本信息(4列表:周次/周期/姓名/导师·Reviewer/项目·小组/本周总工时)
- 本周一句话总结(2列:一句话结论/本周最重要证据)
- 本周关键产出(4列:产出类别/具体产出/质量·影响证据/当前状态)
- AI Agent 能力建设进展(4列:能力维度/本周动作/指标或观察/结论)— 无则写"无"
- 问题、风险与决策需求(4列:问题/风险/影响/已采取动作/需要团队决策·支持)
- 个人成长与方法沉淀(3列:本周学到的关键点/对应实践/可复用沉淀)— 无则写"无"
- 下周计划(5列:优先级/计划事项/预期产物/验收标准/依赖)
- 导师评价(3列:评价维度/评分/建议,留空待填)
任务看板(对齐 04 模板,五表联动)
标题「AI Agent 小团队任务看板与导师反馈模板」+ 副标题 + 「使用方式」说明框(3条)。
- 一、任务看板(7列:任务ID/任务名称/负责人/优先级/状态/验收标准/截止日期,T-001递增)
- 二、每日站会记录(5列:日期/昨日完成/今日计划/阻塞/需同步事项)
- 三、导师反馈记录(6列)— 无数据则写"暂无数据"
- 四、阶段评价表(4列:评价维度/观察证据/评分/改进建议,评分留空)
- 五、团队复盘(2列:复盘问题/记录,5个固定问题)
台账(汇总 Excel,对齐 05 模板,6 sheet)
- 使用说明(不动)
- 每日工作记录(13列,数据从第 9 行起,第 4-5 行为本周汇总信息块)
- 每日新增记录(11列)
- 周报(10列)
- 任务看板(11列,T-XXX 全表递增)
- 评价与反馈(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
关键规则
- 不编造用户未提供的信息,缺失项填"-"
- 导师评价/反馈列始终留空,等待导师填写
- 任务看板中 Done 的任务带截止日期,未完成的不填
- 五表联动:各表信息自动流转,保持一致性
- 产出文件的命名严格按格式,便于排序和查找
- 每周文件统一放入文件夹,命名格式:
YYYYMMDD-YYYYMMDD_工作记录汇报_姓名 - 每行数据的列数必须与表头一致,多一列会导致
IndexError。常见易错点:- 日报 experiments:5列 = 实验ID/假设·问题/配置或变更/结果/结论与下一步(不要加适用范围列)
- 日报 risks:4列 = 问题/风险/影响范围/已尝试方案/需要支持
- 周报 outputs:4列 = 产出类别/具体产出/质量·影响证据/当前状态
- 周报 capability:4列 = 能力维度/本周动作/指标或观察/结论
- 周报 growth:3列 = 本周学到的关键点/对应实践/可复用沉淀
- 周报 risks:4列 = 问题/风险/影响/已采取动作/需要团队决策·支持
- 看板 tasks:7列 = 任务ID/任务名称/负责人/优先级/状态/验收标准/截止日期(不要加模块列)
- 台账走 Excel 追加,不生成 Word:追加前先备份
.bak.xlsx;追加行必须copy()模板行样式;日期用datetime对象;改完重新 load 验证;历史信息不删除、不覆盖,只新增。Excel 各 sheet 列数:每日工作记录 13、每日新增记录 11、周报 10、任务看板 11、评价与反馈 9 - 日报和新增记录按天各生成一份(不是周五汇总一份),新增记录编号每天从 NEW-001 重新开始;台账「每日新增记录」sheet 同步写入逐日行
- 任务看板 Excel 的开始/截止日期列:值用
datetime对象 +number_format设为m"月"d"日",禁止序列数字 + 常规格式(会显示成 46251)