Skip to main content
ClaudeWave
Skill2.3k repo starsupdated 2d ago

paper-select-journal

This Claude Code skill matches research manuscripts to suitable academic journals for submission. Use it when users explicitly request journal recommendations, SCI journal matching, or publication venue suggestions and provide their manuscript as full text, abstract, LaTeX, PDF, Word documents, or mixed materials. The skill filters journals using a 2023 impact factor database, semantically ranks candidates across three tiers, verifies journal scope and recent PubMed papers via web searches, and produces a ranked markdown report with evidence-backed recommendations, typically limiting final suggestions to high-quality venues.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/huangwb8/ChineseResearchLaTeX /tmp/paper-select-journal && cp -r /tmp/paper-select-journal/skills/paper-select-journal ~/.claude/skills/paper-select-journal
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Paper Select Journal

## 核心原则

- 当前信息必须实时核验:scope、官网、业内认可度、中科院分区、近 3 个月论文都属于时效性信息,不能靠旧记忆。
- 中间文件只允许落在当前工作目录下的 `.paper-select-journal/` 隐藏目录;用户若明确指定其他目录,才可覆盖默认值。
- Set1 不再依赖固定语义权重。脚本只负责最小硬过滤与候选池整理,真正的语义规划由当前宿主模型完成。
- Set1 不是最终答案。最终报告只保留证据充分的 Set3,最多 10 个期刊。
- 不能推荐明显预警、垃圾期刊或影响因子低于 `3` 的期刊;若确实保留低于 `3` 的例外,必须写明“为何它仍是领域内人类专家认可的稳妥选择”。
- 宁可少报,也不要为了凑满 10 个而硬凑。

## 输入与工作区

- 用户需求可选,manuscript 必选。
- manuscript 可来自粘贴的标题 / 摘要 / 全文片段,或本地 `.md`、`.txt`、`.tex`、`.pdf`、`.docx`,也可混合提供。
- 一旦进入隐藏工作区流程,后续供脚本读取的 `analysis/*.json` 必须保留在当前 run 目录内;不要把 `manuscript_profile.json`、`set2_scope_review.json`、`final_recommendations.json` 指到 run 目录外。

先初始化隐藏工作区:

```bash
python3 <skill_root>/scripts/init_workspace.py --project-root .
```

脚本会创建 `.paper-select-journal/run-<timestamp>/`,其中至少包含:

- `inputs/`
- `analysis/`
- `candidates/`
- `pubmed/`
- `reports/`

后续所有中间文件都必须留在该 run 目录内。

## 工作流

### 1. 先写 manuscript 画像

完整理解论文后,把结果写入 `analysis/manuscript_profile.json`。

- 模板:`templates/manuscript_profile.template.json`
- 写法:`references/manuscript-profile.md`
最低字段:
- `title`
- `abstract`
- `keywords`
- `manuscript_summary`

画像的作用是帮助 AI 理解稿件,而不是喂给固定打分公式。
如果用户偏好复杂,优先把偏好写成自然语言放进 `target_journal_brief` 或 `notes`,不要为了脚本凑很多硬编码线索。
如果确实需要保留低 IF 的人工例外期刊,只能作为后续人工补录候选,并且必须在最终报告里解释“为什么它虽然低于阈值,仍是领域内稳妥选择”。

### 2. 用内置 `2023IF.xlsx` 做 Set1 候选池

内置目录:`assets/journal_catalog/2023IF.xlsx`

运行:

```bash
python3 <skill_root>/scripts/shortlist_journals.py \
  --workspace .paper-select-journal/run-<timestamp> \
  --profile .paper-select-journal/run-<timestamp>/analysis/manuscript_profile.json
```

产物:

- `candidates/set1_candidates.json`
- `candidates/set1_candidates.md`

这里的脚本只做最小硬过滤:

- 影响因子下限
- 用户明确排除的期刊
- 基础元数据整理(JIF、分区、OA 比例、引用量)

