Laborany paper-editor

install
source · Clone the upstream repo
git clone https://github.com/laborany/laborany
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/laborany/laborany "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/paper-editor" ~/.claude/skills/laborany-laborany-paper-editor && rm -rf "$T"
manifest: skills/paper-editor/SKILL.md
source content

论文修改助手

核心设计原则

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

┌─────────────────────────────────────────────────────────────────┐
│                     自主执行 + 检查点机制                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   每一步自动进入下一步                                            │
│   模型自主判断修改质量是否达标                                    │
│   未达标则自动迭代修改,直至通过                                  │
│   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.mdstep1_understanding.md必要时进行网络搜索
步骤2正在分析论文并制定修改方案...🔍paper_original.md + step1_understanding.mdstep2_feedback.md只提宏观问题,不动专业名词
步骤3正在修改论文内容...✏️paper_original.md + step1_understanding.md + step2_feedback.mdstep3_revision.md不确定时主动搜索
步骤4正在验证修改质量... / 正在进行第 N 轮优化修改...🔬 / 🔄paper_original.md + step2_feedback.md + step3_revision.mdstep4_verification.md对照意见+文章,可提新意见
步骤5正在进行细节校对...📝paper_original.md + step3_revision.md + step4_verification.mdstep5_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
):

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

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

【核心信息】
研究问题/假设:[一句话概括]
研究方法:[简要说明]
主要发现:[列出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
):

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

【优先级:高】
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
):

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

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

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

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

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

...

继续报告其他内容:

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

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

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

【未完成修改意见清单】(如果存在未完成的意见)

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

意见[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
工具执行以下命令(使用绝对路径确保可靠性):

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


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。

用法(使用绝对路径):

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

选项

选项说明
--notes <文件>
修改意见 JSON 文件(可选)
--output <文件>
输出 HTML 文件路径(必需

示例

# 基本用法(使用绝对路径确保可靠性)
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分四步执行——读取 → 保存临时文件 → 运行脚本 → 输出结果