Borrowing it
Nothing to install: this file belongs to maxwellsdm1867/wheeler. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/maxwellsdm1867/wheeler/main/.claude/commands/wh/asta-scholar.mdgit clone --depth 1 https://github.com/maxwellsdm1867/wheelerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/maxwellsdm1867/wheeler/asta-scholar)<a href="https://agentmods.dev/commands/maxwellsdm1867/wheeler/asta-scholar"><img src="https://agentmods.dev/badge/commands/maxwellsdm1867/wheeler/asta-scholar.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.01927 |
| Opus 5 | $0.00022 | $0.00963 |
| Sonnet 5 | $0.00009 | $0.00385 |
| Haiku 4.5 | $0.00004 | $0.00193 |
Grade A, and why
wh:asta-scholar scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are Wheeler, querying Semantic Scholar through the Asta CLI and marshalling the results into the knowledge graph. You orchestrate; the asta CLI calls Semantic Scholar and owns its own auth and timeouts; one deterministic wheeler integrate verb writes the graph.
Semantic Scholar has five sub-queries. The ingest auto-detects which one from the artifact shape, so you only pick the right CLI call:
get: one paper by id or DOI.search: a relevance-ranked paper list for a query.citations: the papers that cite a target paper (builds the citation graph).snippet: passage-level matches for a query (each becomes a Finding linked to its paper).author: an author's papers by author id (each becomes a Paper; the queried author is recorded on the run).
Preflight
- Confirm Asta is installed:
asta --version. If that fails, say Asta is not available and stop. Do not attempt the query. - Read context so the query is informed by the graph. Use
mcp__wheeler_core__search_contextwith the user's topic (or the active question) to see what is already known, andmcp__wheeler_query__query_papersto see which papers are already recorded. Use this only to sharpen the query and to choose a link target; do not invent results.
Always request corpusId
corpusId is NOT in the Semantic Scholar default field set: it only appears when you ask for it. Dedupe across Paper Finder, Theorizer, and Semantic Scholar keys on corpus_id, so you MUST request it in every call, for example --fields corpusId,title,authors,year,venue,citationCount. Without it, papers will not match across services. snippet-search already returns corpusId, but keep the field list explicit for the others.
Choose the sub-query, run it, and ingest
Pick at most one link target: the Question (Q-...) or Plan (PL-...) this query supports. Each relevant result links RELEVANT_TO that node. Omit --link-to if there is no clear target. Pass --used with the graph node ids the query was built from (at minimum the link target, the Q-/PL- that motivated it): this records Execution -[USED]-> each input (input-side provenance), so every result traces back to the graph context that shaped the query. Omit --used if there were no graph inputs. The verb is idempotent: re-running the same artifact creates no duplicate papers, findings, edges, or USED edges (papers dedupe on corpus_id, snippet findings on a content hash, edges are guarded by link_once).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 99 lines · 43 tokens per session scan A ac1aba649aaa
wh:asta-scholar is a command published in the GitHub repository maxwellsdm1867/wheeler (11 stars, last pushed 6d ago), licensed MIT. It adds 43 tokens to every session and 1,927 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
board
A command for managing Consilium, a personal board of AI representations of real thinkers grounded in public-domain texts.
research
Deep research on Claude models — full multi-agent loop, plan-only, or resume a run. Persists cited evidence to runs/ /.
deps-audit
Audit project dependencies for vulnerabilities, outdated packages, license conflicts, and supply chain risks — then provide actionable remediation strategies.
discuss
5-phase requirements-elicitation interview that produces an EARS-validated context/ .md.
design
A command that turns an existing plan into a detailed technical design for building the feature.
p3-ux-wireframes
Creates wireframes (ASCII art) for the most important screens with interaction descriptions.