Community研究與資料分析github.com

senseiewok/cf-evidence-loop

以研究人員的方式回答關於囊性纖維化、鐮狀細胞病或任何疾病的問題,逐一查閱公開來源,並返回證據記錄而非直接答案。當任務需要搜尋PubMed或Europe PMC、尋找系統性回顧或Cochrane回顧、檢查論文是否被撤回或更正、列出或檢視ClinicalTrials.gov試驗、確認美國藥物核准日期或閱讀現行標籤章節、查找或掃描預印本、讀取變異體的ClinVar...時使用。

cf-evidence-loop 是什麼?

這個技能「CF Evidence Loop」提供了一個命令列工具,讓AI代理能夠像研究人員一樣進行嚴謹的證據搜尋。它專注於回答關於囊性纖維化、鐮狀細胞病等疾病的問題,核心原則是「每個結果都必須附帶其來源、日期,以及它無法證明的內容」。技能支援多個主要平台,包括Claude Code、Cursor和Codex,並整合了超過40個公共生物醫學資料庫,如PubMed、Europe PMC、ClinicalTrials.gov、FDA openFDA、Scite和ClinVar。每個查詢都會以結構化的證據記錄形式返回,包含標題、出版年份、引用次數和來源狀態,並通過「brief」功能實現跨來源交叉驗證。這個工具明確區分研究與醫療建議,只返回公開文件的記錄,不進行個人化解釋,非常適合需要追蹤文獻、驗證引用、或執行系統性文獻回顧的任務。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/senseiewok/cf-skills/tree/HEAD/.claude/skills/cf-evidence-loop

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

CF 證據循環(CF Evidence Loop)

研究人員不會從答案開始。他們會針對一組固定問題,逐一查閱公開記錄:有哪些出版品、是否有任何出版品被撤回、有哪些正在進行的試驗、哪些已獲核准及適用對象、涉及多少人數、領域的建議是什麼,以及領域透過補助金和預印本正在討論什麼。此技能為代理提供了一個命令列形式的循環,並有一條規則:每項結果都必須附帶其來源、日期,以及它無法證明的內容。

研究,而非醫療建議。此工具返回的記錄描述的是公開文件。它們不會為任何人解讀任何資訊,標籤上的適應症說明也不代表任何個人的資格條件。

1. 此技能的功能

