autoPaper/CLAUDE.md
zhoujie 26ca0e6ab2 feat(skills): 新增 git-commit 技能与根目录 CLAUDE.md
新增的技能把"生成规范 commit message"这套步骤固化下来(Conventional
Commits 格式、提交前检查密钥/误提交的二进制文件),避免每次会话重新现编、
风格漂移。

CLAUDE.md 记录了这个技能库的目录结构、核心设计原则(反幻觉是硬约束、脚本
优先于临场编 API 调用、草稿区与交付物分离)、已知薄弱环节,以及已经和用户
确认的下一步计划(给检索脚本补测试和限流重试、新增引用一致性核查技能),
方便以后的会话不用重新推导这些上下文。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-21 02:28:34 -10:00

4.5 KiB

autoPaper — 科研辅助 Claude Skill 库

本仓库不是一篇具体论文的工作区,而是一套持续维护的 Claude Code skill 库, 服务于科研工作流(文献检索 → 核实 → 归档 → 写作)。references/ 下按主题 归档的文献是这套 skill 实际产出的样例/沉淀,不是本仓库的主体。

目录结构

.claude/skills/                     所有 skill 的定义,每个子目录一个 skill
  literature-search-verify/         检索 + 反幻觉引用核查
    SKILL.md                        skill 说明(frontmatter name 必须与目录名一致)
    scripts/                        纯标准库 Python 脚本,无第三方依赖
    output/                         脚本运行时草稿区,.gitignore 掉,不进版本库
  paper-writing-grounded/           论文写作(强制数据溯源)
    SKILL.md
  git-commit/                       规范化 commit message 生成与提交
    SKILL.md
references/<topic-slug>/            literature-search-verify 归档产出的稳定文献库
  references.bib                    已验证文献,写作阶段 \cite{} 直接复用这里的 key
  README.md                         人可读索引,含 suspect/unverified 条目说明
  pdfs/                             开放获取的原文 PDF(如有)

核心设计原则(新增/修改 skill 时必须保持)

  1. 反幻觉是硬约束,不是建议:任何进入正文引用或数字的内容都必须能独立核实 或追溯到真实数据,验证不通过就必须显式标记(suspect/unverified/ [需要数据: ...]),绝不能为了让输出"看起来完整"而悄悄丢弃或蒙混过关。
  2. 脚本优先于临场编 API 调用:能写成 scripts/ 里可重复运行的脚本就不要 指望模型每次现场拼 HTTP 请求——后者不可复现、容易在细节上出错。脚本只用 标准库,不引入第三方依赖,保证任何环境下拿来就能跑。
  3. 草稿区与交付物分离:skill 自己的 output/ 只是运行痕迹,不是可信的最终 产物;确认稳定后要显式归档到 references/<slug>/ 这类项目级目录,才算数。
  4. skill 之间通过约定(如 bibtex key)解耦协作,而不是互相读对方内部状态; 每个 SKILL.md 末尾应有一节说明它和其他 skill 的配合方式。
  5. 目录名必须和 SKILL.md frontmatter 里的 name: 完全一致——skill 发现/ 调用是按目录名走的,两者不一致会导致"文档里写的名字"和"实际能唤起的名字" 对不上(曾经出现过 paper-wiriting-grounded 目录名手滑打错、和 frontmatter 里正确拼写的 paper-writing-grounded 不一致的问题,已修正)。

已知薄弱环节 / 待办方向

  • scripts/search_semantic_scholar.pyverify_citation.py 对 Semantic Scholar 的限流(HTTP 429)没有重试/退避,会话量大时会导致大量条目退化成只有单源验证 (已在 references/uav_aeromagnetic_compensation/README.md 的检索记录里实际发生过)。
  • 核心正确性逻辑(verify_citation.py 的三档判定、archive_references.py 的 bib 字段解析)目前没有自动化测试兜底,只能靠人工抽查实际输出结果。
  • 目前只覆盖"检索/核实"与"写作/溯源"两段,引用一致性核查(定稿里的 \cite{} 是否都对得上 references.bib、有没有归档了却从未引用的条目)、 面向具体学科的补充检索源等还没有对应 skill。

下一步计划(已和用户确认,尚未实施)

  1. 给核心脚本补单测 + 给网络请求加限流重试:verify_citation.py 的三档 判定逻辑、archive_references.py 的 bib 字段解析(覆盖嵌套花括号等边界 情况)补 pytest 单测;search_semantic_scholar.py 等对 S2/arXiv/Crossref 的请求加退避重试,避免再出现"S2 被限流导致大量条目退化成单源验证"的情况。
  2. 新增"引用一致性核查" skill:检查定稿里所有 \cite{} 的 key 是否都能在 对应主题的 references/<slug>/references.bib 里找到,以及有没有已归档 但从未被正文引用的"僵尸条目",在 literature-search-verify 和 paper-writing-grounded 之间补上这个校验环节。

新增 skill 时的约定

  • SKILL.md 的 frontmatter description 要写清楚"什么场景下必须触发这个 skill",因为这是 skill 被自动选中的唯一依据。
  • 正文按"为什么需要 / 工作流程 / 和其他 skill 的配合"组织,和现有两个 skill 保持同样的结构和颗粒度。
  • 目录名 = frontmatter name,不要有拼写差异。