Pre-submission AI review stress-test for research papers. A Claude Code skill: review, verdict, revise, verify.
# Add to your Claude Code skills
git clone https://github.com/Spark-To-Paper-Skills/paperjuryLast scanned: 8/10/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-10T05:25:04.754Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how paperjury compares with popular alternatives.
paperjury is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Spark-To-Paper-Skills. Pre-submission AI review stress-test for research papers. A Claude Code skill: review, verdict, revise, verify. It has 1,165 GitHub stars.
Yes. paperjury passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Spark-To-Paper-Skills/paperjury" and add it to your Claude Code skills directory (see the Installation section above). paperjury ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
paperjury is primarily written in JavaScript. It is open-source under Spark-To-Paper-Skills on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh paperjury against similar tools.
No comments yet. Be the first to share your thoughts!
Based on votes and bookmarks from developers who liked this skill
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
See comparison
PaperJury edits and hardens any CS-conference paper. It runs in
three modes. In direct-edit mode (the common case) the user describes a change
in Chinese or English and the LaTeX is edited directly through a CS-venue writing
toolkit, with author sign-off. In review mode (occasional, pre-submission) it
exposes the manuscript to a harsh, multi-perspective courtroom review engine that
adjudicates each issue (N holistic domain reviewers -> contestability routing ->
two-sided trial -> three-way verdict, with a polish track and a clerk-converged
multi-round loop), gates every change behind consensus, and tracks issues in a durable
ledger. In auto mode (unattended, opt-in via /goal) it runs that same engine
toward a verifiable goal, applying safe fixes under a drift-bounded policy and
queueing the risky ones for one human pass on return. All modes share the same
writing toolkit, hard rules, ledger, and author sign-off (auto via up-front policy
sign-off plus the queue, see hard rule 1).
This skill is fully generic. It ships no hardcoded paths, no project files, and no embedded paper. Everything specific to a given paper (where the manuscript is, the venue, who signs off, the house style) is resolved at runtime or supplied by a config the project owns. The skill itself is the backbone; any concrete paper is just an instantiation of it.
Scope: CS conferences only. Three venue families, each with its own style profile:
Three modes, one skill. Pick by what the user is asking for:
references/review-engine-v3.md)./goal (or config mode: auto)
to run the review-revise loop AFK toward a verifiable goal. Establish the spine
up front (the one human step), then the engine applies safe fixes under the
bounded-aggressive policy and queues the rest. The drafter input passes the
significance floor (node scripts/ledger.js floor: valid-fixable majors only) and
the ledger view is initialized collapsed (--display collapse: minors fold into a
Minor digest, majors stay itemized). See references/auto-mode.md.
Never self-detect auto; it is explicit only.Do NOT use for: writing a paper from scratch (use ml-paper-writing), figure or
diagram generation (use academic-plotting), or an official-venue rebuttal (this
is a pre-submission self-hardening loop, no score gate).
Soft update reminder: at the start of each PaperJury invocation, before choosing
the mode or editing a manuscript, run node scripts/check-update.js from the
skill root unless PAPERJURY_DISABLE_UPDATE_CHECK=1 is set. If it reports an
available update, show the notice once and continue. If the check is skipped,
silent, or cannot reach GitHub, continue without mentioning it; update checks are
never allowed to block review or editing.
This paradigm is expressed as Skill + Workflow + Memory. Each carries one concern; together they replace the heavy per-round file-and-flag machinery a hand-rolled version accumulates.
references/review-engine-v3.md, references/reviewer-personas.md,
references/writing-toolkit.md.workflows/review-panel.workflow.js; the v3 courtroom engine is
assign-reviewers -> reading-check -> coverage-auditor -> merge ->
{trial (+ escalate) || polish} -> recall-audit -> drafter ->
{edit-audit | meaning-audit} -> clerk. The DETERMINISTIC guards run
orchestrator-side via Bash between workflow calls (the Workflow sandbox has no fs):
scripts/ holds decompose, extract-docx, ledger, journal, apply-patch,
anchor-diff, cross-ref, spine, rekey, compile-guard, compliance-check
(plus doctor, the install/repo health check: npm run doctor). Build note: this harness
delivers a workflow's args as a JSON STRING, so every workflow parses it
defensively. Protocol + every orchestrator seam: references/review-engine-v3.md.LEDGER.json resolved at runtime = the machine source of truth,
plus a rendered LEDGER.md view; managed by scripts/ledger.js): the live,
mutable issue state across rounds and sessions. Schema + status state machine:
references/ledger-schema.md.The skill ships ZERO hardcoded paths or project files. On trigger it resolves each input by discovery first, then asking:
manuscript: detect the main source, then route it through the INTAKE FORMAT GATE by extension. Four routes, none silent:
.tex: the native LaTeX path. Detect the main source (the .tex with
\documentclass / \begin{document}, or the file the user names). If
several candidates, ask..md / .markdown / .txt: the native text path. The full multi-round
engine runs; compile checks are not applicable (compile-guard returns
compiled:null plus a markdown sanity lint, an honest UNKNOWN, never a
fake pass); LaTeX-only compliance checks are skipped and reported as
skipped_checks..docx: if a .paper-review/ working copy AND a ledger already exist,
REUSE them, never re-extract. If the sha256 of the docx no longer matches
the ledger's meta.original_sha256, STOP and ask: continue on the working
copy, or extract --force knowingly discarding the applied edits (an
explicit new-intake event). Otherwise run
node scripts/extract-docx.js extract <file.docx> (one time) and tell the
user explicitly: the original Word file is never modified; all rounds run
on .paper-review/<basename>.md (print the full working-copy path); they
get back the edited Markdown plus a per-edit change list; the extraction
report lists everything dropped or degraded. Write ledger meta
{manuscript: <working copy>, working_format: 'markdown', source_format: 'docx', original, original_sha256, extracted_at, extraction_report}. If the
report shows nonzero tracked-change counts, seed a round-1 author-required
ledger row ("manuscript contains unresolved tracked changes; accepted-all
for review")..doc, .pdf, .rtf, .odt, ...): explicitly
unsupported. Say so and suggest exporting .docx / .md / .tex; never
silently degrade.After intake, the working copy IS the manuscript for every rule and gate in this file (sign-off, spine freeze, round-0 baseline, edit safety, journal); the original uploaded file is permanently read-only.
venue_family: the user can name it, or an agent reads the class file to GUESS the family (e.g. a cvpr/iccv style, an acl style, a neurips/iclr style). There is no hardcoded venue list and no deterministic detector; if unclear, ask.
ledger: default to <manuscript-dir>/.paper-review/LEDGER.json (the machine
source of truth; scripts/ledger.js also renders a LEDGER.md view). Create if
absent, reuse if present. The user may point elsewhere.
author: ask who signs off on edits (default: the current user). Every edit needs explicit authorization.
personas: default to N domain-expert holistic reviewers assigned at runtime
(assign-reviewers, from the project gatekeeper core + a generated domain overlay);
the three generic lenses in references/reviewer-personas.md are the degrade
fallback. If the project defines its own named reviewer subagents, use them as
agentType; otherwise inline the persona prompts.
style_profile: start from the venue-family default; refine from any conventions recalled from memory or pinned in a project config.
A project MAY pin these by dropping a config in ITS OWN repo (see
configs/config-template.md for the shape). That file is owned by the project,
never by this skill. At round start, recall any pinned conventions from memory.
The user states a change in Chinese or English; you draft and apply the LaTeX edit. No panel, no ledger, no discussion. Minimal flow:
.docx: if a working copy
already exists, it IS the manuscript, edit it; if none exists, offer an
explicit choice between (a) paste-back, returning the rewritten passage as
text for the user to apply in Word (no working copy), and (b) running the
one-time intake extraction and editing the working copy. Never edit the
.docx file itself.translate-to-english for a Chinese idea, polish-english / de-ai for a
rewrite, compress / expand for length, caption / experiment-analysis
for those units) and draft the patch to do exactly what was asked. The Common
guards apply (markup-safe for the working format, plain CS prose, no log
leakage into the manuscript).logic-check on the drafted passage.This is the writing toolkit used on its own. Escalate to review mode only when the user wants the paper critiqued or hardened, not for a single asked-for edit.
The reviewer panel and the trial jury are pure fan-out: spawn, collect, merge. A Workflow does this deterministically (parallelism enforced by construction, structured outputs via schema, isolation by default since each agent sees only the prompt you give it). That isolation is what replaces the snapshot-and-whitelist defense: a reviewer cannot see peers, the ledger, or prior rounds because you simply do not put them in its prompt.
But the loop has genuine human gates (the author reviews the issue list, gives per-issue direction, authorizes edits, breaks ties). Workflows run to completion and return a result; they do not pause mid-run for hours of human input. So:
The full adversarial loop (the v3 courtroom engine). Use it to harden the paper, not
for a single asked-for edit (that is direct-edit mode). Full protocol + the 14
orchestrator seams: references/review-engine-v3.md. [WF] = Workflow step,
[det] = deterministic Node guard run orchestrator-side between workflow calls,
[HUMAN] = author gate, [LEDGER] = state write.
full (whole paper) or passage (one section / para / claim).[det] decompose. Split the manuscript into reading units + stable
passage_ids + the canonical section list.[WF] assign-reviewers + [HUMAN] confirm. Name N subfields (2-4,
default 3); instantiate N holistic domain reviewers from the gatekeeper core + a
generated overlay. An unconfirmable slot degrades per slot to a generic gatekeeper
(the three generic lenses in reviewer-personas.md are the fallback). The author
confirms the assignment (or pins it via config).[WF] reading-check. Each reviewer reads the WHOLE paper → weaknesses
{significance(major|minor), kind(mechanical|substantive), verbatim quote —
cannot quote = did not read} + one overall_confidence + a per-section coverage
report. Anti-skim is three layers: [det] per-section quote-verify, [WF]
coverage-auditor, [WF] targeted re-invoke.[WF] merge. Semantic dedup across reviewers; derive significance (MAX) /
kind (substantive-dominates) / corroboration. [LEDGER] intake as raised.[det] route. mechanical → polish; substantive&minor → polish;
substantive&major → trial (two parallel tracks).[WF] trial. Per substantive-major charge: a whole-paper DEFENSE → 5
decorrelated local-context jurors (+ on-demand expansion) → a deterministic verdict
(decide iff quorum surviving >= ceil(0.8*jurySize) AND one side > 60% of
surviving votes; else escalate to 12). Verdict ∈ {invalid-drop, valid-fixable,
author-required, escalate}; the judge sets a close_criterion ONLY for a
valid-fixable charge, satisfiable by editing existing text (no new data). [WF]
polish runs the off-gate mechanical/minor track in parallel (never silently dropped).[WF] recall-audit. Mode A revives wrongly-dropped charges; Mode B spot-checks
strong-consensus majors BEFORE the edit. Runs before the drafter.[HUMAN] Authorize + [WF] drafter + edit-safety. On authorization, the
drafter writes the minimal patch per surviving valid-fixable. The edit-safety chain
gates it: [det] anchor-diff + cross-ref → [WF] meaning-audit (frozen anchor,
four-state) / edit-audit (risky non-anchor); [det] apply-patch + compile-guard land
a passing patch and [LEDGER] mark closed; a drift / anchor / failed edit is
reverted and queued. Revision logs / back-translations stay author-side.[WF] clerk + report. The clerk reconciles the round boundary (carried
open-questions vs this round's edits, via a passage_id + similarity merge key) and
emits convergence counts. Summarize new/closed counts with the minor/polish part
as a one-line digest (counts), never per-item paragraphs; in review mode do not
auto-start the next round (auto mode drives the outer loop via /goal). The
rendered LEDGER.md obeys meta.display_mode (flip anytime:
node scripts/ledger.js mode <ledger.json> <show|collapse>; review defaults to
the flat table, auto initializes collapsed). At round end run
node scripts/rekey.js <working file> <ledger> <journal> to re-link open rows
whose passage_id no longer resolves after this round's edits (both formats).GATE: node scripts/ledger.js gate = 0 gate-blocking active major (gate-blocking =
{raised, in-trial, re-trial, valid-fixable}; author-required / queued / dropped /
closed are gate-OK and author-required accumulates to the queue). Full protocol +
ledger schema + status machine: references/review-engine-v3.md,
references/ledger-schema.md. The legacy single-pass 3-reviewer panel
(workflows/review-panel.workflow.js, the discussion-mode flow in
references/methodology.md) is kept only as a quick check.
close_criterion (one concrete sentence an
edit must satisfy), set by the judge at trial; it is null at intake.LEDGER.json for open issues.The fan-out engine implements the strong form directly
(workflows/review-panel.workflow.js):
dryStop consecutive passes that add no
surviving issue (hard cap maxRounds). Raises recall past a single pass.Toggle via args: ultracode on -> defaults (maxRounds 4, dryStop 2,
verify true); ultracode off -> pass {maxRounds:1, verify:false} for the basic
single-panel form. The loop is budget-aware and stops early if the token budget
runs low.
Built: the review engine; the submission-readiness checker (deterministic desk-reject screening plus a real LaTeX compile, degrading to a structural lint when no toolchain is present); auto mode (the review-revise loop toward a goal under a drift-bounded policy, applying safe fixes and queueing risky ones for author review); and the significance floor (ledger.js floor gates the drafter to valid-fixable majors; the collapsed ledger view folds minors into a digest so trivia never floods the author's attention -- render-only, full detail kept in LEDGER.json). Roadmap: vision-based layout verification, automatic venue detection from the class file, and reviewer personas tuned to each venue community.
ml-paper-writing: from-scratch drafting, citation verification (never
hallucinate citations), conference checklists. This loop borrows its
sentence-level guidance for the edit-drafting step rather than duplicating it.academic-plotting: figure and architecture-diagram generation (out of scope
here; this loop edits text and captions, not figure images).[!IMPORTANT] PaperJury 是投稿前的自查工具,不能替代作者的科学判断,也不能替代 peer review。它不能用来编造实验、伪造结果、添加没有证据支撑的 claim,或掩盖论文局限。遇到需要新实验、缺少证据、依赖作者私有知识或需要研究判断的问题,系统都会交回作者处理。
如果 PaperJury 对你的研究或写作流程有帮助,可以引用这篇 arXiv 论文:
@misc{wang2026paperjurydueprocessreviewbounded,
title={PaperJury: Due-Process Review for Bounded LaTeX Revision},
author={Yiran Wang and Ruixuan An and Biao Wu and Wenhao Wang},
year={2026},
eprint={2606.16322},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2606.16322},
}
同一条目也放在 CITATION.bib。
在 Claude Code 中安装:
/plugin marketplace add Spark-To-Paper-Skills/paperjury
/plugin install paperjury@Spark-To-Paper-Skills
然后,在你的论文项目中直接说明需求:
请审稿,重点检查实验是否足以支持 claim。
也可以使用更日常的表达:
请把 introduction 这段改得更紧凑,但不要改变 claim。
无需记忆命令。PaperJury 会根据你的描述在 direct-edit 与 review 之间选择;auto 必须显式启用。在 direct-edit 和 review 模式下,补丁会先交给你确认;auto 模式则按事前授权策略应用安全修改,并将高风险修改交回作者。
12 篇 held-out 论文(Vision、NLP、ML 各 4 篇)、四个 baseline、盲审专家审计(arXiv 2606.16322)。删除线标出的数值来自四个 baseline 中最强的 LLM-as-judge 循环:
| 方法 | F1 ↑ | Accv ↑ | Accr ↑ | ESVR ↓ | 轮数 K | 每篇小时 |
|---|---|---|---|---|---|---|
| Forward-only 重写器 | n/a | n/a | n/a | 0.240 | 1 | 0.31 |
| LLM 批评器 | 0.446 | n/a | n/a | n/a | 1 | 0.51 |
| LLM-as-judge 循环 | 0.519 | 0.681 | n/a | 0.110 | 3.33 ± 1.07(2/12 触顶) | 2.06 |
| 朴素无界生成器 | 0.459 | n/a | n/a | n/a | 1 | 8.37 |
| PaperJury(本文) | 0.656 | 0.887 | 0.913 | 0.025 | 3.08 ± 0.67(0/12) | 2.47 |
F1:相对专家问题清单的 macro F1;Accv / Accr:盲审专家对终局裁定 / 路由决定的一致率;ESVR:已应用编辑中违反安全的比例(须与编辑量合读:PaperJury 每篇 13.4 处 vs judge 循环 14.3 处);n/a 表示该方法没有这项能力。逐篇配对比较中,PaperJury 的 F1 在全部 12 篇上胜过每个会生成问题清单的 baseline。每篇成本为 2.47 小时、6.76M token(朴素生成器为 8.37 小时、31.4M token)。
三类裁定的盲审复核一致率分别为:invalid-drop 0.872、valid-fixable 0.913、author-required 0.860。消融实验中,移除某个部件会让与其职责相关的指标恶化(移除护栏链 → ESVR +0.152;移除庭审 → 裁定一致率 −0.153)。完整表格、图和逐项解读见 项目主页 和 论文。
PaperJury 以 Claude Code skill 的形式提供,把投稿前自查组织成一套闭环:审稿 → 裁定 → 修改 → 复查。它不会直接接受所有 AI 反馈,而是让每条意见经过完整的评审流程,最终得到三种裁定之一:
| 裁定 | 含义 |
|---|---|
| ✅ valid-fixable(成立可修) | 表达不清、claim 过强、结构不顺等文本问题;不需要补充实验,也不会偏离原意。系统会起草最小补丁,通过护栏检查后再应用。 |
| 🧑💻 author-required(交回作者) | 缺少实验、ablation、数据或证据,必须由作者判断。系统会原样交回,不代替作者作出研究决策。 |
| 🛑 invalid-drop(不成立,驳回) | AI reviewer 误读了论文,或者提出了不应采纳的修改意见。该意见会被驳回并记录在案。 |
| 你现在的情况 | 可以直接这样用 |
|---|---|
| 📝 刚写完初稿 | 让它像 reviewer 一样通读全文,找出最可能影响投稿的问题,并将致命问题与轻微修改分开。 |
| 🔍 投稿前最后自查 | 让它检查 claim 是否表述过强、实验是否足以支持结论,以及是否存在明显的格式风险。 |
| ✍️ 只想改一段话 | 直接说「把这段改紧凑一点,但不要改变 claim」,它会先起草补丁,等你确认后再应用;不会将一处小修改扩大为整篇重写。 |
| 🔁 需要无人值守的多轮修订 | 明确授权 auto 模式;安全修改可以直接应用,高风险问题仍会交回作者决定。 |
| 输出 | 内容 |
|---|---|
| 📋 问题清单 | 每条 reviewer-style 问题都会附带证据、位置、判断结果和当前状态;不会将大量意见直接写入正文。 |
| 🧩 可审阅补丁 | 只有安全修复会进入最小补丁;高风险改动会暂时搁置,等待作者决定。 |
| 🛠️ 复查报告 | 如果具备 LaTeX 工具链就进行真实编译;否则会明确说明哪些检查无法完成,不会虚报验证结果。 |
| 🧪 真实样例 | samples/dogfood/ 里有修改前后 PDF 和人工核对过的运行报告。 |
它与一般写作工具的区别:
| 它做的事 | |
|---|---|
| ⚖️ 对抗式评审 | N 位领域 reviewer 分别通读全文。系统按争议程度分流问题:机械性或轻微问题进入 polish,重大问题进入双方对审的庭审。5 人陪审团隔离审议;如果没有明显多数,通常会增加到 12 人;如果所有陪审员都因上下文不足而无法判断,则直接交回作者。代码按照法定人数和多数规则判定指控成立或不成立:不成立的问题进入 invalid-drop,升级后仍无明显多数则进入 author-required。对于已判定成立的问题,judge agent 再路由为 valid-fixable 或 author-required,并为 valid-fixable 设定 close_criterion。单纯按指令改写的工具无法作出这类判断。 |
| 🔁 闭环复查 | 每一轮都只基于当前稿件独立复查;评审团看不到上一轮的 ledger,避免旧结论形成锚定。确定性书记官把各轮结果写入同一份 ledger,直到某一轮不再发现新问题。应用修改前,新的质疑者还会复查被驳回的问题,以减少误判。 |
| 🛡️ 分级护栏 | 安全修复按风险级别接受冻结锚点、单段编辑上限以及锚点和跨节含义审计。在 direct-edit 和 review 模式下,每处修改都等待作者确认;在 auto 模式下,安全修改按事前授权策略自动应用,高风险修改进入待办队列并交回作者。 |
| 🛠️ 真实编译与合规检查 | 系统在你的机器上运行 LaTeX 编译,并报告报错、未定义引用、overfull box 和页数;如果没有工具链,会明确降级为结构 lint。确定性的投稿合规检查覆盖匿名化泄漏、页边距改动、documentclass 漂移、缺少必备章节和超出页数限制等常见风险。 |
| 模式 | 什么时候用 | 行为 | 人工确认 |
|---|---|---|---|
| ✍️ direct-edit(常用) | 只想修改一处文字、caption、LaTeX 表达或段落结构。 | 不启动评审面板,直接用写作工具包起草补丁。 | 作者确认后再应用。 |
| 🔎 review(偶尔) | 想让它审稿、挑问题、进行 mock-review,或只审查某一节 / 某条 claim。 | 启动对抗式评审引擎,先判断问题是否成立,再决定是否修改。 | 每处改动逐一确认。 |
| 🔁 auto(无人值守) | 已配置 mode: auto 策略,并用 /goal 给出可验证目标,希望系统连续运行多轮。 |
先确认 spine 和评审分配,再按 bounded-aggressive + edit-safety 策略迭代。 |
先提供整体授权;高风险项仍交回作者。 |
[!WARNING] auto 策略和跨轮运行都必须明确启用。
mode: auto决定每个候选修改是自动应用还是进入待办队列;/goal负责跨轮继续运行。仅打开工具权限或只发送普通 prompt,都不会启动无人值守的多轮循环。详见docs/AGENT-GUIDE.md§3。
一篇真实的 21 页草稿、11 个预先埋入的缺陷、一轮完整的 auto 模式评审:152 条 reviewer 意见去重后得到 55 个问题——其中 26 处安全应用、10 个交回作者、19 条驳回;修改后的稿件编译为 0 error / 0 warning。
samples/dogfood/(original_draft.pdf · revised_draft.pdf · 运行报告)
如果只想确认稿件不会先因格式问题被拒,可以说:
请执行 submission-readiness / 合规检查。
它会进行确定性格式筛查,再结合编译驱动的版面检查。
推荐使用 marketplace 方式安装:
/plugin marketplace add Spark-To-Paper-Skills/paperjury
/plugin install paperjury@Spark-To-Paper-Skills
也可以把仓库 clone 到 Claude Code 读取 skill 的目录:
# macOS / Linux
git clone https://github.com/Spark-To-Paper-Skills/paperjury ~/.claude/skills/paperjury
# Windows (PowerShell)
git clone https://github.com/Spark-To-Paper-Skills/paperjury "$env:USERPROFILE\.claude\skills\paperjury"
也可以放在 <项目>/.claude/skills/ 目录下,仅对单个项目生效。
安装后建议进行以下检查:
SKILL.md 自动发现该 skill,其名称为 paperjury。node,因为确定性检查运行在 Node 环境中。npm run doctor,可以检查仓库完整性、检查所需工具以及识别论文文件。PAPERJURY_DISABLE_UPDATE_CHECK=1 可以关闭提醒。更新后请开启新会话。| 版本 | 入口 | 适合 |
|---|---|---|
| Claude Code 版 | 本仓库;Claude Code plugin 或 .claude/skills/ |
你主要在 Claude Code 中撰写论文、修改 LaTeX 文件或运行 workflow。 |
| Codex 版 | paperjury-codex | 你主要在 Code |