# Lab Report Workflow

> 理工科实验报告生成全流程工作流。当用户要写实验报告/实验预习报告/数据处理报告，或给出实验主题与原始数据要求产出报告时触发。覆盖预习→原始数据→处理计算→图表→讨论→结论→排版七阶段，含占位符参数、五处关键节点确认机制、docx 交付规范与自查清单。

- Skill: `bo55like69/lab-report-workflow` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add bo55like69/lab-report-workflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bo55like69/lab-report-workflow/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Bo55LIKE69 (https://skillmd.com/u/bo55like69)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/bo55like69/lab-report-workflow

---


# 实验报告生成工作流（lab-report-workflow）

一句话：给实验主题 + 原始数据，按七阶段流水线产出一份格式规范、可提交的实验报告。
核心纪律：**不编造数据、文献与结论**——缺什么就在报告头部挂"待确认清单"，让用户补。

## 触发场景

- "帮我写 XX 实验报告 / 预习报告"
- "根据这些数据出一份实验报告"
- "把我的实验记录整理成报告"
- 同时出现【实验报告 + 主题/数据/模板】的组合即触发

## 调用参数（占位符表）

调用时向用户收集；标 ★ 的有缺省值，用户没给的写入报告头部"待确认清单"，**禁止用想象填充**。

| 占位符 | 含义 | 缺省值 |
|---|---|---|
| `{{EXPERIMENT_NAME}}` | 实验名称 | 必填，没有就先问 |
| `{{COURSE_TEACHER}}` | 课程名 / 任课教师 | 待补充占位 |
| `{{EXP_DATE}}` | 实验日期 | ★ 当前日期 |
| `{{DATA_PATHS}}` | 原始数据文件路径（可多个） | 必填；没有则进"无数据模式"只出框架+空位标注 |
| `{{LENGTH_REQ}}` | 字数 / 页数要求 | ★ 2000–3000 字 |
| `{{GRADING_RUBRIC}}` | 评分标准 | ★ 正确性 40 / 处理过程 30 / 结果呈现 20 / 格式规范 10 |
| `{{TEMPLATE_PATH}}` | 学校或课程模板文件路径 | ★ 无模板 → 使用内置骨架（templates/report_template.md） |
| `{{SOFTWARE_ENV}}` | 实验软件环境（如 ArcGIS Pro 3.x、Python 3.12、MATLAB） | 按实验主题推断，需用户确认 |

## 交互约定：五处强制检查点

以下节点必须**停下来向用户汇报并等确认**，用户明说"继续/直接过"才可跳过；其余阶段连续推进：

- **CP1 数据盘点后**：汇报数据来源、行数/字段、量纲单位、缺失值与异常值处理方案 → 用户确认后才动数据
- **CP2 关键假设与公式选定后**：汇报所用公式、误差模型、有效数字位数约定
- **CP3 中间处理结果出来后**：展示结果表/图的摘要数字 → 确认后再进讨论章节
- **CP4 结论草稿后**：结论逐条过目（尤其"验证成功/失败/偏差超限"等定性措辞）
- **CP5 终稿排版前**：汇报模板匹配度自查结果与遗留"待确认清单"

## 分步执行清单（每步 = 输入 → 动作 → 输出 → 校验）

详细规程见 `references/workflow.md`，此处为概览：

- **阶段0 参数收集**：按占位符表收集/确认参数；无数据时声明进入无数据模式
  校验：`{{EXPERIMENT_NAME}}` 与 `{{DATA_PATHS}}` 至少一项明确
- **阶段1 实验预习**：输入=主题/教材/讲义；动作=写实验目的（3–5 条动词开头）、原理（公式+符号表+适用条件）、器材（软硬件+数据清单）、步骤（编号、可复现）；输出=预习章节
  校验：每条目的有对应步骤支撑；公式有编号与符号说明
- **阶段2 原始数据记录**：输入=`{{DATA_PATHS}}`；动作=读取盘点（行数/字段/单位/缺失/异常）、生成数据概况表；输出=原始数据记录表+概况说明
  校验：与源文件逐项核对；只标注不修改原始值
- **阶段3 数据处理与计算**：输入=阶段2数据；动作=按公式计算并保留中间量、误差分析（绝对/相对误差或不确定度）、统一有效数字与单位；输出=处理结果表
  校验：单位量纲自洽；有效数字与仪器/数据精度匹配；关键数值可复算
- **阶段4 图表绘制与结果呈现**：输入=处理结果；动作=按数据形态选图型、规范标注（轴名+单位+图号图题）；输出=图表集+正文"如图N/表N所示"引用
  校验：每图每表均被正文引用；编号全文连续；图题在图下、表题在表上
- **阶段5 结果讨论**：输入=阶段3–4产物；动作=结果解释、与理论值/文献值对比、误差来源归类（系统/随机/过失）、改进建议；输出=讨论章节
  校验：每个误差来源都能对应到数据中的具体现象，不写空话
- **阶段6 结论**：输入=全篇；动作=写 3–5 条结论，回答实验目的、给出关键数值±不确定度；输出=结论章节
  校验：不引入讨论章节没出现过的新结论、新数据
- **阶段7 排版交付**：输入=全文+`{{TEMPLATE_PATH}}`；动作=套模板（封面/目录/页眉页脚/字体字号）、参考文献按 GB/T 7714、产出 docx；输出=可提交文件
  校验：跑完 `references/checklist.md` 自查清单后再交付

## docx 交付规范（软件操作类实验报告实战经验，GIS/ArcGIS Pro 等适用）

- **改前必备份**：复制一份 `*_操作前备份.docx`，备份成功后才动手
- 正文处理优先走 tencent-docs-routing → 对应 docx skill；批量精确替换、插图题注可 lxml 直改 `word/document.xml`
- **图片题注**：`图N 说明` 格式，图片正下方、居中、宋体/Times New Roman、10.5pt、段前 3pt 段后 6pt；编号全文连续；封面装饰图不编号
- **标题导航**：各级标题段落显式写 `w:outlineLvl`（0/1/2…），Word 导航窗格才会生效；正文段不得残留 outlineLvl
- 参考文献条目、"操作指导见…"等非标题段若被误设 Heading，改回 Normal
- 批量替换时段落坐标：段落 index **直接映射，禁止再 ±1**
- 实验步骤里的参数、工具路径、公式、字段名**原样保留**，文字优化只动措辞不动数值
- 题注命名分工：工具对话框图→"XX工具参数设置"；成果图→"XX结果"；数据展示→"XX数据概况/可视化结果"

## 文件结构（可维护约定）

| 文件 | 职责 | 什么时候改 |
|---|---|---|
| `SKILL.md` | 触发、参数、清单概览、交互约定 | 增删阶段或检查点时 |
| `references/workflow.md` | 七阶段详细规程 | 改流程细节 |
| `templates/report_template.md` | 报告正文骨架（占位符） | 换学校/课程模板 |
| `references/format_rules.md` | 有效数字、单位、误差、图表规范 | 课程有特殊格式要求 |
| `references/checklist.md` | 常见错误自查清单 | 踩到新坑就补一条 |

原则：**流程与模板分离**——换模板只动 `templates/`，增删环节只动 `references/workflow.md`，SKILL.md 保持概览级不膨胀。

