---
name: paper-editor
description: |
  学术论文修改与优化助手。当用户发送论文内容并提出修改需求时使用此技能。
  采用自主执行流程，各步骤自动流转，无需用户干预，模型自主判断迭代是否达标。
  每个步骤结束时生成检查点文件，下一步必须读取该文件继续工作，防止跳步。
  最终通过脚本自动计算准确的 diff 标记，而非大模型手动标记，确保 diff 精确性。
  输出 HTML 文件（使用 assets/paper-template.html 模板）支持三种查看模式：纯净版、修改痕迹、完整 Diff。
icon: 📚
category: 学术
---

# 论文修改助手

## 核心设计原则

本技能采用**自主执行架构 + 检查点机制**，全程自动流转：

```
┌─────────────────────────────────────────────────────────────────┐
│                     自主执行 + 检查点机制                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   每一步自动进入下一步                                            │
│   模型自主判断修改质量是否达标                                    │
│   未达标则自动迭代修改，直至通过                                  │
│   Diff 由代码计算，不依赖大模型标记                              │
│   每步执行时输出简短进度提示                                      │
│   **每步结束必须生成检查点文件**                                  │
│   **下一步必须读取检查点文件继续**                                │
│   **原始论文贯穿所有步骤，始终可用**                              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**修改范围原则**：
```
┌─────────────────────────────────────────────────────────────────┐
│                      修改范围边界                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ✅ 修改：理论框架、逻辑结构、段落衔接、论证深度、学术规范       │
│                                                                 │
│   ❌ 不改：文件名、函数名、变量名、类名、专有名词、缩写           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**进度提示原则**：
- 每进入一个新步骤，输出一句简短的"正在进行 X..."提示
- 提示要简洁，使用 emoji 图标增强识别度
- 不输出中间结果，只输出执行状态
- 让用户始终知道模型在工作

**检查点文件机制**（防止跳步的核心）：
```
┌─────────────────────────────────────────────────────────────────┐
│                    检查点文件命名规则                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   步骤1 → `step1_understanding.md`   (论文理解报告)             │
│   步骤2 → `step2_feedback.md`        (修改意见)                 │
│   步骤3 → `step3_revision.md`        (修改后论文)                │
│   步骤4 → `step4_verification.md`    (验证报告)                 │
│   步骤5 → `step5_proofread.md`       (校对后论文)                │
│   步骤6 → HTML 输出文件                                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**每一步必须**：
1. 读取当前步骤所需的输入数据（原始论文 + 相关检查点文件）
2. 执行当前步骤的工作
3. 生成当前步骤的检查点文件
4. 只有当前步骤文件生成成功后才能进入下一步

---

## 工作流程

```
┌─────────────────────────────────────────────────────────────────┐
│                        论文修改工作流                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   📁 步骤0：初始化论文文件（第一步）                              │
│   (生成 paper_original.md + step0_original.md)                  │
│         │                                                       │
│         ▼                                                       │
│   📖 步骤1：论文理解与分类  ──→  🔍 步骤2：提出宏观修改意见       │
│   (生成 step1_understanding.md)  (生成 step2_feedback.md)       │
│         │                          │                             │
│         ▼                          ▼                             │
│   ✏️ 步骤3：论文修改   ──→  🔬 步骤4：对照验证与迭代           │
│   (生成 step3_revision.md)        (生成 step4_verification.md)  │
│         │                    ┌───────────┐                       │
│         │                    │ 达标 → 继续 │                       │
│         │                    └───────────┘                       │
│         │                          │                             │
│         └──────────┬───────────────┘                             │
│                    ▼                                             │
│            📝 步骤5：细节校对                                    │
│            (生成 step5_proofread.md)                             │
│            着重：语法、标点、格式                                 │
│                    │                                             │
│                    ▼                                             │
│            📄 步骤6：代码计算 Diff 与输出                          │
│            (读取 → 保存临时文件 → 运行脚本 → 输出HTML)             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

**进度提示总览**：

