本文へ移動
cccskills
無料GitHub で公開

medical-evidence-grading

Medical evidence grading orchestrator. 当用户需要评估医学文献的证据强度、比较多篇论文的质量、查找某疾病的高等级证据(指南或 RCT)、或验证临床声明的证据支持度时,调用本 skill。整合 6 个原子 skill 的检索结果,按证据金字塔自动分级为 A/B/C/D。

优先使用 BioMCP fast-path(~3-5s),无 BioMCP 时回退 slow-path(~15-25s)。

インストール方法を見る

含まれるファイル(5)

  • SKILL.md13.9 KB
  • references/biomcp-integration.md5.6 KB
  • references/cache-schema.md5.0 KB
  • references/clinical-queries-mapping.md3.8 KB
  • references/grade-rules.md5.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

medical-evidence-grading · 医学证据等级排序与编排层(L2)

一句话定义

对底层 6 个原子 skill 召回的医学文献做"证据金字塔排序",输出带 GRADE A/B/C/D 评级的文献集与汇总报告;同时充当智能调度器,根据问题类型(疗效/诊断/病因/预后/不良反应/预测/指南/SR)自动选择最佳原子 skill 与 PubMed Clinical Queries filter。


Iron Law(不可违反)

GRADE 评级前必须调用 pubmed-eutils.efetch_pubmed() 拿真实 publication_type。不可仅凭 title/abstract 关键词推断。

理由:title 含"randomized"未必是 RCT(可能是综述讨论 RCT);只有 NLM MeSH 索引员人工标注的 publication_type 才是权威依据。仅当 efetch 返回为空(发表 < 6 个月新文献)才允许启发式推断,且必须给 grade 加 _inferred 后缀。

完整规则见 references/grade-rules.md。


何时调用(Auto-trigger)

调用本 skill (✅):

  • "评估这个临床声明的证据强度" → ✅ cross_validate_evidence(claim=...)
  • "找血液 IFI 最新指南级证据" → ✅ evidence_search(query=..., target_grade='guideline_only')
  • "对比这些 PMID 的 GRADE 等级" → ✅ grade_pmid_list(pmid_list=[...])
  • "我要给附录 C 重新分级" → ✅ grade_pmid_list + evidence_summary
  • "venetoclax AML 高质量 RCT" → ✅ evidence_search(target_grade='rct_or_above')

不调用本 skill (❌,直接调原子 skill):

  • "检索 PubMed" → ❌ 直接调 pubmed-eutils
  • "找 NCT 试验" → ❌ 直接调 clinical-trials-v2
  • "拿全文段落" → ❌ 直接调 bioc-fulltext-fetch
  • "全库批量分析" → ❌ 直接调 aact-bulk-trials

与其他 skill 协作矩阵(关键 · 编排核心)

协作方向Skill调用的具体函数用途
上游调用方ifi-market-sizing-skill(调本 skill)市场规模研究的"数据回补"
上游调用方disease-market-sizing-orchestration(调本 skill)调研启动阶段的高等级证据搜集
下游被调 1pubmed-eutils.esearch_pubmed() / .efetch_pubmed() / .pubmed_clinical_queries()拿 PMID + publication_type
下游被调 2europepmc-search.search_articles() / .find_similar_articles()EuropePMC + open-access 链接
下游被调 3clinical-trials-v2.search_studies()NCT + phase + enrollment
下游被调 4aact-bulk-trials.bulk_disease_landscape()全库历史试验(罕见病/纵向)
下游被调 5bioc-fulltext-fetch.to_rag_chunks()抽样本量(只对疑似 RCT/Cohort)
下游被调 6pubtator-entity-search.search_by_relation()给文献打疾病/药物 entity tag
下游接收方evidence-appendix-sync(接受本 skill 输出)报告附录 C 同步
              用户 / 上游 skill (ifi-market-sizing-skill, disease-market-sizing-orchestration)
                              │
                              ▼
                  [medical-evidence-grading]
                       ↙             ↘
            BioMCP fast-path      自建 slow-path
                  │                       │
            (单次 fan-out)        并发调 6 原子 skill
                  ↓                       ↓
                统一去重 (PMID > PMCID > DOI)
                              ↓
                publication_type 解析 (efetch · Iron Law)
                              ↓
                GRADE 评级 (A/B/C/D/excluded · 见 grade-rules.md)
                              ↓
                  evidence-appendix-sync (报告附录 C)

BioMCP fast-path vs 自建 slow-path 双模式

Fast-path: BioMCP MCP server (优先)

