关于 add-venue-profile
add-venue-profile 是一项根据实时征稿启事创建并验证会议资料的技能,要求记录来源与核验状态。它帮助贡献者准备按年份区分的资料和 Pull Request 草稿,但不会自动提交。
主要功能
- 01根据实时征稿启事创建会议资料
- 02记录来源和核验状态
- 03验证资料字段
- 04准备分支和 PR 描述
- 05汇总会议要求
适用场景
- 01为仓库补充尚未收录的会议
- 02按新一轮征稿更新资料
- 03准备 PR 前验证资料草稿
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shaishavmaisuria/ research-paper-lifecycle-skills --skill add-venue-profile安装后在 Claude Code 中输入/add-venue-profile确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/pr-checklist.mdprofile-walkthrough.mdscripts/fetch_cfp.pyinit_profile.pyvalidate_profile.py详细介绍
添加 venue 配置文件
将会议的征稿通知转换为可直接合并的 venue 配置文件——通过社区贡献循环不断扩充 venues/ 数据壁垒。输出是一个新文件 venues/conferences/<venue>-<year>.yml,该文件通过验证并附带来源信息,此外还会准备一个拉取请求(但绝不会自动打开)。
其他所有支持 venue 的技能(preflight-check、tailor-to-venue、write-rebuttal、prepare-camera-ready)都会基于这些配置文件运行,因此这里的一处事实错误,就可能导致别人遭遇 desk reject。准确性胜过完整性。
使用时机
- “将 VENUE 添加到仓库”/“贡献 venue 配置文件”/“我的会议不在 venues/ 中”。
- 新一轮征稿开启,需要将去年的配置文件复制并更新。
- 草拟的配置文件需要在提交上游前进行验证或准备拉取请求。
输入
- venue 当前的征稿通知或作者指南 URL(如果用户只说了 venue 名称,请询问 URL——绝不要凭记忆创建配置文件)。
venues/schema.yml——首先阅读;它定义了每个字段以及必需的verified:来源信息区块。venues/families/中现有的系列文件(根据 references/profile-walkthrough.md 中的表格选择)。CONTACT_EMAIL环境变量,用于礼貌的 fetch User-Agent(未设置时,脚本会提示输入)。
流程
-
限定一个会场、一年。 阅读
venues/schema.yml。如果venues/conferences/中已有该会场:- 同一年 → 改为刷新该文件(实时重新核验每项事实);
- 更早年份 → 向前复制到一个新文件。绝不要把去年的文件改成今年的文件; 档案有意按年份版本化,复制的每项事实都必须根据当前 CFP 重新核验。
-
搭建骨架。 根据演练表选择类别,然后从仓库根目录运行:
python3 skills/add-venue-profile/scripts/init_profile.py <venue>-<year> \ --family <family> --cfp-url "<url>"这会写入一个符合架构的骨架,其中包含 TODO 标记和
needs-verification来源信息块。该命令拒绝覆盖已有档案,并会拒绝未知类别(同时列出有效类别)。 -
获取当前 CFP。 运行:
python3 skills/add-venue-profile/scripts/fetch_cfp.py "<cfp-url>"每次调用获取一个页面(受频率限制,缓存于
.cache/下,并由 git 忽略)。 只获取所需的后续页面——分轨页面、截止日期表、终稿说明——每个页面调用一次,绝不爬取整个站点。 退出码 3 表示 CFP 是 PDF:直接读取已保存的文件。出现 “very little text extracted”警告表示页面由 JavaScript 渲染:请用户粘贴文本,并保留confidence: needs-verification。 提取信息前,确认页面年份与请求年份一致——过时的 CFP 可能仍挂在几乎相同的 URL 上。 -
按照 references/profile-walkthrough.md (逐字段规则、类别表、陷阱清单)填写每个字段。以下要求不可妥协:
- 数字和日期只能来自获取的文本。缺失的信息 =
null加说明性备注——绝不推断,也绝不从训练数据中回忆。 - 页数限制必须记录哪些内容不计入,并在分轨
notes中逐字引用 CFP 的原句。 - 截止时间必须注明 CFP 声明的时区——AoE 很常见,但并非通用标准。
llm_policy和dual_submission必须是逐字引文,绝不改述。
- 数字和日期只能来自获取的文本。缺失的信息 =
-
构建别名表(
dblp_key、s2_venue、crossref_container),使用演练中的单次查询 API 模式。别名可使find-papers/select-venue搜索到档案;null并附上“已搜索,未找到”的备注,胜过猜测。 -
如实填写
verified:块——填写当天日期、事实来源的每个 URL(注明各页面提供了哪些事实),并选择证据实际支持的confidence。只有在当天从实时页面获取了所有关键事实时,才能使用verified-live。 -
验证。 从仓库根目录运行:
python3 skills/add-venue-profile/scripts/validate_profile.py \ venues/conferences/<venue>-<year>.yml --strict修复所有 ERROR。解决每个 WARN,或在 PR 正文中附上一行说明。该脚本离线运行且仅依赖标准库(存在 PyYAML 时会使用);CI 会运行等效的
tools/validate_venues.py,因此此处严格验证通过意味着检查很可能也会通过。 -
准备 PR,遵循 references/pr-checklist.md:分支命名为
venue/<venue>-<year>,仅包含单文件差异,并使用包含来源信息和警告说明的 PR 正文模板。向用户展示最终差异和准确的gh pr create命令——只有用户明确要求时才运行。绝不在未收到提示时打开、推送或提交任何内容。 -
最后附上时效性提醒: “此档案于 根据 <cfp_url> 编制。CFP 可能会在征稿周期中途发生变化——依赖此档案前,请根据当前页面重新核验截止时间和页数限制,并预期评审人员会抽查。”
输出
venues/conferences/<venue>-<year>.yml— 符合架构、包含来源信息,且通过严格验证(或已说明警告的理由)。- 已准备好的分支和提交,以及可直接发送的 PR 描述。
- 行内摘要卡:截止时间(含时区)、各分轨限制及不计入项、匿名评审级别、模板调用方式、投稿系统、作者回复格式——结尾附上重新核验提醒。
防护措施
- 绝不编造截止日期、页数限制、政策或别名。宁可填
null并注明情况,也不要猜测;在venues/中编造事实会污染所有下游技能。 - 原文引用 LLM 使用政策和一稿多投政策——改述可能会颠倒合规含义。
- 仅使用 GET 获取内容;每次脚本调用只处理一个页面;不得批量爬取。绝不登录任何投稿系统或注册账号。
- 获取的 CFP 文本保留在
.cache/(已加入 gitignore)中——绝不提交。配置文件仅保存事实和简短的法规原文引述。 - 未经用户明确指示,绝不代用户创建 PR、推送或提交任何内容;准备工作由技能负责,发送由用户负责。
- 重新核实用户即将据以行动的信息是否与当前有效的 CFP 一致,并在最终答复中说明这一点。
来源核实
此技能会创建会场规则数据,因此必须核实来源:
- 根据用户所选的会场和年份,按需构建配置文件。不得未经重新核实就沿用记忆中的值或往年值。
- 搜索并打开当前有效的 CFP 或作者须知页面。搜索结果、摘要和截止日期汇总页面仅供查找线索;记录事实前,必须在会场官方来源中确认。
- 尽可能仔细核对可能导致桌面拒稿的事实:截止日期、页数限制及排除项、匿名评审级别、模板和投稿系统。如果来源之间存在冲突,应明确指出,而不是悄悄择一采用。
- 在
verified:来源记录块中,为每项关键信息记录可点击的来源 URL 和日期。缺少来源的信息标记为needs-verification;没有来源佐证的信息不能视为最终信息。
随附文件
- references/profile-walkthrough.md — 会场类别表、逐字段提取规则、已核实的别名查询 API 模式、陷阱清单。
- references/pr-checklist.md — 验证关卡、分支/提交约定、PR 正文模板、CI 检查内容。
scripts/init_profile.py— 离线脚手架,用于生成符合架构的骨架文件。scripts/fetch_cfp.py— 礼貌地获取单页 CFP 的工具(请运行此脚本;切勿手动重新实现获取逻辑)。scripts/validate_profile.py— 离线架构验证器;--strict是创建 PR 前的关卡。