| 步骤 | 进度提示 | 图标 | 输入文件 | 输出文件 | 关键约束 |
|------|---------|------|---------|-----------|----------|
| 步骤0 | 正在初始化论文文件... | 📁 | 用户输入的原始论文 | paper_original.md + step0_original.md | **第一步必须执行，写入原文** |
| 步骤1 | 正在分析论文内容... | 📖 | paper_original.md | step1_understanding.md | 必要时进行网络搜索 |
| 步骤2 | 正在分析论文并制定修改方案... | 🔍 | paper_original.md + step1_understanding.md | step2_feedback.md | **只提宏观问题，不动专业名词** |
| 步骤3 | 正在修改论文内容... | ✏️ | paper_original.md + step1_understanding.md + step2_feedback.md | step3_revision.md | 不确定时**主动搜索** |
| 步骤4 | 正在验证修改质量... / 正在进行第 N 轮优化修改... | 🔬 / 🔄 | paper_original.md + step2_feedback.md + step3_revision.md | step4_verification.md | **对照意见+文章，可提新意见** |
| 步骤5 | 正在进行细节校对... | 📝 | paper_original.md + step3_revision.md + step4_verification.md | step5_proofread.md | **语法、标点、格式检查** |
| 步骤6 | 正在生成最终 HTML 文件... | 📄 | paper_original.md + step5_proofread.md | {论文标题}.html | 使用脚本计算 diff |

**文件说明**：
- `paper_original.md`：**原始论文（流程开始时立即写入，贯穿所有步骤）**
- `step0_original.md`：原始论文副本（用于步骤6的diff计算）
- `step1_understanding.md`：论文理解报告
- `step2_feedback.md`：修改意见
- `step3_revision.md`：修改后论文
- `step4_verification.md`：验证报告
- `step5_proofread.md`：校对后论文

---

## 检查点文件读取机制

**重要约束**：每一步开始时，必须先读取上一步生成的检查点文件。

```
┌─────────────────────────────────────────────────────────────────┐
│                    步骤间数据流向                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   用户输入的原始论文                                             │
│      │                                                         │
│      ▼                                                         │
│   步骤0 ──→ paper_original.md （原文持久化，贯穿全程）           │
│      │         step0_original.md （原文副本，供步骤6使用）       │
│      │                                                         │
│      ├─────────────────────────────────────────────┐           │
│      ▼                                             │           │
│   步骤1 ──→ step1_understanding.md                  │           │
│      │         (被步骤2、3读取)                     │           │
│      ▼                                             │           │
│   步骤2 ──→ step2_feedback.md                       │           │
│      │         (被步骤3、4读取)                     │           │
│      ▼                                             │           │
│   步骤3 ──→ step3_revision.md                       │           │
│      │         (被步骤4、5读取)                     │           │
│      ▼                                             │           │
│   步骤4 ──→ step4_verification.md                   │           │
│      │         (被步骤5读取)                        │           │
│      ▼                                             │           │
│   步骤5 ──→ step5_proofread.md                     │           │
│      │         (被步骤6读取)                        │           │
│      ▼                                             │           │
│   步骤6 ──→ 最终 HTML ─────────────────────────────┘           │
│            (读取 paper_original.md + step5_proofread.md)        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
```

---

### 步骤 0：初始化论文文件（**第一步必须执行**）

**目标**：将用户输入的原始论文立即持久化为文件，确保后续所有步骤都能读取。

**进度提示**（在执行步骤0之前输出）：

```
📁 正在初始化论文文件...
```

**操作**：

1. **获取原文**：从用户输入中获取原始论文内容
2. **写入原文文件**：使用 `Write` 工具将原文写入 `paper_original.md`
3. **写入副本**：使用 `Write` 工具将原文写入 `step0_original.md`（供步骤6使用）

**重要约束**：
- **这是流程的第一步，必须最先执行**
- 两个文件内容完全相同，都是原始论文
- 完成后直接进入步骤1，无需等待用户确认
- 后续所有步骤需要原文时，都读取 `paper_original.md` 文件

**检查点文件格式**（`paper_original.md` 和 `step0_original.md`）：

直接写入用户输入的原始论文内容，不做任何修改。

---

### 步骤 1：论文理解与分类

**目标**：全面理解论文主题、结构和内容，确定论文类别。

**输入**：
- `paper_original.md`（使用 `Read` 工具读取原始论文）

**操作**：

1. **论文分类**：判断论文属于哪个学术领域（计算机科学、生物学、经济学等）
2. **深度阅读**：逐段通读论文，理解研究问题、方法、结果和结论
3. **网络搜索**（必要时）：针对论文主题搜索，获取前沿知识、相关论文、术语解释
4. **输出理解报告**：

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
论文理解报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【论文分类】
领域：[如：计算机科学/人工智能/深度学习]
子领域：[如：自然语言处理/图像识别]

