# 会议纪要提速工具 创建人员:Codex 文件职责:说明逐字稿预检索引、Markdown 转 PDF、PDF 自动 QA 与联系表生成工具的运行方式和边界。 管理规范/模板:`../../../dev-doc/编码规范.md`;`../../../ana-doc/会议纪要/会议纪要整理规范.md`。 引用文件:`meeting_minutes_tool.py`;`../../test/test_meeting_minutes_tool.py`;`../../../dev-doc/ana-doc/会议纪要提速工具说明.md`。 记录方式:覆盖式工具说明;公开接口或验收规则变化时同步更新。 ## 1. 作用 工具只自动化机械步骤,不替代会议内容判断: 1. `index`:从原始逐字稿建立时间轴、政策、产业、公司/资产、数字、问答、风险和待核对候选索引。 2. `pdf`:将最终校对完成的 Markdown 原子生成同内容 PDF。 3. `qa`:重新打开 PDF、提取文字、核对章节、渲染全部页面并生成四页一组的联系表。 4. `deliver`:一次完成 PDF 生成和自动 QA。 人工仍须完成:逐字稿精读、观点归纳、公司名校对、投资建议边界判断,以及最终联系表/逐页视觉验收。 ## 2. 运行环境 - Python 3.11 以上。 - Python 包:`reportlab`、`pypdf`、`Pillow`。 - Poppler:`pdftoppm`。工具优先从 `--pdftoppm`、`PDFTOPPM`、当前 Python 同一运行时和 PATH 依次发现。 - 中文字体:默认从 Windows 字体目录发现微软雅黑/黑体/宋体;也可显式传入 `--font-regular` 与 `--font-bold`。 所有路径均由参数传入,代码不依赖个人目录或固定项目根路径。 ## 3. 推荐流程 ### 3.1 写作前预检 ```powershell python meeting_minutes_tool.py index <逐字稿.txt> --output-dir <临时目录/index> ``` 输出: - `transcript-index.json`:机器可读索引、源文件指纹和顺序/重复检查。 - `transcript-index.md`:精读导航。 索引只帮助定位,不能把候选条目直接当成会议结论。 ### 3.2 Markdown 完成后交付 ```powershell python meeting_minutes_tool.py deliver <会议纪要.md> ` --output-pdf <会议纪要.pdf> ` --qa-dir <临时目录/qa> ``` 输出: - 正式 PDF:写入指定正式路径;先生成同目录临时文件,成功后原子替换。 - `qa-report.json`、`qa-report.md`:自动检查结果。 - `page-*.png`:全部页面渲染图。 - `contact-*.png`:每四页一张联系表。 联系表检查通过后,应清理临时索引、QA 报告和页面图片;正式目录只保留原稿、Markdown、PDF及用户明确要求的其他格式。 ## 4. 自动检查口径 - PDF 能重新打开且至少一页。 - 渲染页数与 PDF 页数一致。 - 无异常空文本页、无替换字符。 - Markdown 标题均可从 PDF 提取文本中找到。 - Markdown 要求免责声明时,PDF 中必须存在。 - 最后一个 Markdown 标题应出现在末页。 - 页面图片尺寸一致。 - Markdown/PDF 归一化文本长度比例不低于 0.90。 自动检查通过不等于视觉验收通过。乱码、裁切、重叠、表格断裂、孤立标题和异常留白仍须看联系表或原始页面。 ## 5. 失败与重跑 - 输入不存在、扩展名不符、缺少 H1、字体/依赖/Poppler 不可用时显式失败。 - PDF 构建失败不会留下看似完成的正式 PDF。 - `index`、`pdf`、`qa` 可独立重跑;Markdown 修改后必须重新执行 `deliver`。 - QA 只读取 Markdown/PDF并写临时报告,不反向修改正式文档或 PDF。 ## 6. 测试 ```powershell python -m unittest -v ..\test\test_meeting_minutes_tool.py ``` 测试覆盖:索引分类、时间戳回退、重复候选、缺失输入、Markdown/PDF/PNG/联系表链路,以及失败时不遗留正式 PDF。