genomoncology/biomcp 一次性 fan-out PubMed + EuropePMC + ClinicalTrials + PubTator。

Slow-path: 自建 fan-out (兜底)

当 BioMCP 不可用,并发调 pubmed-eutils.esearch_pubmed() + europepmc-search.search_articles() + clinical-trials-v2.search_studies(),然后 pubmed-eutils.efetch_pubmed() 拿 publication_type,可选调 bioc-fulltext-fetch.to_rag_chunks() 抽样本量。

完整检测/配置/兜底逻辑见 references/biomcp-integration.md。

性能对比:

模式100 条文献延迟API 调用数缓存命中后
Fast-path (BioMCP)~3-5s1<500ms
Slow-path (自建)~15-25s6-10<500ms

5 核心函数签名(跨平台稳定)

# ============== 1. 主入口:综合证据搜索 ==============
def evidence_search(
    query: str,
    target_grade: str = "all",          # 'guideline_only' | 'rct_or_above' | 'all'
    max_results: int = 200,
    include_preprints: bool = False,
    include_trials: bool = True,
    date_range: str = "10years",        # 'all' | '5years' | '10years' | '2020:2025'
    rare_disease_mode: bool = False,    # 罕见病阈值放宽,见 grade-rules.md
    use_biomcp_if_available: bool = True,
) -> dict:
    """
    返回 {total, by_grade, fast_path_used, cache_hit, elapsed_seconds, results: [{evidence_id, pmid, pmcid, doi, title, authors, journal, year, publication_types, sample_size, is_preprint, grade, grade_rationale, abstract, source}]}
    """

# ============== 2. 给现有 PMID 列表打分 ==============
def grade_pmid_list(
    pmid_list: list[str],
    fetch_fulltext_for_sample_size: bool = False,
) -> list[dict]:
    """
    输入 ['38234567', ...] → 输出每条带 grade / grade_rationale 的字典。
    内部:批量 pubmed-eutils.efetch_pubmed() → 解析 publication_type → 应用 grade-rules.md。
    fetch_fulltext_for_sample_size=True 时,对疑似 RCT/Cohort 调 bioc-fulltext-fetch.to_rag_chunks() 抽 n。
    """

# ============== 3. 推荐检索策略 ==============
def recommend_search_strategy(
    question_type: str,       # 'therapy' | 'diagnosis' | 'etiology' | 'prognosis' | 'harm' | 'prediction' | 'guideline' | 'sr'
    user_query: str = "",
) -> dict:
    """
    返回 {clinical_queries_filter, pubmed_query_template, europepmc_query_template,
          expected_grade_distribution, recommended_skill, tips[]}.
    完整 8 类映射见 references/clinical-queries-mapping.md。
    """

# ============== 4. 反向证据交叉验证 ==============
def cross_validate_evidence(
    claim: str,               # 例: "Posaconazole 预防 IFI 比 fluconazole 更有效"
    top_k: int = 10,
    min_grade: str = "B",
) -> dict:
    """
    NLP 拆解 claim → PICO → 反向搜索高等级证据。
    返回 {claim, pico, supporting[], contradicting[], verdict, confidence}.
    verdict ∈ {supported, contradicted, mixed, insufficient}.
    """

# ============== 5. 证据汇总报告 ==============
def evidence_summary(
    graded_list: list[dict],
    output_format: str = "markdown",   # 'markdown' | 'html' | 'json'
    output_path: str | None = None,    # 提供则写 evidence/_summary.md
) -> str:
    """
    生成等级分布表 + Top 5 grade-A 摘要表 + 关键发现 + 引用建议 + 缺口提示。
    """

Clinical Queries 8 类问题速览

question_type优先 grade主调 skill
therapyA-Bpubmed-eutils.pubmed_clinical_queries(scope='therapy/narrow')
diagnosisA-Cpubmed-eutils + europepmc-search
etiologyB-Cpubmed-eutils
prognosisB-Cpubmed-eutils
harmA-Cpubmed-eutils + clinical-trials-v2 (AE 表)
predictionA-Bpubmed-eutils
guidelineA onlypubmed-eutils.pubmed_clinical_queries(scope='guidelines')
srA onlypubmed-eutils + europepmc-search

完整查询模板与罕见病调整见 references/clinical-queries-mapping.md。


失败模式速查 (10 条)