【核心信息】
研究问题/假设：[一句话概括]
研究方法：[简要说明]
主要发现：[列出2-3个关键发现]

【结构评估】
完整度：[摘要/引言/方法/结果/讨论/结论]
逻辑连贯性：[评估并说明]

【关键词】
[列出3-5个核心关键词]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**进度提示**（在执行步骤1之前输出）：

```
📖 正在分析论文内容...
```

**重要约束**：
- 完成本步骤后直接进入步骤2，无需等待用户确认
- 不得在步骤1中完成步骤2的任何工作
- **必须生成 `step1_understanding.md` 检查点文件**

**检查点文件格式**（`step1_understanding.md`）：

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
论文理解报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【论文分类】
领域：[如：计算机科学/人工智能/深度学习]
子领域：[如：自然语言处理/图像识别]

【核心信息】
研究问题/假设：[一句话概括]
研究方法：[简要说明]
主要发现：[列出2-3个关键发现]

【结构评估】
完整度：[摘要/引言/方法/结果/讨论/结论]
逻辑连贯性：[评估并说明]

【关键词】
[列出3-5个核心关键词]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---

### 步骤 2：提出修改意见

**目标**：基于学术写作标准和领域专业知识，提出**宏观层面**的系统性修改建议。

**输入**：
- `paper_original.md`（使用 `Read` 工具读取原始论文）

**前置操作**：
1. 使用 `Read` 工具读取 `step1_understanding.md` 文件，获取论文理解报告
2. 使用 `Read` 工具读取 `paper_original.md` 文件，获取原始论文内容

**核心原则**：聚焦宏观问题，不触及英文专业名词。

**🚫 不应修改的内容**：
- 文件名、函数名、变量名、类名等代码标识符
- 专有名词、缩写（如 API、CNN、Transformer）
- 数据库名称、框架名称、工具名称
- 引用中的原始内容
- 数学公式中的符号

**✅ 应重点检查的宏观问题**：

| 检查项 | 内容 |
|--------|------|
| **理论框架** | 理论基础是否扎实，框架选择是否恰当，是否存在概念错位 |
| **逻辑连贯** | 段与段之间、节与节之间的逻辑衔接是否自然，论证链条是否完整 |
| **问题陈述** | 研究问题是否清晰、有价值，研究缺口是否准确定位 |
| **方法匹配** | 研究方法是否适合研究问题，是否有理论支撑 |
| **结果解释** | 结果是否被充分解读，是否与假设/理论框架呼应 |
| **讨论深度** | 是否深入探讨结果的意义、局限性和影响 |
| **结论力度** | 结论是否由证据充分支撑，是否避免了过度推论 |
| **学术规范** | 引用是否规范、是否有缺失的关键文献 |
| **结构完整性** | 摘要、引言、方法、结果、讨论、结论是否齐全且比例合理 |

**输出格式**：

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
论文修改意见
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【优先级：高】
1. [具体问题] → [修改建议]
   位置：第X段/第Y节

【优先级：中】
2. ...

【优先级：低】
3. ...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
统计：高优先级 X 条，中优先级 Y 条，低优先级 Z 条
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**进度提示**（在执行步骤2之前输出）：

```
🔍 正在分析论文并制定修改方案...
```

**重要约束**：
- 完成本步骤后直接进入步骤3，无需等待用户确认
- 不得在步骤2中开始修改论文内容
- **不应对英文专业名词（文件名、函数名、变量名、专有缩写等）提出任何修改意见**
- **必须生成 `step2_feedback.md` 检查点文件**

**检查点文件格式**（`step2_feedback.md`）：

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
论文修改意见
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【优先级：高】
1. [具体问题] → [修改建议]
   位置：第X段/第Y节

【优先级：中】
2. ...

【优先级：低】
3. ...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
统计：高优先级 X 条，中优先级 Y 条，低优先级 Z 条
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---

### 步骤 3：论文修改

**目标**：根据步骤2提出的修改意见重写论文，输出修改后的**纯文本/Markdown**。

**输入**：
- `paper_original.md`（使用 `Read` 工具读取原始论文）

**前置操作**（重要：按顺序执行）：
1. **检查是否存在上一次的验证报告**：使用 `Read` 工具尝试读取 `step4_verification.md`
   - 如果文件存在：检查报告中【迭代结论】部分的"未完成修改意见清单"
   - 如果存在未完成的修改意见，本次修改**优先处理这些未完成的意见**
