
oma-scholar
Search academic literature and generate, validate, or compare Knows paper sidecars. Use for claim/evidence analysis and literature synthesis.
- Installs
- 47
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/gracefullight/stock-checker --skill oma-scholar- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads oma-scholar automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Scholar - Research Paper Sidecar Companion
Scheduling
Goal
Search, fetch, generate, validate, analyze, review, and compare scholarly paper sidecars using the Knows .knows.yaml spec for token-efficient research workflows.
Intent signature
- User asks for academic literature search, sidecar generation, sidecar validation, paper claims/evidence summary, structural paper comparison, or peer review as sidecar.
- User references Knows,
.knows.yaml, knows.academy, OpenAlex, claims, evidence, relations, or paper sidecars.
When to use
- Reading research papers token-efficiently via Knows sidecars (~700 tokens for claims-only vs ~10K for full PDF)
- Generating
.knows.yamlsidecars from your own paper drafts, LaTeX, or research notes - Validating sidecar structure (rule-based) before sharing
- Producing peer reviews as sidecars
- Querying or summarizing existing sidecars
- Structurally comparing two papers (claims, methods, evidence)
- Searching/fetching sidecars from
knows.academy(2026 papers only; current counts via/api/proxy/jobs/stats)
When NOT to use
- General web search or non-academic content -> use
oma-search - Translating papers -> use
oma-translation - PDF parsing only (no sidecar) -> use
oma-pdf - Submitting sidecars back to knows.academy -> out of scope (host LLM only consumes/produces locally)
- Full peer-review workflow with editor system -> out of scope
Expected inputs
- Paper, abstract, draft, LaTeX, research notes, sidecar file, DOI, OpenAlex ID, Knows record ID, or search query
- Desired mode: generate, validate, review, analyze, compare, or remote fetch
- Optional strictness, section filter, or CI behavior
Expected outputs
.knows.yamlsidecar, review sidecar, lint report, search/fetch result, natural-language analysis, or structural comparison- Sidecars conforming to v0.9.0 /
paper@1profile - Validation status and warnings before sharing generated sidecars
Dependencies
oma scholarCLI subcommands- knows.academy public API; OpenAlex and Semantic Scholar fallbacks
resources/sidecar-spec.md, API endpoints, OpenAlex setup, upstream cache, checklist, and execution protocol
Control-flow features
- Branches by mode, source availability, Knows/OpenAlex coverage, strict vs lenient validation, and fetched section
- Reads/writes YAML sidecars and may call public APIs
- Avoids fabrication when source evidence is missing
Structural Flow
Entry
- Identify mode and source artifact/query.
- Resolve paper identity through Knows or OpenAlex when needed.
- Load sidecar spec and mode-specific protocol.
Scenes
- PREPARE: Select mode and gather source or remote identifiers.
- ACQUIRE: Fetch paper metadata, sidecar sections, or local source text.
- REASON: Extract claims, evidence, relations, provenance, or comparison structure.
- ACT: Generate, lint, review, analyze, compare, or fetch sidecar data.
- VERIFY: Check the supported local contract, IDs, relations, and provenance; report lint limitations. Full canonical conformance requires the exact schema validator.
- FINALIZE: Return sidecar, report, summary, or comparison with caveats.
Transitions
- If knows.academy lacks the paper, fall back to OpenAlex metadata/abstract.
- If generating a sidecar, run lint before sharing.
- If consuming third-party sidecars with dangling references, use lenient mode when appropriate.
- If source evidence is absent, omit fields instead of guessing.
Failure and recovery
- If remote API times out, retry or use OpenAlex fallback.
- If YAML fails parsing, fix indentation and scalar types.
- If relation density or orphan statements warn, review coverage and type-appropriate links. Preserve source-anchored questions/definitions; never add unsupported relations to satisfy a quota.
Exit
- Success: requested sidecar operation completes with validation status.
- Partial success: missing metadata, fallback source, or validation warnings are explicit.
Logical Operations
Actions
| Action | SSL primitive | Evidence |
|---|---|---|
| Select mode | SELECT | Generate/Validate/Review/Analyze/Compare/Remote |
| Read paper or sidecar | READ | Source files or YAML |
| Request remote data | REQUEST | Knows/OpenAlex APIs |
| Infer claims/evidence/relations | INFER | Sidecar generation/analysis |
| Write sidecar | WRITE | .knows.yaml outputs |
| Validate sidecar | VALIDATE | oma scholar lint |
| Report result | NOTIFY | Summary or lint report |
Tools and instruments
oma scholar search|resolve|get|lint- Knows public API, OpenAlex fallback, sidecar spec, checklist
Canonical command path
oma scholar search "<query>"
oma scholar resolve "<title-or-doi>"
oma scholar get "<record-id-or-doi>"
oma scholar lint "<paper.knows.yaml>"
Resource scope
| Scope | Resource target |
|---|---|
LOCAL_FS | Paper drafts, sidecar YAML, review sidecars |
NETWORK | knows.academy and OpenAlex APIs |
PROCESS | oma scholar CLI and lint |
USER_DATA | User-provided paper content and research notes |
Preconditions
- Mode and source are identifiable.
- Spec rules are available for generation or validation.
Effects and side effects
- May create local sidecar or review sidecar files.
- May query public scholarly APIs.
- Does not submit sidecars back to knows.academy.
Guardrails
- Local generation targets v0.9.0 production compatibility /
paper@1(review sidecars usereview@1). This is narrower than complete canonical schema conformance; seeresources/sidecar-spec.md. - Host LLM generates sidecars: never shell out to
anthropicSDK or external LLM CLI; this skill runs inside an agent - Anti-fabrication: if DOI/venue/year is not visible in source, omit the key entirely; never write
doi: TODOor guess - Top-level metadata:
title,authors,venue,yearlive at the top level (nometadatawrapper) - Field names are exact:
statement_type,evidence_type,predicate,artifact_type(nottype/claim) - Provenance has SINGLE actor:
provenance.actoris one object, NOT aprovenance.actorsarray - Confidence is an object:
{claim_strength: ..., extraction_fidelity: ...}, both fromhigh|medium|low - Coverage is an object:
coverage.statements(4-value enum) +coverage.evidence(3-value enum) - Closed enums: actor
tool|person|org(neverai/llm/model); artifact rolesubject|supporting|cited; predicates in present tense - Numbers unquoted:
value: 22, nevervalue: '22' - Relation coverage: review the local ratio/orphan warnings; add only source-supported, type-appropriate relations. Claims with evidence use
supported_by; definitions and open questions can remain source-anchored. A ratio of 1.5 is diagnostic, not a graph-padding quota. - ID format: descriptive kebab-case with prefix:
stmt:privacy-budget-tradeoff,ev:cifar10-accuracy-table,art:paper - Validate before sharing: run
oma scholar lintafter Generate and Review; cross-record refs (record_id#local_id) in review sidecars are recognized and not flagged as dangling - Remote API has no auth:
https://knows.academy/api/proxy/*is public; do not invent auth headers - Partial fetch param is
section(singular): fixed enumstatements|evidence|relations|artifacts|citation - Fallback API keys are optional:
OPENALEX_API_KEY(metadata enrichment) andS2_API_KEY(Semantic Scholar dedicated rate limit) both improve throughput but the cascade degrades gracefully without them - Sidecar content stays English: schema fields, IDs, statement text follow upstream convention; user-facing responses follow
oma-config.yamllanguage - Contract scope: local generation rules and lint track production compatibility, not the complete canonical v0.9 schema. Preserve canonical imported shapes and report local-lint incompatibilities. Do not claim full schema compliance or add
$schemawithout validation against that exact schema; seeresources/upstream-spec-cache.md.
Modes
| Mode | Trigger | Output |
|---|---|---|
| Generate | "create sidecar from this paper / abstract / draft", "generate .knows.yaml" | {paper}.knows.yaml (host LLM emits, then oma scholar lint validates) |
| Validate | "lint this sidecar", "validate .knows.yaml" | Pass/fail report with file:line issues |
| Review | "peer review this paper as sidecar" | {paper}.review.knows.yaml |
| Analyze | "summarize this sidecar", "what claims does it make?" | Natural-language answer |
| Compare | "compare paper A and paper B structurally" | Diff table (claims/methods/evidence) |
| Remote | "find papers on X", "fetch sidecar :id", "get claims only for :id" | Search results / sidecar payload |
Provider Fallback (knows.academy → OpenAlex → Semantic Scholar)
knows.academy currently indexes only 2026 papers (mostly arXiv). For
older or non-2026 papers (Transformer 2017, BERT 2018, classics, journals),
the skill automatically falls back to OpenAlex for metadata and abstract,
then to Semantic Scholar (AI TL;DR, citation + influential-citation
counts) when OpenAlex also has nothing. See resources/fallback-providers.md.
Use the oma scholar CLI subcommands:
# Hybrid search: knows first, OpenAlex fallback
oma scholar search "vision language action"
# Cross-source resolve: figures out which source has the right paper
oma scholar resolve "Attention Is All You Need"
# Get by id (knows record_id, OpenAlex W-id, DOI, arXiv:<id>, CorpusId:<n>)
oma scholar get "10.48550/arXiv.1706.03762"
When OpenAlex returns the answer (knows.academy lacks the paper), use the returned abstract as input to Mode 1 Generate to produce a local sidecar.
Quick Reference
Search (knows + auto OpenAlex fallback)
oma scholar search "diffusion super resolution"
oma scholar search --year-min 2024 "vision language action"
Find one specific paper
oma scholar resolve "Attention Is All You Need"
# returns top hit from each source + recommendation
Fetch a sidecar or work
# knows.academy full sidecar
oma scholar get "knows:generated/reconvla/1.0.0"
# Partial fetch (claims only, ~700 tokens, 93% reduction vs PDF)
oma scholar get --section statements "knows:generated/reconvla/1.0.0"
# By DOI or OpenAlex W-id (works regardless of knows.academy availability)
oma scholar get "10.48550/arXiv.1706.03762"
# Semantic Scholar: AI TL;DR + citation/influential-citation counts
oma scholar get "arXiv:1706.03762"
When knows.academy is unreachable, get knows:... automatically falls back
to OpenAlex by extracting the slug from the record_id. The result is marked
with fallback: "openalex" and contains metadata + abstract, useful for
running Mode 1 Generate locally.
Validate
# Strict mode for own Generate output (default)
oma scholar lint paper.knows.yaml
# Lenient mode for third-party / fetched sidecars
oma scholar lint --lenient remote.knows.yaml
# Treat warnings as failures (CI mode)
oma scholar lint --fail-on-warning paper.knows.yaml
About 47% of knows.academy-served sidecars contain at least one dangling
cross-reference (typo in subject_ref/object_ref, measured across 15
production samples). Use --lenient when consuming third-party records so
these surface as warnings rather than blocking errors.
Raw API (when CLI is unavailable)
curl -s "https://knows.academy/api/proxy/search?q=..."
curl -s "https://knows.academy/api/proxy/sidecars/<encoded-id>"
curl -s "https://knows.academy/api/proxy/partial?record_id=<id>§ion=statements"
curl -s "https://knows.academy/api/proxy/jobs/stats" # platform health
Configuration
Project-specific settings: config/scholar-config.yaml. One key is user-tunable and lives elsewhere — read scholar.base_url from .agents/oma-config.yaml first and fall back to api.base_url in the skill config. Everything else there (endpoint paths, timeouts, id prefixes, lint rules) is protocol shape, not preference.
Troubleshooting
| Issue | Solution |
|---|---|
[ERROR] *.value: numeric value '22' is quoted | Remove quotes: value: '22' -> value: 22 |
[ERROR] provenance.actor.type: 'ai' is not allowed | Change to tool, person, or org |
[ERROR] *.type: use \statement_type` instead of `type`` | Rename type -> statement_type (or evidence_type/predicate/artifact_type) |
[ERROR] provenance.actors: v0.9 spec uses singular \actor`` | Replace actors: [{...}] array with actor: {...} object |
[ERROR] *.object_ref: reference 'X' does not match any defined id | Fix the subject_ref/object_ref to point to a real id, OR use --lenient if consuming third-party data (cross-record record_id#local_id refs are recognized and never flagged) |
[WARN] relations: avg relations/statement is N.NN (target ≥ 1.5) | Review coverage; add only supported, type-appropriate links, never pad the graph |
[WARN] statements: only N statements; most papers warrant ≥ 8 | Expected when generating from abstract only; full-paper Generate should hit 15+ |
[WARN] *.predicate: past-tense '...' is suspicious | Switch to present tense (evaluated_on -> evaluates_on) |
| Remote API returns empty results | Try broader query; check /api/proxy/jobs/stats; CLI auto-falls-back to OpenAlex |
knows.academy search failed: fetch failed (stderr) | Platform timeout; fallback to OpenAlex is automatic; retry later for sidecars |
| OpenAlex 403/429 | Set OPENALEX_API_KEY (see resources/setup-openalex.md) |
semanticscholar error: HTTP 429 (stderr) | Anonymous pool throttled; CLI retries once then skips the source. Set S2_API_KEY (free form at semanticscholar.org/product/api) for a dedicated limit |
| YAML won't parse | Check indentation; numbers/booleans must be unquoted; strings with : need quotes |
References
- Execution steps (follow for the selected task):
resources/execution-protocol.md - Sidecar spec rules:
resources/sidecar-spec.md - API endpoints:
resources/api-endpoints.md - OpenAlex setup:
resources/setup-openalex.md - Upstream spec snapshot:
resources/upstream-spec-cache.md - Post-generation checklist:
resources/checklist.md - CLI subcommands:
oma scholar search|resolve|get|lint(implementation undercli/commands/scholar/) - Context loading:
../_shared/core/context-loading.md - Quality principles:
../_shared/core/quality-principles.md - i18n rules:
../../rules/i18n-guide.md
FAQ
What does the oma-scholar skill do?
Search academic literature and generate, validate, or compare Knows paper sidecars. Use for claim/evidence analysis and literature synthesis.
How do I install oma-scholar?
Run npx skills add https://github.com/gracefullight/stock-checker --skill oma-scholar in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/oma-scholar/ (personal) or .claude/skills/oma-scholar/ (project).
Which AI agents can use oma-scholar?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is oma-scholar safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains oma-scholar?
It is published by gracefullight in gracefullight/stock-checker. It has 47 recorded installs.
More from gracefullight/stock-checker
stock-analysis
gracefullight/stock-checker
Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.
yahoo-finance
gracefullight/stock-checker
Get stock prices, quotes, fundamentals, earnings, options, dividends, and analyst ratings using Yahoo Finance. Uses yfinance library - no API key required.
trading-analysis
gracefullight/stock-checker
Generate professional investment reports for stocks and ETFs. Use when user requests market analysis, investment reports, stock analysis, or trading recommendations for financial instruments (SPY, AAPL, TSLA, etc.). Creates institutional-grade reports with technical indicators, AI-powered insights, charts, and investment recommendations.
backtesting-trading-strategies
gracefullight/stock-checker
Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".
financial data fetcher
gracefullight/stock-checker
Fetches real-time and historical market data, financial news, and fundamental data for trading decisions
oma-debug
gracefullight/stock-checker
Open the skill to read its SKILL.md instructions.
Popular education & science skills
teach
mattpocock/skills
Teach the user a new skill or concept, within this workspace.
scaffold-exercises
mattpocock/skills
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
paper-context-resolver
lllllllama/rigorpilot-skills
Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.
caveman-learn
juliusbrussee/caveman
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.
gsap-plugins
greensock/gsap-skills
Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.
teach-impeccable
pbakaus/impeccable
DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.