学术论文修改与优化助手。当用户发送论文内容并提出修改需求时使用此技能。 采用自主执行流程,各步骤自动流转,无需用户干预,模型自主判断迭代是否达标。 每个步骤结束时生成检查点文件,下一步必须读取该文件继续工作,防止跳步。 最终通过脚本自动计算准确的 diff 标记,而非大模型手动标记,确保 diff 精确性。 输出 HTML 文件(使用 assets/paper-template.html 模板)支持三种查看模式:纯净版、修改痕迹、完整 Diff。
Scanned 5/27/2026
Install via CLI
openskills install laborany/laborany---
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分四步执行**——读取 → 保存临时文件 → 运行脚本 → 输出结果
No comments yet. Be the first to comment!