skills/consensus/SKILL.md
This skill should be used when the user asks to "search Consensus", "consensus search", "find RCT papers", "find clinical papers", "search medical literature via consensus", "find papers on consensus.app", or needs to search Consensus.app for academic/medical literature via the consensus CLI tool.
npx skillsauth add edwinhu/workflows consensusInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Search Consensus.app for academic papers via the consensus CLI tool.
Binary: ~/projects/consensus-cli/consensus
Requires: Dia browser running with CDP enabled on port 9222.
Check: ls ~/projects/consensus-cli/consensus || echo "MISSING: consensus binary not built"
consensus search "<query>" [options]
| Flag | Description |
|------|-------------|
| --n <int> | Result count (default 20, max 100) |
| --type <csv> | Study types: rct,systematic,meta,non_rct,observational,lit_review,case,animal,in_vitro |
| --years <range> | Year range: 2018-2024 or past N years (e.g. 5) |
| --min-citations <int> | Minimum citation count |
| --rank <q1\|q2\|q3\|q4> | Journal quartile filter (SJR) |
| --human | Human studies only |
| --rct | Shorthand for --type rct |
| --open-access | Open access papers only |
| --domain <csv> | Fields of study (e.g. Medicine,Chemistry) |
| --country <csv> | Country filter (e.g. USA,UK) |
| --page <int> | Page number (default 0) |
| --sort <field> | Client-side sort: citations (descending) |
{
"title": "...",
"authors": ["..."],
"year": 2023,
"journal": "...",
"doi": "...",
"citations": 150,
"study_type": "rct",
"takeaway": "One-sentence finding...",
"open_access_pdf_url": "https://... or null",
"url": "https://consensus.app/papers/..."
}
ALWAYS read the domain knowledge file before presenting results.
File: ${CLAUDE_SKILL_DIR}/../google-scholar/domain-knowledge.local.md
This file contains the user's curated list of trusted journals and authors. Use it to:
journal matches a trusted journaljournal looks like an SSRN label, use the doi field to look up the real journal (see DOI Resolution below)SSRN label patterns (journal field is NOT the real venue):
PSN:, ERN:, ERPN:, SRPN:, POL:, LSN:When a paper has an SSRN-label journal AND a non-null doi:
curl -s "https://api.crossref.org/works/<doi>" | uv run python3 -c "
import json, sys
d = json.load(sys.stdin)
msg = d.get('message', {})
ct = msg.get('container-title', [])
print(ct[0] if ct else 'NOT FOUND')
"
Use the resolved journal name to re-check against the trusted list. If it matches, mark ★ with a note: ★ (resolved via DOI from SSRN label).
If doi is null or CrossRef returns no container-title: leave as unresolved SSRN label.
★ [Title](url) — Authors (Year), *Journal*, N citations
> Takeaway: ...
★ [Title](url) — Authors (Year), *Resolved Journal* (resolved via DOI), N citations
> Takeaway: ...
[Title](url) — Authors (Year), *Journal* [SSRN label, unresolved], N citations
> Takeaway: ...
Trusted papers first (confirmed then resolved), then unresolved, then non-trusted.
NEVER use mcp__consensus__search. ALWAYS use the ~/projects/consensus-cli/consensus binary. This is not negotiable.
The MCP tool is rate-limited to 3 results per search and requires a free account. The CLI binary uses the enterprise account session in Dia and returns up to 100 results with no rate limit.
| Action | Why Wrong | Do Instead |
|--------|-----------|------------|
| Using mcp__consensus__search instead of the CLI | MCP is rate-limited to 3 results; CLI has no limit | Always use ~/projects/consensus-cli/consensus |
| Presenting results without reading domain-knowledge.local.md | User expects journal quality signals on every search | Read domain knowledge first, always |
| Treating SSRN topic labels as real journals without checking DOI | The paper may be in JF or JAE — you'd miss a trusted hit | Run CrossRef DOI lookup first |
| Skipping DOI resolution because there are many SSRN-labeled papers | High-citation SSRN-labeled papers are often published in top venues | Resolve all of them — it's one curl per paper |
| Using --rank q1 as a journal quality filter | The API maps SSRN working papers under Q1 labels — it is not reliable | Use domain-knowledge.local.md + DOI resolution instead |
| Passing --n > 100 | CLI validates and rejects — exits non-zero | Max is 100 |
User wants papers on a topic
↓
Read domain-knowledge.local.md
↓
Run: consensus search "<topic>" --n 50 --sort citations [filters]
↓
For each paper:
journal matches trusted list? → ★
journal is SSRN label + doi present? → curl CrossRef → re-check → ★ if match
else → unresolved / non-trusted
↓
Present: ★ confirmed, ★ resolved, then rest
↓
User wants "only relevant journals"?
YES → Return only ★ papers
NO → Return all, stars indicate quality
# Basic search — sort by citations to surface highest-impact papers first
consensus search "mandatory disclosure effects" --n 50 --sort citations
# Restrict to RCTs
consensus search "aspirin cardiovascular" --rct --n 10
# Recent papers, high-citation
consensus search "ESG disclosure" --years 5 --min-citations 50
# Systematic reviews only
consensus search "minimum wage employment" --type systematic
# Combine server-side quartile hint with domain-knowledge filtering
consensus search "corporate governance" --rank q1 --n 30
# (then filter ★ from output using domain-knowledge.local.md)
--rank q1 is imprecise (SSRN papers slip through) — domain-knowledge.local.md is the reliable quality gatestudy_type comes from Consensus badges and may be null for many papersopen_access_pdf_url is null when no PDF is available (not undefined)testing
Internal skill for literature review and source materialization. Called after brainstorm, before setup. NOT user-facing.
documentation
This skill should be used when the user asks to 'write a paper', 'start a writing project', 'draft an article', 'write about', 'brainstorm writing topics', 'gather sources for a paper', 'what should I write about', or needs the writing workflow entry point for any writing task.
testing
Validate draft sections cover all PRECIS claims before review.
testing
Internal skill for creating PRECIS.md, OUTLINE.md, and ACTIVE_WORKFLOW.md. Called after brainstorm sources are gathered.