問題指令來源
關於此主題已出版哪些內容?pubmed "<term>" [--sort pub_date]透過 NCBI E-utilities 查詢 PubMed
系統性回顧和 Cochrane 怎麼說?reviews "<term>"PubMed 的系統性回顧子集加上 Cochrane 期刊
使用開放取用和引用元資料搜尋epmc '<Europe PMC query>'Europe PMC
此 DOI 被引用的頻率為何,以及它是否為開放取用?cited <DOI>Europe PMC
此論文是否已被撤回或更正?retractions <DOI> [<DOI> ...]Crossref、Retraction Watch 資料
此 DOI 是什麼?doi <DOI>Crossref
FDA 何時首次核准此藥物?approval <BRAND>openFDA Drugs@FDA
現行美國標籤怎麼說?label <BRAND> [--sections ...]openFDA 標籤
EMA 何時在歐盟核准此藥品?ema <DRUG> [--file PATH]歐洲藥品管理局(離線下載的 JSON 報告)
哪些試驗列出了此疾病?trials "<condition>" [--term X] [--status RECRUITING]ClinicalTrials.gov v2
此試驗在試驗登記處的資訊為何?trial <NCTId>ClinicalTrials.gov v2
此預印本是什麼?`preprint <biorxivmedrxiv> `
在某時間範圍內出現了哪些 CF 預印本?preprints <server> <YYYY-MM-DD> <YYYY-MM-DD> [--pattern]bioRxiv / medRxiv
此變異體如何分類?variants "<ClinVar query>"透過 NCBI E-utilities 查詢 ClinVar
NIH 資助誰進行此主題的研究?grants "<text>" [--fy 2025]NIH RePORTER
UKRI 資助誰進行此主題的研究?ukri "<query>" [--limit 25]UKRI Gateway to Research (別名:gtr)
某地區的人口基數為何?population <entity> [--variable Count_Person] [--year YYYY]Google Data Commons
使用 CADD、ClinVar、SnpEff、gnomAD 頻率註解變異體myvariant "<variant query>" [--limit 5]MyVariant.info
查詢 gnomAD 彙總等位基因頻率 (因設計而被拒絕)gnomad <chrom-pos-ref-alt>gnomAD (僅限手動存取;目錄政策始終拒絕)
OpenAlex 對此作品有何資訊 (引用、撤回、OA)?`openalex <DOIID>`
搜尋 OpenAlex 作品openalex-search "<query>" [--limit 10]透過 OurResearch 查詢 OpenAlex (需要金鑰)
Unpaywall 索引了哪些開放取用位置和授權元資料?unpaywall <DOI>透過 OurResearch 查詢 Unpaywall
Semantic Scholar 擁有哪個引用圖譜和論文元資料?s2 <DOI>透過 Ai2 查詢 Semantic Scholar (別名:semantic-scholar)
解析完整的論文追蹤 (Crossref、Unpaywall OA、Semantic Scholar 引用)paper-trail <DOI>Crossref、Unpaywall、Semantic Scholar (別名:paper)
ChEMBL 擁有哪個化合物的元資料、臨床階段和 ATC 代碼?`chembl <CHEMBL_IDname> [--limit 5]`
ChEMBL 擁有哪些定量生物活性分析 (EC50、IC50、Ki、Kd)?`chembl-activity <CHEMBL_IDname> [--target CHEMBL4051]`
Open Targets 擁有哪個目標的可追蹤性、安全性風險、疾病評分或 FAERS 統計資料?`opentargets <IDquery> [--limit 5]`
Scite 為此 DOI 提供了哪些支持性、對比性和提及性引用計數?scite <DOI> [--rest]Scite Pro MCP (scite-mcp) 或零額度公開 REST (--rest,scite-api)
每次請求最多篩選 500 個 DOI,以零額度成本取得 Smart Citation 計數、撤回和章節細分scite-batch <DOI...> [--papers] [--sections]Scite 公開 REST (POST /tallies,POST /papers,POST /tallies/cited-by-sections;零額度成本)
對此 DOI 的引用如何分佈在摘要、方法、結果和討論章節?scite-sections <DOI>Scite 公開 REST (GET /tallies/cited-by-sections/{doi} + /tallies/{doi};零額度成本)
讀取特定論文內的逐字全文摘錄和 Smart Citation 片段scite-excerpts <DOI> "<query>" [--limit 5]Scite Pro MCP 模式 C (scite-mcp,隔離在 <untrusted_data> 中)
Scite 從種子 DOI 推薦哪些相關論文?scite-recommend <DOI> [--limit 5]Scite 合作夥伴 REST (GET /api_partner/recommend-papers/{doi},受每月 650 次請求的 REST 保護盾限制)
使用 Scite Smart Citation 計數搜尋文獻scite-search "<query>" [--limit 5]Scite Pro MCP (scite-mcp,需要 OAuth/金鑰)
以零額度成本將 PubMed ID 解析為 DOIscite-pmid <PMID>Scite 公開 REST (GET /papers/resolve-pmid/{pmid},零額度成本)
匯總最多 100 個 DOI 的 Smart Citation 計數,零額度成本scite-aggregate <DOI...>Scite 公開 REST (POST /tallies/aggregate,零額度成本)
列出目標 DOI 的引用出版物和已撤回引用計數,零額度成本scite-sources <DOI> [--limit 5]Scite 公開 REST (GET /papers/sources/{target_doi},零額度成本)
探索 1 跳引用網絡,包含意圖分類和隔離片段scite-graph <DOI> [--direction both] [--limit 5]Scite Pro MCP (citation_graph,隔離在 <untrusted_data> 中)
按 DOI 或 PMID 讀取分頁全文主體`scite-fulltext <DOIPMID> [--offset 0] [--length 8000]`
搜尋 Scite 證據資料集 (英國 MHRA、專利、510(k)、MAUDE、FAERS、補助金、藥物、試驗)scite-evidence <dataset> "<query>" [--filter F] [--page 1]Scite Pro MCP (search_mhra,search_patents,search_510k_summaries 等,隔離在 <untrusted_data> 中)
標準化 HGVS 或 SPDI 變異體座標`ncbi-variation <HGVSSPDI>`
查詢 UniProtKB 蛋白質序列、結構域邊界和天然變異體`uniprot <ACCESSIONquery> [--limit 5]`
查詢 Ensembl 基因組座標、典型轉錄本或 rsID 後果`ensembl <rsIDENSG
按藥物名稱搜尋 NLM DailyMed 結構化產品標籤 (SPL)dailymed <DRUG> [--limit 5]DailyMed RESTful web services v2 (dailymed-web-services)
在目錄條目前閱讀條款或法律頁面read-page <HTTPS_URL> [--out FILE] [--max-chars N]在實驗室行為規則下,由人類發起閱讀條款/政策頁面或 PDF
確定性查詢 CFTR RefSeq NM_000492.4 外顯子和 UniProt P13569 結構域背景`cftr-context <variantcodon>`
確定性查詢 CFTR 調節劑品牌、API、分子代碼、NDA 和 openFDA SPL 黑框警告安全背景`cftr-modulator <brandcode
確定性查詢 CFTR Cryo-EM 座標結構元資料cftr-structure <pdb_id> [--list]零網絡確定性 CFTR Cryo-EM 結構解析度、配體、構型和參考 (別名:cftr-pdb)
此工具可以存取哪些來源?sources目錄
多個來源對同一藥物、變異體或試驗怎麼說?brief drug <BRAND>,brief variant "<ClinVar query>",brief trial <NCTId>上述來源,交叉核對 (參閱 Briefs)
此筆記中的每個 DOI、PMID 和試驗 ID 是否存在?cite-check <FILE> [--max-ids 30] [--scite-bulk]Crossref、PubMed、ClinicalTrials.gov,加上可選的零額度 Scite 批量預檢 (參閱 Cite-check)