症状可能原因处理方式
BioMCP 检测到但调用失败MCP server 配置存在但未启动/版本不兼容静默回退 slow-path,日志告警,不阻塞
BioMCP 故障 fall-back 至 slow-path 但 NCBI 也限流双路连续失败加 jitter 退避,3 次后切 europepmc-search 单源,grade 标 _partial
GRADE 自动评级 publication_type 缺失文献 < 6 个月未 MeSH 索引启发式推断(见 grade-rules.md),grade 加 _inferred 后缀,警告用户人工复核
样本量提取失败(efetch 摘要不含 n)全文不可访问 / 摘要写法不规范跳过 n 校验,grade 按 publication_type 默认值,不应用 n 阈值降权
重复 PMID 跨原子 skill 未去重BioMCP 已去重但回退到 slow-path 未去重强制 evidence_id = "PMID:" + pmid 三段优先级(PMID > PMCID > DOI)再去重
证据矛盾(同一 claim 高等级证据正反皆有)真实存在的临床争议cross_validate_evidence 返回 verdict='mixed',supporting 与 contradicting 并列展示,不强行下结论
缓存命中但 GRADE 规则更新过grade-rules.md 升级未 bump 版本grade_rule_version 字段不匹配视为 miss,自动重算并刷新缓存
evidence/ 文件夹组织规范冲突下游 evidence-appendix-sync 期望 grade-A/B/C/D 子目录严格按 grade-A/PMID-XXX_AuthorYear.json 命名,变动需双方同步升级
同一研究多 PMID(预印本+正式版)medRxiv → 期刊优先保留期刊版,预印本标记 superseded_by
中文期刊文献缺失NCBI 不索引部分中文期刊提示用户用 CNKI / 万方补充,本 skill 不覆盖中文数据库

完整缓存策略见 references/cache-schema.md。


evidence/ 文件夹组织规范

下游 evidence-appendix-sync 期望本 skill 产出:

evidence/
├── grade-A/
│   ├── PMID-32786187_DiNardo-NEJM-2020.json
│   └── PMID-32786187_DiNardo-NEJM-2020_abs.txt
├── grade-B/  grade-C/  grade-D/  excluded/
├── _summary.md          # evidence_summary() 产出
├── _index.csv           # 全部文献索引(便于附录 C 引用)
└── _query_log.jsonl     # 检索日志(可复现)

每条 *.json 含 {evidence_id, grade, grade_rationale, citation_apa, citation_chinese, metadata, abstract, fetched_at, source_chain}。


跨疾病移植清单

本 skill 与具体疾病无关,移植到肺癌/糖尿病等只需:

  • 确认底层 6 原子 skill 已安装(/skills 列表查看)
  • 涉及罕见病时 evidence_search(rare_disease_mode=True) 自动放宽阈值(见 grade-rules.md)
  • 涉及外科器械时,补充 Comparative Effectiveness Research 类型识别
  • 中文医学领域加 CNKI / 万方补充检索(本 skill 不覆盖,建议外挂)

跨平台兼容(无锁)

平台兼容性说明
Claude Code原生SKILL.md 自动加载,Skill 工具直接调用
Codex (CLI)兼容复制到 $CODEX_HOME/skills/medical-evidence-grading/,通过 skill-installer
Gemini CLI兼容作为 prompt template 使用,函数签名需手工实现
Cursor / Continue部分提取 GRADE 规则表(见 grade-rules.md)作为 system prompt

关键不变量(确保跨平台一致):

  • 函数签名稳定(5 个核心函数不重命名)
  • GRADE 规则用 Markdown 表格表达(任何 LLM 可解析)
  • 缓存路径 ~/.claude/skills/medical-evidence-grading/cache.sqlite (Path.home() 自动适配)
  • BioMCP 检测三路:~/.claude/mcp.json / ~/.codex/config.toml / BIOMCP_ENDPOINT 环境变量

References (Progressive Disclosure)

主文件保持精简;深度细节按需加载:

  • references/grade-rules.md — GRADE 评级完整规则表 + 降权升权信号 + 启发式推断 + 跨疾病阈值
  • references/clinical-queries-mapping.md — Clinical Queries 8 类问题映射 + 多类型并行 + 罕见病调整 + 中国本土补充
  • references/biomcp-integration.md — BioMCP fast-path 检测三路 + fall-back 触发条件 + slow-path 自建 fan-out + 跨平台配置
  • references/cache-schema.md — SQLite cache 表结构 + TTL 策略 + 命中检测 + 维护命令

调用示例

# 示例 1: 找血液 IFI 最新指南
result = evidence_search(
    query="invasive fungal infection prophylaxis hematology",
    target_grade="guideline_only",
    max_results=20,
    date_range="5years",
)
# 返回 ECIL / IDSA / NCCN 等指南