2. 使用 `Read` 工具读取 `step1_understanding.md`（论文理解）
3. 使用 `Read` 工具读取 `step2_feedback.md`（修改意见）
4. 使用 `Read` 工具读取 `paper_original.md`（原始论文，这是修改的基础）

**操作**：

1. **逐项修改**：按优先级处理每条修改意见
2. **遇到不确定的问题时，主动使用 mcp__laborany_web__search 工具**：
   - 理论概念模糊 → 搜索学术定义和解释
   - 研究方法选择存疑 → 搜索该方法的适用场景和最佳实践
   - 术语使用不当 → 搜索领域内标准用法
   - 引用缺失 → 搜索相关经典文献
3. **风格保持**：
   - 保持原文的语气和表达习惯（正式、客观、精确）
   - 使用领域内标准的学术用语
   - 避免改变作者的核心观点和创新点
4. **连贯性检查**：修改后确保段落之间、章节之间的过渡自然
5. **术语一致性**：全文术语使用保持统一
6. **保护专业名词**：绝不修改英文专业名词、代码标识符、专有缩写

**修改原则**：

```
┌─────────────────────────────────────────────────────┐
│  只改需要改的，不改不需要改的                        │
│  改进表述，不改观点                                   │
│  增强逻辑，不改变意图                                │
│  输出纯文本，不添加 diff 标记                        │
└─────────────────────────────────────────────────────┘
```

**输出**：完成修改后的论文内容（纯 Markdown 格式），**不包含任何 diff 标记**。

**进度提示**（在执行步骤3之前输出）：

```
✏️ 正在修改论文内容...
```

**重要约束**：
- 输出必须是纯 Markdown 文本
- **不添加**任何 `<span class="del-text">` 或 `<span class="add-text">` 标记
- diff 标记将在步骤6由脚本自动计算生成
- 完成本步骤后直接进入步骤4，无需等待用户确认
- **必须生成 `step3_revision.md` 检查点文件**（纯 Markdown 格式的修改后论文）

---

### 步骤 4：自主验证与迭代

**目标**：验证修改是否完成，论文是否达到合格标准。**由模型自主判断是否需要继续迭代修改。**

**输入**：
- `paper_original.md`（使用 `Read` 工具读取原始论文）

**前置操作**：
1. 使用 `Read` 工具读取 `step2_feedback.md`（修改意见）
2. 使用 `Read` 工具读取 `step3_revision.md`（修改后论文）
3. 使用 `Read` 工具读取 `paper_original.md`（原始论文，用于对比验证修改效果）

**操作**：

1. **修改完成度检查**（生成结构化清单）：
   - 逐条对照步骤2的修改意见，确认每条都已处理
   - 为每条意见标记状态：✅已完成 / ⚠️部分完成 / ❌未完成
   - **对比原文和修改文**：确认修改确实解决了提出的问题
   - **生成【修改意见完成情况清单】**：在验证报告中逐条列出每条意见的完成状态
   - **生成【未完成修改意见清单】**：汇总所有未完成或部分完成的意见，供步骤3下次调用时直接读取

2. **论文质量判定**（基于修改后的文章）：
   - 论文结构是否完整
   - 逻辑是否清晰连贯（特别是段与段之间的过渡）
   - 学术语言是否规范
   - 表述是否准确无误

3. **新问题识别**：
   - 在验证过程中，若发现新的宏观问题（之前未识别的）
   - 将新问题加入修改意见列表
   - 在下一轮修改中一并处理

4. **自主决策与执行**：

