Skip to content
Back to skills

Thesis Supervisor

ASecurity

本科/硕士毕业论文全流程指导:开题审查、过程稿批注、评语草稿、答辩预判。当教师说「帮我看看开题报告」「写个论文评语」「预判一下答辩会问什么」「论文批注意见整理一下」「这稿子能不能定稿」「学生论文问题在哪」「中期检查意见怎么写」「答辩问题准备一下」「开题报告有没有问题」「论文格式帮我挑挑错」时使用。Triggers: 帮我看看开题报告、写个论文评语、预判一下答辩会问什么、论文批注意见整理一下、这稿子能不能定稿、学生论文问题在哪、中期检查意见怎么写、答辩问题准备、论文格式帮我挑错、毕业论文指导。

  • 11 stars
  • 0 votes
  • 2 copies
  • 3 views
  • Added October 20, 2026
educationpythongobash

Security analysis

A100/100

Scanned October 20, 2026

npx -y skills add EtherealMingo/university-teacher-skills --skill thesis-supervisor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Thesis Supervisor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Thesis Supervisor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/etherealmingo-thesis-supervisor/badge)](https://www.skillsdirectory.com/skills/etherealmingo-thesis-supervisor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: thesis-supervisor
description: "本科/硕士毕业论文全流程指导:开题审查、过程稿批注、评语草稿、答辩预判。当教师说「帮我看看开题报告」「写个论文评语」「预判一下答辩会问什么」「论文批注意见整理一下」「这稿子能不能定稿」「学生论文问题在哪」「中期检查意见怎么写」「答辩问题准备一下」「开题报告有没有问题」「论文格式帮我挑挑错」时使用。Triggers: 帮我看看开题报告、写个论文评语、预判一下答辩会问什么、论文批注意见整理一下、这稿子能不能定稿、学生论文问题在哪、中期检查意见怎么写、答辩问题准备、论文格式帮我挑错、毕业论文指导。"
---

# 毕业论文全流程指导

> **Goal**:把学生交上来的开题报告 / 过程稿 / 定稿,变成**可执行的导师意见**——
> 开题审查给三级问题清单,过程稿把批注**直接写进学生的 Word 文件**(Word 原生批注,
> 学生在自己的文档里逐条看得见),评语按学校模板出草稿,答辩前预判 10–15 个问题。
>
> **产出是草稿与工具,不是结论**:分数、是否通过、是否同意答辩、是否构成学术不端,
> 一律留 `【待教师确认:…】`,由教师签署。AI 不代替导师的判断,也不代替学生写论文。

## 何时使用

- 「帮我看看这个开题报告」(开题审查,阶段一)
- 「论文批注意见整理一下」/「这稿子问题在哪」(过程稿批改,阶段二 —— **本技能核心**)
- 「写个论文评语」/「该填评语表了」(评语草稿,阶段三)
- 「预判一下答辩会问什么」(答辩预案,阶段四)
- 中期检查意见、结题意见、毕业论文格式检查、答辩 PPT 准备

**不适用**:学位论文的**代写**(正文任何一段都不代写);课程小论文的批改(那是作业,走作业批改类技能);
科研项目申报书(走 `grant-proposal`);期刊投稿的审稿意见(走同行评议类技能)。

**一条硬边界**:本技能的所有批注与意见都**指向学生的原文档**,AI 只做「指问题、给方向、定验收标准」。
凡是"把摘要替我重写一遍""帮我写一段文献综述"这类请求,一律拒绝并说明原因。

## 底座(禁止重写)

引用前均已 `ls` 验证存在。

| 路径 | 用途 |
|---|---|
| `skills/office-layer/` | **文件产出唯一通道**;本技能几乎所有交付物都从这里出 |
| `skills/office-layer/scripts/docx_kit.py` | `comment` 写 Word 原生批注(**本技能核心能力**)、`spec` 生成意见表、`inspect` 自检 |
| `skills/awesome-benzi/references/QUALITY_GATES.md` | 质量门与 `blocked` / `needs-review` / `advisory` 三级问题模型,直接映射为批注三级 |
| `skills/awesome-benzi/references/INPUT_MODEL.md` | `IN-QUESTION-001…005`:一次性收集缺失信息(`question-batch`)的规则来源 |
| `skills/awesome-benzi/references/LANGUAGE_MODEL.md` | AI 味与口语化表达治理,用于「口语化表达」类批注的改写判据 |
| `skills/awesome-benzi/references/EVIDENCE_MODEL.md` | 事实分级与核验,用于判断学生文中「无来源主张」 |
| `skills/education-skills/edu-research-methods/references/education-research-design.md` | 研究设计类型与适用条件 → 开题「方法与问题匹配」判据 |
| `skills/education-skills/edu-research-methods/references/quasi-experimental-design.md` | 准实验设计,教育类论文最常被质疑的方法 |
| `skills/education-skills/edu-research-methods/references/mixed-methods.md` | 混合方法设计,用于判断"质性+量化"是否真混合 |
| `skills/learning-education/thinking-toolkit/methods/01-socratic-inquiry.md` | 苏格拉底式提问 → 「提问式批注」与答辩追问的话术来源 |
| `skills/learning-education/thinking-toolkit/methods/09-double-steelman.md` | 双向钢人论证 → 构造最强反驳,用于答辩预案的质疑类问题 |
| `skills/learning-education/thinking-toolkit/methods/05-fact-check.md` | 事实核查流程 → 核查学生文中的数据与主张 |
| `skills/empirical-research/lit-review/SKILL.md` | 文献综述的评述性写法与 referee pass,用于「综述只罗列不评述」类批注 |
| `skills/paper-analyst/` | 论文分析 → 汇报 PPT 的结构化拆解(答辩 PPT 的骨架) |
| `skills/slides-polish/SKILL.md` | 答辩 PPT 视觉打磨 |
| `skills/office-layer/scripts/pptx_kit.py` | 真正生成答辩 PPT 的 16:9 文件,含演讲者备注 |
| `THIRD_PARTY_NOTICES.md` | 溯源与许可证说明 |

**选底座的原则**:批注与文档产出**只有** `office-layer` 一条路;方法学判据查 `skills/education-skills/edu-research-methods/`;
质疑与追问的话术查 `thinking-toolkit`;不做重复实现。

## 前置信息收集(intake,一次性问完)

按 `INPUT_MODEL.md` 的 `question-batch`(`IN-QUESTION-002` 同批合并、`IN-QUESTION-004` 不连环追问),
把下面 11 项**合并成一次提问**。学生层次与论文原件决定了后面全部口径,这两项必须先拿到答案。

| # | 要问的 | 为什么必须问 | 缺失时的安全默认值 |
|---|---|---|---|
| 1 | **层次**:本科 / 学术硕士 / 专业硕士 | 工作量与创新性口径完全不同(专硕偏应用落地) | 按**本科**处理,交付物标注「默认按本科口径,若为硕士请告知重做」 |
| 2 | **学科与专业** | 字数、图表规范、参考文献格式按学科差异极大 | 通用口径 + 标注「请按本学科惯例核对」 |
| 3 | **当前阶段**:开题 / 中期过程稿 / 定稿待评语 / 答辩准备(可多选) | 决定跑哪几个阶段 | 按提供的文件判断;只有开题报告就跑阶段一 |
| 4 | **论文文件(docx)**:开题报告或论文过程稿 | **批注必须落在学生原件上**,没有原件就只剩"另出意见表"这一种弱化形式 | 无原件 → 退化为纯审查意见表,并明确告知教师「未对原件批注」 |
| 5 | **学校评语模板** | 评语栏目与顺序是学校硬性格式 | 用通用五栏(思想态度/工作量/创新性/写作规范/是否同意答辩)+ 标注「结构为通用模板」 |
| 6 | **格式与字数要求**:参考文献格式、正文字数上下限 | 阶段一、阶段二的硬判据 | 参考文献默认 GB/T 7714-2015;字数用参考区间并标注「参考值,以学院规定为准」 |
| 7 | **是否已定稿**:还能不能改 | 已定稿则批注降为「存档意见」,重心转到评语与答辩 | 默认「未定稿」,允许批注要求修改 |
| 8 | **答辩时间与形式**:线上/线下、时长、是否需 PPT | 决定答辩预案的深度与是否出 PPT | 默认线下、15 分钟陈述,出问题预案不出 PPT |
| 9 | **已知合规情况**:数据来源是否规范、是否需伦理审查、有无查重报告结论 | 「数据可靠性」类批注与答辩问题必须建立在此之上 | 一律留 `【待补:…】`,**不臆测** |
| 10 | **交付格式**:docx / pptx / 是否只要 md | 产出物清单 | 默认 docx 为主 |
| 11 | **批注语气偏好**:严格 / 温和 / 只提问 | 影响三档批注的配比 | 默认「必须改 + 建议改 + 提问式」三档混用 |

> **缺什么也不能缺第 4 项。** 没有学生的 docx,`comment` 无处落笔,本技能的核心卖点直接失效——
> 这时要明确告诉教师:「只能另出一份审查意见表,学生需要自己对照修改;把原稿发我可以直接批注在原文件上。」

## 工作流

五个阶段,按教师手上的材料选取。**阶段二是核心,阶段三、四的判断性内容一律留人工确认位。**

---

### 阶段一 · 开题审查

**输入**:开题报告(docx 或 md)、学生层次、学科、学校对开题的字数与格式要求。
**动作**:按下面 10 个维度逐条过,每条给**等级 + 定位 + 问题描述 + 可执行的修改建议**。
等级三级,与 `QUALITY_GATES.md` 的问题模型对齐:

| 等级 | 对应质量门 | 含义 | 处理要求 |
|---|---|---|---|
| **必须修改** | `blocked` | 不解决则研究不成立:问题不清、方法不匹配、数据拿不到、工作量明显不足 | 修改后**必须重审** |
| **建议修改** | `needs-review` | 能通过但质量会打折:综述无评述、创新点表述含糊、进度偏紧 | 鼓励修改,可放行 |
| **通过** | `advisory` 已清 | 该维度无实质问题 | 明确写「通过」,不要空着 |

**审查维度清单(10 项,逐项过,不得跳项)**

1. **选题依据** —— 问题是真实存在的,还是"因为热门"?
   看:有无具体问题来源(产业痛点/教学现场问题/政策要求/文献明确缺口);有无说明"为什么现在做"。
   判"必须修改"的信号:全篇说服逻辑只有「XX 是当前研究热点」;题目宏大(如「人工智能与教育变革研究」)。
2. **文献综述** —— 覆盖、时效、评述、缺口四件事。
   看:文献量(本科 15–30 篇、硕士 50–80 篇,含外文占比);近 3–5 年文献占比;**是否有评述**(按主题/方法族归组并给对比结论);末尾是否明确指出研究缺口并接上本文的研究问题。
   判"必须修改"的信号:通篇 `A(2019)研究了…,B(2020)研究了…` 的流水账;综述讲完直接跳到"因此本文…"而中间没有缺口论证;参考文献列表里有正文从未引用的条目。
3. **研究问题** —— 是否成立(本阶段最关键的一项)。
   看:能不能写成**一个可回答的问句**;是否收窄到可操作范围(对象/场景/时间/变量都清楚);是否有明确的边界界定(不做什么);有无与研究问题对应的假设或子问题。
   判"必须修改"的信号:题目式宏大陈述;一个问题里塞了"现状+影响因素+对策"三层;无法回答"你这句话的答案长什么样"。
4. **技术路线** —— 方法链是否完整、有无断点。
   看:数据获取 → 清洗/预处理 → 分析或建模 → 验证 → 结论,每一环是否都写了;图里的每个方框在正文都有对应说明。
   判"必须修改"的信号:路线图里有方框但正文没讲;从"数据"直接跳到"结论",缺验证环节。
5. **方法与研究问题是否匹配** —— 用下面的对照表判,这是开题报告最常见的致命伤。

   | 研究问题的形态 | 适配的方法族 | 明显不匹配的信号 |
   |---|---|---|
   | 变量间因果 | 实验 / 准实验、回归、DID | 只做问卷相关分析就下因果结论 |
   | 群体差异 | t 检验 / 方差分析 / 非参检验 | 样本量明显不足仍做多组比较 |
   | 影响因素与权重 | 回归 / 结构方程 / 机器学习 | 样本量过小却做 SEM(经验上题项数的 10 倍以下要质疑) |
   | 机制与过程 | 质性访谈、扎根理论、案例研究 | 用一次问卷代替过程机制 |
   | 现状描述 | 描述统计 + 问卷 | 只想描述却宣称"揭示内在机制" |
   | 设计/开发 | 设计研究(DBR)、迭代开发 + 评价 | 只交出作品,没有评价环节 |
   | 教学干预效果 | 准实验、前后测、行动研究 | 单组前后测就宣称"显著有效"(无对照) |
   | 文本/内容 | 内容分析、文本挖掘 | 人工编码无编码者间信度检验 |

6. **创新点** —— 是否可证伪、是否有增量。
   看:能否写成"相对已有工作 X,本文在 Y 环节做了 Z 的改进,由实验 W 验证";本科允许**应用创新/验证性**工作,硕士需有明确增量。
   判"必须修改"的信号:把"用了新模型/新工具"当创新;创新点与研究内容对不上;写成"具有重要理论意义"这类不可证伪的话。
7. **可行性** —— 数据、设备、时间、合规四件事。
   看:数据**怎么拿到**(有无授权/伦理审查,涉及学生、未成年人、患者数据必须有);软件与设备是否具备;时间是否够;合作单位是否已确认。
   判"必须修改"的信号:数据来源写"通过网络爬取"却无合规说明;涉及人的研究无伦理审查环节。
8. **工作量与层次是否匹配** —— 用下面这张对照表,**必须向教师标注"参考区间,各校各学科差异大,以学院规定为准"**。

   | 维度 | 本科 | 硕士(学术型) |
   |---|---|---|
   | 正文字数 | 约 1.0–1.5 万(工科可 8 千–1.2 万) | 约 3–5 万 |
   | 文献量 | 15–30 篇,含 3–5 篇外文 | 50–80 篇,外文占比通常 ≥30% |
   | 方法要求 | 用对一种成熟方法即可 | 需方法组合或改进,并有对比实验 |
   | 数据要求 | 二手数据或小样本可接受 | 需自主采集或较规模数据 |
   | 创新要求 | 应用创新、验证性工作即可 | 需明确增量贡献 |
   | 周期 | 约 3–6 个月 | 约 8–12 个月 |

   (专业硕士按"应用落地 + 工程实现 + 应用验证"口径审,不套用学术型的创新性要求。)
9. **进度安排** —— 里程碑是否可执行。
   看:是否留有**写作时间**(常见错误是把进度排到"实验做完"就结束);是否有预留缓冲;中期检查节点是否对应可交付物。
   判"必须修改"的信号:所有任务压在前两个月;没有写作与修改阶段;里程碑不可验证(如"深入研究相关理论")。
10. **参考文献质量** —— 数量之外的"质地"。
    看:是否以近 5 年为主;是否有核心期刊/学位论文/权威报告;格式是否统一(默认 GB/T 7714-2015);**正文引用与文末列表是否一一对应**(有引无用、有用无引都是问题)。
    判"必须修改"的信号:文献几乎全是网络文章与非学术来源;存在正文未引用的"凑数"条目。

**输出**:`开题审查意见表.docx`(用 `docx_kit.py spec` 生成,表格形式,含人工确认位)。
若教师提供了开题报告 docx,**再加一份批注版**:把意见直接写进开题报告(走阶段二的 `comment` 流程,
锚点可落在表格单元格上——`iter_paragraphs` 会遍历正文与所有表格,已实测可用)。

```bash
PY="skills/office-layer/.venv/bin/python"
export MPLCONFIGDIR=/tmp/mplcache && mkdir -p /tmp/mplcache

cat > 开题审查_spec.json <<'EOF'
{"title":"毕业论文开题审查意见表","subtitle":"(本表为 AI 辅助初稿,结论须由指导教师确认)",
 "sections":[
   {"heading":"一、基本信息","table":{"header":["项目","内容"],
     "rows":[["学生姓名","【待补:姓名】"],["学号","【待补:学号】"],
             ["层次","【待补:本科/学术硕士/专业硕士】"],["学科专业","【待补:学科】"],
             ["论文题目","【待补:题目】"],["审查日期","【待补:日期】"]]}},
   {"heading":"二、审查意见",
    "table":{"header":["序号","审查维度","位置","问题描述","等级","修改建议"],
     "rows":[["1","研究问题","第1节","研究问题表述过宽,未限定到可操作范围,无法判断答案形态","必须修改","请改写为单一可回答问句,明确研究对象、场景与时间范围"],
             ["2","文献综述","第2节","按时间流水罗列,无归组、无对比、无评述;未指出研究缺口","必须修改","按方法族分三组,每组末尾一句对比结论,最后一段明确缺口并接上本文问题"],
             ["3","技术路线","第3节","路线图含「数据预处理」方框,正文无对应说明;缺验证环节","建议修改","补预处理步骤说明,并在建模与结论之间增加验证环节"],
             ["4","进度安排","第5节","任务集中在前两个月,未安排写作与修改时间","建议修改","重排里程碑,预留不少于 6 周写作与 2 周修改"],
             ["5","参考文献","参考文献表","正文引用与文末列表存在 3 处不对应;格式混用","建议修改","逐条核对引用对应关系,统一为 GB/T 7714-2015(请对照贵校规定)"]]}},
   {"heading":"三、审查结论","paras":[
     "本表共列问题 5 项,其中必须修改 2 项、建议修改 3 项。"],
    "placeholder":"【待教师确认:审查结论(同意开题 / 修改后同意开题 / 重新开题)】"},
   {"heading":"四、面谈提示","paras":[
     "建议就「研究问题的可回答性」与「文献缺口的论证链」与学生当面沟通一次。"],
    "placeholder":"【待教师确认:是否安排面谈及时间】"}]}
EOF

$PY skills/office-layer/scripts/docx_kit.py spec --spec 开题审查_spec.json --out 开题审查意见表.docx

# 自检:读回表格数与段落数
$PY skills/office-layer/scripts/docx_kit.py inspect --in 开题审查意见表.docx
```

> 上面 `spec.json` 里的 `placeholder` 字段就是**人工确认位**——它会被渲染成独立的楷体占位段落,
> 在 Word 里一眼可见,教师不改就无法定稿。

**退出条件**:10 个维度全部有等级;「必须修改」项都能落到具体位置(节号/页/图表号);
结论与"是否同意开题"为 `【待教师确认:…】` 占位。

---

### 阶段二 · 过程稿批改(**本技能核心**)

**输入**:学生的论文过程稿 docx、层次与批注语气偏好、`原文段落.txt`(锚点来源)。
**动作**:用 `docx_kit.py comment` 把批注写成 **Word 原生批注**,学生在自己的文档里逐条看到气球批注,
**不是另出一份意见表让学生自己对**。这是本技能与其他"生成意见文档"做法的根本区别。

#### 第 0 步(必做)· 取到逐字一致的锚点原文

`anchor` 必须与原文**逐字一致**,靠人眼从 Word 里抄必然出错(全角/半角标点、中英文空格、
破折号、引号样式)。先把原文段落**原样导出**,锚点只能从这里复制粘贴,不要手打:

```bash
PY="skills/office-layer/.venv/bin/python"
export MPLCONFIGDIR=/tmp/mplcache && mkdir -p /tmp/mplcache   # 受限/沙箱环境的常规预备(office-layer 依赖含 matplotlib;本技能的 docx 命令本身不依赖它,导出无副作用)

# 导出全部段落文本(含表格单元格),作为锚点唯一可信来源
$PY - <<'PY' > 原文段落.txt
from docx import Document
doc = Document("学生论文_过程稿.docx")
n = 0
def walk(d):
    global n
    for p in d.paragraphs:
        if p.text.strip():
            n += 1
            print(f"[P{n}] {p.text}")
    for t in d.tables:
        for row in t.rows:
            for cell in row.cells:
                walk(cell)
walk(doc)
PY

# 同时读回文档结构,确认段落数/表格数/标题,建立"文件确实读到了"的基线
$PY skills/office-layer/scripts/docx_kit.py inspect --in 学生论文_过程稿.docx
```

导出后先通读一遍再动笔:批量批注最容易犯的错是把"必须改"打在了无关段落上。
`原文段落.txt` 含学生未公开论文内容,属敏感中间文件,任务结束后提醒教师删除(见「红线」)。

#### 完整可执行命令

```bash
PY="skills/office-layer/.venv/bin/python"
export MPLCONFIGDIR=/tmp/mplcache && mkdir -p /tmp/mplcache

# 0) 先复制一份原件做工作副本,绝不直接在原件上操作
cp 学生论文_过程稿.docx 学生论文_过程稿_work.docx

# 1) 自检输入:确认能读到段落/表格
$PY skills/office-layer/scripts/docx_kit.py inspect --in 学生论文_过程稿_work.docx

# 2) 写批注:--author 会显示在 Word 批注气球上,写"指导教师"
$PY skills/office-layer/scripts/docx_kit.py comment \
    --in  学生论文_过程稿_work.docx \
    --out 学生论文_过程稿_导师批注.docx \
    --comments 批注清单.json \
    --author "指导教师" --initials "T"
echo "exit=$?"          # ★ 0 = 全部命中;2 = 有锚点未命中,必须修正后重跑

# 3) 自检:读回批注数与批注正文,确认与 JSON 条数一致
$PY skills/office-layer/scripts/docx_kit.py inspect --in 学生论文_过程稿_导师批注.docx
```

`--comments` 也支持 `-` 从 stdin 读 JSON,适合脚本化批量处理:
`... --comments - <<'JSON' ... JSON`

#### comments JSON 格式(完整示例)

顶层是数组,每项三个字段:

```json
[
  {"anchor": "本文采用LSTM模型对交通流数据进行预测",
   "text": "【必须改】方法章节只有模型名称,没有可复现的关键参数:LSTM 层数、隐藏单元数、学习率、batch size、训练/验证/测试集划分比例、训练轮数与早停策略。请补一张参数设置表,并说明参数取值依据(网格搜索/沿用文献/经验值)。"},
  {"anchor": "数据处理流程如图1所示",
   "text": "【必须改】图1在正文中无编号规范,图下无图题。请改为「图3-1 数据预处理流程图」,图题置于图下方,正文引用同步改为「如图3-1所示」,并给坐标轴补上单位与量纲。"},
  {"anchor": "深度学习方法是当前交通流预测领域的主流方法",
   "text": "【建议改】本段属「只罗列不评述」。请按方法族分三组归组,每组末尾给一句对比结论,并在段末指明本文要填的缺口。本段目前无一处引用,无法支撑「主流方法」的判断。"},
  {"anchor": "实验结果表明本文提出的方法效果很好",
   "text": "【建议改】「效果很好」「有明显提升」属口语化且无量化。请补具体指标与对比基线,例如「RMSE 由 X 降至 Y,较 LSTM 基线下降 Z%」,并注明对比实验是否为同数据同划分。"},
  {"anchor": "本文方法具有重要的理论意义和应用价值",
   "text": "【提问式】请自问:本段与摘要第 5 句几乎逐字重复。摘要与结论应分工——摘要给结果概览,结论回应研究问题、说明局限并给展望。你打算怎么区分这两处?"}
]
```

可选字段:每项还能带 `author` 与 `initials` 覆盖全局设置(用于"导师批注 + 企业导师批注"混排场景):

```json
{"anchor": "…", "text": "…", "author": "企业导师", "initials": "E"}
```

#### 锚点(anchor)的七条硬规则

1. **必须逐字一致**,含全部标点、全角/半角、中英文空格。差一个字符就命中失败——
   这就是为什么要先导 `原文段落.txt`,**锚点只能复制粘贴,不能手打**。
2. **必须在同一个段落内**。跨段落、跨标题的锚点一定失败;脚本会先合并相邻同格式 run
   (`_merge_identical_runs`),所以被 Word 拆散的 run 大多能救回,但跨段落救不回。
3. **长度建议 8–25 字**。太短容易撞车,太长容易因隐藏格式失败。
4. **必须唯一**。同一句话在文中出现两次时,脚本只锚在**第一次出现**的位置。若两处都要批注,
   锚点要带上前后文使其唯一,例如把"因此本文采用该方法"扩成"综上所述,因此本文采用该方法"。
5. **表格单元格内的文字可以锚定**(`iter_paragraphs` 遍历正文与所有表格,含嵌套表,已实测)。
   所以课程目标表、指标体系表、参数表都能直接批注。
6. **不要锚在空白或纯符号上**。空锚点会被记为 `空锚点` 并计入 `failed`。
7. 公式、图片、脚注、页眉页脚内的文字**不在** `iter_paragraphs` 范围内,锚不到——
   这类问题改用「文字附近的一句话」作锚点,在批注正文里指明"上方公式(3-2)"。

#### 退出码与失败处置(不要忽略非零退出码)

脚本返回 JSON:`{"placed": N, "failed": [...], "detail": [...]}`。**`failed` 非空时进程以退出码 2 结束。**

```json
{
  "placed": 5,
  "failed": [{"anchor": "本文采用 LSTM 模型对交通流数据进行预测",
              "reason": "正文中未找到该文本(可能跨段落或被拆分)"}],
  "detail": [{"anchor": "数据处理流程如图1所示", "chars": 11}]
}
```

处置流程:**读 `failed` 的 `anchor`(打印时截断到 30 字,用你 JSON 里的原文比对)→ 回 `原文段落.txt`
重新复制正确片段 → 修正 JSON → 重跑**。在 `failed` 清零、退出码为 0 之前,这份批注文档**不许交付**。
常见的三种失败原因:手打了锚点(空格/标点不符)、锚点跨了段落、锚点在公式或图片题注里。

#### 批注分级策略(三档 + 一档表扬)

| 前缀 | 用在哪 | 话术要求 | 本科/硕士建议条数 |
|---|---|---|---|
| `【必须改】` | 硬伤:方法缺参数、数据无来源、结论越界、合规缺失、抄袭风险段落 | 直陈问题 + **给出改法与验收标准**,让学生知道改到什么程度算过关 | 不限,但应聚焦最关键处 |
| `【建议改】` | 提升项:综述评述不足、图表可读性、语言口语化、论证跳跃、格式不统一 | 建议 + 举一个具体例子 | 不限 |
| `【提问式】` | 逻辑不自洽、创新点存疑、学生必须自己解释的设计选择 | **只问不答**,留 2–3 个追问,逼学生自己回答(话术来源:`thinking-toolkit/methods/01-socratic-inquiry.md`) | 3–6 条 |
| `【保留】` | 写得确实好的地方(可选但推荐) | 具体指出好在哪,避免整篇都是批评 | 1–3 条 |

**总量控制**:本科过程稿 15–25 条,硕士 25–40 条。首稿**不要超过 40 条**——一次给太多学生改不动,
宁可分轮次:第一轮打"必须改",第二轮再补"建议改"。

#### 学生论文常见问题清单(批注对照用,逐项可查)

1. **综述只罗列不评述** —— 典型形态就是 `A(2019)研究了X,B(2020)研究了Y,C(2021)研究了Z` 一路排下去。
   批注要求:按主题或方法族分 3–4 组归组;每组末尾一句对比结论(谁更好/分歧在哪/为什么);
   综述末段必须明确研究缺口,并直接接上本文的研究问题。
2. **方法章节缺参数设置** —— 只写"采用 LSTM / 随机森林 / 结构方程模型",没有可复现信息:
   机器学习缺层数、隐藏单元、学习率、batch size、随机种子、数据划分比例、训练轮数、早停策略、框架版本;
   问卷缺量表来源、信效度检验(Cronbach's α、KMO、因子载荷)、发放与回收过程;
   统计模型缺软件与版本、估计方法、拟合指标。批注要求:补一张参数设置表 + 参数取值依据。
3. **图表无编号无标题** —— 只写"如图1",图下无图题,表无三线表,坐标轴无单位。
   批注要求:图/表按章编号(图 3-1、表 3-2);**图题在图下方,表题在表上方**;
   正文必须引用每一张图表(有图无引是问题);坐标轴写清变量与单位;表用三线表。
4. **结论与摘要重复** —— 结论段与摘要逐字或近乎逐字重复。批注要求区分分工:
   摘要 = 问题 + 方法 + 主要结果 + 结论,各 1–2 句;结论 = 回应研究问题、说明创新点、**明确局限性**、给后续展望,不与摘要重复措辞。
5. **参考文献格式不统一** —— 中英混排、GB/T 7714 与 APA 混用、期刊名缩写不一致、
   缺卷期页码或 DOI、中英文标点混用。批注要求:统一到学校规定格式(默认 GB/T 7714-2015),
   逐条核对;并单独提示"正文引用与文末列表是否一一对应"(有引无用、有用无引都要指出)。
6. **口语化表达** —— "效果很好""很多学者""众所周知""大大提升""非常好""我们觉得""差不多"。
   批注给出**替换方向与验收标准**(如"改为可量化表述:给出指标数值与对比基线"),
   改写判据参照 `awesome-benzi/references/LANGUAGE_MODEL.md`。
   > 注意给的是**方向**,不是替写的整段正文。
7. **抄袭风险段落特征**(**只提示核查,绝不下结论**)
   下列信号出现时,出「必须改」批注要求教师与学生核查:
   - 大段文字与所引文献句式高度接近,却无引用标注;
   - 术语与全文用语习惯突然不一致(全文用"学习者"突然变"学生"、全文用"教师"突然变"老师");
   - 翻译腔明显(英文语序直译,如"这是一个事实,即……");
   - 引用标注与实际文献内容对不上(标了 A 文献,讲的却是 B 的内容);
   - 段落语言风格与前文突变(突然变简洁或变华丽);
   - 数据、案例、公式无任何来源;
   - 文末列表里有正文从未引用的条目(凑数嫌疑)。
   批注话术模板:「【必须改】本段与所引文献表述高度接近,请改写为转述并确认引用标注位置;
   另请在文中补充本文工作与该文献的差异说明。」
   > **红线**:导师有义务提示可疑处,但**不得凭印象定性为学术不端**。查重结论以学校指定系统的
   > 报告为准,定性走学院/学术委员会程序。批注里只能写"请核查",不能写"构成抄袭"。
8. **其他高频问题** —— 结论回答的不是开题时提的问题(前后不对应);样本量明显不足却下普遍结论;
   单组前后测宣称"显著有效";把"计划做的事"写成"已经做完"(`QUALITY_GATES.md` 的 `QG-CONTENT-003` 明确要求阻断);
   错别字与全角半角混乱;页眉页码不一致;目录页码未更新;致谢过长;摘要超字数;
   研究局限写成"研究时间有限"这类套话而非真实局限。

#### 批注撰写规矩

- **每个"必须改"都要落到可执行动作**。不写"综述写得不好",写"请把 2.1 节按方法族分三组,
  每组末尾加一句对比结论,末段补研究缺口"。
- **验收标准要写出来**,让学生知道改到什么程度算过关。
- **不代写正文**。可以给结构要求、验收标准,以及**不超过一句**的示范句式并明确标注
  「仅示范句式,请自行改写」;**禁止提供可直接整段粘贴的正文**。摘要、综述、结论的成段代写在红线之内,一律拒绝。
- **涉及判断的不写结论**。分数、是否通过、是否构成学术不端,在批注里写"请与导师面谈"或留人工确认位。
- **批注语言对学生**,第二人称、具体、不带情绪。

**输出**:
- `学生论文_过程稿_导师批注.docx` —— **核心交付物**,Word 原生批注(真 `word/comments.xml` + `commentRangeStart/End`,Word 打开即显示);
- `批注清单.json` —— 批注源文件,便于教师复核、复用与二次修改;
- `批注明细.md` —— 人可读的「批注 ↔ 锚点 ↔ 等级」对照表,教师快速扫一遍用。

**退出条件**:`comment` 退出码为 0(`failed` 为空);`inspect` 读回的 `comments` 数等于 JSON 条数;
三档前缀齐全;未覆盖学生原件。若教师提供了 Word 评语模板,还要把**建议文本以批注形式
写在学校模板的对应栏目单元格上**(表格锚点已实测可用),教师在 Word 里看着改。

---

### 阶段三 · 评语生成

**输入**:论文(定稿或批注版)、学校评语模板、层次、教师对学生的实际情况说明(沟通频次、
独立完成度、进度遵守情况等——**这些不能由 AI 编**)。
**动作**:按模板栏目逐栏出草稿。通用五栏及写作要点:

| 栏目 | 必须写到的内容 | 最容易犯的空泛病 |
|---|---|---|
| **思想态度** | 进度遵守情况、与导师沟通情况、学术诚信、独立完成程度 | 只写"态度端正,认真负责"——无一处事实支撑 |
| **工作量** | **给具体数字**:文献阅读量、数据采集量/样本量、实验或访谈次数、代码量、调研范围 | 只写"工作量饱满" |
| **创新性** | 本科允许应用创新/验证性;硕士需写明增量贡献落在哪一步 | 把"使用了新工具/新模型"当创新 |
| **写作规范** | 结构完整性、图表规范、引用格式、语言、字数达标情况 | 与阶段二批改发现相互矛盾 |
| **是否同意答辩** | **只出占位**,由教师填 | AI 擅自填"同意" |

**评语写法纪律**:
- 每条评价都要能**指向论文中的具体位置**(节号/页/图表号),不写无法核对的空话。
- **不虚构学生的态度事实**(出勤、沟通频次、独立完成度、实验次数)——教师没提供的一律 `【待补:…】`。
  这是本阶段最容易出事的地方:模型很擅长"合理地"编出"该生学习态度端正,能主动与导师沟通"。
- 不与同届其他学生比较,不写排名暗示。
- 长度:学校有要求按学校;无要求时本科 300–500 字、硕士 500–800 字。
- 措辞留余地,用"较好""基本达标""尚需完善"分级,不用"极好""完美"。

**人工确认位(本阶段红线,缺一不可)**:

```
【待教师确认:是否同意参加答辩(同意 / 修改后同意 / 不同意)】
【待教师确认:成绩 ____ 分(百分制 / 五级制,按学校口径)】
【待教师确认:创新性评价是否成立 —— 本文增量贡献为:____】
【待教师确认:工作量是否达标(是否满足本层次最低要求)】
【待教师确认:是否推荐为优秀毕业论文】
【待教师确认:学术不端风险判断(如有可疑段落,须走学院程序,不由导师单独定性)】
```

**两条产出路径**:

- **无模板**:直接用 `spec` 生成评语表(`placeholder` 字段承载上述人工确认位)。
- **有模板 docx**:本层目前没有"自动填模板"命令,不要硬来。做法是
  (a) 生成 `论文评语草稿.docx`(按模板栏目顺序组织,便于教师整栏复制),并
  (b) 用 `comment` 把**各栏建议文本批注在学校模板的对应栏目单元格上**,教师在 Word 里看着改。
  交付时明确说明「模板文件未被改动,建议文本以批注形式给出」。

```bash
PY="skills/office-layer/.venv/bin/python"
export MPLCONFIGDIR=/tmp/mplcache && mkdir -p /tmp/mplcache

cat > 评语_spec.json <<'EOF'
{"title":"毕业论文评语","subtitle":"(AI 辅助草稿;分数、结论类内容须由指导教师确认后生效)",
 "sections":[
   {"heading":"一、基本信息","table":{"header":["项目","内容"],
     "rows":[["学生姓名","【待补:姓名】"],["学号","【待补:学号】"],["论文题目","【待补:题目】"],
             ["层次/专业","【待补:本科/硕士 · 专业】"]]}},
   {"heading":"二、思想态度","paras":[
     "【待补:学生进度遵守情况——请教师补充,AI 不作推断】",
     "【待补:与导师沟通频次与主动性——请教师补充】",
     "论文为本人独立完成,未发现由他人代写情形。【待教师确认】"],
    "placeholder":"【待教师确认:学术诚信情况描述是否属实】"},
   {"heading":"三、工作量","paras":[
     "阅读文献 __ 篇,其中外文 __ 篇;采集/使用样本 __ 份;完成实验 __ 组;访谈 __ 人次。",
     "【待补:上述数字须由教师按实际核对填写,AI 不填写未经提供的数据】"],
    "placeholder":"【待教师确认:工作量是否达到本层次要求】"},
   {"heading":"四、创新性","paras":[
     "【待补:本文相对已有工作的增量贡献(须指向具体章节与实验)】"],
    "placeholder":"【待教师确认:创新性评价是否成立 —— 增量贡献为:____】"},
   {"heading":"五、写作规范","paras":[
     "论文结构完整,含绪论、文献综述、研究方法、结果与讨论、结论与展望;",
     "图表编号与引用格式需进一步统一;参考文献格式建议统一为 GB/T 7714-2015(请对照贵校规定)。"],
    "placeholder":"【待教师确认:写作规范是否达标】"},
   {"heading":"六、结论","paras":[
     "综上,论文选题具有一定现实意义,研究方法基本可行,达到本层次毕业论文的基本要求。"],
    "placeholder":"【待教师确认:是否同意参加答辩(同意 / 修改后同意 / 不同意)】\n【待教师确认:成绩 ____ 分】"}]}
EOF

$PY skills/office-layer/scripts/docx_kit.py spec --spec 评语_spec.json --out 论文评语草稿.docx
$PY skills/office-layer/scripts/docx_kit.py inspect --in 论文评语草稿.docx
```

**输出**:`论文评语草稿.docx`(+ 如有模板,则 `模板_评语建议批注.docx`)。
**退出条件**:五个栏目齐全;**所有判断性内容均为 `【待教师确认:…】` 占位**;
不含任何 AI 编造的学生表现事实;评语每条能指向论文具体位置。

---

### 阶段四 · 答辩预案

**输入**:论文(定稿)、层次、答辩形式与时长、开题时的创新点与研究方法。
**动作**:生成 **10–15 个**大概率被问到的问题,分六类。每问必须给三样东西:
**提问角度 + 学生应答要点 + 需要准备的材料**。用 `thinking-toolkit/methods/09-double-steelman.md`
构造"最强反驳"(站在评委立场把质疑推到最狠),用 `methods/05-fact-check.md` 核查文中数据与主张。

**六类问题框架与示范(按类别给 2–3 问,合计 10–15 问)**

| 类别 | 提问角度 | 学生应答要点 | 需要准备的材料 |
|---|---|---|---|
| **1 概念澄清类** | 你的核心概念 X 如何定义?与文献中的 Y 边界在哪? | 给出本文的**操作性定义** + 与相近概念的差异 + 选此定义的理由 | 定义对照表、术语表、定义所在页 |
| | 你全文讲的"短时预测"时间粒度到底是多少?文中前后一致吗? | 明确数值与全文一致性说明,不一致就承认并说明 | 全文检索该词的各处用法 |
| **2 方法质疑类** | 为什么用这个方法而不是那个?做过对比基线吗? | 方法选择判据(问题形态/数据特征/前人做法)+ 与基线对比结果 + 承认方法局限 | 方法对比表、消融/对照实验、参数设置表 |
| | 这个模型的参数是怎么定的?换一组参数结论会变吗? | 参数依据(网格搜索/沿用文献/经验值)+ 敏感性说明 | 参数表、敏感性分析(若未做,如实说明是局限) |
| **3 创新性质疑类** | 你的增量相对已有工作具体在哪一步?是改进还是套用? | 一句话讲清增量 + 指向对应实验章节 + **不夸大** | 创新点对照表(已有工作 vs 本文) |
| | 这个思路文献里已经有人做过,你的区别是什么? | 承认已有工作,说明本文的差异环节与验证结果 | 相关文献与本文的差异说明段 |
| **4 数据可靠性类** | 数据从哪来?样本量够吗?缺失与异常怎么处理的? | 来源与获取许可、清洗规则、缺失率、样本代表性 + 明确外推边界 | 数据说明表、缺失值处理记录、抽样说明、伦理审查文件 |
| | 你的样本能代表整体吗?结论能推广吗? | 说明抽样方式与局限,**不硬撑普遍性** | 抽样框架说明、局限性章节 |
| **5 边界条件类** | 这个方法在什么条件下会失效?你的结论适用范围? | 明确适用条件、已识别的失效场景、未来工作 | 局限性与展望章节页 |
| | 换个场景/换一批数据,你的结论还成立吗? | 区分"已验证范围"与"推测范围",不越界 | 稳健性检验结果 |
| **6 应用价值类** | 这个结果谁用得上?怎么落地?成本多少? | 目标用户 + 落地路径 + 前提条件 + **不夸大收益** | 应用场景说明、成本/可行性分析 |

**输出格式要求**:写成表格,并额外标注:

- **概率分级**:每题标「高概率 / 中概率」,并单独列出**最可能被追问的 3 个问题**;
- **高危问题**:学生目前答不上来的问题单列一节,供教师提前补课;
- **答辩纪律提醒**(放在文末,学生必读):
  - 不会的问题不要硬编,标准答法是「这个问题我尚未深入研究,我的初步理解是……,后续会补充验证」;
  - 承认局限比辩解更得分,评委追问局限不是在否定你;
  - 不要与评委争论,先记下问题、会后书面向导师反馈;
  - 带齐材料:论文(按评委人数)、PPT、原始数据、代码、查重报告、伦理审查文件(如涉及)。

```bash
# 答辩问题预案
cat > 答辩问题_spec.json <<'EOF'
{"title":"毕业论文答辩问题预案","subtitle":"(AI 预判稿;概率分级仅供参考,请教师按本组评委特点调整)",
 "sections":[
   {"heading":"一、高概率问题(建议优先准备)",
    "table":{"header":["序号","类别","问题","概率","应答要点","需准备材料"],
     "rows":[["1","概念澄清","你的核心概念 X 如何定义?与文献中的 Y 有何区别?","高","给操作性定义 + 边界 + 选此定义的理由","定义对照表"],
             ["2","方法质疑","为什么选用该方法?是否做过对比基线实验?","高","方法选择判据 + 对比结果 + 承认局限","方法对比表、对照实验"],
             ["3","创新性质疑","相对已有工作,你的增量具体在哪一步?","高","一句话讲清增量 + 指向实验章节","创新点对照表"]]}},
   {"heading":"二、中概率问题","table":{"header":["序号","类别","问题","概率","应答要点","需准备材料"],
     "rows":[["4","数据可靠性","样本如何抽取?能否代表总体?","中","说明抽样方式与局限,不硬撑普遍性","抽样说明"]]}},
   {"heading":"三、学生当前答不上来的高危问题","paras":[
     "【待补:需教师面谈后确定,AI 不作推断】"]},
   {"heading":"四、答辩纪律提醒","paras":[
     "1. 不会的问题不要硬编,答「我尚未深入研究,初步理解是……,后续补充验证」。",
     "2. 承认局限比辩解更得分。",
     "3. 不与评委争论,会后就问题书面向导师反馈。",
     "4. 带齐:论文、PPT、原始数据、代码、查重报告、伦理审查文件(如涉及)。"]},
   {"heading":"五、教师复核","paras":[],"placeholder":"【待教师确认:本预案是否需按本组评委特点增删问题】"}]}
EOF

$PY skills/office-layer/scripts/docx_kit.py spec --spec 答辩问题_spec.json --out 答辩问题预案.docx
$PY skills/office-layer/scripts/docx_kit.py inspect --in 答辩问题预案.docx
```

**可选:答辩 PPT**(教师明确要了才做)
用 `skills/paper-analyst/` 把论文拆成汇报结构,`skills/slides-polish/SKILL.md` 打磨视觉,
最后**必须**用 `pptx_kit.py` 落成文件(16:9、中文走 `a:ea`),别手搓 pptx:

```bash
$PY skills/office-layer/scripts/pptx_kit.py build --spec 答辩PPT_spec.json --out 答辩汇报.pptx
$PY skills/office-layer/scripts/pptx_kit.py notes --in 答辩汇报.pptx --notes 备注.json
$PY skills/office-layer/scripts/pptx_kit.py inspect --in 答辩汇报.pptx   # 单页 >220 字符会进 overdense,提示拆页
```

**输出**:`答辩问题预案.docx`(+ 可选 `答辩汇报.pptx`)。
**退出条件**:问题 10–15 个,六类齐全;每题都有应答要点与需准备材料;
高概率问题与"最可能被追问的 3 个"已标出;高危问题一节留了 `【待补:…】` 而非 AI 猜测。

---

### 阶段五 · 交付与保密

**输入**:前四阶段的全部产出。
**动作**:
1. 每个 docx 都用 `inspect` 自检(段落数、表格数、**批注数**)后再交付。
2. 写 `交付说明.md`,必须包含:
   - 本批产出物清单与各自用途;
   - **所有 `【待补:…】` 与 `【待教师确认:…】` 的清单**(让教师一眼看到自己必须填哪里);
   - **所有使用默认值的位置**(如"未提供评语模板,采用通用五栏"、"字数参考区间按本科口径");
   - **敏感数据提示**:「本批文件含学生未公开论文内容与个人信息,请注意保管,勿外发」;
   - **中间文件清理提醒**:`原文段落.txt`、工作副本 `*_work.docx`、转换产物、批注 JSON 等,确认后删除。
3. 用「初稿」口吻交付,并点明重点核对项。

**输出**:`交付说明.md`。
**退出条件**:交付说明里的待确认项清单与实际文件中的占位一一对应;教师明确了必须手改的位置。

## 产出物

| 文件 | 阶段 | 内容 | 生成方式 |
|---|---|---|---|
| `开题审查意见表.docx` | 一 | 10 维度审查表,问题三级(必须修改/建议修改/通过)+ 人工确认位 | `docx_kit.py spec` |
| `开题报告_导师批注.docx` | 一 | 意见直接批注在学生的开题报告原件上(若提供了原件) | `docx_kit.py comment` |
| **`学生论文_过程稿_导师批注.docx`** | 二 | **核心交付物**:Word 原生批注,学生在自己文档里逐条可见 | `docx_kit.py comment` |
| `批注清单.json` | 二 | 批注源数据(anchor/text),便于教师复核与二次修改 | 手写 JSON |
| `批注明细.md` | 二 | 「批注 ↔ 锚点 ↔ 等级」人可读对照表 | 手写 md |
| `论文评语草稿.docx` | 三 | 五栏评语 + 全部判断性内容留人工确认位 | `docx_kit.py spec` |
| `模板_评语建议批注.docx` | 三 | 有学校模板时:建议文本批注在模板对应单元格上(模板本身未改) | `docx_kit.py comment` |
| `答辩问题预案.docx` | 四 | 10–15 问,六类,含应答要点与准备材料 + 高危问题 | `docx_kit.py spec` |
| `答辩汇报.pptx` | 四(可选) | 答辩用汇报 PPT,含演讲者备注 | `pptx_kit.py build` / `notes` |
| `交付说明.md` | 五 | 产出物清单、待补/待确认清单、默认值标注、保密与清理提醒 | 手写 md |
| `原文段落.txt` | 二(第 0 步) | 锚点唯一可信来源(**中间文件,需删除**) | venv python 内联脚本 |

## 红线

1. **评语、分数、是否通过、是否同意答辩,必须留 `【待教师确认:…】`。**
   AI 只出草稿,绝不给终稿判断。这条在 `CONVENTIONS.md` 第 5 节也是明列的硬约束。
2. **不代写论文正文。** 批注只指出问题、给方向与验收标准;不提供可直接整段粘贴的正文。
   摘要、文献综述、结论的成段代写一律拒绝——这是代写,属学术不端,且会毁掉学生的独立性。
   最长只到「不超过一句的示范句式」,且必须标注「仅示范句式,请自行改写」。
3. **不虚构文献。** 学生文中引用可以核查,但**绝不**由 AI 补全作者/年份/期刊/DOI,
   也**绝不**生成参考文献列表。缺的一律留 `【待补文献】`,让教师和学生补。
4. **学生论文属未公开材料,必须保密。** 只在本机处理,不上传、不外发、不入第三方云、
   不进公开仓库或代码托管;`原文段落.txt`、工作副本、批注 JSON 等中间文件任务结束后提醒删除;
   交付说明必须写明「本文件含学生未公开论文内容与个人信息,请注意保管」。
5. **不得凭 AI 判断定性学术不端。** 只提示教师核查可疑段落(说"表述与文献高度接近,请核查"),
   不写"构成抄袭"。查重结论以学校指定系统的报告为准,定性走学院/学术委员会程序。
6. **不覆盖学生原件。** `comment` 是读入后另存,**输出路径绝不能与输入路径相同**;
   先 `cp` 出工作副本再操作,学生的原始提交文件保持原样。
7. **不编造学生表现事实。** 出勤、沟通频次、独立完成度、实验次数、进度遵守情况——
   教师没提供就是 `【待补:…】`。模型很擅长"合理地"编出这些话,本技能尤其要压住。
8. **不忽略 `comment` 的退出码。** `failed` 非空即退出码 2,必须修正锚点后重跑,不许带着失败交付。

## 自检清单

交付前逐项过,任何一项不过就不交付:

- [ ] **intake 一次性问完**:层次、学科、阶段、论文原件、评语模板、格式与字数要求、是否定稿、
      答辩形式、合规情况、交付格式、批注语气偏好(11 项同批问,未边做边问)
- [ ] **引用的 底座路径均已 `ls` 验证存在**(本文件所有路径已实测)
- [ ] 学生原件**未被修改**;`comment` 的 `--out` 与 `--in` 不同路径
- [ ] **`comment` 退出码为 0**,返回 JSON 的 `failed` 为空数组
- [ ] `inspect` 读回的 `comments` 数 == `批注清单.json` 的条数
- [ ] 批注三档前缀齐全(`【必须改】`/`【建议改】`/`【提问式】`),条数在 15–40 之间
- [ ] 每条「必须改」都写到了**可执行动作 + 验收标准**
- [ ] 批注中**无成段代写正文**(只有 ≤1 句示范句式且已标注)
- [ ] 开题审查 10 个维度**全部**有等级,「必须修改」项都能定位到节/页/图表号
- [ ] 工作量对照表已标注「参考区间,以学院规定为准」
- [ ] 评语五栏齐全,**分数与是否同意答辩为 `【待教师确认:…】`**
- [ ] 评语中**没有 AI 编造的学生态度/沟通/出勤事实**
- [ ] 答辩问题 10–15 个、六类齐全,每题含应答要点与需准备材料
- [ ] 答辩预案标出了高概率问题与"最可能被追问的 3 个"
- [ ] **没有任何 AI 生成的文献条目**,缺失处为 `【待补文献】`
- [ ] 抄袭风险段落只写「请核查」,**无定性结论**
- [ ] 所有 docx 均经 `inspect` 自检(段落/表格/批注数符合预期)
- [ ] 文件产出**全部**走 `skills/office-layer/`,无手搓 OOXML、无伪表格
- [ ] `交付说明.md` 含:待补/待确认清单、默认值标注、保密提示、中间文件清理提醒
- [ ] 交付时用了**初稿口吻**,并明确告诉教师重点核对哪几处

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.