mcpField
R
review-overleaf

review-overleaf

github.com/fcakyon文档处理1.2k47 次安装今天更新
代码仓库

关于 review-overleaf

review-overleaf 是用于在本地仓库处理 Overleaf 未解决审阅讨论的技能。它引导 Agent 定位匹配的 TeX 文本、提出并应用供用户检查的修改;线程解决和内容同步仍由 Overleaf 网页界面完成。

主要功能

  1. 01按 ID、URL 或名称定位项目
  2. 02获取未解决的审阅讨论
  3. 03将片段匹配到本地 TeX 文件
  4. 04逐条提出并应用修改
  5. 05展示改动及未匹配评论

适用场景

  1. 01将审阅意见应用到本地论文
  2. 02查找无法映射到源文本的评论
  3. 03提交前检查修改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fcakyon/claude-codex-settings --skill review-overleaf

安装后在 Claude Code 中输入/review-overleaf确认已加载。

详细介绍

Review Overleaf

从 Overleaf 项目中提取未解决的审阅讨论串,在本地仓库中定位每条讨论,并提出由用户审阅的修改,然后应用这些修改。不会将修改推回 Overleaf——用户验证本地更改后,仍需在网页 UI 中将讨论标记为已解决。

第 1 步:确定项目 ID

接受以下任一形式:

  • 24 位十六进制原始 ID(^[0-9a-f]{24}$)
  • 完整 URL,例如 https://www.overleaf.com/project/<id>——通过正则表达式提取
  • 带引号的项目名称——调用:
    python3 ${CLAUDE_PLUGIN_ROOT}/scripts/overleaf_reviews.py --list-projects
    
    每行格式为 <24-hex> <accessLevel> <name>。模糊匹配名称。如果匹配到多个项目,使用 AskUserQuestion 让用户选择。

如果用户完全没有提供项目 ID,运行 --list-projects 并向用户显示表格,让他们选择一个项目。

第 2 步:Cookie 预检查

如果 ~/.claude/overleaf-skills/cookie 不存在,告知用户“set up overleaf”(这会触发 setup 技能),然后停止。

如果该文件存在,但身份验证失败(下一次脚本调用会返回刷新提示),请指向同一个 setup 技能,然后停止。

第 3 步:访问级别保护

如果项目 ID 是通过名称解析得到的,请检查匹配条目的 accessLevel。如果为 readOnly,请警告:

项目为只读。你可以编辑本地文件,但无法通过网页 UI 将更改同步回 Overleaf;你需要手动复制粘贴。要继续吗?

对于 owner、readAndWrite 或 review,直接继续,无需提示。

第 4 步:获取评论

python3 ${CLAUDE_PLUGIN_ROOT}/scripts/overleaf_reviews.py --json --repo . < project-id > --unresolved-only

解析为 JSON 数组。每条记录包含:thread_id、doc_id、snippet、offset、resolved、messages(由 {user, ts, content} 组成的列表)、file、line。如果片段与本地任何 *.tex 文件都不匹配,则 file 和 line 为 null。

第 5 步:编辑循环

对于每条 file 不为 null 的记录:

  1. Read 文件中 line 前后各 5 行,以了解上下文。
  2. 用一句话概述评论讨论串:谁说了什么。
  3. 根据评论内容提出具体修改。如果评论是问题(例如 “did you mean X?”),修改应在正文中回答该问题;如果评论是纠正意见(例如 “wrong notation”),修改应落实相应纠正。
  4. 通过 Edit 应用修改。不要批量处理——每条评论应用一次修改,然后再继续。

跳过 file 为 null 的记录(片段未能映射到本地文件)。将其收集到 <unmapped> 列表中。

第 6 步:收尾

循环结束后:

  1. 运行 git diff,并向用户展示全部更改。
  2. 列出 <unmapped> 记录(如有),包含 doc_id 和片段预览,方便用户手动查找。
  3. 按以下风格建议一条提交消息:address overleaf review: <one-line summary of the changes>。不要自动提交。用户可以运行 /github-dev:commit-staged,也可以手动提交。
  4. 提醒用户验证本地差异后,在 Overleaf 网页 UI 中将已处理的讨论标记为已解决。

非目标

  • 不会重新上传到 Overleaf(不使用写入 API)。
  • 不会在 Overleaf 中解决讨论(仅限网页 UI)。
  • 除非评论明确针对某条引用,否则不编辑 .bib。
  • 不处理跨越段落换行的多行片段——v1 中这类片段会归入 <unmapped>;片段匹配器以行为锚点。

适合搭配使用

  • github-dev——编辑循环后运行 /github-dev:commit-staged;如果项目需要协作,可运行 /github-dev:create-pr。

评论

支持 Markdown