```
┌─────────────────────────────────────────────────────────────┐
│                  自主验证与迭代逻辑                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   第一步：对照检查                                           │
│   - 读取步骤2的修改意见                                      │
│   - 读取修改后的论文                                        │
│   - 逐条验证修改是否落实                                     │
│                                                             │
│   第二步：质量评估                                           │
│   - 若完成度100% 且质量全项通过 → 进入步骤5                  │
│   - 若存在未完成项或质量问题 → 返回步骤3                     │
│                                                             │
│   第三步：迭代执行                                           │
│   → 根据未通过项/新问题重新执行步骤3                         │
│   → 修改完成后再次执行步骤4验证                              │
│   → 循环直至全部通过，最多迭代3次                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

**达标标准**（全部满足）：
- 修改完成度：步骤2的所有意见均已处理（或已说明原因）
- 结构完整性：通过
- 逻辑连贯性：通过（特别关注段落间逻辑）
- 学术规范性：通过

**迭代策略**：
- 第1次未达标：针对未通过项进行针对性修改
- 第2次未达标：全面检查并修正所有残留问题
- 第3次仍未达标：接纳当前版本，进入最终输出

**进度提示**：
- 首次进入步骤4时输出：`🔬 正在验证修改质量...`
- 每次迭代时输出：`🔄 正在进行第 N 轮优化修改...`（N 为迭代次数）

**重要约束**：
- 模型自主决定是否继续迭代，无需用户确认
- 达标后直接进入步骤5
- 迭代时只输出上述进度提示，不输出中间验证详情
- **必须生成 `step4_verification.md` 检查点文件**
- **【关键】每次生成验证报告时，必须完整列出【修改意见完成情况清单】和【未完成修改意见清单】，供步骤3下一次调用时读取**

**检查点文件格式**（`step4_verification.md`）：

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【迭代信息】
- 当前迭代次数：[N/最大3次]
- 上次迭代遗留问题：[如果有上次的验证报告，列出未完成的问题]

【修改意见完成情况清单】
```

然后逐条对照步骤2的修改意见，列出完成状态：

```markdown
意见1：[步骤2中第1条意见的简述]
- 状态：✅已完成 / ⚠️部分完成 / ❌未完成
- 说明：[具体情况描述]

意见2：[步骤2中第2条意见的简述]
- 状态：✅已完成 / ⚠️部分完成 / ❌未完成
- 说明：[具体情况描述]

...
```

继续报告其他内容：

```markdown
【完成度统计】
- 已完成：X 条
- 部分完成：Y 条
- 未完成：Z 条
- 完成率：X/Y%

【论文质量判定】
- 结构完整性：[通过/不通过]
- 逻辑连贯性：[通过/不通过]
- 学术规范性：[通过/不通过]

【迭代结论】
- 是否达标：[是/否]
- 判定依据：[简要说明]

【未完成修改意见清单】（如果存在未完成的意见）
```

然后列出所有状态为"⚠️部分完成"或"❌未完成"的意见编号和内容，**供步骤3下一次调用时直接读取并优先处理**：

```markdown
意见[N]：[原意见内容]
- 当前状态：[⚠️部分完成/❌未完成]
- 需要进一步处理：[具体说明]

...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**迭代时的特殊处理**：
- 当需要返回步骤3进行修改时，完成修改后**更新 `step3_revision.md`** 文件
- 然后重新执行步骤4，**更新 `step4_verification.md`** 文件

---

### 步骤 5：细节校对

**目标**：对修改后的论文进行细致的语法、标点和格式校对，确保没有细节错误。

**输入**：
- `paper_original.md`（使用 `Read` 工具读取原始论文，用于参考保护专业名词）

**前置操作**：
1. 使用 `Read` 工具读取 `step3_revision.md`（当前修改后论文）
2. 使用 `Read` 工具读取 `step4_verification.md`（验证报告，了解整体情况）
3. 使用 `Read` 工具读取 `paper_original.md`（原始论文，用于核对专业名词是否被错误修改）

**检查重点**：

| 检查类别 | 具体内容 |
|---------|---------|
| **语法** | 主谓一致、时态正确、语态恰当、冠词使用、介词搭配 |
| **标点** | 句号位置、逗号使用、分号正确性、引号配对 |
| **格式** | 数字格式（阿拉伯数字 vs 中文数字）、单位表示、空格规范 |
| **拼写** | 错别字检查、英文单词拼写 |
| **专有名词** | 确保未错误修改专有名词、缩写、函数名等 |
| **标点符号** | 中文标点与英文标点的正确使用（中文环境中使用中文标点） |

**操作**：

1. **逐句校对**：通读全文，逐句检查语法和标点
2. **标记修正**：发现问题时直接修正
3. **一致性检查**：确保同类表达、术语使用全文一致
4. **保护专有名词**：再次确认未错误修改专业术语

**输出**：完成校对后的论文内容（纯 Markdown 格式）

**重要约束**：
- 输出必须是纯 Markdown 文本
- **不添加**任何 diff 标记
- 只修正语法、标点、格式问题，不改变文章结构和观点
- **必须生成 `step5_proofread.md` 检查点文件**（校对后的最终论文版本）

---

### 步骤 6：代码计算 Diff 与输出

**目标**：使用脚本自动计算精确的 diff，生成最终的 HTML 文件并展示给用户。

**进度提示**（在执行步骤6之前输出）：

```
📄 正在生成最终 HTML 文件...
```

**输入**：
- `paper_original.md`（原始论文，由步骤0写入）
- `step0_original.md`（原文副本，用于diff计算）
- `step5_proofread.md`（校对后的最终论文）

**操作流程**（必须严格按顺序执行）：

**第一步：读取所需文件**

1. 使用 `Read` 工具读取 `paper_original.md`（或 `step0_original.md`），获取原始论文内容
2. 使用 `Read` 工具读取 `step5_proofread.md`，获取校对后的论文内容

**第二步：保存临时文件用于 diff 计算**

1. 使用 `Write` 工具将原文内容写入 `diff_original.md`
2. 使用 `Write` 工具将校对后论文内容写入 `diff_proofread.md`

**第三步：运行 diff 计算脚本**

使用 `Bash` 工具执行以下命令（**使用绝对路径确保可靠性**）：

```bash
python3 "/Users/lizhe/Library/Application Support/LaborAny/skills/paper-editor/scripts/calculate_diff.py" \
    "$(pwd)/diff_original.md" \
    "$(pwd)/diff_proofread.md" \
    --output "$(pwd)/paper_revision.html"
