Add venue profile
Skill ShaishavMaisuria/research-paper-lifecycle-skills/skills/add-venue-profile
42 AI agent skills for literature review, academic writing, citation verification, conference submission, rebuttal, publication, and presentations.
npx -y skills add ShaishavMaisuria/research-paper-lifecycle-skills --skill add-venue-profileAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Creates a new venue-profile YAML for venues/conferences/ from a conference CFP URL, validates it against venues/schema.yml, and preps the contribution PR. Use when the user wants to add a venue, contribute or refresh a venue profile, encode a conference's submission requirements (deadlines, page limits, blind level, template invocation, rebuttal format, submission system) as machine-readable YAML, copy a profile forward to a new year, or validate a profile before opening a pull request. Covers scaffolding the file, extracting facts from the live CFP, the DBLP/Semantic Scholar/Crossref alias table, the mandatory verified provenance block, schema validation, and PR-readiness checks.
SKILL.md
8.3 KB, as published. Nobody here has run it
Add Venue Profile
Turn a conference's Call for Papers into a merge-ready venue profile — the
community-contribution loop that grows the venues/ data moat. Output is one
new file, venues/conferences/<venue>-<year>.yml, that passes validation and
arrives with provenance, plus a prepared (never auto-opened) pull request.
Every other venue-aware skill (preflight-check, tailor-to-venue,
write-rebuttal, prepare-camera-ready) runs on these profiles, so a wrong
fact here becomes someone else's desk reject. Accuracy beats completeness.
When 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.
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).
venues/schema.yml— read it first; it defines every field and the mandatoryverified:provenance block.- An existing family file in
venues/families/(pick via the table in references/profile-walkthrough.md). CONTACT_EMAILenv var for the polite fetch User-Agent (script prompts if unset).
Process
-
Scope one venue, one year. Read
venues/schema.yml. Ifvenues/conferences/already has this venue:- 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 a
needs-verificationprovenance block. It refuses to overwrite existing profiles and rejects unknown families (listing the valid ones). -
Fetch the live CFP. Run:
python3 skills/add-venue-profile/scripts/fetch_cfp.py "<cfp-url>"One page per invocation (rate-limited, cached under
.cache/, 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 keepconfidence: needs-verification. Confirm the page's year matches the requested year before extracting — stale CFPs survive at near-identical URLs. -
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 =
nullplus an explanatory note — never inferred, never recalled from training data. - 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.
llm_policyanddual_submissionare verbatim quotes, never paraphrased.
- Numbers and dates only from fetched text. Missing fact =
-
Build the alias table (
dblp_key,s2_venue,crossref_container) using the single-lookup API patterns in the walkthrough. Aliases make the profile searchable byfind-papers/select-venue; anullwith a "searched, not found" comment beats a guess. -
Complete the
verified:block honestly — today's date, every URL facts came from (annotate which facts each page supplied), and aconfidencethe evidence actually supports.verified-liveonly if all critical facts came off live pages today. -
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
tools/validate_venues.py, so a clean strict pass here predicts a green check. -
Prep the PR following references/pr-checklist.md: a branch named
venue/<venue>-<year>, a single-file diff, the PR body template with provenance and warning justifications. Show the user the final diff and the exactgh pr createcommand — and only run it if the user explicitly asks. Never open, push, or submit anything unprompted. -
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."
Output
venues/conferences/<venue>-<year>.yml— schema-conformant, provenance included, strict-validation clean (or warnings justified).- 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.
Guardrails
- Never fabricate a deadline, page limit, policy, or alias.
null+ note beats a guess; a fabricated fact invenues/poisons every downstream skill. - 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
.cache/(gitignored) — never commit it. The profile holds facts and short verbatim regulatory quotes only. - 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.
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
verified:provenance block. Useneeds-verificationfor anything missing a source; an unsourced fact cannot be treated as final.
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.
scripts/init_profile.py— offline scaffolder for a schema-shaped skeleton.scripts/fetch_cfp.py— polite single-page CFP fetcher (run it; never reimplement fetching by hand).scripts/validate_profile.py— offline schema validator;--strictis the pre-PR gate.