办公文档质检专家·多类型一次过
一份办公文档在发出去之前(发给同事、客户、财务或候选人),通常没人帮你看第二遍。
本技能就是那「第二双眼睛」:把文档丢进来,自动认出它是什么,按对应的专业规则跑一遍,
直接告诉你结论——能不能发、哪几条必须先改。
与单个检查工具的区别:你不需要先判断「这是纪要还是议程」,也不用记哪个工具管什么。
识别与调度由本技能完成,你只需要提供文档。
执行原则
- 先识别后调度。 由脚本按形态与关键词判定类型并调度对应检查器,识别不准就用
--type指定或--all全跑;不要凭文件名想当然定类型。 - 只读不改。 全程只读输入文件,不写回、不产出修订稿;不要顺手帮用户改写或重写文档。
- 结论带定位。 每条问题给出严重度、规则码与行号或记录号,并汇总能不能发;不要把规则命中说成事实错误。
- 不判业务对错。 只做要素与风险自查;不要评价业务决策是否合理,就业歧视与隐私提示也不构成法律意见。
何时使用
CRITICAL: 只要用户要在文档或表格发出去之前做一次质检,或问「这份 XX 能不能发」,就必须使用本 skill,即使看起来可以用别的方式解决。
- 一份文档或表格准备发出,想先被人挑一遍毛病。
- 用户问「这份简历行不行」「这个会议纪要能发吗」「这张表有没有问题」「这个流程合不合理」。
- 批量体检:对多份同类文档做统一口径的检查。
- 收到别人发来的文档,需要快速判断交付质量。
何时不该使用
| ✅ 使用 | ❌ 不用(改用什么) |
|---|---|
| 不知道文档属于哪类,想一次过 | 已明确是某一种文档且要深度专项——用对应单包(minutes-lint / resume-lint / roster-lint / process-lint 等) |
| 批量体检多份同类文档 | 要修改文档内容——本 skill 只读不改 |
| 收到别人发的文档,快速判断能不能用 | 要判断业务决策、方案对错——只做要素与风险自查 |
| 想要统一口径的检查报告 | 要法律意见(歧视、隐私、合规)——走法务流程 |
| 文本或 CSV 的结构化要素检查 | 纯数据质量清洗(列数、编码、日期格式)——用 sheet-lint |
易混淆场景
| 用户说的 | 实际意图 | 正确路由 |
|---|---|---|
| 「帮我看看这个」 | 想要结论而不是清单 | 先给「能不能发」,再给问题清单 |
| 「这份简历行不行」 | 简历质检 | 自动识别走简历检查器;要深度改写用 resume-lint |
| 「这个纪要能发吗」 | 纪要发出前检查 | 走纪要检查器;要生成纪要用 minutes-lint |
| 「表格有问题吗」 | 可能是数据质量而非文档要素 | 表格走表头识别;纯数据清洗用 sheet-lint |
| 「帮我改一下」 | 要改内容 | 说明本包只读,先给清单再由用户决定 |
怎么用
python3 scripts/office_audit.py 会议纪要.md # 自动识别 + 检查
python3 scripts/office_audit.py 报销单.csv # 表格走表头识别
python3 scripts/office_audit.py 文档.md --json # 结构化输出
python3 scripts/office_audit.py --sample # 内置问题样例演示
python3 scripts/office_audit.py --list # 列出全部检查器与关键词
python3 scripts/office_audit.py 文档.md --type minutes # 强制指定类型
python3 scripts/office_audit.py 文档.md --all # 同类检查器全部执行
python3 scripts/office_audit.py 文档.md --layout-only # 只查中文排版
- 退出码:
0= 无高风险,1= 存在高风险,2= 用法或输入错误。
覆盖范围
| 文档类型 | 触发关键词示例 | 检查重点 |
|---|---|---|
| 会议议程 | 议程、议题、主持人、参会人 | 议题缺时长/主讲人、时间之和超总时长、无决策事项、议题空泛或过多 |
| 会议纪要 | 纪要、决议、行动项、待办 | 缺决议段、行动项缺负责人或截止时间、要素不全、模糊表述 |
| 对外回复 | 尊敬的、客服、投诉、工单 | 超范围承诺、对抗指责、内部信息外泄、缺致歉与下一步 |
| 招聘 JD | 岗位、职责、任职要求、薪资 | 就业歧视表述、要素缺失(薪资/地点/联系方式)、自相矛盾、空洞要求 |
| 简历 | 简历、教育经历、项目经验 | 只写职责不写成果、时间空档与重叠、敏感隐私信息、无信息量表达 |
| 工作交接 | 交接、下阶段、待定决策 | 五段式缺段、进展未指向产物、技能数量异常、产物内嵌正文 |
| 报销与发票 | 发票号、税号、报销、金额 | 发票号重复与连号、税号格式、金额不可解析、大额与跨年日期、合计对账 |
| 排班表 | 排班、班次、值班、轮班 | 连班与休息不足、单班超长、周班次过多、时段重叠、缺休息日 |
| 业务流程 | 流程、步骤、时长、审批 | 缺负责人/输入输出、等待积压、瓶颈步骤、审批层级过多、依赖成环、增值时间比 |
| 通用表格 | (表头无更强特征时兜底) | 表头为空、列名重复、空行空列、数据类型与日期格式 |
| 中文排版 | (对所有中文文本自动叠加) | 中英文之间缺空格、全半角标点混用、重复标点、连续空行、行尾空白 |
> 议程、流程、通用表格、中文排版使用编号规则码(G1–G11 / P1–P13 / T1–T10 / R1–R5),
> 其余使用语义规则码(如 DUP_INVOICE、ACTION_NO_OWNER、DISCRIMINATION)。
自动识别规则
- 先分形态:
.csv/.tsv走表格链路,其余走文本链路。 - 文本链路:对正文统计各类型关键词命中数,取最高者作为类型;命中为零时退回「文档结构」。
「中文排版」对所有文本叠加执行,不作为唯一类型。 - 表格链路:按表头文字匹配类型关键词,无命中时退回「通用表格」;
命中报销/排班/流程任一类型时,额外叠加通用表格检查。 - 编码:依次尝试
utf-8-sig/utf-8/gb18030,并兼容带 BOM 的 CSV。 - 识别不自信时可用
--type直接指定,或--all全跑。
输出规范
办公文档质检报告
============================================
文档:会议纪要.md
识别为:会议纪要(文本,编码 utf-8)
已执行:会议纪要、中文排版
结果:高风险 3 / 中风险 3 / 低风险 4,合计 10 项
结论:不建议直接发出:存在高风险问题,先改完再发
── 高风险(3)──────────────────────────
[ACTION_NO_OWNER] 第 11 行|会议纪要
问题:行动项缺负责人:张三:尽快把接口文档整理出来
说明:没有具名负责人的任务通常无人推进
建议:补上「负责人:XXX」或「由 XXX 跟进」
- 统一字段:严重度(高/中/低)+ 规则码 + 定位(文本记「行」、表格记「条记录」,全文级问题标「全文」)+ 问题 + 说明 + 建议。
- 结果按「高 → 中 → 低」排序,同类按位置先后。
--json输出同一份数据的结构化版本(含detected、checksRun、counts、issues)。
设计边界
- 纯标准库 Python,只读,无网络请求,无
subprocess/eval/exec/os.system;不修改任何原文件。 - 规则基于文本与表头特征,结构差异大或字段命名非常规时可能漏判;所有结论均定位到行或记录号,便于人工复核。
- 只做「文档本身是否可发出」的要素与风险自查,不判断业务决策是否正确。
- 涉及就业歧视、隐私信息等提示仅供自查参考,不构成法律意见。
- 内置样例中的人名、公司、金额、议题均为虚构演示数据。
- 本包内含改编自 MIT 许可证开源项目的检查器,版权与许可见同目录
LICENSE.md与来源与许可.md。