# 示例 2: 给已有 PMID 列表打分
graded = grade_pmid_list(
    pmid_list=["32786187", "37123456", "38234567"],
    fetch_fulltext_for_sample_size=True,
)

# 示例 3: 反向验证临床声明
verdict = cross_validate_evidence(
    claim="Posaconazole 预防 IFI 比 fluconazole 更有效",
    top_k=10,
    min_grade="B",
)

版本与依赖

  • 版本: 1.1.0 (P0.2 阶段 · references 拆分版)
  • GRADE 规则版本: v1.0.0 (改动需 bump,见 cache-schema.md)
  • 依赖原子 skill: pubmed-eutils ≥1.0, europepmc-search ≥1.0, clinical-trials-v2 ≥2.0, aact-bulk-trials ≥1.0, bioc-fulltext-fetch ≥1.0, pubtator-entity-search ≥1.0
  • 可选 MCP: biomcp (genomoncology/biomcp,推荐安装以启用 fast-path)
  • 更新日志:
    • v1.1.0 (2026-04-25): references/ 拆分(grade-rules / clinical-queries-mapping / biomcp-integration / cache-schema),主文件 500 → ~370 行,新增 Iron Law / Auto-trigger 5 prompt / 函数级原子 skill 引用
    • v1.0.0 (2026-04-25): 初始版本

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

使用 AACT (Aggregate Analysis of ClinicalTrials.gov) PostgreSQL 数据仓库进行批量、历史、聚合性临床试验数据挖掘。Use this skill when the user requests bulk SQL analysis over the full clinical trials data warehouse — historical trial trends, disease landscapes, similar-design matching, or multi-year aggregations across hundreds of thousands of NCT records. 触发场景包括:AACT 查询、临床试验批量分析、PostgreSQL 试验数据、全量 NCT 检索、试验数据挖掘、历史试验分析、clinical trials data warehouse、SQL trials、bulk trial analysis、disease landscape、试验设计相似性匹配、跨年度聚合、sponsor/phase/country 多维统计。**与 clinical-trials-v2 差异**:本 skill 走批量 SQL · 离线大数据(PostgreSQL);v2 走实时 API · 单查询。两者互补:单条 NCT 实时状态用 v2,百万级历史挖掘用本 skill。支持云端公共 PostgreSQL(aact-db.ctti-clinicaltrials.org · 零部署)和每日 dump 本地还原(高性能 · 离线)两种连接方式,自动检测优先用本地。跨平台(macOS/Linux/Windows)参数化 SQL 防注入,read-only 强制保护。

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

使用 AACT (Aggregate Analysis of ClinicalTrials.gov) PostgreSQL 数据库进行大批量临床试验历史分析与数据挖掘。触发场景包括:AACT 查询、临床试验批量分析、PostgreSQL 试验数据、全量 NCT 检索、试验数据挖掘、clinical trials data warehouse、疾病领域全景分析、设计相似试验匹配、跨年度试验趋势聚合。本 skill 通过 SQL 接口处理百万级试验记录,支持云端公共 PostgreSQL 服务(aact-db.ctti-clinicaltrials.org)和每日 dump 本地还原两种连接方式,自动检测并优先使用本地高性能模式。

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

Use when work produces a deliverable, factual claim, dataset, code change, decision, publication, deployment, automation, or irreversible action whose failure would matter; when the user asks for a quality gate, acceptance criteria, QA, completeness, validation, audit, evidence, preflight, release readiness, or a definition of done; or before claiming completion on medium- or high-risk work. Automatically decide whether a formal gate is warranted, derive task-specific pass/fail criteria, gather evidence, and block unsupported completion. Make sure to use this skill even when the user does not say "quality gate" if consequential work needs acceptance criteria or completion evidence. Skip formal gating for trivial, reversible, low-impact requests.

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

Create a changeset file in .changeset/ that describes a user-facing change for the release notes

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

Add a new competitor to the AI Visibility Tool Directory — researches the tool, generates data, takes a screenshot, and inserts into the codebase

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

add-lang

無料

Add tree-sitter language support to codegraph end-to-end — wire the grammar + extractor, write tests, then benchmark extraction quality and retrieval value on 3 popular real-world repos. Use when the user runs /add-lang <language> or asks to add/support a new language (e.g. Lua, Elixir, Zig, OCaml) in codegraph.

日本語の概要は準備中です。原文の説明を表示しています。

EthanYoQ/Skill-hub112026年10月5日 更新

EthanYoQ のスキルをすべて見る

このスキルの問題を報告する