Test Report Generator
根据新项目数据生成正式 .docx 检测报告。assets/reference.pdf 是可见版式的最高依据,assets/reference.docx 是可编辑结构参考。开始生成前必须完整阅读 references/pdf-visual-spec.md。报告曲线必须调用 $plot-from-data 的 line_training_curve 视觉体系绘制;结果分析和结论必须调用 $humanizer-zh,采用正式技术文本模式优化。
版式权威顺序
assets/reference.pdf:决定整份报告的页面视觉、字体体系、页眉页脚及分页。references/pdf-visual-spec.md:记录从 PDF 提炼的执行规则和视觉门禁。assets/reference.docx:用户最后校正的前三页 Word 版式基准;第一页必须直接复制模板原始结构,只替换客户、样品、日期、人员等字段,禁止重新绘制封面表格、标签、段落或间距;目录缓存页码等明显错误必须修复。
封面必须直接复用 assets/reference.docx 第一页的原始结构。该第一页中的品牌图片、段落、表格、行高、间距、对齐和字体均不得重新绘制;只替换客户、样品、日期、人员等字段内容。品牌图片仍必须与 assets/brand-header-from-pdf.png 字节一致。不得复制参考报告的签字、印章或旧项目照片。
封面排版还必须遵守:除主标题外汉字为宋体小四;英文为 Times New Roman 10 号并放在对应汉字正下方;左列统一左对齐;编制/审核/批准使用同一左列结构,但右侧不得自动填入姓名,必须留给用户手写签字;审核行右侧固定保留“检测报告专用章”,沿用模板原位置并与上方日期值列对齐;编制行和批准行右侧为空。客户确认提示紧接在样品数量之后。说明页声明和设备部分用宋体四号;“检测地点:”“环境条件:”必须带中文全角冒号,信息区与上方说明正文使用相同左边界,标签及内容全部左对齐,并使用宋体小四。目录文字和页码使用宋体四号加粗;点引导线单独使用约 7.5 pt,形成更小、更密的圆点。正文页眉报告编号使用黑色宋体小四。
报告编号默认由生成器自动分配为 SCXL-YYYYMMDD-N。日期取生成当天,N 为输出目录中当天报告的最小可用顺序号;例如 2026-08-15 的第一份为 SCXL-20260815-1。前缀不得写成 SXCL。
必须保留的报告结构
- 封面:检测单位、报告标题、报告编号、客户、地址、样品、规格、编号、数量、日期、编制/审核/批准空白签字位,以及固定的“检测报告专用章”文字。
- 说明页:固定声明、检测设备、检测地点与环境条件。
- 目录。
1 试验概况:保持示范报告的 1.1-1.9 层级。2 试验内容和结果:仅加入本次实际提供的数据项目。3 试验中出现的问题及处理情况。4 试验结论。5 附件 试验数据:CSV 项目加入完整原始数据表;远场扫描 TXT 的大矩阵只说明文件、尺寸和范围,不展开或嵌入原始矩阵。- 末尾使用“报告结束,以下空白”。
固定声明、品牌元素、页眉页脚、字体、字号、颜色、段落层级、目录点引导线、表格样式、题注样式、页码形式,以 assets/reference.pdf 为准。
输入
优先读取一个报告信息 JSON,字段规范见 references/input-schema.md 和 assets/report-info-template.json。用户也可以在对话中提供这些信息;将其整理成同样的结构后再生成。
数据文件支持以下六类,允许部分缺省:
RCS测试数据_多频点.csv反射损耗_不同厚度.csv复介电常数_样品A.csv复介电常数_样品B.csv屏蔽效能_复合材料.csvs_rcs_*.txt:GBK 编码远场扫描数据,含文件头、//Amplitude和//Phase矩阵。
允许文件名变化,但表头必须能唯一映射到 references/data-mapping.md 中的字段。
工作流
列出全部输入文件并读取报告信息。
校验所有必填元信息、日期顺序、CSV 表头、数值列和图片路径。
对缺失或歧义项一次性向用户提问。不得用示范报告中的项目数据填补新报告。
运行:
python scripts/analyze_test_data.py --input-dir <数据目录> --output-dir <工作目录>/analysis阅读生成的
analysis.json,核对测试项目、单位、统计量和异常警告。明确调用
$plot-from-data,读取其line_training_curve参考参数后运行:python scripts/plot_report_data.py --analysis <工作目录>/analysis/analysis.json --input-dir <数据目录> --output-dir <工作目录>/plots该脚本是本 Skill 对
plot-from-data样式的报告适配器。它保留 sans-serif、四边框、朝外刻度、无网格和白底灰框图例;不得添加原始数据中不存在的训练断点线或参考线。所有 PNG 必须为 300 dpi,并生成plot-manifest.json,记录源 CSV、输出图、SHA256 和 dpi。根据
analysis.json写出结果分析和结论草稿,明确调用$humanizer-zh进行正式技术文本优化。不得采用第一人称、情绪化或口语化表达。删除“测试数据统计结果显示”“测试结果表明”“综上所述”“值得注意”等套话,直接陈述数据;不得修改任何数值、单位、范围、条件和判断边界。将最终文本保存为humanized-text.json。可先运行scripts/prepare_humanized_text.py生成保数值草稿,再按$humanizer-zh审阅。按
references/pdf-visual-spec.md生成报告。生成脚本必须以assets/reference.docx为输入模板,保留第一页所有原始 OOXML/表格/段落/图片/行高/间距,只替换字段值;不得重新生成第一页。运行:python scripts/generate_report.py --info <报告信息.json> --analysis <analysis.json> --plot-manifest <plot-manifest.json> --humanized-text <humanized-text.json> --input-dir <数据目录> --output <输出目录>/检测报告.docx每个测试项目按测试目的、测试步骤、测试结果、曲线图、统计分析文字的顺序编写。图像只能取自
plot-manifest.json,分析文字只能取自humanized-text.json。s_rcs_*.txt必须识别为far_field_amplitude,不得与绝对 RCS 数据混用。正文生成角度-频率热力图、9.5/10.0/10.5 GHz 方向曲线和 0° 频响三图;Amplitude 和 Phase 原始矩阵只作完整性校验,因数据量大不在 DOCX 中展开或嵌入。纵轴和色标使用“远场幅度/dB”,不得使用dBsm。结论汇总各项目的主要指标。用户未提供判定限值时,不得写“合格”“满足标准”等判定性结论。
附件表使用原始 CSV 全量数据,不得抽样或省略。跨页表格重复表头。
目录必须包含 1.1-1.9 和 1.8.1-1.8.2,使用细密点引导线与右对齐的动态页码字段;不得使用手写静态页码。
运行结构验证:
python scripts/verify_report.py --docx <报告.docx> --info <报告信息.json> --analysis <analysis.json> --plot-manifest <plot-manifest.json> --humanized-text <humanized-text.json> --input-dir <数据目录> --brand-image assets/brand-header-from-pdf.png ```
- 验证必须通过
plots_generated_by_plot_from_data、plots_300_dpi_and_complete、conclusions_humanized和humanized_numeric_fidelity四项门禁。 - 只交付
.docx。PDF 或渲染图片只能用于内部质量检查,不作为最终输出。 - 生成脚本必须调用
scripts/refresh_word_fields.ps1,通过 Microsoft Word 刷新并保存PAGE、NUMPAGES和PAGEREF。随后验证目录缓存页码不是全部为1,再导出内部 QA PDF 并检查每一页。前三页与assets/reference.docx核对,整份报告与assets/reference.pdf核对;检查品牌图、字体颜色与大小、目录细密点线和页码、分页、图表清晰度、表格续页、页眉页脚、题注和末页。任一项不一致时修改并重新渲染。
数据安全规则
- 不推断不存在的测量值。
- 不把空值当作 0。
- 不擅自改变单位。
s_rcs_*.txt文件头标明“数据归一化:否”且未提供 RCS 标定时,只能按未标定远场幅度处理;不得写绝对 RCS、隐身性能提升或合格性判断。- 不用文件名替代无法确认的样品名称。
- 发现日期逆序、非数值数据、列长度不一致、重复频点或缺失列时停止并说明。
- 图片缺失时保留明确占位并询问用户;不得使用示范报告旧图片。
- 品牌图片不属于项目现场图片,不得因用户选择“无现场照片”而省略。
- 不得复制参考 PDF 中的签字图和红色印章;它们属于旧报告认证信息。
输出命名
默认:检测报告_SCXL-YYYYMMDD-N.docx,由生成脚本按实际生成日期和当日顺序自动命名。
资源
assets/reference.docx:用户最后校正的前三页格式示范。assets/reference.pdf:可见版式最高依据。assets/brand-header-from-pdf.png:从参考 PDF 原样提取的封面品牌图片。assets/report-info-template.json:标准信息输入示例。references/input-schema.md:元信息字段定义。references/data-mapping.md:五类 CSV 和远场扫描 TXT 的识别与统计规则。references/pdf-visual-spec.md:PDF 版式参数、目录结构与视觉门禁。scripts/analyze_test_data.py:只负责数据校验和统计分析,不绘图。scripts/far_field_data.py:解析和校验 GBK 远场扫描 TXT 的文件头、幅度矩阵和相位矩阵。scripts/plot_report_data.py:适配plot-from-data/line_training_curve视觉体系,生成 300 dpi 曲线和绘图清单。scripts/prepare_humanized_text.py:生成可供humanizer-zh正式技术文本模式审阅的保数值草稿。scripts/generate_report.py:按 PDF 视觉规范生成 DOCX,默认强制嵌入固定品牌图片。scripts/verify_report.py:核验品牌图片、目录/页码字段、附件完整性和占位符。scripts/refresh_word_fields.ps1:使用 Microsoft Word 刷新并保存目录、页码和交叉引用字段。