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 formats
sota/queue.md — the Scope block and the current frontier
references/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.md with 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
accepted candidate, 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 check and leave no untriaged row before ending the session.
Rules
- Every candidate enters
queue.md before 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
pending row 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 check passes
1---2name: explore-sota3description: Use when building or expanding the SOTA — from an idea, keywords, seed papers, or the existing collection — through MCP search, citation chasing, triage, and digestion of accepted papers.4license: MIT5---67# Explore SOTA89Run the SOTA exploration loop: discover candidate papers, triage them in10`sota/queue.md`, digest the accepted ones, and repeat until the declared11stopping rule is met. Works for long autonomous sessions and for small12targeted expansions alike.1314## Read First1516- `sota/README.md` — digestion rules and formats17- `sota/queue.md` — the Scope block and the current frontier18- `references/citation-chasing.md` — frontier discipline, anti-echo-chamber19 rules, review scales2021## MCP Preflight (hard gate)2223Same gate as digest-paper: by capability, never by API key. `arxiv` must24respond AND at least one of `semantic-scholar`, `dblp`, or `openalex`. If the25gate is unmet: STOP and report. A missing key only throttles; a reachable26source being down degrades the cross-check, not a stop. No fallback to model27memory or web scraping.2829## Procedure30311. **Scope.** Read the Scope block at the top of `sota/queue.md`. If empty32 or stale, write it now: research question, keywords/synonyms/adjacent33 terms, inclusion and exclusion criteria, review scale (quick-scan ~8–1534 papers / focused-sota ~20–40 / full-survey 50+), stopping rule. In an35 interactive session confirm it with the user; in an autonomous session36 derive it from `README.md` and record it before searching.372. **Seeds.** Build a diversified seed set: user-named papers, already38 digested papers, seminal works found via MCP search, recent frontier39 papers. Never start from a single author group, venue, or survey.403. **Search.** Run keyword queries on every configured scholarly MCP — the41 always-on arxiv, semantic-scholar, dblp, and the paper-search aggregator,42 plus openalex when enabled. Short, high-signal queries; record productive43 terms in the Scope block.444. **Chase.** For each digested seed, fetch outgoing references and45 incoming citations via semantic-scholar — one hop at a time, per46 `references/citation-chasing.md`.475. **Dedupe.** Before adding a candidate to the queue, check it is not in48 `sota/index.md` or already in `sota/queue.md` (match DOI, arXiv id, S249 id, then title + first author + year).506. **Triage.** Add each new candidate to `queue.md` with provenance51 ("found via") and decide against the criteria: `accepted`,52 `rejected: <reason>`, or `pending`. A candidate no MCP can resolve gets53 `unresolvable-via-mcp` and is never cited.547. **Digest.** For each `accepted` candidate, run the digest-paper skill55 procedure (all-or-nothing). New digests yield new citation leads — feed56 them back into the queue.578. **Learn.** After each digestion round, add newly learned terminology,58 benchmarks, venues, and author groups to the scope terms and re-search.599. **Stop.** Before declaring saturation, run the anti-echo-chamber checks60 in `references/citation-chasing.md`. Stop at saturation (a hop yields61 mostly duplicates or out-of-scope work) or at the declared budget — in62 that case record the unexpanded frontier as `pending` rows, never63 silently.6410. Run `make check` and leave no untriaged row before ending the session.6566## Rules6768- Every candidate enters `queue.md` before any digestion decision; the69 queue is the only frontier record.70- Rejections always carry a reason tied to the exclusion criteria.71- Citation counts and graph centrality are discovery signals, not72 relevance or quality judgments.73- Never pad toward the paper budget: scale targets are budgets, not goals.7475## Done When7677- No `pending` row remains, or the unexpanded frontier is explicitly78 recorded and reported to the user79- The Scope block reflects the final criteria and the saturation/budget80 outcome81- `make check` passes