Skills DirectorySearch all skills ↗

AI agent skill · by @laborany

Paper Editor

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

Archived 2026-10-23 · Source updated 2026-05-16 · License: MIT. Check the original repository for the latest version.

SKILL.md instructions

# 论文修改助手

## 核心设计原则

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

```
┌─────────────────────────────────────────────────────────────────┐
│                     自主执行 + 检查点机制                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   每一步自动进入下一步                                            │
│   模型自主判断修改质量是否达标                                    │
│   未达标则自动迭代修改,直至通过                                  │
│   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分四步执行**——读取 → 保存临时文件 → 运行脚本 → 输出结果

Related skills