executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
defect-report-generator将缺陷/任务清单 CSV 自动转换成一份自包含的 HTML 测试缺陷报告。当用户给出一份 CSV(含任务状态/标题/负责人/模块/逾期等列)并要求"生成测试报告""出一份缺陷分析报告""根据缺陷清单做统计报告"时使用。脚本仅用 Python 标准库,图表为内联 SVG + CSS(无 CDN),离线可打开。也适用于任务清单、Bug 列表、工单导出的质量分析。
Independent GitHub snapshot · Automated classification · Original documentation governs
把一份缺陷(或任务/工单)CSV 清单,一键生成一份自包含、可离线打开的 HTML 测试缺陷报告。 报告包含:KPI 概览卡片、状态分布环形图、模块分布条形图、各模块状态明细表、负责人分布、 未完成(未关闭)缺陷清单、逾期清单、测试结论与改进建议、数据说明共 8 个章节。
设计要点:仅依赖 Python 标准库(csv/re/math/html/argparse),不联网、不装包;图表手写内联 SVG + CSS,因此双击 HTML 即可打开,不会因缺 CDN 而白屏。
--title / --project /
--period 覆盖,或从 CSV 表头(项目列、开始/截止列)自动推断。/Users/zhushengping/.workbuddy/binaries/python/versions/3.13.12/bin/python3 \
~/.workbuddy/skills/defect-report-generator/scripts/generate_report.py \
"<CSV路径>" -o "<输出HTML路径>" \
[--title "报告标题"] [--project "项目名"] [--period "2026-07-10 ~ 2026-07-31"]
present_files 打开 HTML 预览交付;有必要则补充说明口径。detect_columns() 按关键词模糊匹配表头,定位以下列(找不到则为空,统计降级):
| 逻辑列 | 命中关键词 |
|---|---|
| 状态 | 状态 / status |
| 标题 | 标题 / title / 名称 / summary / 主题 / 描述 |
| 负责人 | 负责人 / 处理人 / owner / assignee / 经办 |
| 模块 | 模块 / module |
| 逾期 | 逾期 / overdue / late |
| 任务ID | 任务id / 缺陷id / bug id / id / 编号 / 序号 |
| 项目/开始/截止 | 项目 / 开始 / 截止·due·完成日期·结束 |
【xxx】 或 [xxx] 解析(extract_module),无括号才回退到模块列,都没有记"未分类"。utf-8-sig → utf-8 → gbk → gb18030 依次尝试,兼容带 BOM / 中文导出的 CSV。业务状态千奇百怪,脚本用关键词顺序匹配把它们归一成 6 个标准桶
(CANON_RULES,顺序很重要,先匹配更具体的):
| 标准桶 | 命中关键词(节选) | 业务含义 |
|---|---|---|
| 已验收 | 已验收/已关闭/验收/closed/verified/已解决 | 测试确认关闭 |
| 已拒绝 | 已拒绝/拒绝/rejected/wontfix/不予修复/不是缺陷/设计如此/重复/不修复 | 开发拒绝或无效缺陷(视为已处理) |
| 修复中 | 修复中/处理中/进行中/in progress/开发中 | 处理中 |
| 已修复 | 已修复/修复/fixed/resolved | 待验证 |
| 待确认 | 待确认/待处理/待验证/待修复/pending/新建/打开/重新打开/待 | 未关闭 |
| 其他 | (以上都不匹配) | 无法归类 |
口径:「未关闭」= 已修复 + 修复中 + 待确认 + 其他; 「解决率」= (已验收 + 已拒绝) / 总数;「关闭率」= 已验收 / 总数。
⚠️ 维护提示:若"修复中"被错误并入"已修复",说明
CANON_RULES里修复中元组不在已修复之前, 保持顺序即可(修复中必须在已修复之上,否则子串"修复"会把两者吞掉)。
CANON_RULES 适配更多状态词;需要 Word/PDF 输出可叠加 docx/pptx 技能。generate_report.py —— 核心脚本,标准库实现,见上方"使用流程"。