不要把这一步输出误解为“已经按语义排好序的最终 shortlist”。
你必须读取该候选池,再结合 manuscript 自主规划真正值得进入 Set2 的期刊。

### 3. 联网核验 scope、官网、分区与质量,得到 Set2

根据 `candidates/set1_candidates.json` 与 manuscript 画像,自主决定先核验哪些候选,并逐个联网核验:

- 官方网站
- Aims & Scope
- 中科院小类及其分区
- 业内认可度
- 是否存在预警 / 垃圾期刊信号

优先使用:

- 期刊官网
- PubMed / NLM
- 主流出版社页面
- 可信的分区信息来源

把通过核验的期刊写入:

- `analysis/set2_scope_review.json`

模板:`templates/scope_review.template.json`
核验口径:`references/journal-quality-checklist.md`

### 4a. 抓取 Set2 最近 3 个月 PubMed 原始论文证据

运行:

```bash
python3 <skill_root>/scripts/fetch_pubmed_recent.py \
  --workspace .paper-select-journal/run-<timestamp> \
  --profile .paper-select-journal/run-<timestamp>/analysis/manuscript_profile.json \
  --scope-review .paper-select-journal/run-<timestamp>/analysis/set2_scope_review.json
```

产物:

- `pubmed/recent_articles.json`
- `pubmed/recent_articles.md`

这里只提供原始证据,不负责打分或排序。脚本只做 API 调用、XML 解析和按日期整理。

### 4b. AI 评定主题相似性,决定哪些期刊进入 Set3

你必须同时阅读:

- `analysis/manuscript_profile.json`
- `pubmed/recent_articles.json`

这里的“AI”指当前执行本 skill 的宿主模型本身:

- Claude Code 中由当前 Claude 会话完成
- Codex 中由当前 Codex 会话完成
- 不要为 Step 4b 额外调用外部 AI API、独立模型服务或单独打分脚本

也就是说,Step 4b 的规划、语义判断、Set3 去留决策和 `set3_similarity_review.json` 写入,都必须用当前工作环境已提供的 AI 算力原生完成。

逐个判断 Set2 期刊最近 3 个月论文与稿件在以下维度上的语义相关性:

- 主题是否真的对口,而不只是 token 碰撞
- 研究问题是否接近
- 方法学是否接近
- 相关论文数量与密度是否足以支持进入最终推荐

执行时先快速浏览全部 Set2 近期论文形成比较框架,再逐刊做语义判断,最后统一决定 Set3 去留并写出可复核理由。
不要再把这一步退化成机械 token 打分或硬编码加权公式。

把结论写入:

- `analysis/set3_similarity_review.json`

模板:`templates/set3_similarity_review.template.json`

每个期刊至少要写:

- `journal_name`
- `include_in_set3`
- `similarity_assessment`
- `relevant_articles`
- `irrelevant_articles_count`
- `overall_relevance_level`

`overall_relevance_level` 只允许:

- `high`
- `medium`
- `low`
- `none`

### 5. 形成最终推荐 JSON

基于 `analysis/set3_similarity_review.json`,把最终最多 `10` 个期刊写入 `analysis/final_recommendations.json`。

- 模板:`templates/final_recommendations.template.json`
- 字段说明:`references/report-schema.md`

必须保留:
- 影响因子
- 中科院小类及其分区
- 业内认可度
- 官方网站
- 为什么推荐
- 最近 3 个月类似主题论文
- 每篇证据论文的 AI `relevance`

### 6. 渲染最终 Markdown 报告

运行:

```bash
python3 <skill_root>/scripts/render_report.py \
  --workspace .paper-select-journal/run-<timestamp> \
  --final-json .paper-select-journal/run-<timestamp>/analysis/final_recommendations.json
```

最终输出:

- `reports/paper-select-journal-report.md`

如需 `--output` 覆盖默认文件名,也只能写到当前 run 目录内部,不能把最终 Markdown 报告写到隐藏工作区之外。

