Community연구 & 데이터 분석github.com

senseiewok/cf-evidence-loop

낭포성 섬유증, 겸상 적혈구 질환 또는 기타 질환에 대한 연구 질문에 답변하기 위해, 연구자처럼 하나의 공개 출처씩 확인하며 답변이 아닌 증거 기록을 반환합니다.

cf-evidence-loop란 무엇인가요?

이 스킬은 연구자가 공개 기록에 대해 일련의 고정된 질문을 수행하는 과정을 명령줄 인터페이스로 제공합니다. PubMed, Europe PMC, ClinicalTrials.gov, Drugs@FDA, OpenAlex, Scite 등 50개 이상의 공개 출처에 접근하여 체계적 리뷰, 임상시험, 약물 승인 여부, 변이 정보, 인용 데이터 등을 출처와 날짜, 확립되지 않은 사실과 함께 반환합니다. 각 명령은 JSON 출력과 증거 대장(ledger) 기록을 지원하며, 모든 결과는 검증 가능한 공개 문서 기반이므로 의학적 조언이 아닌 연구 지원 도구로 사용됩니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 실행 가능하며, 엄격한 네트워크 제어와 로봇 배제 규칙을 준수합니다.

지원 대상~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에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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가 이 의약품을 EU에서 승인한 것은 언제인가?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에 대해 스마트 인용 수, 철회 및 섹션 분석을 제로 비용으로 스크리닝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}; 제로 할당량 비용)
특정 논문 내의 축어적 전문 발췌문과 스마트 인용 스니펫 읽기scite-excerpts <DOI> "<query>" [--limit 5]Scite Pro MCP 모드 C (scite-mcp, <untrusted_data>에서 격리됨)
Scite가 시드 DOI에서 추천하는 관련 논문은 무엇인가?scite-recommend <DOI> [--limit 5]Scite Partner REST (GET /api_partner/recommend-papers/{doi}, 월 650회 REST 보호 게이트)
Scite 스마트 인용 수로 문헌 검색scite-search "<query>" [--limit 5]Scite Pro MCP (scite-mcp, OAuth/키 필요)
PubMed ID를 제로 할당량 비용으로 DOI로 해결scite-pmid <PMID>Scite 공개 REST (GET /papers/resolve-pmid/{pmid}, 제로 할당량 비용)
최대 100개 DOI의 스마트 인용 수 집계, 제로 할당량 비용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 웹 서비스 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는 PubMed 검색 ([pmid] 필드 사용, 두 번 요청), NCT ID는 trial. 일반 클라이언트가 적용됩니다: 카탈로그 게이트, 속도 조절, 예산, 회로 차단기, 회계.

라인의미
PASS출처가 레코드를 반환함; 제목과 연도 또는 날짜가 출력되며, 없는 경우 not stated
NOT FOUND출처가 해당 ID가 없다고 응답함. 출처에서 삭제하거나 수정하세요. 절대 추측하지 마십시오
UNRESOLVED조회가 차단, 속도 제한 또는 실패함. 해결되지 않음은 존재하지 않음과 동일하지 않음
TITLE PASS / TITLE CHECK같은 라인에 있는 4단어 이상의 인용 또는 강조된 구문이 레코드 제목과 단어의 최소 0.6(또는 그 미만)을 공유하는지 대소문자 구분 없이 확인

Individual skills in this repo

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

관련 스킬