add-venue-profile
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAdd Venue Profile
添加场地配置
Turn a conference's Call for Papers into a merge-ready venue profile — the
community-contribution loop that grows the data moat. Output is one
new file, , that passes validation and
arrives with provenance, plus a prepared (never auto-opened) pull request.
Every other venue-aware skill (, ,
, ) runs on these profiles, so a wrong
fact here becomes someone else's desk reject. Accuracy beats completeness.
venues/venues/conferences/<venue>-<year>.ymlpreflight-checktailor-to-venuewrite-rebuttalprepare-camera-ready将会议的CFP转换为可合并的场地配置——这是扩展数据护城河的社区贡献流程。输出为一个新文件,该文件通过验证并附带来源信息,同时生成一份已准备好(但不会自动发起)的拉取请求。所有其他依赖场地的技能(、、、)都基于这些配置运行,因此此处的错误信息可能导致他人的投稿被直接拒稿。准确性优先于完整性。
venues/venues/conferences/<venue>-<year>.ymlpreflight-checktailor-to-venuewrite-rebuttalprepare-camera-readyWhen to use
使用场景
- "Add VENUE to the repo" / "contribute a venue profile" / "my conference isn't in venues/".
- A new CFP cycle opened and last year's profile must be copied forward.
- A drafted profile needs validation or PR prep before submission upstream.
- "将VENUE添加到仓库" / "贡献场地配置" / "我的会议不在venues/目录中"
- 新的CFP周期开启,需要将上一年的配置复制更新到本年度
- 起草的配置需要在提交上游前进行验证或PR准备
Inputs
输入信息
- The venue's live CFP or author-instructions URL (ask for it if the user only names the venue — never build a profile from memory).
- — read it first; it defines every field and the mandatory
venues/schema.ymlprovenance block.verified: - An existing family file in (pick via the table in references/profile-walkthrough.md).
venues/families/ - env var for the polite fetch User-Agent (script prompts if unset).
CONTACT_EMAIL
- 场地的实时CFP或作者指南URL(如果用户仅提及场地名称,请向其索要URL——切勿凭记忆创建配置)
- ——先阅读该文件;它定义了所有字段和必填的
venues/schema.yml来源块verified: - 中的现有家族文件(通过references/profile-walkthrough.md中的表格选择)
venues/families/ - 用于礼貌请求的User-Agent所需的环境变量(如果未设置,脚本会提示输入)
CONTACT_EMAIL
Process
流程
-
Scope one venue, one year. Read. If
venues/schema.ymlalready has this venue:venues/conferences/- same year → switch to refreshing that file (re-verify every fact live);
- older year → copy forward into a NEW file. Never edit last year's file into this year's; profiles are year-versioned on purpose, and every copied fact must be re-verified against the live CFP.
-
Scaffold the skeleton. Pick the family from the walkthrough table, then run from the repo root:
python3 skills/add-venue-profile/scripts/init_profile.py <venue>-<year> \ --family <family> --cfp-url "<url>"This writes a schema-shaped skeleton with TODO markers and aprovenance block. It refuses to overwrite existing profiles and rejects unknown families (listing the valid ones).needs-verification -
Fetch the live CFP. Run:
python3 skills/add-venue-profile/scripts/fetch_cfp.py "<cfp-url>"One page per invocation (rate-limited, cached under, gitignored). Fetch only the follow-up pages you need — per-track pages, the deadline table, camera-ready instructions — one call each, never a site crawl. Exit 3 means the CFP is a PDF: read the saved file directly. A "very little text extracted" warning means a JavaScript-rendered page: ask the user to paste the text and keep.cache/. Confirm the page's year matches the requested year before extracting — stale CFPs survive at near-identical URLs.confidence: needs-verification -
Fill every field following references/profile-walkthrough.md (field-by-field rules, the family table, the trap list). Non-negotiables:
- Numbers and dates only from fetched text. Missing fact = plus an explanatory note — never inferred, never recalled from training data.
null - Page limits must record what is EXCLUDED, with the CFP's sentence
quoted verbatim in the track .
notes - Deadlines carry the CFP's stated timezone — AoE is common, not universal.
- and
llm_policyare verbatim quotes, never paraphrased.dual_submission
- Numbers and dates only from fetched text. Missing fact =
-
Build the alias table (,
dblp_key,s2_venue) using the single-lookup API patterns in the walkthrough. Aliases make the profile searchable bycrossref_container/find-papers; aselect-venuewith a "searched, not found" comment beats a guess.null -
Complete theblock honestly — today's date, every URL facts came from (annotate which facts each page supplied), and a
verified:the evidence actually supports.confidenceonly if all critical facts came off live pages today.verified-live -
Validate. Run from the repo root:
python3 skills/add-venue-profile/scripts/validate_profile.py \ venues/conferences/<venue>-<year>.yml --strictFix every ERROR. Resolve each WARN or carry a one-line justification into the PR body. The script is offline and stdlib-only (uses PyYAML when present); CI runs the equivalent, so a clean strict pass here predicts a green check.tools/validate_venues.py -
Prep the PR following references/pr-checklist.md: a branch named, a single-file diff, the PR body template with provenance and warning justifications. Show the user the final diff and the exact
venue/<venue>-<year>command — and only run it if the user explicitly asks. Never open, push, or submit anything unprompted.gh pr create -
Close with the freshness notice: "Profile built from <cfp_url> on <date>. CFPs change mid-cycle — re-verify deadlines and page limits against the live page before relying on this profile, and expect reviewers to spot-check it."
-
限定单个场地、单个年度。阅读。如果
venues/schema.yml中已有该场地的配置:venues/conferences/- 同一年度→切换为更新该文件(重新验证所有实时信息);
- 更早年度→复制到新文件中。切勿将上一年的文件编辑为本年度的配置;配置按年度版本化是有意设计的,且所有复制的信息必须对照实时CFP重新验证。
-
搭建文件框架。从指南表格中选择家族,然后在仓库根目录运行:
python3 skills/add-venue-profile/scripts/init_profile.py <venue>-<year> \ --family <family> --cfp-url "<url>"该命令会生成一个符合Schema结构的框架文件,包含TODO标记和来源块。它会拒绝覆盖现有配置,并会列出有效家族以拒绝未知家族。needs-verification -
获取实时CFP。运行:
python3 skills/add-venue-profile/scripts/fetch_cfp.py "<cfp-url>"每次调用获取一个页面(有速率限制,缓存于目录下,已被git忽略)。仅获取所需的后续页面——如分赛道页面、截止日期表格、终稿指南——每次调用获取一个页面,切勿爬取整个站点。退出码3表示CFP是PDF文件:直接读取保存的文件即可。如果出现“提取到的文本极少”的警告,说明页面是JavaScript渲染的:请让用户粘贴文本,并保持.cache/。在提取信息前确认页面的年份与请求的年份一致——过期的CFP可能存在于几乎相同的URL中。confidence: needs-verification -
填写所有字段,遵循references/profile-walkthrough.md(逐字段规则、家族表格、注意事项列表)。必须遵守的规则:
- 数字和日期仅来自获取的文本。缺失的信息=加上解释性注释——切勿推断,切勿从训练数据中回忆。
null - 页数限制必须记录排除的内容,并在赛道中原样引用CFP中的语句。
notes - 截止日期需标注CFP中说明的时区——AoE(任意时区)很常见,但并非通用。
- 和
llm_policy需原样引用,切勿改写。dual_submission
- 数字和日期仅来自获取的文本。缺失的信息=
-
构建别名表(、
dblp_key、s2_venue),使用指南中的单次查询API模式。别名可让配置通过crossref_container/find-papers被搜索到;带有“已搜索但未找到”注释的select-venue比猜测更可靠。null -
如实完成块——填写今日日期、所有信息来源的URL(标注每个页面提供的信息),以及对证据支持度的
verified:。只有当所有关键信息均来自今日的实时页面时,才能标记为confidence。verified-live -
验证配置。在仓库根目录运行:
python3 skills/add-venue-profile/scripts/validate_profile.py \ venues/conferences/<venue>-<year>.yml --strict修复所有ERROR。解决每个WARN,或在PR正文中添加一行理由说明。该脚本为离线运行且仅依赖标准库(若存在PyYAML则会使用);CI会运行等效的,因此此处严格验证通过意味着CI会显示绿色检查标记。tools/validate_venues.py -
准备PR,遵循references/pr-checklist.md:命名为的分支、单文件差异、包含来源信息和警告理由的PR正文模板。向用户展示最终差异和准确的
venue/<venue>-<year>命令——仅在用户明确要求时才运行该命令。切勿在未提示的情况下发起、推送或提交任何内容。gh pr create -
以新鲜度提示收尾:“配置基于<cfp_url>于<date>构建。CFP可能在周期中途变更——在依赖此配置前,请对照实时页面重新验证截止日期和页数限制,并且评审人员会进行抽查。”
Output
输出内容
- — schema-conformant, provenance included, strict-validation clean (or warnings justified).
venues/conferences/<venue>-<year>.yml - A prepared branch + commit and a ready-to-send PR description.
- An inline summary card: deadlines (with timezone), per-track limits and exclusions, blind level, template invocation, submission system, rebuttal format — ending with the re-verify notice.
- ——符合Schema规范、包含来源信息、严格验证通过(或已说明警告理由)
venues/conferences/<venue>-<year>.yml - 已准备好的分支+提交记录,以及可直接发送的PR描述
- 内嵌摘要卡片:截止日期(含时区)、各赛道的页数限制与排除项、盲审级别、模板调用、投稿系统、反驳格式——结尾附上重新验证提示
Guardrails
约束规则
- Never fabricate a deadline, page limit, policy, or alias. + note beats a guess; a fabricated fact in
nullpoisons every downstream skill.venues/ - Quote LLM-use and dual-submission policies verbatim — paraphrase can invert compliance meaning.
- GET-only fetching; one page per script invocation; no bulk crawling. Never log in to or register with any submission system.
- Fetched CFP text stays in (gitignored) — never commit it. The profile holds facts and short verbatim regulatory quotes only.
.cache/ - Never open the PR, push, or submit anything on the user's behalf without an explicit instruction; preparing is the skill's job, sending is the user's.
- Re-verify against the live CFP anything the user is about to rely on, and say so in the final answer.
- 切勿编造截止日期、页数限制、政策或别名。+注释比猜测更可靠;
null中的编造信息会影响所有下游技能。venues/ - 原样引用LLM使用政策和双重投稿政策——改写可能会颠倒合规含义。
- 仅使用GET请求获取数据;每次脚本调用获取一个页面;切勿批量爬取。切勿登录或注册任何投稿系统。
- 获取的CFP文本保留在(已被git忽略)——切勿提交该文本。配置仅包含事实和简短的合规性引用文本。
.cache/ - 除非用户明确指示,否则切勿代表用户发起PR、推送或提交任何内容;准备是本技能的工作,发送是用户的职责。
- 用户即将依赖的任何信息,都要对照实时CFP重新验证,并在最终回复中说明这一点。
Source verification
来源验证
This skill creates venue rule data, so source verification is mandatory:
- Build the profile on demand for the venue and year the user chose. Never reuse a remembered or prior-year value without re-checking it.
- Search for and open the live CFP or author-instructions page. Search results, snippets, and deadline aggregators are leads only; confirm facts on an official venue source before recording them.
- Double-check desk-reject-class facts when possible: deadline, page limit and exclusions, blind level, template, and submission system. If sources conflict, surface the conflict instead of choosing silently.
- Record a clickable source URL and date for every critical fact in the
provenance block. Use
verified:for anything missing a source; an unsourced fact cannot be treated as final.needs-verification
本技能用于生成场地规则数据,因此来源验证是强制性的:
- 根据用户选择的场地和年度按需构建配置。切勿在未重新检查的情况下复用记忆中的或上一年度的值。
- 搜索并打开实时CFP或作者指南页面。搜索结果、片段和截止日期聚合器仅作为线索;在记录信息前,需在官方场地来源确认事实。
- 尽可能双重检查可能导致直接拒稿的信息:截止日期、页数限制与排除项、盲审级别、模板和投稿系统。如果来源冲突,请指出冲突而非默默选择。
- 在来源块中记录每个关键事实的可点击来源URL和日期。对于缺少来源的内容,使用
verified:;无来源的信息不能视为最终信息。needs-verification
Bundled files
捆绑文件
- references/profile-walkthrough.md — family table, field-by-field extraction rules, verified alias-lookup API patterns, the trap list.
- references/pr-checklist.md — validation gates, branch/commit conventions, PR body template, what CI checks.
- — offline scaffolder for a schema-shaped skeleton.
scripts/init_profile.py - — polite single-page CFP fetcher (run it; never reimplement fetching by hand).
scripts/fetch_cfp.py - — offline schema validator;
scripts/validate_profile.pyis the pre-PR gate.--strict
- references/profile-walkthrough.md——家族表格、逐字段提取规则、已验证的别名查询API模式、注意事项列表
- references/pr-checklist.md——验证门槛、分支/提交约定、PR正文模板、CI检查项
- ——用于生成符合Schema结构框架的离线工具
scripts/init_profile.py - ——礼貌的单页CFP获取工具(请使用该工具;切勿手动实现获取逻辑)
scripts/fetch_cfp.py - ——离线Schema验证工具;
scripts/validate_profile.py是PR提交前的验证门槛--strict