Install
openclaw skills install @medstatstar/ct-literatureSearch medical-domain scholarly literature with full data-source coverage (OpenAlex + Europe PMC/MeSH + bioRxiv/medRxiv preprints + arXiv methodology breadth), normalize, merge, and de-duplicate the results, produce a qualitative CSM safety-literature subset, and assist in providing open-access (OA) full-text PDF downloads. Usable without a key. / 全数据源覆盖检索医学领域学术文献(OpenAlex + Europe PMC/MeSH + bioRxiv/medRxiv 预印本 + arXiv 方法学广度),归一化合并去重,可产出 CSM 安全性定性子集,协助提供OA文献PDF下载。无key亦可使用。
openclaw skills install @medstatstar/ct-literatureThe workbench is published as a Python HTTP service at https://ct-literature.app.workbuddy.host/
(appId wbapp_WuOPnJ4caJ32GTquNlR7vc; bundle workbench/publish-dist/, workspace-independent,
re-publish via workbench/publish-kit/install_genie.py — overwrite, never createNewApp;
mis-bound paths are permanently retired and the returned shareLink must always be asserted).
Full registry table + re-publishing protocol → references/published_app.md — load it before any deploy / re-publish operation.
Retrieve published scholarly literature (peer-reviewed papers, systematic reviews, conference abstracts, preprints) about a drug / disease / method, normalize heterogeneous records from multiple public bibliographic sources into one de-duplicated evidence base, and surface the evidence landscape plus a CSM (cumulative safety monitoring) qualitative subset. Supports trial-planning background, protocol / CSR introductions, and published-safety literature checks.
Four complementary A-tier public-intel skills: ct-registry (registered trials) · ct-literature (published evidence) · ct-safety (FAERS signals) · ct-pipeline (aggregate intel brief).
Boundaries: ct-literature --safety is qualitative published-safety literature — never a substitute for ct-safety's FAERS disproportionality. Unsure which skill? Route via ct-advisor (§15). Full four-skill matrix + boundary detail → references/capabilities.md.
Default pipeline: OpenAlex (primary) + Europe PMC (default ON) + bioRxiv/medRxiv (default ON).
Opt-in: arXiv (--with-arxiv), Cochrane CDSR via Europe PMC journal filter (--cochrane), Semantic Scholar (--with-semantic-scholar, key needed), PROSPERO (--with-prospero — reserved source, dormant no-op without token, never claimed functional). All public bibliographic APIs, no WAF; keyless OpenAlex is capped 100/day since 2026-02-13 — a free key lifts to 100k/day (.env auto-load, key never printed).
Per-source access/status/role table + PROSPERO caveat → references/capabilities.md.
--with-guidelines, opt-in · LOCAL corpus)Version-pinned, pointer-only corpus (references/guidelines/guidelines_index.json) — build once (network, adapters/build_guidelines.py), read many (zero network). Full-text documents are NEVER shipped in the skill (author Coze KB / opt-in external cache). Corpus is honest by construction: failed fetch degrades to a retrieved:false pointer, never a fabricated citation.
Tier matrix, data-protection split, audit notes → references/capabilities.md.
Core: topic/drug/disease search · review-type & year filters · safety/CSM tagging · multi-source merge+dedupe · citation ranking · MeSH/concepts/funders · structured output (JSON/MD/Excel) · retry+backoff · safe link rendering · citations BibTeX/RIS · PRISMA funnel · doc-type exclusion (--original-only / --only-type, bidirectional) · relevance scoring · Obsidian/Zotero.
Anti-hallucination: P0 citation verification (--verify, §17.1) · P1 DOI audit (--verify-dois) · P0 evidence provenance log.
Full capability table (per-feature flags & semantics) → references/capabilities.md.
Ported 组小学's (tencent-lit-search) auditable retrieval structure to ct-literature — all additive, backward-compatible (no new flag = identical old behavior):
--concept TYPE=VALUE (repeatable): TYPE∈{condition,population,intervention,comparator,outcome,endpoint,study_design,biomarker,drug,indication}. Concepts are AND-combined into the query, with intervention / comparator / outcome on separate axes (no longer all crammed into --topic); each concept is MeSH-normalized and its mapping_status recorded (exact_label / synonym / unmapped_literal; fuzzy matches are rejected and literal terms are never fabricated).--depth quick|standard|deep: per-source cap + whether to trigger weak-result rescue (quick never rescues; standard/deep do). Not an evidence-quality rating.evidence_dimension (= safety if is_safety, else general); --safety plans a dedicated safety lane so safety signals are not diluted by efficacy records. SAFE PREVIEW prints the lane plan view (purpose / source / evidence_dimension / notes) for pre-run review.status∈{ok,empty,error,skipped} and coverage∈{healthy,partial,empty,critical_gap}; explicitly-disabled sources are logged as skipped (not_run); gaps are surfaced honestly, never zeroed; OpenAlex failure → critical_gap with a warning against extrapolation.standard/deup and unique merged works < 5 and concepts had narrowed the query, automatically re-run with a broader query (topic only); single-shot, non-fatal; logs skipped if nothing new is added.What is NOT ported: 组小学's 7-scenario exhaustive set / first-class trial·drug·target objects / target-gene-variation entities — these fall outside ct-literature's clinical-literature scope and would overlap with ct-registry / ct-safety, so they are deliberately excluded.
Normalizes all sources into one record shape (source / id / title / authors / year / … / doi / mesh / concepts / is_safety / is_preprint / sources). Field list → references/capabilities.md.
Standard deliverables = HTML + Excel only — present lit_report.html; lit_report.xlsx keeps the complete filterable result. On-demand add-ons: citations (.bib/.ris/styled md), OA-PDF download (--download-pdf, legal sources only; never open/list individual PDFs after download — point users at out_dir/pdfs/), Obsidian notes, Zotero exports. PDF pipeline runs local-resolve ‖ Coze-decode ‖ download in parallel (2026-09-19).
Full output catalogue, sheet layout, server-side supplement chain, concurrency notes → references/capabilities.md; command catalogue → references/sop.md.
C:\Tools\anaconda3\python.exe recommended).requests optional (fetch scripts use stdlib urllib); matplotlib optional (future trend charts).--run.--safety literature is qualitative — never feed it into FAERS disproportionality; it only corroborates ct-safety qualitatively.Primary entry: python scripts/ct_literature.py --topic "<query>" [--review-type …] [--year-from …] [--safety] [--cochrane] [--sources "OpenAlex,EuropePMC"] [--with-guidelines] --run --out-dir ./out (omit --run = SAFE PREVIEW). Guidelines corpus build: python adapters/build_guidelines.py --topic <topic> --run.
Invocation cookbook (worked examples, --sources semantics, OpenAlex key setup) → references/capabilities.md.
See references/errors.md for the full error catalogue (network / 429 / 401 / empty results / DOI dedupe).
ct-registry → ct-literature: landscape hypothesis seeds the literature search topic.ct-literature → ct-pipeline (intel evidence dimension), → ct-protocol / ct-csr (background), --safety → ct-safety (qualitative corroboration).A cross-database planning layer (Embase / Cochrane / Web of Science + preprint Tier P, adapted from multi-database-literature-collector, AIPOCH MIT) builds search strategy; live fetch still runs the six sources. See references/multi-db-search.md. The Cochrane leg is now directly automatable via --cochrane (a verified Europe PMC journal filter — identical to meta-analysis's in-skill dedup probe), so CDSR needs no manual browser step.
Every NL turn MUST start at Step 0 triage — never skipped, never jump straight to --run
(§6.2 + references/search_menu.md). Four buckets: Simple (topic +
≥2 params → §4.2 preview) · Complex (menu §4.1 → §12 keyword gate → §4.2 → run) · Vague
(grill-me ≤2 rounds → re-triage) · Middle (answer directly).
Red lines: never skip triage; never decide for the user (Complex menu keeps the "explain the differences" entry ③); the §12 keyword-system confirmation gate is mandatory whenever search terms are parseable.
Cross-turn continuity (high-risk, mode A): query spec lives only in the thread — after every run append the ## 当前检索设定:topic=… | type=… | year=… | safety=… | sources=… | max=… | verify=… echo block (never omit fields); follow-ups override only changed fields and run through merge_spec.py by default; remotes are stateless, so continuity is local-only.
Full triage tables, echo/merge_spec rules, execution flow → references/dialogue.md — load it when executing an NL dialogue round.
adapters/bug_report.py)Trigger = explicit user request (unlimited) or strong signal + one retry (≤1 proposal/session).
Hard two-stage confirmation: ① show full sanitized report → ② send only on explicit consent
(endpoint https://ct-bugreport.coze.site/run, public credential). 11-key whitelist envelope,
description is the only user-reviewed free text; never raw data. Client sends report only —
governance belongs to ct-update.
Full trigger/two-stage/sanitization detail → references/dialogue.md.