```

**第四步：验证并输出结果**

脚本执行成功后，输出最终结果：

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
论文修改完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ 已生成 HTML 文件：paper_revision.html

文件包含：
  - 论文完整内容（支持纯净版/修改痕迹/完整 Diff 三种模式）

📊 修改统计：
  - 删除：X 处
  - 新增：Y 处

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**脚本说明**：

`scripts/calculate_diff.py` 脚本功能：
- 使用 `difflib.SequenceMatcher` 进行精确 diff 计算
- 自动为删除内容添加 `<span class="del-text">` 标记
- 自动为新增内容添加 `<span class="add-text">` 标记
- 支持按行和按字符粒度的 diff 算法
- 将 Markdown 转换为 HTML 格式
- 生成完整的 HTML 文件

**重要约束**：
- **必须按上述四个步骤顺序执行**
- 第一步必须先读取文件，确保数据可用
- 第二步必须保存临时文件，脚本才能读取
- 第三步运行脚本，等待执行完成
- 第四步验证成功后输出结果
- HTML 文件名固定为 `paper_revision.html`
- 确保脚本执行成功后才输出最终结果

---

## 学术写作原则

在进行修改时，遵守以下学术写作原则：

| 原则 | 说明 |
|------|------|
| **客观性** | 避免主观判断，用数据和事实说话 |
| **精确性** | 术语使用准确，避免模糊表述 |
| **简洁性** | 用最少的话表达完整意思，避免冗余 |
| **逻辑性** | 论证清晰，因果关系明确 |
| **完整性** | 不遗漏必要的信息和论证步骤 |

---

## Markdown 转 HTML 映射

脚本会自动将以下 Markdown 元素转换为对应的 HTML 结构：

| 论文元素 | HTML 结构/CSS 类 |
|----------|-------------------|
| 论文标题 | `<h1 class="paper-title">` |
| 作者/日期 | `<div class="paper-meta">` |
| 摘要 | `<div class="abstract-text">` |
| 一级标题 | `<h2 class="section-title">` |
| 二级标题 | `<h3 class="subsection-title">` |
| 段落 | `<p class="paragraph">` |
| 无缩进段落 | `<p class="paragraph no-indent">` |
| 列表 | `<ol class="list list-ordered">` / `<ul class="list list-unordered">` |
| 表格 | `<table>`（带 `.table-wrapper` 包裹） |
| 引用标记 | `<sup class="citation">` |
| 参考文献 | `<div class="reference-section">` + `<div class="reference-item">` |

详细的转换规则请参见：[html-conversion.md](references/html-conversion.md)

---

## Diff 标记说明（脚本自动生成）

| 修改类型 | HTML 标签 | 显示效果 |
|----------|-----------|----------|
| 删除的原文 | `<span class="del-text">原文内容</span>` | 红色删除线（仅在修改痕迹/Diff 模式显示） |
| 新增内容 | `<span class="add-text">新内容</span>` | 绿色高亮（仅在修改痕迹/Diff 模式显示） |
| 未修改内容 | 无标签 | 正常显示（所有模式都显示） |

**三种查看模式**（用户可通过页面顶部按钮切换）：

| 模式 | body class | `.del-text` 显示 | `.add-text` 显示 | 效果 |
|------|-----------|-----------------|-----------------|------|
| 纯净版 | 无 | ❌ 隐藏 | ❌ 隐藏 | 只显示最终修改后的内容 |
| 修改痕迹 | `show-changes` | ✅ 显示（删除线） | ✅ 显示（高亮） | 显示原内容+新内容对照 |
| 完整 Diff | `show-diff` | ✅ 显示（删除线） | ✅ 显示（高亮） | 同修改痕迹模式 |

---

## 脚本使用参考

### calculate_diff.py

**功能**：计算原文与修改后论文之间的精确差异，生成带 diff 标记的 HTML。

**用法**（使用绝对路径）：

```bash
python3 "/Users/lizhe/Library/Application Support/LaborAny/skills/paper-editor/scripts/calculate_diff.py" "$(pwd)/<原文文件>" "$(pwd)/<修改后文件>" --output "$(pwd)/<输出文件>"
```

**选项**：

| 选项 | 说明 |
|------|------|
| `--notes <文件>` | 修改意见 JSON 文件（可选） |
| `--output <文件>` | 输出 HTML 文件路径（**必需**） |

**示例**：

```bash
# 基本用法（使用绝对路径确保可靠性）
python3 "/Users/lizhe/Library/Application Support/LaborAny/skills/paper-editor/scripts/calculate_diff.py" \
    "$(pwd)/original.md" "$(pwd)/modified.md" --output "$(pwd)/result.html"