客戶端程式碼拒絕執行的操作:存取 catalog.yaml 中不允許的任何主機 (API 資料查詢中永不遵循重新導向);偽裝成瀏覽器;跳過憑證檢查;在被拒絕後重試。對於目錄前的條款閱讀,read-page 會強制執行實驗室的嚴格網路行為:僅限 HTTPS,首先透過 robots_allows 檢查 robots.txt,尊重 Crawl-delay,拒絕或無法讀取的 robots 會中止擷取,同站 HTTPS 重新導向會重新檢查 robots,啟用憑證驗證,5 MB 主體容量上限,單一請求。它不需要目錄條目,因為它專門用於在目錄條目存在之前,由人類發起閱讀條款頁面,而非用於資料提取。該套件也永遠不會呼叫語言模型,也不會查詢任何持有個人層級資料的來源。

2. 執行

pip install -r scripts/requirements.txt
python scripts/evidence_cli.py retractions 10.1038/ng.2745
python scripts/evidence_cli.py approval TRIKAFTA
python scripts/evidence_cli.py variants "CFTR[gene] AND F508del" --limit 5
python scripts/evidence_cli.py population country/USA
python scripts/evidence_cli.py cftr-context "F508del"
python scripts/evidence_cli.py cftr-context "621+1G->T" --json
python scripts/evidence_cli.py cftr-context "711+1G->T"
python scripts/evidence_cli.py cftr-modulator "Trikafta"
python scripts/evidence_cli.py cftr-modulator "VX-121" --json
python scripts/evidence_cli.py cftr-structure "8EIQ"
python scripts/evidence_cli.py cftr-structure "8EIZ"
python scripts/evidence_cli.py cftr-structure "7SV7"
python scripts/evidence_cli.py cftr-structure "7SVR"
python scripts/evidence_cli.py cftr-structure "6O2P"
python scripts/evidence_cli.py cftr-pdb --list

