SKILL.md
Explore SOTA
Run the SOTA exploration loop: discover candidate papers, triage them in sota/queue.md, digest the accepted ones, and repeat until the declared stopping rule is met. Works for long autonomous sessions and for small targeted expansions alike.
Read First
sota/README.md— digestion rules and formatssota/queue.md— the Scope block and the current frontierreferences/citation-chasing.md— frontier discipline, anti-echo-chamber
rules, review scales
MCP Preflight (hard gate)
Same gate as digest-paper: by capability, never by API key. arxiv must respond AND at least one of semantic-scholar, dblp, or openalex. If the gate is unmet: STOP and report. A missing key only throttles; a reachable source being down degrades the cross-check, not a stop. No fallback to model memory or web scraping.
Procedure
- Scope. Read the Scope block at the top of
sota/queue.md. If empty
or stale, write it now: research question, keywords/synonyms/adjacent terms, inclusion and exclusion criteria, review scale (quick-scan ~8–15 papers / focused-sota ~20–40 / full-survey 50+), stopping rule. In an interactive session confirm it with the user; in an autonomous session derive it from README.md and record it before searching.
- Seeds. Build a diversified seed set: user-named papers, already
digested papers, seminal works found via MCP search, recent frontier papers. Never start from a single author group, venue, or survey.
- Search. Run keyword queries on every configured scholarly MCP — the
always-on arxiv, semantic-scholar, dblp, and the paper-search aggregator, plus openalex when enabled. Short, high-signal queries; record productive terms in the Scope block.
- Chase. For each digested seed, fetch outgoing references and
incoming citations via semantic-scholar — one hop at a time, per references/citation-chasing.md.
- Dedupe. Before adding a candidate to the queue, check it is not in
sota/index.md or already in sota/queue.md (match DOI, arXiv id, S2 id, then title + first author + year).
- Triage. Add each new candidate to
queue.mdwith provenance
("found via") and decide against the criteria: accepted, rejected: <reason>, or pending. A candidate no MCP can resolve gets unresolvable-via-mcp and is never cited.
- Digest. For each
acceptedcandidate, run the digest-paper skill
procedure (all-or-nothing). New digests yield new citation leads — feed them back into the queue.
- Learn. After each digestion round, add newly learned terminology,
benchmarks, venues, and author groups to the scope terms and re-search.
- Stop. Before declaring saturation, run the anti-echo-chamber checks
in references/citation-chasing.md. Stop at saturation (a hop yields mostly duplicates or out-of-scope work) or at the declared budget — in that case record the unexpanded frontier as pending rows, never silently.
- Run
make checkand leave no untriaged row before ending the session.
Rules
- Every candidate enters
queue.mdbefore any digestion decision; the
queue is the only frontier record.
- Rejections always carry a reason tied to the exclusion criteria.
- Citation counts and graph centrality are discovery signals, not
relevance or quality judgments.
- Never pad toward the paper budget: scale targets are budgets, not goals.
Done When
- No
pendingrow remains, or the unexpanded frontier is explicitly
recorded and reported to the user
- The Scope block reflects the final criteria and the saturation/budget
outcome
make checkpasses