```

---

## 执行流程总结

```
用户输入论文 + 修改需求
           │
           ▼
    ┌─────────────┐  📁 正在初始化论文文件...
    │ 步骤0：初始化│ 输入：用户原始论文
    │ (第一步)    │ → paper_original.md + step0_original.md
    └──────┬──────┘
           │
           ▼
    ┌─────────────┐  📖 正在分析论文内容...
    │ 步骤1：理解  │ 输入：paper_original.md
    │              │ → step1_understanding.md
    └──────┬──────┘
           │
           ▼
    ┌─────────────┐  🔍 正在分析论文并制定修改方案...
    │ 步骤2：提意见│ 输入：paper_original.md + step1_understanding.md
    │              │ → step2_feedback.md
    └──────┬──────┘
           │
           ▼
    ┌─────────────┐  ✏️ 正在修改论文内容...
    │ 步骤3：修改  │ 输入：paper_original.md + step1 + step2
    │              │ → step3_revision.md
    └──────┬──────┘
           │
           ▼
    ┌─────────────┐  🔬 正在验证修改质量...
    │ 步骤4：验证  │ 输入：paper_original.md + step2 + step3
    │              │ → step4_verification.md
    └──────┬──────┘
           │
   ┌───────┴───────┐
   │ 未达标？达     │ 标？
   │ 否          是│
   │ │            │
   │ ▼            ▼
   │ 🔄 正在   ┌─────────────┐  📝 正在进行细节校对...
   │ 第N轮...  │ 步骤5：校对  │ 输入：paper_original.md + step3 + step4
   │ 返回步骤3 │              │ → step5_proofread.md
   │ (最多3次) └──────┬──────┘
   │ │            │
   │ ▼            ▼
   │ ┌─────────────┐ ┌─────────────┐
   │ │步骤3：修改  │ │ 步骤6：输出  │  📄 正在生成最终 HTML 文件...
   │ │ (迭代修改)  │ │              │  输入：paper_original.md + step5
   │ │ → 覆盖step3 │ │              │  → 读取 → 保存临时文件 → 运行脚本
   │ └──────┬──────┘ │              │  → paper_revision.html
   └────────┼────────┴──────────────┘
           │
           ▼
    ✅ 用户查看结果
```

**关键原则**：
- **步骤0必须最先执行**——将原始论文立即持久化为文件
- **原始论文贯穿始终**——每一步都从 `paper_original.md` 读取原文
- **检查点文件只读不修改**——上一步的输出是下一步的只读输入
- **每步输出覆盖同名文件**——迭代时直接覆盖，不保留历史版本
- **步骤6分四步执行**——读取 → 保存临时文件 → 运行脚本 → 输出结果