## 最终报告要求

- 所有期刊写在同一个 Markdown 文件里
- 每个期刊使用 `#` 层级,下面按需用 `##`、`###`
- 每个期刊都要写明:影响因子、中科院小类及分区、业内认可度、官方网站、推荐理由,以及最近 3 个月类似主题论文表格和 AI 相关性说明

## 决策规则

- scope 不匹配,再高 IF 也不要强推
- 有明显预警 / 垃圾期刊风险,直接淘汰
- 近 3 个月没有相似主题论文,不一定淘汰,但推荐度要下调
- `include_in_set3` 为 `false` 的期刊,不要进入最终推荐
- 中科院分区无法可靠核验时,优先换成信息更透明的候选
- 用户未明确偏好时,自主选择最稳妥方案,不要把提问变成阻塞

## 命令路径说明

- ` <skill_root> ` 表示当前 skill 的真实安装目录。
- 不要假设用户当前工作目录里一定有 `paper-select-journal/` 源码副本。
- 如果你已经处在 skill 根目录,也可以直接运行 `python3 scripts/...`。

## 参考文件

- `references/manuscript-profile.md`
- `references/journal-quality-checklist.md`
- `references/report-schema.md`
check-review-alignmentSkill

当用户明确要求"核查/优化综述 `{主题}_review.tex` 的正文引用"或"运行 check-review-alignment"时使用。通过宿主 AI 的语义理解逐条核查引用是否与文献内容吻合,只在发现致命性引用错误时对"包含引用的句子"做最小化改写,并复用 `systematic-literature-review` 的渲染脚本输出 PDF/Word。核心原则:不为了改而改,无法确定是否为致命性错误时保留原样并在报告中警告。⚠️ 不适用:用户只是想生成系统综述正文(应使用 systematic-literature-review);用户只是想新增/核对 BibTeX 条目(应使用专门的 bib 管理流程)。

complete-exampleSkill

当用户明确要求"填充示例内容""生成示例""补充 LaTeX 示例"时使用。AI 增强版 LaTeX 示例智能生成器,实现 AI 与硬编码的有机融合:AI 做"语义理解"(分析章节主题、推理资源相关性、生成连贯叙述),硬编码做"结构保护"(格式验证、哈希校验、访问控制)。

get-review-themeSkill

当用户明确要求"从文件/图片/网页/描述中提取综述主题"或"生成主题+关键词+核心问题结构化输出"时使用。支持文件(PDF/Word/Markdown/Tex)、文件夹、图片、自然语言描述、网页 URL 等多种输入源,自动识别输入类型并提取内容,生成可直接用于 systematic-literature-review 及其他文献综述技能的结构化输出。

guide-updaterSkill

当用户明确要求"更新项目指南""同步指南""沉淀洞见到指南"时使用。将对话中新产生的可复用写作洞见实时沉淀到项目指南文件,保持术语口径一致、结构稳定、可检验与可复现。调用时必须指定指南文件路径。

make-latex-modelSkill

当用户明确要求“LaTeX 模板优化”“样式参数对齐”“像素级比对”“make-latex-model”或旧写法“make_latex_model”,或要把 ChineseResearchLaTeX 里的某个项目做成高质量模板时使用。适配 NSFC / paper / thesis / cv 四条产品线;先依据 packages/ 与 projects/ 的真实分层判断改项目层还是公共包,再用各产品线官方构建入口验收。若必须修改 packages 下公共包,需先生成受影响模板回归计划并完成相关回归;NSFC 专项工具仅在明确属于 NSFC 参数对齐场景时按需使用。

nsfc-abstractSkill

当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。

nsfc-budgetSkill

当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。

nsfc-codeSkill

根据 NSFC 标书正文内容,结合申请代码推荐库,为你给出 5 组申请代码1/2(主/次)推荐与理由;输出到 NSFC-CODE-vYYYYMMDDHHmm.md(只读,不修改标书)