每個指令的標誌:--json 將每條記錄輸出為一個 JSON 物件,--ledger PATH 將記錄附加到一個 JSONL 證據分類帳。當每條記錄的狀態為 found 或 not_found 時,退出碼為 0;當有任何記錄的狀態為 blocked、rate_limited 或 error 時,退出碼為 3。

Briefs

Brief 會透過同一個客戶端向多個來源提出一個問題,因此目錄閘道、節流、預算和斷路器仍然生效。它會列印每個來源返回的每條記錄、每個來源的狀態、它比較的欄位,以及一個簡短的交叉核對區塊。

配方執行交叉核對
brief drug TRIKAFTAapproval、label、依條款進行的 trials (5)、為品牌進行的 pubmed (5)每個來源的狀態;標籤的生效日期年份不早於 Drugs@FDA 首次核准年份;OpenAlex 文獻和撤回掃描;CFTR 調節劑安全邊界 (AH-4) 和初步 PDB 交叉核對
brief variant "CFTR[gene] AND F508del"variants、為相同條款進行的 pubmed (5)每個來源的狀態;有多少 ClinVar 記錄匹配,以及每一條的分類和審查狀態
brief trial NCT05033080trial、為 NCT id 進行的 pubmed (5)每個來源的狀態;登記處記錄的 ID;哪些返回的論文在其標題中提及該試驗

如何解讀交叉核對:

  • PASS:數值一致,或來源已回應。這不是關於藥物、變異體或試驗的發現。
  • CHECK:應由人員查看。來源未回應;多條 ClinVar 記錄匹配 (全部列出,無從選擇);或標籤的生效日期早於藥物的首次核准日期,這不可能是正確的,因此兩條記錄中有一條不一致。標籤的生效日期是其最新修訂日期,因此標籤年份等於或晚於核准年份是預期的,並且是 PASS。
  • NOT STATED:來源未提供該數值,因此無從比較。PubMed 記錄不包含摘要或全文,因此一篇未在標題中提及該試驗的論文是 NOT STATED,而非「未提及」。

Brief 不做的事:它不會加入任何自身的事實。它列印的每個數值都是從記錄欄位複製而來,或是帶有標籤的計數或年份差距,缺失的數值會列印為 not stated。被封鎖、限速或失敗的來源不會阻止其他來源;它會與其狀態一同列出,並且退出碼為 3。使用 --json 時,記錄會先出現,最後一個物件 {"brief": ...} 會包含來源、欄位、交叉核對和頁尾;--ledger 僅儲存記錄。每個 brief 都以以下內容結尾:研究,而非醫療建議。Brief 列出的是公開文件;它不會為任何人解讀任何資訊。

Cite-check

每條引用都會經過證據記錄,無法解析的引用會從來源中刪除或修正,絕不從記憶中修復。cite-check FILE 會將其應用於整個筆記。它會尋找每個 DOI、每個寫成 PMID 123、PMID: 123 或 pubmed/123 URL 的 PubMed ID,以及每個 NCT ID,移除重複項 (保留首次出現的行),並使用單一查詢程式碼逐一查詢:DOI 使用 doi,PMID 使用基於 [pmid] 欄位的 PubMed 搜尋 (兩次請求),NCT ID 使用 trial。通常的客戶端規則適用:目錄閘道、節流、預算、斷路器、記帳。

行意義
PASS來源返回了一條記錄;其標題和年份或日期會被列印,如果缺失則列印 not stated
NOT FOUND來源回應沒有此 ID。從來源中刪除或修正它;絕不要猜測
UNRESOLVED查詢被封鎖、限速或失敗。無法解析不等於不存在
TITLE PASS / TITLE CHECK同一行上四個或更多單詞的引述或強調短語,與記錄的標題 (忽略大小寫、標點符號和順序) 共享至少 0.6 (或更少) 的較短一側單詞

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能