{"id":"41cdcd73-0705-40aa-bce8-3cfd13782f6b","entityType":"agent","slug":"clawhub-medstatstar-ct-literature","name":"Clinical Trial Literature Search / 临床试验文献检索专家","canonicalUrl":"https://www.xpersona.co/agent/clawhub-medstatstar-ct-literature","canonicalPath":"/agent/clawhub-medstatstar-ct-literature","generatedAt":"2026-10-11T03:56:21.171Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":null},"description":"Search 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亦可使用。 Skill: Clinical Trial Literature Search / 临床试验文献检索专家 Owner: medstatstar Summary: Search 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 withou","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s176fv8983h1rte6dmxwp9wt4n89j8p5:ct-literature","sourceUrl":"https://clawhub.ai/medstatstar/ct-literature","homepage":"https://clawhub.ai/medstatstar/skills/ct-literature","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/medstatstar/ct-literature","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/medstatstar/skills/ct-literature","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Search medical-domain scholarly literature with full data-source coverage (OpenAlex + Europe PMC/MeSH + bioRxiv/medRxiv preprints + arXiv methodology breadth), "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":null},"stars":null,"forks":null,"downloads":1217,"packageName":null,"latestVersion":"1.0.1","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:37:58.796Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T00:37:58.812Z","lastCrawledAt":"2026-10-11T00:37:58.796Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T00:37:58.796Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.1","createdAt":"2026-10-02T03:01:40.254Z","changelog":"v1.2.0: Enable snowball+report-first by default; add few-results suggestion card; i18n fix; F19/F13/shared_sync compliance","fileCount":78,"zipByteSize":855698},{"version":"1.0.0","createdAt":"2026-09-07T07:53:26.336Z","changelog":"v1.0.0 full-feature stable release: OA PDF batch download chain; §16 pre-publish compliance cleanup; bilingual README refresh","fileCount":66,"zipByteSize":419448},{"version":"0.9.5","createdAt":"2026-08-26T06:25:18.402Z","changelog":"Release v0.9.5: unify version across SKILL.md frontmatter / dual READMEs / CHANGELOG (single source of truth); compress SKILL.md to <=200 lines; trim redundant Natural language dialogue section; publish GitHub + ClawHub (SkillHub already live)","fileCount":60,"zipByteSize":312576},{"version":"0.9.0","createdAt":"2026-08-22T10:04:44.493Z","changelog":"Add bug report feature: 11-key sanitized envelope via ct-bugreport endpoint with two-stage user confirmation and local fallback","fileCount":60,"zipByteSize":304394},{"version":"0.6.15","createdAt":"2026-08-14T09:54:43.033Z","changelog":"Major retrieval-performance optimization (pooled HTTP, verify dedup, 3x wider pool, two-phase delivery; benchmarked ~3.4x faster) + search-keyword auto-translation (Chinese→English, offline dictionaries ~900 entries, synonym OR, user-extendable) + progress event stream (--progress json). Clean package: tests/ excluded.","fileCount":54,"zipByteSize":251572},{"version":"0.6.14","createdAt":"2026-08-13T05:22:22.016Z","changelog":"Security-audit fixes (SkillSpector): unify API-key setup to conversational dual-path; drop R-only dead code; drug_name_resolver unique-candidate auto-mode; CLI anti-hallucination warnings; README activation boundary. Clean package: tests/ excluded.","fileCount":53,"zipByteSize":238397},{"version":"0.6.13","createdAt":"2026-08-13T05:18:45.002Z","changelog":"Security-audit fixes (SkillSpector): unify API-key setup to conversational dual-path; drop R-only dead code; drug_name_resolver unique-candidate auto-mode; CLI anti-hallucination warnings; README activation boundary. Clean package: tests/ excluded.","fileCount":53,"zipByteSize":238297},{"version":"0.6.12","createdAt":"2026-08-12T14:53:08.099Z","changelog":"引文验证新增标题/作者一致性深度校验（v0.6.11）：标识解析成功后拉 Crossref/EuropePMC/OpenAlex 元数据比对标题+第一作者，新增 mismatch 状态与 --no-consistency 开关；含 v0.6.10 系统逻辑审计与 README 重构。","fileCount":61,"zipByteSize":268413}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s176fv8983h1rte6dmxwp9wt4n89j8p5:ct-literature","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T03:56:21.167Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-medstatstar-ct-literature/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":null},"readme":"Skill: Clinical Trial Literature Search / 临床试验文献检索专家\n\nOwner: medstatstar\n\nSummary: Search 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亦可使用。\n\nTags: latest:1.0.1\n\nVersion history:\n\nv1.0.1 | 2026-10-02T03:01:40.254Z | user\n\nv1.2.0: Enable snowball+report-first by default; add few-results suggestion card; i18n fix; F19/F13/shared_sync compliance\n\nv1.0.0 | 2026-09-07T07:53:26.336Z | user\n\nv1.0.0 full-feature stable release: OA PDF batch download chain; §16 pre-publish compliance cleanup; bilingual README refresh\n\nv0.9.5 | 2026-08-26T06:25:18.402Z | user\n\nRelease v0.9.5: unify version across SKILL.md frontmatter / dual READMEs / CHANGELOG (single source of truth); compress SKILL.md to <=200 lines; trim redundant Natural language dialogue section; publish GitHub + ClawHub (SkillHub already live)\n\nv0.9.0 | 2026-08-22T10:04:44.493Z | user\n\nAdd bug report feature: 11-key sanitized envelope via ct-bugreport endpoint with two-stage user confirmation and local fallback\n\nv0.6.15 | 2026-08-14T09:54:43.033Z | user\n\nMajor retrieval-performance optimization (pooled HTTP, verify dedup, 3x wider pool, two-phase delivery; benchmarked ~3.4x faster) + search-keyword auto-translation (Chinese→English, offline dictionaries ~900 entries, synonym OR, user-extendable) + progress event stream (--progress json). Clean package: tests/ excluded.\n\nv0.6.14 | 2026-08-13T05:22:22.016Z | user\n\nSecurity-audit fixes (SkillSpector): unify API-key setup to conversational dual-path; drop R-only dead code; drug_name_resolver unique-candidate auto-mode; CLI anti-hallucination warnings; README activation boundary. Clean package: tests/ excluded.\n\nv0.6.13 | 2026-08-13T05:18:45.002Z | user\n\nSecurity-audit fixes (SkillSpector): unify API-key setup to conversational dual-path; drop R-only dead code; drug_name_resolver unique-candidate auto-mode; CLI anti-hallucination warnings; README activation boundary. Clean package: tests/ excluded.\n\nv0.6.12 | 2026-08-12T14:53:08.099Z | user\n\n引文验证新增标题/作者一致性深度校验（v0.6.11）：标识解析成功后拉 Crossref/EuropePMC/OpenAlex 元数据比对标题+第一作者，新增 mismatch 状态与 --no-consistency 开关；含 v0.6.10 系统逻辑审计与 README 重构。\n\nv0.6.11 | 2026-08-12T14:46:58.917Z | user\n\n引文验证新增标题/作者一致性深度校验（v0.6.11）：标识解析成功后拉 Crossref/EuropePMC/OpenAlex 元数据比对标题+第一作者，新增 mismatch 状态与 --no-consistency 开关；含 v0.6.10 系统逻辑审计与 README 重构。\n\nv0.6.0 | 2026-08-12T07:42:19.327Z | user\n\nv0.6.0: P0 citation verification + evidence provenance log; P1 PROSPERO reserved source (key-gated); outbound calls consolidated into adapters/; Open Access link column; SKILL.md <=200 lines\n\nv0.5.4 | 2026-08-11T03:15:41.740Z | user\n\nSelf-contained: inject ct-base shared assets, remove sibling fallback\n\nv0.5.3 | 2026-08-08T08:02:20.046Z | user\n\nAdd .env key XOR+base64 obfuscation (Ssd3 hardening); bump v0.5.3\n\nv0.5.2 | 2026-08-08T07:45:38.505Z | user\n\nRemove API-key-in-chat guidance (Ssd3); drop unused requests dependency; align v0.5.2\n\nv0.5.1 | 2026-08-08T06:49:34.599Z | user\n\nsecurity audit remediation: removed key-paste-to-assistant guidance, removed arbitrary R execution primitive (r_libs.run_r)\n\nv0.5.0 | 2026-08-08T05:37:00.981Z | user\n\ninit version\n\nArchive index:\n\nArchive v1.0.1: 78 files, 855698 bytes\n\nFiles: adapters/__init__.py (270b), adapters/bug_report.py (21369b), adapters/build_guidelines.py (12663b), adapters/coze_resolve.py (50906b), adapters/fetch_arxiv.py (10534b), adapters/fetch_coze_unified.py (33845b), adapters/fetch_europepmc.py (11958b), adapters/fetch_guidelines.py (21282b), adapters/fetch_openalex.py (18422b), adapters/fetch_preprints.py (17306b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (8385b), adapters/guideline_corpus.py (5199b), adapters/http_utils.py (21902b), adapters/pdf_download.py (80345b), adapters/portal_fetch.py (7069b), adapters/preprint_fallback.py (13392b), adapters/verify_citations.py (28888b), AGENTS.md (2581b), assets/_preview_240.png (16615b), assets/ct-lifecycle-diagram.png (247402b), assets/ct-lifecycle-diagram.svg (10356b), assets/icon_4x.png (30028b), assets/icon_8x.png (60690b), assets/icon.svg (2417b), CHANGELOG.md (147699b), docs/prospero_access_guide.md (10922b), LICENSE (1089b), README_zh-CN.md (39147b), README.md (41786b), references/capabilities.md (18408b), references/citation_styles.md (2494b), references/dialogue.md (5558b), references/drug_name_map.json (23396b), references/errors.md (834b), references/guidelines/guidelines_index.json (102767b), references/language_policy.md (3810b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (17603b), references/openalex_key.md (4544b), references/published_app.md (3963b), references/report_template.md (4246b), references/search_menu.md (18948b), references/sop.md (5607b), references/term_map.json (9096b), references/units.md (3538b), requirements.txt (534b), scripts/abstract_translator.py (10376b), scripts/ct_literature.py (86875b), scripts/doc_type_filter.py (17665b), scripts/drug_name_resolver.py (5168b), scripts/evidence_log.py (11243b), scripts/excel_style.py (24154b), scripts/export_html.py (43808b), scripts/export_xlsx.py (57355b), scripts/format_citations.py (13746b), scripts/hardware_id.py (4142b), scripts/i18n_messages.json (38477b), scripts/i18n.py (15685b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25723b), scripts/kw_localize.py (34167b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (21645b), scripts/obsidian_exporter.py (10702b), scripts/rare_disease_sources.py (10463b), scripts/report.py (27972b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (10410b), scripts/source_guard.py (5915b), scripts/test_topic_online_fallback.py (5585b), scripts/topic_translator.py (12388b), scripts/update_xlsx_pdf_paths.py (5619b), scripts/verify_dois.py (4316b), scripts/zotero_exporter.py (4654b), skill-card.md (2226b), SKILL.md (13683b), _meta.json (132b)\n\nFile v1.0.1:SKILL.md\n\n---\r\nslug: ct-literature\r\nname: ct-literature\r\ndisplayName: Clinical Trial Literature Search / 临床试验文献检索专家\r\ncn_name: 临床试验文献检索专家\r\nversion: 1.2.0\r\ninvocable: true\r\nsummary: 全数据源覆盖检索医学领域学术文献（OpenAlex + Europe PMC/MeSH + bioRxiv/medRxiv 预印本 + arXiv 方法学广度），归一化合并去重，可产出 CSM 安全性定性子集，协助提供OA文献PDF下载。无key亦可使用。\r\nlicense: MIT\r\ndescription: \"Search 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亦可使用。\"\r\ntriggers:\r\n  - \"systematic literature search\"\r\n  - \"系统文献检索\"\r\n  - \"文献证据基础\"\r\n  - \"已发表安全性文献 / CSM\"\r\n  - \"cross-database literature search\"\r\n  - \"跨数据库 文献检索\"\r\n  - \"Embase Cochrane Web of Science\"\r\n  - \"多数据库 系统综述\"\r\n  - \"ct-literature\"\r\nrequired_commands: [python]\r\nmetadata:\r\n  openclaw: { emoji: \"📚\" }\r\n  authors: [\"medstatstar\", \"phoe-zip\"]\r\n  tags: [clinical-trial, literature, evidence, systematic-review, csm, openalex, pubmed, public-data]\r\n  homepage: \"https://github.com/medstatstar/ct-literature\"\r\npermissions:\r\n  scope: \"user-space-only\"\r\n  network: \"optional\"\r\n  network_note: \"Reads only public bibliographic sources: OpenAlex (api.openalex.org, no key), Europe PMC (ebi.ac.uk, MEDLINE/MeSH, no key; also indexes bioRxiv/medRxiv preprints via SRC:PPR), Semantic Scholar (api.semanticscholar.org, no key; rate-limited HTTP 429 -> gracefully skipped), arXiv (export.arxiv.org/api/query, no key). Europe PMC is ON by default (--no-with-europepmc to disable); bioRxiv/medRxiv are ON by default (--no-with-biorxiv / --no-with-medrxiv to disable); arXiv is opt-in via --with-arxiv. No WAF, no confidential input; ordinary input + public retrieval (A-tier). Opt-in, user-confirmed bug reports additionally reach https://ct-bugreport.coze.site/run with an 11-key sanitized envelope only (never raw data).\"\r\n  filesystem: \"read-only to its own files; writes report files only to the current working directory\"\r\n  data: \"no confidential data input; no external transmission of user data\"\r\n\r\n---\r\n\r\n## Published Application\r\n\r\nThe workbench is published as a Python HTTP service at `https://ct-literature.app.workbuddy.host/`\r\n(appId `wbapp_WuOPnJ4caJ32GTquNlR7vc`; bundle `workbench/publish-dist/`, workspace-independent,\r\nre-publish via `workbench/publish-kit/install_genie.py` — **overwrite, never `createNewApp`**;\r\nmis-bound paths are permanently retired and the returned `shareLink` must always be asserted).\r\n**Full registry table + re-publishing protocol → [references/published_app.md](references/published_app.md)** — load it before any deploy / re-publish operation.\r\n\r\n## Language\r\n\r\n- **English guide** → [README.md](https://github.com/medstatstar/ct-literature/blob/main/README.md) · **中文指南** → [README_zh-CN.md](https://github.com/medstatstar/ct-literature/blob/main/README_zh-CN.md)\r\n- Bilingual auto-switch: the answer language follows the user's question language (English question → English answer, Chinese question → Chinese answer).\r\n\r\n## Purpose\r\n\r\nRetrieve **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.\r\n\r\n## Positioning within the ct- library\r\n\r\nFour complementary A-tier public-intel skills: `ct-registry` (registered trials) · **`ct-literature` (published evidence)** · `ct-safety` (FAERS signals) · `ct-pipeline` (aggregate intel brief).\r\n**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](references/capabilities.md).\r\n\r\n## Data Sources\r\n\r\nDefault pipeline: **OpenAlex (primary) + Europe PMC (default ON) + bioRxiv/medRxiv (default ON)**.\r\nOpt-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).\r\nPer-source access/status/role table + PROSPERO caveat → [references/capabilities.md](references/capabilities.md).\r\n\r\n## Clinical guideline sources (`--with-guidelines`, opt-in · LOCAL corpus)\r\n\r\nVersion-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.\r\nTier matrix, data-protection split, audit notes → [references/capabilities.md](references/capabilities.md).\r\n\r\n## Features\r\n\r\nCore: 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.\r\nAnti-hallucination: **P0 citation verification** (`--verify`, §17.1) · **P1 DOI audit** (`--verify-dois`) · **P0 evidence provenance log**.\r\nFull capability table (per-feature flags & semantics) → [references/capabilities.md](references/capabilities.md).\r\n\r\n### Retrieval structure model (2026-09-30, adapted from the 组小学 expert · P0/P1)\r\n\r\nPorted 组小学's (tencent-lit-search) auditable retrieval structure to ct-literature — all **additive, backward-compatible** (no new flag = identical old behavior):\r\n\r\n- **Structured PICO concepts `--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).\r\n- **Retrieval depth budget `--depth quick|standard|deep`**: per-source cap + whether to trigger weak-result rescue (`quick` never rescues; `standard`/`deep` do). Not an evidence-quality rating.\r\n- **Evidence-dimension lane**: each merged record gets `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.\r\n- **Four-state audit ledger + coverage verdict**: evidence-log adds `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.\r\n- **Weak-result rescue (P1-6)**: when `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.\r\n\r\n> 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.\r\n\r\n## Unified work schema\r\n\r\nNormalizes all sources into one record shape (`source / id / title / authors / year / … / doi / mesh / concepts / is_safety / is_preprint / sources`). Field list → [references/capabilities.md](references/capabilities.md).\r\n\r\n## Output\r\n\r\n**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).\r\nFull output catalogue, sheet layout, server-side supplement chain, concurrency notes → [references/capabilities.md](references/capabilities.md); command catalogue → [references/sop.md](references/sop.md).\r\n\r\n## Requirements\r\n\r\n- Python 3.10+ (Anaconda `C:\\Tools\\anaconda3\\python.exe` recommended).\r\n- `requests` optional (fetch scripts use stdlib `urllib`); `matplotlib` optional (future trend charts).\r\n- Network: read-only public bibliographic APIs.\r\n\r\n## ⚠️ Safety\r\n\r\n- Default **SAFE PREVIEW**: scripts only generate / display; network requests run only with explicit `--run`.\r\n- Reads **public publications ONLY**, zero confidential research / subject data input (A-tier — non-confidential input, per §11; API keys are local config, never research data).\r\n- `--safety` literature is **qualitative** — never feed it into FAERS disproportionality; it only corroborates `ct-safety` qualitatively.\r\n- Output is for reference / background only, not a regulatory submission.\r\n\r\n## Implementation\r\n\r\nPrimary 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`.\r\nInvocation cookbook (worked examples, `--sources` semantics, OpenAlex key setup) → [references/capabilities.md](references/capabilities.md).\r\n\r\n## Errors\r\n\r\nSee [references/errors.md](references/errors.md) for the full error catalogue (network / 429 / 401 / empty results / DOI dedupe).\r\n\r\n## Pipeline\r\n\r\n- `ct-registry` → `ct-literature`: landscape hypothesis seeds the literature search topic.\r\n- `ct-literature` → `ct-pipeline` (intel evidence dimension), → `ct-protocol` / `ct-csr` (background), `--safety` → `ct-safety` (qualitative corroboration).\r\n\r\n## Cross-Database Search Mode\r\n\r\nA 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](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.\r\n\r\n## Natural-Language Dialogue — Triage-First (mandatory)\r\n\r\nEvery NL turn MUST start at Step 0 triage — never skipped, never jump straight to `--run`\r\n(§6.2 + [references/search_menu.md](references/search_menu.md)). Four buckets: **Simple** (topic +\r\n≥2 params → §4.2 preview) · **Complex** (menu §4.1 → §12 keyword gate → §4.2 → run) · **Vague**\r\n(grill-me ≤2 rounds → re-triage) · **Middle** (answer directly).\r\n**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.\r\n**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.\r\nFull triage tables, echo/merge_spec rules, execution flow → [references/dialogue.md](references/dialogue.md) — load it when executing an NL dialogue round.\r\n\r\n## Bug Reporting (§20.3, adapter: `adapters/bug_report.py`)\r\n\r\nTrigger = explicit user request (unlimited) or strong signal + one retry (≤1 proposal/session).\r\nHard two-stage confirmation: ① show full sanitized report → ② send only on explicit consent\r\n(endpoint `https://ct-bugreport.coze.site/run`, public credential). 11-key whitelist envelope,\r\n`description` is the only user-reviewed free text; never raw data. Client sends `report` only —\r\ngovernance belongs to `ct-update`.\r\nFull trigger/two-stage/sanitization detail → [references/dialogue.md](references/dialogue.md).\n\nFile v1.0.1:README.md\n\n# Clinical Trial Literature Search (ct-literature)\r\n\r\n[🇨🇳 中文](./README_zh-CN.md) | [🇺🇸 English (Current)](#)\r\n\r\n<div align=\"center\">\r\n<img src=\"assets/icon.svg\" width=\"240\" height=\"240\" alt=\"ct-literature logo\"/>\r\n</div>\r\n\r\n> **No install needed to try it:** if you don't want to install this skill and just want to quickly use its basic features, visit the web app directly at **https://ct.medstatstar.com**.\r\n\r\n> **A `ct-` library skill (A-tier public-intel — non-confidential input) that retrieves published scholarly literature about a drug / disease / method, normalizes multiple public bibliographic sources into one de-duplicated evidence base, and surfaces the evidence landscape plus a CSM (cumulative safety monitoring) qualitative subset.**\r\n\r\n> No commands or manual needed. Just describe your literature question **in plain language inside a chat** — the skill fetches from **OpenAlex (primary) + Europe PMC (on by default) + bioRxiv/medRxiv (on by default)**, then writes a self-contained **HTML + Excel** report. (Semantic Scholar and arXiv are opt-in via flags, not part of the default pipeline.) A-tier (non-confidential input): fully local computation, only public retrieval. **Note: your topic query is sent to the public bibliographic APIs below — see the [outbound notice](#outbound--privacy).** The skill activates **only when you explicitly ask for a literature search**; it never retrieves on its own during unrelated conversations.\r\n\r\n> 💡 **Keyless by default, but a free key lifts the cap a lot:** OpenAlex has required an API key since 2026-02-13; without one you are in the keyless pool (100 credits/day, flagged *not suitable for production*). A free key lifts this to 100k/day. Apply in ~30s — see the [First-Time FAQ](#first-time-faq) and the key-notice the skill prints automatically when no key is detected.\r\n\r\n## Table of Contents\r\n\r\n- [Who This Is For](#who-this-is-for)\r\n- [How to Use It in a Chat](#how-to-use-it-in-a-chat)\r\n- [Data Sources](#data-sources)\r\n- [Why You Can Trust the Output — Anti-Hallucination](#why-you-can-trust-the-output--anti-hallucination)\r\n- [What Can It Do — Scenarios](#what-can-it-do--scenarios)\r\n- [First-Time FAQ](#first-time-faq)\r\n- [Security & Privacy](#security--privacy)\r\n- [Advanced Reference (Developers)](#advanced-reference-developers)\r\n\r\n---\r\n\r\n## Who This Is For\r\n\r\nct-literature is part of the `ct-` clinical-trial skill family, built for three groups:\r\n\r\n- **Clinical-trial practitioners at pharmaceutical companies** — sponsors, CROs, and medical / statistical / regulatory roles;\r\n- **Clinicians and nurses who take part in the hands-on conduct of trials**;\r\n- **Medical students who want to learn clinical-trial methodology in a structured way**.\r\n\r\n## How to Use It in a Chat\r\n\r\nct-literature is a **conversational skill**: you simply tell the assistant what you want to look up — no commands, no parameter names to remember. Once installed as a WorkBuddy skill, you invoke it in a chat via the Skill tool; there is no extra setup, but it activates only when you call it.\r\n\r\nBelow are 7 real conversational examples ordered from simple to advanced. Each shows **\"You say\"** and **\"The assistant replies\"**, plus how the report is produced. Replies are **key excerpts** of the real interaction (progress lines and details compressed); whenever your decision is needed, the skill lists the options **on screen for click-to-confirm**, or asks you to say \"default / go ahead\". The primary deliverables are a self-contained **`lit_report.html`** (offline, printable) and **`lit_report.xlsx`**. By default the workbook has **3 data sheets: Overview → Literature master → Evidence Log** (plus a README cover). The **Safety-related** sheet is opt-in — it appears only when you add `--safety` (the CSM qualitative subset), since the safety/CSM literature subset is a safety-oriented concern, not a default deliverable of every literature search.\r\n\r\n### Example 1 · A simple literature search (with preview confirmation)\r\n**You say:**\r\n> Search published literature on osimertinib in NSCLC, 2018–2025, focused on adverse events / post-marketing safety.\r\n\r\n**Assistant replies (excerpt):**\r\n> Recognized as a **simple request** (topic + year + safety angle all clear) → straight to a preview for your confirmation:\r\n\r\n| Setting | Value |\r\n|---|---|\r\n| Topic | osimertinib + NSCLC (synonym family AZD9291 / Tagrisso / 奥希替尼 merged automatically) |\r\n| Years | 2018–2025 · safety focus ✅ |\r\n| Sources | OpenAlex + Europe PMC + preprints (default three) · 50 works per source |\r\n| Verification | all (anti-hallucination, default ON) |\r\n\r\nConfirmed → keyword list reviewed → search runs (~30–60 s):\r\n> Done: **103** de-duplicated unique works (3 sources); **81 safety-related**. Citation verification 100/103 passed. Report written to `lit_report.html` and `lit_report.xlsx` (Literature master + Safety-related sheets).\r\n\r\n**📌 No key needed** — OpenAlex keyless pool covers a small search; the skill fetches and writes the report directly.\r\n\r\n### Example 2 · Evidence-synthesis layer only (systematic reviews / meta-analyses)\r\n**You say:**\r\n> Same topic, but keep only systematic reviews and meta-analyses — I want the synthesis, not single trials.\r\n\r\n**Assistant replies (excerpt):**\r\n> Restricting `--review-type systematic-review/meta-analysis` and re-searching. **3 systematic reviews hit** (after cross-source de-dup) — listed separately with full abstracts and citation verification. If a type has zero hits, the skill says \"no works of this type\" rather than padding with near-matches.\r\n\r\n**📌 Safety subset vs FAERS is a key distinction:** `--safety` (CSM qualitative subset = published case reports / PV articles) and `ct-safety` (structured FAERS signal detection, PRR / ROR / IC) are **clearly different data types** — literature complements but does not replace FAERS.\r\n\r\n### Example 3 · Broader coverage (Europe PMC + Semantic Scholar)\r\n**You say:**\r\n> Also pull MEDLINE via Europe PMC and citation-rank via Semantic Scholar.\r\n\r\n**Assistant replies (excerpt):**\r\n> Adding `--with-europepmc` (MeSH precision) and `--with-semantic-scholar` (citation ranking). S2 is skipped automatically if no key or on 429 — OpenAlex + Europe PMC still produce results.\r\n\r\n### Example 4 · Configure the OpenAlex key (self-config)\r\n**You say:**\r\n> How do I lift the 100/day limit for large searches?\r\n\r\n**Assistant replies (excerpt):**\r\n> Apply for a free key (~30s) at <https://openalex.org/settings/api>. Configure it yourself via (a) adding `OPENALEX_API_KEY=<key>` to `ct-literature/.env`, (b) exporting an `OPENALEX_API_KEY` environment variable, or (c) passing `--openalex-key <key>` on the command line. **Note:** chat messages may be logged or retained by the platform — for maximum secrecy use the self-config routes (a)–(c). If you prefer, you can also ask the assistant to write the key into `ct-literature/.env` for you — it stores the key locally, never echoes it back, never logs it, and sends it only over HTTPS to the official OpenAlex API.\r\n\r\n**With a key, retrieval is faster AND your key never leaves your machine:** the key enters OpenAlex's keyed pool (~100k credits/day, rarely 429'd), and the OpenAlex / Semantic Scholar sources switch to **local direct-connect retrieval, bypassing the cloud** — your key is used in local memory only to call the official APIs and is never sent to any third-party service. Only keyless users go through the cloud channel (OpenAlex anonymous pool; Semantic Scholar auto-skipped).\r\n\r\n### Example 5 · Complex request → parameter confirmation (menu / card style)\r\n**You say:**\r\n> I want to look into diabetes treatment literature.\r\n\r\n**Assistant replies (excerpt):**\r\n> Triage → **Complex** (topic = diabetes is clear, but key parameters — **literature type / year / sources** — are still open). The skill does not decide for you; it lists what it detected and asks you to confirm two things on screen:\r\n\r\n> Detected: topic `diabetes treatment` ｜ To confirm: ① **Literature type** (all types [recommended] / systematic reviews + meta-analyses only / SR + RCT + case reports…) ② **Run now?** (✅ run / ✏️ adjust parameters / ❌ cancel)\r\n> Not sure about the differences? Say \"explain the differences between these choices in detail\" — it explains the clinical / statistical meaning first, then you decide.\r\n\r\nAfter parameters are confirmed there are **two more gates** before any network call: ① **keyword confirmation** — the expanded keyword list (e.g. `diabetes mellitus`, Chinese/English synonym families) is shown for your review; ② **preview confirmation** — the same settings table as Example 1; the search only runs after you approve.\r\n\r\n**📌 Note:** Simple requests (topic + ≥2 parameters clear) skip the confirmation menu and go straight to preview (Example 1); Vague requests use grill-me clarification (Example 6).\r\n\r\n### Example 6 · Vague request → bounded clarifying questions (grill-me style)\r\n**You say:**\r\n> Find me something about that new cancer drug.\r\n\r\n**Assistant replies (excerpt):**\r\n> Triage → **Vague** (\"that new drug\" cannot be pinned down) → asks back with **bounded grill-me (max 2 rounds)**, each round with a recommended default; if it is still unclear it falls back to defaults + a preview reminder:\r\n\r\n> **Round 1:** \"Can't recall the name — that's fine. Which **class** is it? A 3rd-gen EGFR-TKI (e.g. osimertinib), an immune-checkpoint inhibitor (e.g. pembrolizumab), or a target (PD-1 / EGFR)? Or paste the brand name / indication and I'll reverse-look it up.\"\r\n> You: osimertinib, the lung-cancer one.\r\n> **Round 2 (narrowing scope):** \"Locked to osimertinib. Should the cancer type be limited to **NSCLC**? (default: yes). Any year range or safety angle? (none → last 5 years, all types)\"\r\n\r\nAfter the two rounds the skill gives a **need profile + recommended settings** for confirmation: \"topic osimertinib + NSCLC ｜ last 5 years ｜ all types ｜ default three sources\" — approve to move to preview; if still unclear it runs with defaults and flags that in the preview.\r\n\r\n### Example 7 · On-demand batch download of legal open-access PDFs\r\n**You say:**\r\n> Download the PDFs of the 40 most recently published works in the report, and log how long it takes.\r\n\r\n**Assistant replies (excerpt):**\r\n> Takes the newest 40 works from the 103-work merged set (sorted by publication date, newest first) and starts the batch download — **before starting it tells you the expected pace**:\r\n\r\n> Starting batch download of 40 PDFs: **roughly 10–20 s per paper** (network / rate limits vary) — please be patient, no action needed.\r\n\r\nDownloading routes automatically: **OA / preprint direct links download locally first** (Frontiers, MDPI, PMC author manuscripts, …); only items that cannot be fetched locally but carry an OA/preprint signal go through the cloud decode chain; paywalled works with no legal copy are not forced. On completion it reports honestly:\r\n\r\n> Done: **36/40** succeeded, took **853 s (14.2 min)**. PDFs saved to `pdfs_latest40/`; **the Excel report now has the「PDF 本地路径」column updated** (36 absolute paths + 3 \"failed\" markers).\r\n> ⚠️ The 4 missing are all paywalled (NEJM / JCO / BMJ) — get them via your library or the authors; the skill never bypasses a paywall.\r\n\r\n**⏱ Pace:** roughly 10–20 s per paper (incl. rate-limit backoff + cloud decode); a 40-work batch runs ~10–15 min — that is normal wait, not a hang; single direct-connect papers (Frontiers-class) usually finish in 3–5 s.\r\n\r\n---\r\n\r\n## Data Sources\r\n\r\n| Source | Key | Role |\r\n|---|---|---|\r\n| OpenAlex | recommended (free key; keyless = 100/day since 2026-02-13) | **Primary** — broad, citation-rich |\r\n| Europe PMC | no key | **On by default** (`--no-with-europepmc` to disable) — MEDLINE/MeSH biomedical precision |\r\n| Semantic Scholar | key recommended (manual form review) | **Opt-in only** `--with-semantic-scholar` — citation ranking; **not part of default sources**, skipped unless explicitly enabled with a key |\r\n| bioRxiv | no key (via Europe PMC PPR) | **On by default** (`--no-with-biorxiv` to disable) — biomedical preprints |\r\n| medRxiv | no key (via Europe PMC PPR) | **On by default** (`--no-with-medrxiv` to disable) — medical/clinical preprints |\r\n| arXiv | no key | Optional `--with-arxiv` — physics/CS/ML methodology breadth |\r\n| PROSPERO | token required (undocumented auth header) | Optional `--with-prospero` — systematic-review registry / protocol discovery; **reserved source**, degrades to a no-op skip until a working token + header is supplied |\r\n\r\n### How the sources fit together\r\n\r\nThe default trio — **OpenAlex (primary) + Europe PMC (on by default) + bioRxiv/medRxiv (on by default)** — already reaches almost the entire published landscape: through these three endpoints you get PubMed / PMC, the bioRxiv / medRxiv / arXiv preprints, and the Crossref, Semantic Scholar, CORE, and Unpaywall records (Semantic Scholar records are surfaced via OpenAlex's linkage even without querying S2 directly). The extra sources are opt-in, not because the trio is incomplete, but for two practical reasons:\r\n\r\n- **Preprint freshness** — **bioRxiv / medRxiv are now on by default**, pulling preprints straight from the source instead of waiting for them to propagate through Europe PMC's PPR feed.\r\n- **Resilience against rate limits** — if Europe PMC is throttled (HTTP 429), the standalone preprint endpoints let you keep widening coverage without depending on a single bottleneck. (Semantic Scholar is a separate opt-in source requiring `--with-semantic-scholar` + a key, and is not part of the default pipeline.)\r\n\r\n## Why You Can Trust the Output — Anti-Hallucination\r\n\r\nLLM-powered literature tools are notorious for **inventing papers that don't exist** — fabricated DOIs, wrong PMIDs, plausible-but-fake citations. ct-literature is built to make that impossible *by construction*, through four independent guardrails plus two operational safeguards:\r\n\r\n1. **Every citation is resolved against its live source (P0, default ON).** Before a work reaches your report, its identifier is checked against the real bibliographic API: DOI → `doi.org` (HTTP 2xx), PMID → Europe PMC `EXT_ID`, OpenAlex id → `api.openalex.org/works/<id>`. Each work is tagged `citation_verified` plus a status of `verified` / `bot_blocked` / `unresolved` / `no_identifier` / `suspicious`. A **malformed DOI is flagged `suspicious`** — a likely hallucinated identifier is caught *before* it can appear in the report. Scope it with `--verify {all|top|background}`; the default `all` verifies every work.\r\n   - **`bot_blocked`**: some publishers (NEJM, JAMA, Wiley, MDPI…) return **403** to programmatic access even though the DOI is real. The skill reports this distinctly — it is *not* a broken link, and the work stays `verified=True`.\r\n2. **Title / author consistency depth (v0.6.11).** Once an identifier resolves to a live resource, the skill fetches that resource's canonical metadata (title + first-author surname) from the authoritative, bot-friendly API — **Crossref** for DOIs (bot-friendly even when the publisher blocks `doi.org`), **Europe PMC** for PMIDs, **OpenAlex** for OpenAlex ids — and compares it to the work you hold. A resolved-but-**different** paper is flagged **`mismatch`** (not `verified`); a `bot_blocked` DOI whose Crossref metadata matches is **upgraded to `verified`**. A hallucinated-but-real DOI is thus caught *even when it resolves*. Metadata-fetch failure degrades gracefully to \"verified, consistency unchecked\" — it never invents a mismatch. Opt out with `--no-consistency`.\r\n3. **Full provenance is recorded, not summarized away.** Every merged work keeps its `sources` list (which API produced it), and `evidence_log.json` stores an immutable-style audit trail: query → source → hit count → retrieved_at → verification rate. You can always trace a claim back to the exact API call that produced it.\r\n4. **The report never pads gaps with fluent prose.** Every factual line in the report carries a source label or an explicit `⚠️ needs official verification` marker. The skill does **not** generate plausible-looking evidence to fill holes — if a source failed or a work is unverified, that is shown, not hidden.\r\n\r\nOperational safeguards reinforce this: **Safe Preview** keeps normalization / reporting on your machine (no remote code execution), and **source-aware skip** avoids redundant re-checks while still trusting each identifier *by provenance* (a paper OpenAlex returned already carries a real OpenAlex id, so it isn't re-queried there). All of this follows the anti-hallucination spec (§17.1).\r\n\r\n**Net:** the references this skill gives you are real, resolvable, and traceable — safe to put in a slide, a protocol, or a CSR appendix, provided you validate against the official source before any regulatory submission (see the [First-Time FAQ](#first-time-faq)).\r\n\r\n## What Can It Do — Scenarios\r\n\r\nThe skill covers published-evidence retrieval across the clinical-trial lifecycle. Each row gives the typical **situation** and a line you can **copy verbatim** under \"Try saying\".\r\n\r\n### ① Published-evidence search (OpenAlex, primary)\r\n| Situation | Try saying in chat |\r\n|:---|:---|\r\n| Evidence on a drug / disease / method | \"Find systematic reviews on osimertinib in NSCLC\" |\r\n| Recent literature with a year filter | \"Papers on CAR-T in lymphoma since 2020\" |\r\n| A topic with a safety angle | \"Post-marketing safety literature for drug X\" |\r\n\r\n### ② Broader / deeper coverage (optional sources)\r\n| Situation | Try saying in chat |\r\n|:---|:---|\r\n| MEDLINE / MeSH biomedical precision | \"Also search Europe PMC for this topic\" |\r\n| Citation-ranked relevance | \"Rank these by citation count via Semantic Scholar\" |\r\n\r\n### ③ Output formats & exports\r\n| Situation | Try saying in chat |\r\n|:---|:---|\r\n| Excel deliverable | \"Export the literature as an Excel file\" |\r\n| Self-contained HTML report only | \"Just the HTML report, skip Excel\" |\r\n| Import into **Zotero** (reference manager) | \"Export as Zotero RIS / CSV\" — get `zotero.ris` / `zotero.csv`, import into the Zotero desktop app or browser connector |\r\n| Browse as an **Obsidian** knowledge graph | \"Export to Obsidian\" — get one Markdown note per paper + a `Literature MOC.md` index; open the folder as a vault to see the paper network |\r\n| **Batch-download OA PDFs** (v1.0.0) | \"Download the newest 40 PDFs and log the time\" — files land in a local `pdfs*/` folder (DOI-named), the Excel report gets a 「PDF 本地路径」column, failures are marked honestly |\r\n\r\n### ④ Evidence verification & provenance (P0, default ON)\r\n| Situation | Try saying in chat |\r\n|:---|:---|\r\n| Verify every DOI/PMID is real (anti-hallucination) | \"Verify the citations are real before you report\" |\r\n| Also confirm title/author match the paper (v0.6.11) | \"Make sure the DOI actually points to this paper\" |\r\n| Trace where each hit came from | \"Show me the evidence provenance / source log\" |\r\n| Verify only the top-N works (fast large searches) | \"Just verify the top 15 citations\" |\r\n| Skip verification (faster, preview-only) | \"Don't verify citations this time\" |\r\n\r\n### ⑤ Key / setup\r\n| Situation | Try saying in chat |\r\n|:---|:---|\r\n| Lift the OpenAlex rate limit | \"How do I raise the rate limit?\" |\r\n| Check what's configured | \"What keys does the skill currently see?\" |\r\n\r\n> The sibling skills are described in their own READMEs; ordinary users only need to say what they want in plain language — the skill routes the right sources and writes the report.\r\n\r\n---\r\n\r\n## First-Time FAQ\r\n\r\n**Q: Do I need a key to run?** A: No. OpenAlex keyless pool = 100 credits/day (enough for small searches); a free key lifts it to 100k/day. Europe PMC and Semantic Scholar need no key.\r\n\r\n**Q: Where does my query go?** A: Your topic query and filters are sent to the public bibliographic APIs — OpenAlex, Europe PMC, and Semantic Scholar (when enabled). No confidential or sponsor data is ever sent.\r\n\r\n**Q: What's the difference from `ct-safety`?** A: `ct-literature` = published *qualitative* evidence (papers / reviews / case reports); `ct-safety` = structured FAERS disproportionality (PRR / ROR / IC). They are explicitly distinct data types — literature complements but does not replace FAERS.\r\n\r\n**Q: On a Chinese system, is the output in Chinese?** A: Yes. **Conversation answers and the reports** (HTML / Excel) follow your OS setting by default (Chinese on a Chinese-OS, English otherwise), and you can force-switch anytime with one sentence (e.g. \"switch to English\"). **Console progress lines** (fetch / download process hints) are Chinese auxiliary output — runtime noise, they do not affect the language of the answers or deliverables.\r\n\r\n**Q: Semantic Scholar keeps failing / being skipped?** A: The S2 key requires a manual form review (not auto-issued, waits after applying), so it is usually absent short-term. When no key is configured the source is **skipped entirely** (no network request) rather than attempting-and-degrading. Configure it later if you need citation ranking.\r\n\r\n**Q: How long does a search take? What are the rate limits?** A:\r\n- **Typical latency:** Enabled sources run **in parallel with each other** (one worker per source), but **each source pages serially** — requests inside a source are chained one after another, because parallel paging would raise rate-limit / ban risk (e.g. on the OpenAlex keyless pool). Europe PMC ~1s/page, OpenAlex ~2s/page, so the wall-clock is the *slowest* source, not the sum. A 3-source search pulling ~50 works typically finishes in **10–30 seconds** (plus ~1–4 min more when full citation verification is on — see the pre-run time estimate). Adding preprints (bioRXiv/medRXiv/arXiv) adds a few seconds more.\r\n- **Result cap:** Default `max_results` is **50 works per source**; there is no hard ceiling (raising it is allowed), but time and API usage scale linearly. **Measured 2026-08-14** (two sources, `osimertinib ILD`): `--max 100` → fetch+merge **~20 s**, full verification **~78 s** (≈0.64 s/work after cross-source dedup, which keeps **~62%** of fetched works with two sources). **Suggested ceiling for a ~5-minute run: 300 works per source with two sources, ~250 with three sources** (either way ≈370–380 unique merged works; dedup is automatic, so 3×250 does not mean 750 in the report). Beyond that total time grows ~linearly — for very large harvests, configure an OpenAlex key and use `--verify top 15` instead of pushing `max_results`.\r\n- **Rate limits:**\r\n  - **OpenAlex (keyless):** 100 credits/day (since 2026-02-13). A single multi-page search can use 5–20 credits. A free key lifts this to **100k/day**.\r\n  - **Europe PMC:** No hard key limit, but please keep request frequency reasonable (no tight loops).\r\n  - **Semantic Scholar (no key):** Prone to HTTP 429; the skill skips it entirely when no key is configured.\r\n- **Tip:** Start with the default sources (OpenAlex + Europe PMC) and a modest `max_results`; only enable extra sources if you need broader coverage.\r\n\r\n**Q: Why can't the fetch be faster?** A: Because the skill only uses the **official public access methods each site provides** (their public APIs / endpoints) and **never violates any site's terms or policies** — it fetches politely, source by source, page by page, so it cannot deliver the \"crawl a huge dataset in minutes\" effect of an aggressive scraper. Concretely: (1) **Different sources already run in parallel** (one worker per source) — adding more cross-source parallelism won't help. (2) **Each source must page serially** — the public bibliographic APIs (OpenAlex keyless pool, Europe PMC polite pool) throttle or ban clients that fire many parallel requests; serial paging is what keeps you under the ban radar. (3) If a run feels slow, the usual bottleneck is **full citation verification** (default ON; one or more HTTP lookups per work) — switch to `--verify top` (default top-15) to cut ~1–4 minutes. (4) Keep `max_results` moderate — time and API usage scale linearly with it. Bulk PDF fetching is the other multi-second-per-work operation (each request follows a redirect chain).\r\n\r\n**Q: Can I search in Chinese?** A: Partially — the skill auto-translates Chinese topics to English through **bundled offline dictionaries** (~900 entries: medical terms + drug INN names + brand names like 泰瑞沙→Tagrisso/osimertinib + MeSH synonyms; no network call) before querying the APIs, and the report banner shows the original and the translation as `中文 → English`. Equivalent names are combined with boolean OR to widen recall (e.g. `osimertinib OR Tagrisso`, `lung cancer OR pulmonary neoplasm`). Terms the dictionaries do not cover pass through as-is (recall may suffer) and a notice lists the unmapped ones — you can extend the dictionaries yourself by adding entries to `references/user_terms.json` (same `{中文: \"English\"}` format, values may be a list of synonyms; the file is git-ignored so your additions are never published). For best recall, use English terms — especially for rare conditions or novel compounds.\r\n\r\n**Q: Why don't you support Chinese domestic databases (e.g. CNKI / 知网)?** A: Deliberately not supported, for three reasons. (1) **Marginal value** — this skill targets the publicly retrievable international evidence base (OpenAlex / Europe PMC / ...); the incremental coverage of Chinese-only databases is small, and much of their content overlaps or is already indexed internationally. (2) **No compliant channel exists** — CNKI and similar Chinese databases **do not offer public APIs to individuals** (only to contracted, paying institutions), and they aggressively block — and have sued — web crawlers; automated retrieval would have neither a legal interface nor a defensible risk posture, violating this skill's rule of \"official public access only, never breach a site's terms\". (3) **ROI** — paying that compliance/legal risk for marginal coverage is not worth it. If you need a specific Chinese paper, search CNKI yourself and export the citation (RIS / BibTeX) for your records.\r\n\r\n**Q: Can the skill download full-text PDFs?** A: Yes — but **for open-access (OA) works only**, in two ways. (1) The Excel and HTML reports always include an **\"Open Access\"** column with a direct link to a free OA copy when one exists (typically 60–80% of recent works); **non-OA, paywalled papers show \"—\" and are not supported**. (2) Since v1.0.0 the skill can also **download the OA PDFs to disk for you**. The compliance boundary first:\r\n- **OA-only assistance; non-OA is not supported:** the skill pulls only from legitimate OA channels (publisher OA links, Europe PMC, PMC author manuscripts, open preprints) — **it performs no illegal operation of any kind**: no cracking, no bypassing, nothing touches a paywall. Paywalled works (NEJM / JCO / BMJ …) are honestly marked **\"failed\"** — get them via your institution's subscription, interlibrary loan, or the corresponding author.\r\n- **For personal use only; no commercial use:** this feature exists to make it convenient for an individual to get OA copies. Do not use the downloaded content for commercial purposes.\r\n- **OA direct-fetch fails → it looks for a preprint substitute:** when the canonical OA link cannot be pulled, it searches for an earlier preprint or author manuscript (bioRxiv / medRxiv / PMC) as a substitute; only when no usable copy exists is the work marked failed.\r\n- **Use the free resources wisely and pace your requests (avoid an IP block):** OA providers commonly block programmatic high-frequency downloads — to stay clear of legal trouble, the skill **strictly enforces a ≥5 s gap between consecutive download requests** and never pushes against a server's load threshold; please also control your own batch frequency and **do not over-use the free resources**. The skill has built-in cross-domain concurrency limits and per-domain throttling, and **a single batch above 50 works is refused outright** — split it (top-N / single source).\r\n\r\nExperience details: before a batch starts it states the pace (roughly **10–20 s per paper**; a 40-work batch runs ~10–15 min); afterwards PDFs land in a `pdfs*/` folder (DOI-named), it reports elapsed time (\"N/M succeeded, took X s\"), and **the Excel report gets a 「PDF 本地路径」column** (absolute path on success, \"failed\" otherwise). Keyless auto channels give a real-world success rate of roughly **70–90%** (OA coverage and publisher blocking vary). How to ask: say \"download ALL OA PDFs\", \"download the newest 40 PDFs and log the time\", or give a DOI/PMID list.\r\n\r\n**Q: What if I found an error in the result — how do I report it?**\r\nA: This skill follows the bug-report workflow. If you suspect the result is wrong (or the engine errored), just say **\"report a bug\" / \"上报问题\" / \"提交错误报告\"**. The skill also **proactively asks** whether to report when it detects a likely defect (e.g. the engine errors or retries still fail) — at most **once per session**, and you can always decline. Either way, the assistant will:\r\n1. **Propose a sanitized report** (11-field whitelist: skill / skill_version / test / error_type / error_code / engine_status / description / locale / query_origin / session_hash / attempts — **no raw input values or personal data**, except the `description` field where you decide what to disclose, e.g. the algorithm/function used and the error message);\r\n2. **Show the full report text for your review** — you can add a problem description or correct anything before confirming;\r\n3. **Send after your explicit confirmation** — to the unified endpoint `https://ct-bugreport.coze.site/run` (if this session called coze) or saved locally + emailed to the author (if purely local, data never leaves your machine);\r\n4. **Receive an acknowledgment** — including whether a previously submitted report from your source has already been fixed (with the fix note) or is still pending.\r\n\r\nYou stay in full control: the report is shown to you **before** anything is sent, and nothing is transmitted without your explicit \"send\" confirmation.\r\n\r\n---\r\n\r\n## Security & Privacy\r\n\r\n### Safe Preview (local computation)\r\n- **Runs locally:** The normalize / report / Excel rendering steps run entirely on your machine — no code is executed on any remote server beyond the bundled scripts.\r\n- **Traceable, not fabricated:** Every factual claim in the report carries a source label (`sources` list per work) or an `⚠️ needs official verification` marker; it never fills evidence gaps with fluent prose.\r\n- Outputs are for reference only; validate against official sources before regulatory submissions.\r\n\r\n### Outbound & Privacy\r\n- **Bibliographic search (public APIs only):** your topic + filters go to **OpenAlex** / **Europe PMC** / **Semantic Scholar** (only the sources you enable), plus **doi.org** and **Crossref** during citation verification. No confidential / sponsor data is ever sent.\r\n- **Metadata sent with every outbound request:** each request carries ① your business parameters (topic / filters) plus ② `query_origin` (a SHA-256 hash of your machine hostname — used for rate-limit attribution and billing; **this is a one-way hash, NOT your plaintext hostname**) and `locale` (your OS language, used to localize UI prompts). These fields are computed locally on your machine and sent as opaque identifiers — no PII, no hostname, no IP leaves your device.\r\n- **Bug reports (opt-in, user-confirmed):** `adapters/bug_report.py` sends an **11-key sanitized envelope** (skill / version / error_type / description / … — never raw data or subject records) to `https://ct-bugreport.coze.site/run` **only after you explicitly confirm** a two-stage prompt; without cloud access it falls back to a local file.\r\n- **Keys stay on your machine:** keys are read from your local `ct-literature/.env` and never ship with the package (only `.env.example` ships). Apply for your own OpenAlex key at <https://openalex.org/settings/api> and configure it yourself via the [First-Time FAQ](#first-time-faq) (`.env` / env var / `--openalex-key`); never commit `.env` to a repo. (Optional, not recommended: you may paste a key and ask the assistant to write it locally — stored only on your machine, never echoed or logged. Self-configuring is preferred.)\r\n\r\n---\r\n\r\n## Advanced Reference (Developers)\r\n\r\nCLI helpers, runtime requirements, the architecture tree, and the unified work-mode schema have moved here so everyday users don't need them. See [`SKILL.md`](SKILL.md) and [`CHANGELOG.md`](CHANGELOG.md) for the agent-facing spec and version history.\r\n\r\n### Runtime & requirements\r\n| Item | Requirement |\r\n|---|---|\r\n| Runtime | Python 3.11+ (CPython). The pipeline uses **only the Python standard library** (`urllib`) for HTTP — **no third-party dependency is required**. |\r\n| Keys (optional) | OpenAlex free key (recommended for scale); Semantic Scholar key optional (lifts ~1 req/s limit). Both via `.env` / env var / `--openalex-key`. |\r\n| Sibling skills | `ct-registry` (trial registries), `ct-safety` (FAERS), `ct-pipeline` (intel brief) — ct-literature seeds topics and is seeded by them; all install from GitHub. |\r\n\r\n### Optional tool · English→Chinese abstract term-annotation (`abstract_translator.py`)\r\nA small standalone CLI that annotates English text with Chinese glosses for matched medical terms — **term-level substitution, not full-text translation** (unmatched words stay in English). It is **not** part of the retrieval pipeline; run it on demand on a text or file:\r\n\r\n```bash\r\n# annotate a text snippet\r\npython scripts/abstract_translator.py --text \"Osimertinib is a third-generation EGFR-TKI used in NSCLC.\"\r\n# annotate a file (e.g. an abstract), output ASCII or JSON\r\npython scripts/abstract_translator.py --file abstract.txt --format ascii\r\npython scripts/abstract_translator.py --file abstract.txt --format json --output out.json\r\n```\r\n\r\nOutput shows the original and the annotated version (e.g. `randomized controlled trial` → 【随机对照试验】, `NSCLC` → 【非小细胞肺癌】, `overall survival` → 【总生存期】). The dictionary is a bundled offline EN→ZH medical-terms list (~130 entries, study types / trial-design / statistics) plus English entries from the shared `term_map.json`; no network call. For fluent full-sentence translation, use a general translation service instead.\r\n\r\n### Architecture\r\n```\r\nct-literature/\r\n├── SKILL.md                 # agent-facing spec (English body)\r\n├── CHANGELOG.md             # version history\r\n├── adapters/                # one fetcher + verifier per public API\r\n│   ├── fetch_openalex.py    # primary source\r\n│   ├── fetch_europepmc.py   # MEDLINE/MeSH (on by default)\r\n│   ├── fetch_semantic_scholar.py  # optional citation rank (skippable)\r\n│   ├── fetch_preprints.py   # bioRxiv / medRxiv\r\n│   ├── fetch_arxiv.py       # arXiv\r\n│   ├── fetch_prospero.py    # PROSPERO (reserved, dormant until token set)\r\n│   ├── http_utils.py        # shared retry / headers / key load\r\n│   └── verify_citations.py  # P0 citation verification + title/author consistency\r\n├── scripts/\r\n│   ├── ct_literature.py     # orchestration: fetch → normalize → verify → report/export\r\n│   ├── normalize.py         # multi-source merge + dedupe\r\n│   ├── score_relevance.py   # relevance scoring\r\n│   ├── screen_prisma.py     # deterministic PRISMA title/abstract screen\r\n│   ├── export_xlsx.py       # Excel deliverable (excel_style)\r\n│   ├── export_html.py       # self-contained HTML report\r\n│   ├── format_citations.py  # APA/Nature/Vancouver/IEEE/GB7714 + BibTeX/RIS\r\n│   ├── evidence_log.py      # provenance audit trail (evidence_log.json/.md)\r\n│   ├── obsidian_exporter.py # Obsidian notes + MOC\r\n│   ├── zotero_exporter.py   # Zotero RIS/CSV\r\n│   ├── i18n.py              # bilingual single source of truth\r\n│   └── excel_style.py, …             # shared style\r\n├── references/              # SOP, key setup, search menu, multi-db method\r\n└── assets/icon.svg          # A-tier logo\r\n```\r\n\r\n### CLI examples (developers)\r\n```bash\r\n# Primary (OpenAlex, no key)\r\npython scripts/ct_literature.py --topic \"osimertinib\" \\\r\n    --review-type systematic-review --year-from 2018 --safety --run --out-dir ./out\r\n\r\n# Add Europe PMC (MeSH) + Semantic Scholar (citation rank)\r\npython scripts/ct_literature.py --topic \"osimertinib\" \\\r\n    --with-europepmc --with-semantic-scholar --run --out-dir ./out\r\n\r\n# Recommended (zero extra flags): put the key in the skill .env, then just run\r\ncp .env.example .env          # edit .env -> OPENALEX_API_KEY=your_key\r\npython scripts/ct_literature.py --topic \"osimertinib\" --safety --run --out-dir ./out\r\n\r\n# P0 · citation verification (default ON, mode=background) + evidence log are automatic under --run.\r\n# Scope it with --verify {all|top|background}; source-aware skip avoids redundant same-source\r\n# re-resolution (a paper from OpenAlex/Europe PMC is trusted by provenance).\r\n# Verification is an anti-hallucination gate (§17.1 P0): it cannot be fully disabled —\r\n# \"none\" is not a valid mode (v0.9.6 removed the CLI bypass).\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --out-dir ./out\r\n# Best speed/coverage balance for large result sets: verify only the top-ranked works (default top 15; --verify-top-n adjusts N — verification is never disabled)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --verify top --out-dir ./out\r\n# Non-blocking default: background verification streams in without delaying the report\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --verify background --out-dir ./out\r\n# v0.6.11 · skip the title/author consistency layer (verification still resolves identifiers)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --no-consistency --out-dir ./out\r\n# v0.7.0 · stream progress as NDJSON events on stdout (agent-facing: --progress json\r\n# redirects sub-module prints to stderr, so stdout stays parseable; events:\r\n# run_start / source_done / source_failed / fetch_done / verify_progress / verify_done /\r\n# evidence_log / export_done / export_failed / run_done, one JSON object per line, flushed)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --progress json --out-dir ./out\r\n# v0.7.0 · two-phase delivery: unverified report in seconds, verification backfills later\r\npython scripts/ct_literature.py --topic \"osimertinib\" --run --verify background --out-dir ./out\r\n\r\n# P1 · PROSPERO systematic-review registry (opt-in, reserved source — dormant until a token is set)\r\npython scripts/ct_literature.py --topic \"osimertinib\" \\\r\n    --with-prospero --prospero-token \"$PROSPERO_API_TOKEN\" --run --out-dir ./out\r\n```\r\n\r\n### Unified work mode (output schema)\r\n```\r\n{\r\n  source, id, title, authors, year, publication_date, publication, journal_iso,\r\n  type, study_type, cited_by_count, url, open_access_url,\r\n  pmid, pmcid, doi,\r\n  abstract_snippet,                           # full text, not truncated\r\n  mesh, concepts, keywords, funders,\r\n  language, is_retracted, is_safety,\r\n  volume, issue, page,\r\n  affiliations,                               # Europe PMC only\r\n  sources,                                    # contributing source list\r\n  # --- attached by P0 verification (verify_citations.py) ---\r\n  citation_verified,                          # bool\r\n  citation_verify_status,                     # verified | bot_blocked | mismatch |\r\n                                              #   unresolved | no_identifier | suspicious | unverified_sampled\r\n  citation_verify_note,                       # human-readable detail\r\n  citation_consistency,                       # bool | None  (v0.6.11)\r\n  citation_title_ratio                       # float | None  (normalized title similarity)\r\n}\r\n```\r\n\r\n---\r\n\r\n**Version**: v1.0.1 | **License**: MIT | **Authors**: medstatstar, phoe-zip\r\n\r\nFor feature requests, bug reports, or other feedback, feel free to contact the author directly at medstatstar@gmail.com (Wintone Zhang / 张文彤).\r\n\r\n---\r\n\r\n## Confidentiality Notice\r\n\r\n> The CT series consists of 20+ specialized domain skills, organized into **two tiers — A, B** — by \"whether the input contains confidential information\" (network / egress / publish are independent orthogonal attributes), providing full coverage of the entire new-drug clinical trial (Clinical Trial) lifecycle.\r\n>\r\n> - **Tier A (non-confidential input)**: run fully locally using only ordinary data; Tier A may need external public retrieval but involves no confidential information. These skills are published openly on GitHub.\r\n> - **Tier B (confidential input)**: accept strictly confidential clinical-trial data / protocols / CRFs from pharma sponsors (e.g., ct-analysis, ct-sdtm, ct-protocol, ct-eligibility); Tier B is processed locally and never leaves the boundary (egress=none), or additionally requires policy approval (egress=approval-req, e.g. ct-eligibility). Tier B packages contain zero confidential data but are NOT publicly published (stays fully local) — confidential input never ships with the package or leaves the machine. For custom / on-prem deployment, contact the author.\r\n>\r\n> 📧 Contact: medstatstar@gmail.com (Wintone Zhang / 张文彤)\r\n\r\n> 🌐 Other languages: [中文 README](README_zh-CN.md)\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7amqq1jv28skb63wavr6shah89jsm5\",\n  \"slug\": \"ct-literature\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1790910100254\n}\n\nFile v1.0.1:references/capabilities.md\n\n# Capabilities & Reference Detail (ct-literature)\r\n\r\n> Extracted verbatim from `SKILL.md` (2026-09-27, line-budget refactor — SKILL.md ≤ 200 lines per ct-base §16.1 / F02). No content removed; SKILL.md keeps one-line pointers here. Load this file when you need the full source / feature / output / invocation detail.\r\n\r\n## Positioning within the ct- library\r\n\r\nThe four A-tier public-intel skills (non-confidential input, `network=public-retrieval`) are complementary:\r\n\r\n| Skill | Answers | Object retrieved | Source family |\r\n|---|---|---|---|\r\n| `ct-registry` | What trials are registered / ongoing / completed? | Trial-registry metadata | Registry libraries |\r\n| `ct-literature` | What evidence has been *published*? | Publications | Literature libraries |\r\n| `ct-safety` | Is a drug–event over-reported (signal)? | FAERS cases | Adverse-event databases |\r\n| `ct-pipeline` | Aggregate the above into a strategic intel brief | Consumes the three JSONs | Public-intel layer |\r\n\r\n**Boundaries:** `ct-registry` never fetches paper full-text/abstracts; `ct-literature` never fetches registry structured metadata. `ct-literature --safety` surfaces *published* safety literature — **qualitative**, must NOT replace `ct-safety`'s FAERS disproportionality. Not sure which skill? Route via `ct-advisor`; full competitive-intel picture → `ct-pipeline` directly (§15).\r\n\r\n## Data Sources (detail)\r\n\r\n| Source | Access | Status | Role |\r\n|---|---|---|---|\r\n| OpenAlex | Public REST; free key recommended (100k/day via `.env` auto-load) — keyless capped 100/day since 2026-02-13 | Required (primary) | Broad coverage + citation counts |\r\n| Europe PMC | Public REST (MEDLINE / PubMed Central), no key, MeSH-indexed | **Default ON** (`--no-with-europepmc`) | Biomedical precision + MeSH |\r\n| Cochrane (CDSR) | Via Europe PMC journal filter | Opt-in `--cochrane` | Cochrane Database of Systematic Reviews only |\r\n| Semantic Scholar | Public Graph API, no key, rate-limited (429) | **Opt-in only** `--with-semantic-scholar` (not part of default sources; requires key to be useful) | Citation-aware ranking; skipped when no key |\r\n| bioRxiv / medRxiv | Via Europe PMC `SRC:PPR` + publisher filter | **Default ON** (`--no-with-biorxiv` / `--no-with-medrxiv`) | Preprints (Tier P) |\r\n| arXiv | Public Atom API, no key | Optional `--with-arxiv` | Methodology breadth |\r\n| PROSPERO | Public REST (CRD York); **auth header undocumented** | Optional `--with-prospero` (key-gated, **reserved source**) | Duplication-avoidance / protocol discovery |\r\n\r\n> All are public bibliographic APIs — no WAF. The **default data sources are OpenAlex (primary) + Europe PMC (on by default) + bioRxiv/medRxiv (on by default)**; everything else (arXiv, Cochrane, PROSPERO, Semantic Scholar) are opt-in. OpenAlex keyless = 100 credits/day since 2026-02-13; a free key lifts to 100k/day (`--openalex-key` / env `OPENALEX_API_KEY` / skill `.env` auto-load; key never printed). Semantic Scholar is an explicit opt-in source (`--with-semantic-scholar` + key) and is **not considered in the default pipeline**.\r\n>\r\n> **PROSPERO is a reserved source (2026-08-12):** its public REST auth header is undocumented; unauthenticated probes return `{\"status\":\"error\",...}`. `--with-prospero` is a dormant interface: without a token it degrades to a graceful no-op skip (returns `None`, no file written) and is **not** claimed functional. Supply `--prospero-token` (+ `--prospero-header`) to exercise it; parser is schema-tolerant (JSON + XML) but must be re-validated against a real 200 before declared done. No token application planned.\r\n\r\n## Clinical guideline sources (`--with-guidelines`, opt-in · LOCAL corpus)\r\n\r\nGuidelines are **version-pinned** reference standards — at analysis time we read a **pre-built LOCAL corpus**, never \"fetch latest\" per run.\r\n\r\n> **Corpus boundary (audit note 2026-09-07):** every entry is a manually curated, version-pinned pointer to an organisation-issued document, but the builder's 12+ sources also surface reviews / consensus / adherence analyses and AI-in-medicine commentary. Such items are kept as background pointers only and are **not** authoritative clinical guidance — always resolve the linked source before relying on it; a `retrieved:false` pointer is an honest placeholder, never a fabricated citation.\r\n\r\n> **🔒 Data-protection split.** The skill tree ships **pointer-only** (`references/guidelines/guidelines_index.json`: org/title/URL/version — publish-safe). **Full-text documents are NEVER written into the skill** — they live in the author's self-controlled Coze KB (or an EXTERNAL local cache `~/.workbuddy/ct-guideline-docs`, opt-in via `--download`, off by default); ct-advisor consults that KB for native guideline Q&A.\r\n\r\n- **Author / build-time** (network): `python adapters/build_guidelines.py --topic <topic> --run` aggregates 12+ sources → `guidelines_index.json` (96 curated entries, schema v1). SAFE PREVIEW: omit `--run` (dry-run, no network/write).\r\n- **Analysis-time** (zero network): `--with-guidelines` on the main pipeline → `adapters/guideline_corpus.load()` reads the local index → `guidelines.json` + `guidelines` block in `.merged.json`.\r\n\r\n| Tier | Sources | How it got into the corpus |\r\n|---|---|---|\r\n| `api` | OpenAlex, Europe PMC, GIN, WHO IRIS | fetched by the builder (OA-PDF download attempted) |\r\n| `api` (key-gated) | NICE¹, MAGICapp, TRIP² | fetched if a key configured; else skipped |\r\n| `portal`→`api` | CPIC | genuine fetch via free keyless PostgREST API (`api.cpicpgx.org/v1`) |\r\n| `portal` pointer | NCCN, ADA, AHA, SIGN, CMA | best-effort public-portal scrape → graceful fallback to honest pointer (`retrieved:false`), never fabricated |\r\n\r\n**Build-time portal fetch (`adapters/portal_fetch.py`):** every fetcher is wrapped so it never raises — failed fetch degrades to the honest pointer, so the corpus is always honest (build once, read many). Each record carries `access` (`api`/`portal`) + `retrieved`; `guideline_corpus.load()` filters by topic/org and returns `corpus_missing` (with the builder command) if the index is absent. ¹ NICE REST auth undocumented (like PROSPERO) — skip until a token works. ² TRIP requires a commercial key.\r\n\r\n## Features (full catalogue)\r\n\r\n| Capability | Source | Typical scenario |\r\n|---|---|---|\r\n| Topic / drug / disease search | All | Build the published-evidence base |\r\n| Review-type filter | All | `systematic-review` / `meta-analysis` / `rct` / `case-report` |\r\n| **Cochrane retrieval (focus)** | Europe PMC | `--cochrane` → restrict to the Cochrane Database of Systematic Reviews (verified journal filter, shared with meta-analysis) |\r\n| Year-range filter | All | Focus on recent evidence |\r\n| Safety / CSM tagging | All | Every work is flagged `is_safety` (amber-highlighted in the Works sheet) when its title/abstract mentions AE / PV / toxicity — useful for quick scanning. **The standalone Safety-Related sheet is opt-in** (`--safety`); a plain search does NOT emit it by default. |\r\n| Multi-source merge + dedupe | normalize | One unified list, DOI/title de-duped, provenance kept |\r\n| Citation ranking | OpenAlex / S2 | Most influential works |\r\n| MeSH terms | Europe PMC | Biomedical concept indexing |\r\n| Concepts / Keywords / Funders | OpenAlex | Topic classification + COI signals |\r\n| PubMed/PMC ID, OA full-text URL, complete abstract | All | Direct links + full evidence preservation |\r\n| Structured output | — | JSON + Markdown + Excel workbook (`excel_style`). Default sheets: README → Overview → Works → Evidence Log. `Safety-Related` sheet appears **only with `--safety`**. |\r\n| Chained invocation | — | → `ct-pipeline` / `ct-protocol` / `ct-csr` |\r\n| Resilient fetch (retry + backoff) | All | Honors `Retry-After`; OpenAlex Bearer via key |\r\n| Safe link rendering | All | `_normalize_link()` sanitises every hyperlink |\r\n| Citations + BibTeX/RIS | All | `--citation-style` (apa/nature/vancouver/ieee/gb7714) + `--export-bib` |\r\n| PRISMA screening funnel | All | `--prisma` deterministic rule screen → SVG funnel in HTML |\r\n| **Doc-type exclusion** | All | 双向类型甄别（`doc_type_filter`，移植自 meta-analysis 实证规则）：① 只要原创研究 → `--original-only`（排除 review/guideline/protocol，unknown 放行）；② **反向模式** → `--only-type review` / `--only-type guideline,protocol` 等（只保留指定类型，unknown 也排除）。判别依据：标题/摘要信号 + pubType 元数据；PRISMA 漏斗记录 `non-original-type:*` / `type-not-required:*`。也可单独用 `scripts/doc_type_filter.py`（`--exclude-non-original` / `--only TYPES`，支持 `--use-pdfs` PDF 级兜底）。甄别异常一律放行，绝不阻断检索流程 |\r\n| Relevance scoring | All | `--rank relevance` → `relevance_score` (title .6 + abstract .4) |\r\n| Obsidian / Zotero integration | All | `--obsidian` notes + MOC; `--zotero` CSV/RIS |\r\n| **P0 · Citation verification** | All | Anti-hallucination (§17.1). `--verify {all\\|top\\|none}`; source-aware skip; DOI cross-checked via doi.org; title/author consistency vs Crossref/Europe PMC/OpenAlex; flags `verified/bot_blocked/mismatch/unresolved/...` |\r\n| **P1 · DOI audit** | All | `--verify-dois` (opt-in, needs `--run`): writes additive `doi_verified` / `doi_mismatch` onto every work and emits `doi_mismatch.md` — a human-review list isolating the real-but-wrong / hallucinated-DOI case (Crossref title+author fuzzy match). Standalone: `scripts/verify_dois.py --in .merged.json --run` |\r\n| **P0 · Evidence provenance log** | All | `evidence_log.json/.md` + workbook sheet + HTML block: query→source→hits→retrieved_at→verification rate |\r\n| **P1 · PROSPERO registry** | Review register | `--with-prospero` (opt-in, key-gated, **reserved**) — dormant no-op skip without token; never claimed functional |\r\n| **G · Guideline corpus** | Guideline orgs | `--with-guidelines` → local pointer corpus (see above) |\r\n| **P0 · 结构化 PICO 概念** | topic/干预/对照/结局 | `--concept TYPE=VALUE`（可重复，TYPE∈{condition,population,intervention,comparator,outcome,endpoint,study_design,biomarker,drug,indication}）：概念 AND 拼入检索式、独立成轴；MeSH 精确归一化 + `mapping_status` 审计（exact_label/synonym/unmapped_literal，模糊匹配拒绝、未命中保留原词） |\r\n| **P0 · 检索深度预算** | resource control | `--depth quick\\|standard\\|deep`：决定每源上限与弱化结果救援开关（**非证据质量评级**）；不传则沿用 `--max` 旧语义 |\r\n| **P0 · 证据维度分轨** | safety vs efficacy | 合并后每篇打 `evidence_dimension`（=`safety` 若 `is_safety`，否则 `general`）；`--safety` 触发独立 safety lane，安全性信号不被疗效文献稀释 |\r\n| **P1 · 四态审计 ledger** | provenance | `evidence_log` 新增 `status∈{ok,empty,error,skipped}` + `coverage∈{healthy,partial,empty,critical_gap}`；被显式关闭的源记 `skipped`（not_run）、缺口诚实呈现、**不归零** |\r\n| **P1 · lane 规划视图** | dry-run | SAFE PREVIEW 直接打印 lane 规划（purpose / 源 / evidence_dimension / 备注），跑前可审查 |\r\n| **P1 · 弱化结果救援** | recall rescue | `standard`/`deep` 且合并唯一文献 < 5 且概念曾收窄检索式时，放宽至主题级回补一轮（单次、非致命；无新增记 skipped） |\r\n\r\n## Unified work schema\r\n\r\n```\r\n{ source, id, title, authors, year, publication_date, publication, journal_iso,\r\n  type, study_type, cited_by_count, url, open_access_url,\r\n  pmid, pmcid, doi, abstract_snippet, mesh, concepts, keywords, funders,\r\n  language, is_retracted, is_safety, is_preprint, volume, issue, page,\r\n  affiliations, sources }\r\n```\r\n\r\n## Output (full detail)\r\n\r\n**Standard deliverables = HTML + Excel only.** Present `lit_report.html` to the user as the result, and remind them of the optional add-ons below (the report itself shows a \"还能做什么 / Options\" strip with these hints).\r\n\r\n- Per-source payloads: `openalex.json` / `europepmc.json` / `semantic_scholar.json` / `biorxiv.json` / `medrxiv.json` / `arxiv.json` (enabled only)\r\n- `lit_report.xlsx` — Excel delivery (`excel_style`; `--no-xlsx` to skip): Overview → Literature master → Safety-related, KPI cards, charts, `is_safety` amber highlighting. **The complete result — user can keep filtering / pivoting on top of it.**\r\n- `lit_report.html` — self-contained HTML report (inline CSS, offline; `--no-html` to skip); inline-SVG PRISMA funnel when `--prisma`. **Default deliverable to open.**\r\n- **On-demand citation formats** (default OFF — ask the user or use `--export-bib`): `references.bib` / `references.ris` / `references_<style>.md` (Zotero RIS / BibTeX / APA etc.). OA-PDF downloads are likewise on request: `--download-pdf` attempts **ALL** records that carry an OA URL or DOI (batched, legal OA sources only); users may instead ask for specific DOI / PMID(s) or the top-N works. The PDF local-path column in `lit_report.xlsx` is written back automatically by `PdfDownloader` when constructed with `xlsx_out` (the main `--download-pdf` flow and any standalone driver that passes `xlsx_out` both benefit); you no longer need to call `update_xlsx_pdf_paths.py` separately. **Server-side supplement chain**: when the A-path direct links all fail, the coze endpoint runs a supplement chain — Unpaywall best-OA → Europe PMC PMC-OA → PPR preprints (bioRxiv/medRxiv, author-verified) — before the (off) browser fallback; the local skill only calls, it no longer implements multi-channel download algorithms. **Concurrency (2026-09-19 fix)**: local resolve/download and Coze decode now run **in parallel** — the Coze decode thread is started *before* the local download phase and each returned sub-batch pipes its links straight into the concurrent downloader, so a locally-resolved direct link starts downloading immediately instead of waiting for Coze to finish the whole round (the docstring previously claimed this overlap but the code serialized it). The \"local download failed → Coze retry\" pass is gated on `_local_phase_done` so it still runs after the main batches. The workbench's `coze_resolve.py --pipeline` (default) implements the same three-way overlap (local probe ‖ Coze ‖ download) and starts downloading the moment a single link resolves; `--no-pipeline` restores the old serial phases for comparison.\r\n- **⚠️ PDF 下载后结果面板规则**：`--download-pdf` 及任何直驱 `PdfDownloader` 的脚本，下载完成后结果面板**只呈现标准产物 `lit_report.html` / `lit_report.xlsx`**，绝不逐个打开 / 列出 PDF 文件（数十个 PDF 同时打开会卡死 UI）。下载反馈仅用纯文本告知用户共同保存目录 `out_dir/pdfs/`，由用户自行打开所需 PDF。\r\n- `obsidian/` (`--obsidian`) — per-paper notes + `Literature MOC.md`; `zotero.csv` / `zotero.ris` (`--zotero`)\r\n- `.merged.json` gains additive `prisma` + per-work `relevance_score` / `prisma_included` blocks\r\n\r\nSee `sop.md` for the full command catalogue.\r\n\r\n## Implementation (invocation cookbook)\r\n\r\n```bash\r\n# Primary: OpenAlex only (no key)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --review-type systematic-review --year-from 2018 --safety --run --out-dir ./out\r\n\r\n# Add Europe PMC (default ON) + Semantic Scholar (may 429 -> skipped)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --with-europepmc --with-semantic-scholar --run --out-dir ./out\r\n\r\n# Cochrane-only retrieval (focus on the Cochrane Database of Systematic Reviews)\r\npython scripts/ct_literature.py --topic \"NSCLC\" --cochrane --with-europepmc --run --out-dir ./out\r\n\r\n# Clinical guidelines: build once (network), read many (zero network)\r\npython adapters/build_guidelines.py --topic \"diabetes\" --run          # author/build-time; omit --run = SAFE PREVIEW\r\npython scripts/ct_literature.py --topic \"2型糖尿病\" --with-guidelines --run --out-dir ./out\r\n\r\n# Source subset (--sources): comma-separated, OVERRIDES the --with-* / --cochrane defaults.\r\n# A source is enabled iff listed. Consumed by meta-analysis A1's \"检索范围\" revision.\r\n# Names: OpenAlex, EuropePMC, bioRxiv, medRxiv, SemanticScholar, arXiv, PROSPERO, Guidelines, Cochrane\r\n# (PubMed is an alias folded into EuropePMC; OpenAlex is the pipeline base and cannot be disabled.)\r\npython scripts/ct_literature.py --topic \"osimertinib\" --sources \"OpenAlex,EuropePMC\" --run --out-dir ./out\r\npython scripts/ct_literature.py --topic \"osimertinib\"            # preview (no --run) prints the resolved source list\r\n```\r\n\r\n### OpenAlex API key (recommended since 2026-02-13)\r\n\r\nKeyless is capped at 100 credits/day; a free key lifts to 100k/day. **Zero-friction:** drop the key into the skill's `.env` (copy from `.env.example`) — no extra flag needed. `http_utils.load_openalex_key()` auto-resolves: env `OPENALEX_API_KEY` → skill-root `.env` → `scripts/.env` (key value never printed). Explicit provision also works (`--openalex-key`). Application steps, quota, troubleshooting → `openalex_key.md`.\r\n\r\n## Changelog\r\n\r\n### v1.2.0 (2026-09-30) — 检索结构模型（借鉴「组小学」专家，P0/P1）\r\n- **新增** 结构化 PICO 概念 `--concept TYPE=VALUE`（可重复）：概念 AND 拼入检索式、干预/对照/结局独立成轴；MeSH 精确归一化 + `mapping_status` 审计。\r\n- **新增** 检索深度预算 `--depth quick|standard|deep`：决定每源上限与弱化结果救援开关。\r\n- **新增** 证据维度分轨：合并后每篇打 `evidence_dimension`（safety/general）；`--safety` 触发独立 safety lane。\r\n- **新增** 四态审计 ledger + coverage 判定：`status∈{ok,empty,error,skipped}` + `coverage∈{healthy,partial,empty,critical_gap}`；关闭源记 skipped、不归零。\r\n- **新增** SAFE PREVIEW 打印 lane 规划视图；`standard`/`deep` 下合并集偏薄触发弱化结果救援（单次、非致命）。\r\n- **约束**：全部 additive、向后兼容；不引入组小学的 7 场景全量 / first-class trial·drug·target 对象 / 靶点基因变异实体（越 ct-literature 临床文献边界，与 ct-registry / ct-safety 分工冲突）。\r\n- **验证**：SAFE PREVIEW + `evidence_log.build_log` 单元验证通过；一次本地最小化 live run 端到端通过（concepts 入审计、coverage=healthy、disabled 源 skipped）。\n\nFile v1.0.1:references/citation_styles.md\n\n# Citation Styles\r\n\r\n`ct-literature` supports five citation styles (`--citation-style`), implemented in `scripts/format_citations.py`. It reads `merged.json` and reuses existing fields (title / authors / year / publication / volume / issue / page / doi / url) to assemble each citation. Exports `references.bib` (BibTeX) + `references.ris` (RIS).\r\n\r\n> The applied style is labeled at the top of the report and `references_<style>.md` for traceability.\r\n\r\n## 1. APA (7th) — default\r\n```\r\nAuthor, A. A., & Author, B. B. (Year). Title of article. *Journal Name*, *Vol*(Issue), Pages. https://doi.org/DOI\r\n```\r\n- Authors: surname, initials; multiple authors joined with `, &`.\r\n- Journal name italic; volume italic, issue in parentheses.\r\n\r\n## 2. Nature\r\n```\r\nAuthor1 AB, Author2 CD. Title of article. Journal Name Vol, Pages (Year). https://doi.org/DOI\r\n```\r\n- Given name first, abbreviated to initials (no dots); surname last; comma-separated.\r\n- Inline style for numbered journals; year in trailing parentheses.\r\n\r\n## 3. Vancouver (sequential numeric)\r\n```\r\nAuthor1 AB, Author2 CD. Title of article. Journal Name. Year;Vol(Issue):Pages. doi:DOI\r\n```\r\n- Up to 6 authors listed in full; beyond that, close with `et al.` (this implementation lists all, for clean Bib/RIS round-tripping).\r\n- Year followed by `;Vol(Issue):Pages`.\r\n\r\n## 4. IEEE\r\n```\r\nAuthor1, \"Title of article,\" Journal Name, vol. Vol, no. Issue, pp. Pages, Year. doi: DOI.\r\n```\r\n- Article title in double quotes; `vol.` / `no.` / `pp.` explicit.\r\n\r\n## 5. GB/T 7714 (PRC national standard)\r\n```\r\nAuthor. Title[J]. Journal, Year, Vol(Issue):Pages. DOI:DOI.\r\n```\r\n- **Chinese branch**: full-width Chinese punctuation (。、[J]、，、：); authors separated by Chinese comma 「，」.\r\n- When mixing with the English styles (apa/nature/vancouver/ieee), branch on `style == 'gb7714'` so Chinese punctuation is not swallowed by the English templates.\r\n\r\n## Field mapping (merged.json → citation)\r\n| Citation element | merged.json field |\r\n|---|---|\r\n| Authors | `authors` (list; tolerates string/None) |\r\n| Year | `year` |\r\n| Title | `title` |\r\n| Journal | `publication` |\r\n| Volume / Issue / Pages | `volume` / `issue` / `page` |\r\n| DOI / Link | `doi` / `url` |\r\n\r\n## Notes\r\n- Purely local generation; does not touch the fetch layer. Styles are layout templates only, not formal typographic validation.\r\n- Author-name resolution handles both `Surname, Given` and `Given Surname`; Chinese names are preserved as a single token.\n\nFile v1.0.1:references/dialogue.md\n\n# Dialogue Protocol & Bug Reporting (ct-literature)\r\n\r\n> Extracted verbatim from `SKILL.md` (2026-09-27, line-budget refactor — SKILL.md ≤ 200 lines per ct-base §16.1 / F02). No content removed; SKILL.md keeps the red-line summary and points here. Load this file when executing an NL dialogue round (triage / continuity / echo) or handling bug reports.\r\n\r\n## Natural-Language Dialogue — Triage-First (mandatory)\r\n\r\nNL dialogue MUST triage before choosing the interaction shape. Mandatory per\r\n§6.2 + `search_menu.md` — this step is never skipped.\r\n\r\n### Step 0 Triage (four buckets, run on the user's first message)\r\n\r\n| Bucket | Condition | Behavior |\r\n|---|---|---|\r\n| **Simple** | topic + ≥2 parameters clear (e.g. \"osimertinib systematic reviews since 2020\") | straight to §4.2 preview confirmation; no §4.1 menu |\r\n| **Complex** | topic given but parameters missing / multiple intents (e.g. \"diabetes treatment literature\") | §4.1 initial confirmation menu → once parameters are complete, forced through the §12 keyword gate → §4.2 preview confirmation → run |\r\n| **Vague** | what the user wants is unclear (e.g. \"find me that new drug\") | grill-me branch questions (≤2 rounds), then re-triage |\r\n| **Middle** | single deep point (e.g. \"how to compute sample size\") | answer directly; no menu |\r\n\r\n### Red lines\r\n\r\n- **Never skip triage and run `--run` directly.** Even with a clear topic, missing key parameters (review_type / year / sources / …) makes the Complex menu flow mandatory.\r\n- **Never decide for the user.** The Complex menu must carry a \"still unsure → explain the differences\" entry (option ③ in the CN UI: 说「详细解释这些选择之间的差异」，我先讲清临床与统计含义再让你决定).\r\n- **The §12 keyword-system confirmation gate is mandatory:** whenever the user provides parseable search terms, build the Manifest and let the user review the expanded keywords before running.\r\n\r\n### Cross-turn continuity (continuity.md mode A, high risk)\r\n\r\nct-literature's query spec lives ONLY in the conversation thread (OpenAlex /\r\nEurope PMC etc. are stateless remotes); a dropped field silently searches the\r\nwrong scope.\r\n\r\n#### Echo block (append after every run)\r\n\r\n```\r\n## 当前检索设定：topic=… | type=… | year=… | safety=… | depth=… | concepts=… | sources=… | max=… | verify=…\r\n```\r\n\r\n- Fixed prefix `## 当前检索设定：` (inherited by search_menu.md §13)\r\n- Fields are `key=value`, pipe-separated; missing defaults use `—`; **never omit fields**\r\n- Full field list: `topic / type / year / safety / depth / concepts / sources / max / verify`\r\n\r\n#### Follow-ups change only the changed fields\r\n\r\nThe LLM must read the MOST RECENT settings block in the conversation, override\r\nonly the fields the user changed this turn, keep the rest as-is, then proceed\r\nto the §12 gate or run.\r\n\r\n#### merge_spec fallback (default path)\r\n\r\nct-literature is a high-risk skill (continuity.md §5.1); `merge_spec.py` is the\r\nDEFAULT path on follow-ups:\r\n\r\n```bash\r\necho '{\"prev\":{previous full spec},\"cur\":{this-turn partial}}' \\\r\n  | python scripts/merge_spec.py\r\n```\r\n\r\nFeed the `merged` output into the §12 keyword gate. `prev` comes from the\r\nthread's latest settings block — never persisted, never cached across turns.\r\n\r\n#### Local-only continuity\r\n\r\nOpenAlex / Europe PMC / bioRxiv / medRxiv are all **stateless remotes** — they\r\ndo not remember your previous search parameters. Continuity (parameter\r\ninheritance) MUST be solved locally (thread-resident + echo block +\r\nmerge_spec); there is no \"the remote will remember\" fallback.\r\n\r\n### Execution flow\r\n\r\n```\r\nuser request → Step 0 Triage\r\n  ├─ Simple → §4.2 preview confirm → §12 keyword gate → run → §13 echo\r\n  ├─ Complex → §4.1 initial menu → parameters complete → §12 keyword gate → §4.2 preview confirm → run → §13 echo\r\n  ├─ Vague → grill-me (≤2 rounds) → re-triage\r\n  └─ Middle → answer directly (no menu)\r\n```\r\n\r\n## Bug Reporting (§20.3, adapter: `adapters/bug_report.py`)\r\n\r\n- **Trigger:** (A) explicit user request (\"report a bug\" / \"反馈问题\" / \"提交错误报告\") → straight to two-stage confirmation, unlimited per session; (B) strong signal (unexpected non-zero exit / engine or compute error / user explicitly questions the result) **and** the same operation was retried ≥1 → at most 1 unsolicited proposal/session.\r\n- **Two-stage confirmation (2026-08-21):** ① propose-with-preview — bilingual `confirm_prompt` together with the full sanitized report (invite a problem description; re-render before consent) → ② on explicit consent, `send_to_endpoint` (auto action=report, endpoint `https://ct-bugreport.coze.site/run`, token = §5 public credential). Decline → never re-propose this session.\r\n- **Sanitization is hard:** 11-key whitelist only (skill / version / error_type / error_code / engine_status / description / locale / query_origin / session_hash / attempts / test) — never raw data or subject records; `description` is the single user-reviewed free-text field. No cloud call → `save_local_report()` (local md + author email).\r\n- **Client-only:** sends `report` only; governance actions belong to `ct-update` (author side). Post-send (2026-08-22): endpoint returns `history` → reply via `confirm_thanks` + `build_followup` (bilingual, locale-switched).\r\n\r\nInvoke: `python adapters/bug_report.py --error-type <t> --description \"<free text>\" [--send]` (add `--send` only after the user confirms).\n\nFile v1.0.1:references/drug_name_map.json\n\n{\r\n  \"_meta\": {\r\n    \"description\": \"中文药物名 → 标准英文 INN/通用名 映射表（用于 openFDA FAERS 检索预处理）\",\r\n    \"version\": \"1.1\",\r\n    \"updated\": \"2026-09-06\",\r\n    \"note\": \"一个中文名可对应多个英文名（如复方制剂、不同盐基）；检索时多候选列出让用户确认。仅覆盖常见药，不在表中时提示用户手动输入英文名。\"\r\n  },\r\n  \"阿司匹林\": [\r\n    \"aspirin\"\r\n  ],\r\n  \"布洛芬\": [\r\n    \"ibuprofen\"\r\n  ],\r\n  \"对乙酰氨基酚\": [\r\n    \"acetaminophen\",\r\n    \"paracetamol\"\r\n  ],\r\n  \"阿莫西林\": [\r\n    \"amoxicillin\"\r\n  ],\r\n  \"头孢氨苄\": [\r\n    \"cefalexin\",\r\n    \"cephalexin\"\r\n  ],\r\n  \"头孢呋辛\": [\r\n    \"cefuroxime\"\r\n  ],\r\n  \"头孢曲松\": [\r\n    \"ceftriaxone\"\r\n  ],\r\n  \"阿奇霉素\": [\r\n    \"azithromycin\"\r\n  ],\r\n  \"克拉霉素\": [\r\n    \"clarithromycin\"\r\n  ],\r\n  \"左氧氟沙星\": [\r\n    \"levofloxacin\"\r\n  ],\r\n  \"莫西沙星\": [\r\n    \"moxifloxacin\"\r\n  ],\r\n  \"甲硝唑\": [\r\n    \"metronidazole\"\r\n  ],\r\n  \"奥美拉唑\": [\r\n    \"omeprazole\"\r\n  ],\r\n  \"兰索拉唑\": [\r\n    \"lansoprazole\"\r\n  ],\r\n  \"泮托拉唑\": [\r\n    \"pantoprazole\"\r\n  ],\r\n  \"雷贝拉唑\": [\r\n    \"rabeprazole\"\r\n  ],\r\n  \"艾司奥美拉唑\": [\r\n    \"esomeprazole\"\r\n  ],\r\n  \"法莫替丁\": [\r\n    \"famotidine\"\r\n  ],\r\n  \"雷尼替丁\": [\r\n    \"ranitidine\"\r\n  ],\r\n  \"西咪替丁\": [\r\n    \"cimetidine\"\r\n  ],\r\n  \"二甲双胍\": [\r\n    \"metformin\"\r\n  ],\r\n  \"格列美脲\": [\r\n    \"glimepiride\"\r\n  ],\r\n  \"格列齐特\": [\r\n    \"gliclazide\"\r\n  ],\r\n  \"格列吡嗪\": [\r\n    \"glipizide\"\r\n  ],\r\n  \"格列本脲\": [\r\n    \"glibenclamide\",\r\n    \"glyburide\"\r\n  ],\r\n  \"阿卡波糖\": [\r\n    \"acarbose\"\r\n  ],\r\n  \"伏格列波糖\": [\r\n    \"voglibose\"\r\n  ],\r\n  \"瑞格列奈\": [\r\n    \"repaglinide\"\r\n  ],\r\n  \"那格列奈\": [\r\n    \"nateglinide\"\r\n  ],\r\n  \"西格列汀\": [\r\n    \"sitagliptin\"\r\n  ],\r\n  \"沙格列汀\": [\r\n    \"saxagliptin\"\r\n  ],\r\n  \"利格列汀\": [\r\n    \"linagliptin\"\r\n  ],\r\n  \"维格列汀\": [\r\n    \"vildagliptin\"\r\n  ],\r\n  \"恩格列净\": [\r\n    \"empagliflozin\"\r\n  ],\r\n  \"达格列净\": [\r\n    \"dapagliflozin\"\r\n  ],\r\n  \"卡格列净\": [\r\n    \"canagliflozin\"\r\n  ],\r\n  \"吡格列酮\": [\r\n    \"pioglitazone\"\r\n  ],\r\n  \"罗格列酮\": [\r\n    \"rosiglitazone\"\r\n  ],\r\n  \"胰岛素\": [\r\n    \"insulin\"\r\n  ],\r\n  \"甘精胰岛素\": [\r\n    \"insulin glargine\"\r\n  ],\r\n  \"门冬胰岛素\": [\r\n    \"insulin aspart\"\r\n  ],\r\n  \"赖脯胰岛素\": [\r\n    \"insulin lispro\"\r\n  ],\r\n  \"地特胰岛素\": [\r\n    \"insulin detemir\"\r\n  ],\r\n  \"格列喹酮\": [\r\n    \"gliquidone\"\r\n  ],\r\n  \"阿托伐他汀\": [\r\n    \"atorvastatin\"\r\n  ],\r\n  \"瑞舒伐他汀\": [\r\n    \"rosuvastatin\"\r\n  ],\r\n  \"辛伐他汀\": [\r\n    \"simvastatin\"\r\n  ],\r\n  \"普伐他汀\": [\r\n    \"pravastatin\"\r\n  ],\r\n  \"氟伐他汀\": [\r\n    \"fluvastatin\"\r\n  ],\r\n  \"匹伐他汀\": [\r\n    \"pitavastatin\"\r\n  ],\r\n  \"洛伐他汀\": [\r\n    \"lovastatin\"\r\n  ],\r\n  \"依折麦布\": [\r\n    \"ezetimibe\"\r\n  ],\r\n  \"非诺贝特\": [\r\n    \"fenofibrate\"\r\n  ],\r\n  \"吉非贝齐\": [\r\n    \"gemfibrozil\"\r\n  ],\r\n  \"苯扎贝特\": [\r\n    \"bezafibrate\"\r\n  ],\r\n  \"考来烯胺\": [\r\n    \"cholestyramine\"\r\n  ],\r\n  \"阿昔单抗\": [\r\n    \"abciximab\"\r\n  ],\r\n  \"氯吡格雷\": [\r\n    \"clopidogrel\"\r\n  ],\r\n  \"替格瑞洛\": [\r\n    \"ticagrelor\"\r\n  ],\r\n  \"普拉格雷\": [\r\n    \"prasugrel\"\r\n  ],\r\n  \"华法林\": [\r\n    \"warfarin\"\r\n  ],\r\n  \"利伐沙班\": [\r\n    \"rivaroxaban\"\r\n  ],\r\n  \"阿哌沙班\": [\r\n    \"apixaban\"\r\n  ],\r\n  \"达比加群\": [\r\n    \"dabigatran\"\r\n  ],\r\n  \"依度沙班\": [\r\n    \"edoxaban\"\r\n  ],\r\n  \"肝素\": [\r\n    \"heparin\"\r\n  ],\r\n  \"低分子肝素\": [\r\n    \"enoxaparin\",\r\n    \"low molecular weight heparin\"\r\n  ],\r\n  \"达肝素\": [\r\n    \"dalteparin\"\r\n  ],\r\n  \"那屈肝素\": [\r\n    \"nadroparin\"\r\n  ],\r\n  \"磺达肝癸钠\": [\r\n    \"fondaparinux\"\r\n  ],\r\n  \"阿替普酶\": [\r\n    \"alteplase\"\r\n  ],\r\n  \"尿激酶\": [\r\n    \"urokinase\"\r\n  ],\r\n  \"链激酶\": [\r\n    \"streptokinase\"\r\n  ],\r\n  \"氨甲环酸\": [\r\n    \"tranexamic acid\"\r\n  ],\r\n  \"氨基己酸\": [\r\n    \"aminocaproic acid\"\r\n  ],\r\n  \"鱼精蛋白\": [\r\n    \"protamine\"\r\n  ],\r\n  \"维生素K\": [\r\n    \"vitamin k\",\r\n    \"phytomenadione\"\r\n  ],\r\n  \"酚磺乙胺\": [\r\n    \"etamsylate\"\r\n  ],\r\n  \"卡巴克络\": [\r\n    \"carbazochrome\"\r\n  ],\r\n  \"硝苯地平\": [\r\n    \"nifedipine\"\r\n  ],\r\n  \"氨氯地平\": [\r\n    \"amlodipine\"\r\n  ],\r\n  \"非洛地平\": [\r\n    \"felodipine\"\r\n  ],\r\n  \"拉西地平\": [\r\n    \"lacidipine\"\r\n  ],\r\n  \"尼群地平\": [\r\n    \"nitrendipine\"\r\n  ],\r\n  \"尼莫地平\": [\r\n    \"nimodipine\"\r\n  ],\r\n  \"地尔硫卓\": [\r\n    \"diltiazem\"\r\n  ],\r\n  \"维拉帕米\": [\r\n    \"verapamil\"\r\n  ],\r\n  \"卡托普利\": [\r\n    \"captopril\"\r\n  ],\r\n  \"依那普利\": [\r\n    \"enalapril\"\r\n  ],\r\n  \"贝那普利\": [\r\n    \"benazepril\"\r\n  ],\r\n  \"培哚普利\": [\r\n    \"perindopril\"\r\n  ],\r\n  \"雷米普利\": [\r\n    \"ramipril\"\r\n  ],\r\n  \"福辛普利\": [\r\n    \"fosinopril\"\r\n  ],\r\n  \"西拉普利\": [\r\n    \"cilazapril\"\r\n  ],\r\n  \"赖诺普利\": [\r\n    \"lisinopril\"\r\n  ],\r\n  \"氯沙坦\": [\r\n    \"losartan\"\r\n  ],\r\n  \"缬沙坦\": [\r\n    \"valsartan\"\r\n  ],\r\n  \"厄贝沙坦\": [\r\n    \"irbesartan\"\r\n  ],\r\n  \"替米沙坦\": [\r\n    \"telmisartan\"\r\n  ],\r\n  \"坎地沙坦\": [\r\n    \"candesartan\"\r\n  ],\r\n  \"奥美沙坦\": [\r\n    \"olmesartan\"\r\n  ],\r\n  \"阿利沙坦\": [\r\n    \"allisartan\"\r\n  ],\r\n  \"氢氯噻嗪\": [\r\n    \"hydrochlorothiazide\"\r\n  ],\r\n  \"呋塞米\": [\r\n    \"furosemide\"\r\n  ],\r\n  \"托拉塞米\": [\r\n    \"torasemide\"\r\n  ],\r\n  \"螺内酯\": [\r\n    \"spironolactone\"\r\n  ],\r\n  \"氨苯蝶啶\": [\r\n    \"triamterene\"\r\n  ],\r\n  \"阿米洛利\": [\r\n    \"amiloride\"\r\n  ],\r\n  \"吲达帕胺\": [\r\n    \"indapamide\"\r\n  ],\r\n  \"美托洛尔\": [\r\n    \"metoprolol\"\r\n  ],\r\n  \"比索洛尔\": [\r\n    \"bisoprolol\"\r\n  ],\r\n  \"阿替洛尔\": [\r\n    \"atenolol\"\r\n  ],\r\n  \"普萘洛尔\": [\r\n    \"propranolol\"\r\n  ],\r\n  \"卡维地洛\": [\r\n    \"carvedilol\"\r\n  ],\r\n  \"拉贝洛尔\": [\r\n    \"labetalol\"\r\n  ],\r\n  \"艾司洛尔\": [\r\n    \"esmolol\"\r\n  ],\r\n  \"富马酸比索洛尔\": [\r\n    \"bisoprolol\"\r\n  ],\r\n  \"琥珀酸美托洛尔\": [\r\n    \"metoprolol succinate\"\r\n  ],\r\n  \"酒石酸美托洛尔\": [\r\n    \"metoprolol tartrate\"\r\n  ],\r\n  \"地高辛\": [\r\n    \"digoxin\"\r\n  ],\r\n  \"去乙酰毛花苷\": [\r\n    \"deslanoside\"\r\n  ],\r\n  \"胺碘酮\": [\r\n    \"amiodarone\"\r\n  ],\r\n  \"普罗帕酮\": [\r\n    \"propafenone\"\r\n  ],\r\n  \"利多卡因\": [\r\n    \"lidocaine\"\r\n  ],\r\n  \"腺苷\": [\r\n    \"adenosine\"\r\n  ],\r\n  \"阿托品\": [\r\n    \"atropine\"\r\n  ],\r\n  \"异丙肾上腺素\": [\r\n    \"isoprenaline\",\r\n    \"isoproterenol\"\r\n  ],\r\n  \"肾上腺素\": [\r\n    \"epinephrine\",\r\n    \"adrenaline\"\r\n  ],\r\n  \"去甲肾上腺素\": [\r\n    \"norepinephrine\",\r\n    \"noradrenaline\"\r\n  ],\r\n  \"多巴胺\": [\r\n    \"dopamine\"\r\n  ],\r\n  \"多巴酚丁胺\": [\r\n    \"dobutamine\"\r\n  ],\r\n  \"米力农\": [\r\n    \"milrinone\"\r\n  ],\r\n  \"左西孟旦\": [\r\n    \"levosimendan\"\r\n  ],\r\n  \"硝酸甘油\": [\r\n    \"nitroglycerin\"\r\n  ],\r\n  \"单硝酸异山梨酯\": [\r\n    \"isosorbide mononitrate\"\r\n  ],\r\n  \"硝酸异山梨酯\": [\r\n    \"isosorbide dinitrate\"\r\n  ],\r\n  \"尼可地尔\": [\r\n    \"nicorandil\"\r\n  ],\r\n  \"曲美他嗪\": [\r\n    \"trimetazidine\"\r\n  ],\r\n  \"尼可刹米\": [\r\n    \"nikethamide\"\r\n  ],\r\n  \"洛贝林\": [\r\n    \"lobeline\"\r\n  ],\r\n  \"咖啡因\": [\r\n    \"caffeine\"\r\n  ],\r\n  \"二甲硅油\": [\r\n    \"dimeticone\"\r\n  ],\r\n  \"酚妥拉明\": [\r\n    \"phentolamine\"\r\n  ],\r\n  \"酚苄明\": [\r\n    \"phenoxybenzamine\"\r\n  ],\r\n  \"利血平\": [\r\n    \"reserpine\"\r\n  ],\r\n  \"硫酸镁\": [\r\n    \"magnesium sulfate\"\r\n  ],\r\n  \"葡萄糖酸钙\": [\r\n    \"calcium gluconate\"\r\n  ],\r\n  \"氯化钾\": [\r\n    \"potassium chloride\"\r\n  ],\r\n  \"氯化钠\": [\r\n    \"sodium chloride\"\r\n  ],\r\n  \"葡萄糖\": [\r\n    \"glucose\"\r\n  ],\r\n  \"乳果糖\": [\r\n    \"lactulose\"\r\n  ],\r\n  \"聚乙二醇\": [\r\n    \"polyethylene glycol\"\r\n  ],\r\n  \"双歧杆菌\": [\r\n    \"bifidobacterium\"\r\n  ],\r\n  \"枯草杆菌\": [\r\n    \"bacillus subtilis\"\r\n  ],\r\n  \"蒙脱石\": [\r\n    \"smectite\"\r\n  ],\r\n  \"洛哌丁胺\": [\r\n    \"loperamide\"\r\n  ],\r\n  \"奥曲肽\": [\r\n    \"octreotide\"\r\n  ],\r\n  \"生长抑素\": [\r\n    \"somatostatin\"\r\n  ],\r\n  \"垂体后叶素\": [\r\n    \"pituitrin\"\r\n  ],\r\n  \"缩宫素\": [\r\n    \"oxytocin\"\r\n  ],\r\n  \"麦角新碱\": [\r\n    \"ergometrine\"\r\n  ],\r\n  \"卡前列素\": [\r\n    \"carboprost\"\r\n  ],\r\n  \"米索前列醇\": [\r\n    \"misoprostol\"\r\n  ],\r\n  \"地诺前列酮\": [\r\n    \"dinoprostone\"\r\n  ],\r\n  \"利托君\": [\r\n    \"ritodrine\"\r\n  ],\r\n  \"硫酸沙丁胺醇\": [\r\n    \"salbutamol\"\r\n  ],\r\n  \"特布他林\": [\r\n    \"terbutaline\"\r\n  ],\r\n  \"异丙托溴铵\": [\r\n    \"ipratropium bromide\"\r\n  ],\r\n  \"噻托溴铵\": [\r\n    \"tiotropium bromide\"\r\n  ],\r\n  \"布地奈德\": [\r\n    \"budesonide\"\r\n  ],\r\n  \"丙酸氟替卡松\": [\r\n    \"fluticasone propionate\"\r\n  ],\r\n  \"沙美特罗\": [\r\n    \"salmeterol\"\r\n  ],\r\n  \"福莫特罗\": [\r\n    \"formoterol\"\r\n  ],\r\n  \"孟鲁司特\": [\r\n    \"montelukast\"\r\n  ],\r\n  \"扎鲁司特\": [\r\n    \"zafirlukast\"\r\n  ],\r\n  \"齐留通\": [\r\n    \"zileuton\"\r\n  ],\r\n  \"色甘酸钠\": [\r\n    \"sodium cromoglicate\"\r\n  ],\r\n  \"多索茶碱\": [\r\n    \"doxofylline\"\r\n  ],\r\n  \"氨茶碱\": [\r\n    \"aminophylline\"\r\n  ],\r\n  \"二羟丙茶碱\": [\r\n    \"dyphylline\"\r\n  ],\r\n  \"乙酰半胱氨酸\": [\r\n    \"acetylcysteine\"\r\n  ],\r\n  \"羧甲司坦\": [\r\n    \"carbocisteine\"\r\n  ],\r\n  \"盐酸氨溴索\": [\r\n    \"ambroxol\"\r\n  ],\r\n  \"溴己新\": [\r\n    \"bromhexine\"\r\n  ],\r\n  \"桉柠蒎\": [\r\n    \"eucalyptus\"\r\n  ],\r\n  \"标准桃金娘油\": [\r\n    \"myrtol\"\r\n  ],\r\n  \"可待因\": [\r\n    \"codeine\"\r\n  ],\r\n  \"福尔可定\": [\r\n    \"pholcodine\"\r\n  ],\r\n  \"右美沙芬\": [\r\n    \"dextromethorphan\"\r\n  ],\r\n  \"喷托维林\": [\r\n    \"pentoxyverine\"\r\n  ],\r\n  \"氯哌斯汀\": [\r\n    \"cloperastine\"\r\n  ],\r\n  \"复方甘草\": [\r\n    \"glycyrrhiza\"\r\n  ],\r\n  \"阿桔片\": [\r\n    \"platycodon\"\r\n  ],\r\n  \"苯丙哌林\": [\r\n    \"properidine\"\r\n  ],\r\n  \"二氧丙嗪\": [\r\n    \"dioxopromethazine\"\r\n  ],\r\n  \"异丙嗪\": [\r\n    \"promethazine\"\r\n  ],\r\n  \"氯苯那敏\": [\r\n    \"chlorpheniramine\"\r\n  ],\r\n  \"苯海拉明\": [\r\n    \"diphenhydramine\"\r\n  ],\r\n  \"赛庚啶\": [\r\n    \"cyproheptadine\"\r\n  ],\r\n  \"酮替芬\": [\r\n    \"ketotifen\"\r\n  ],\r\n  \"西替利嗪\": [\r\n    \"cetirizine\"\r\n  ],\r\n  \"氯雷他定\": [\r\n    \"loratadine\"\r\n  ],\r\n  \"依巴斯汀\": [\r\n    \"ebastine\"\r\n  ],\r\n  \"咪唑斯汀\": [\r\n    \"mizolastine\"\r\n  ],\r\n  \"氮卓斯汀\": [\r\n    \"azelastine\"\r\n  ],\r\n  \"非索非那定\": [\r\n    \"fexofenadine\"\r\n  ],\r\n  \"地氯雷他定\": [\r\n    \"desloratadine\"\r\n  ],\r\n  \"左西替利嗪\": [\r\n    \"levocetirizine\"\r\n  ],\r\n  \"奥洛他定\": [\r\n    \"olopatadine\"\r\n  ],\r\n  \"阿伐斯汀\": [\r\n    \"acrivastine\"\r\n  ],\r\n  \"曲普利啶\": [\r\n    \"triprolidine\"\r\n  ],\r\n  \"阿司咪唑\": [\r\n    \"astemizole\"\r\n  ],\r\n  \"特非那定\": [\r\n    \"terfenadine\"\r\n  ],\r\n  \"卡马西平\": [\r\n    \"carbamazepine\"\r\n  ],\r\n  \"苯妥英钠\": [\r\n    \"phenytoin sodium\"\r\n  ],\r\n  \"丙戊酸钠\": [\r\n    \"sodium valproate\"\r\n  ],\r\n  \"苯巴比妥\": [\r\n    \"phenobarbital\"\r\n  ],\r\n  \"拉莫三嗪\": [\r\n    \"lamotrigine\"\r\n  ],\r\n  \"左乙拉西坦\": [\r\n    \"levetiracetam\"\r\n  ],\r\n  \"奥卡西平\": [\r\n    \"oxcarbazepine\"\r\n  ],\r\n  \"托吡酯\": [\r\n    \"topiramate\"\r\n  ],\r\n  \"加巴喷丁\": [\r\n    \"gabapentin\"\r\n  ],\r\n  \"普瑞巴林\": [\r\n    \"pregabalin\"\r\n  ],\r\n  \"乙琥胺\": [\r\n    \"ethosuximide\"\r\n  ],\r\n  \"氯硝西泮\": [\r\n    \"clonazepam\"\r\n  ],\r\n  \"地西泮\": [\r\n    \"diazepam\"\r\n  ],\r\n  \"硝西泮\": [\r\n    \"nitrazepam\"\r\n  ],\r\n  \"艾司唑仑\": [\r\n    \"estazolam\"\r\n  ],\r\n  \"阿普唑仑\": [\r\n    \"alprazolam\"\r\n  ],\r\n  \"劳拉西泮\": [\r\n    \"lorazepam\"\r\n  ],\r\n  \"咪达唑仑\": [\r\n    \"midazolam\"\r\n  ],\r\n  \"唑吡坦\": [\r\n    \"zolpidem\"\r\n  ],\r\n  \"佐匹克隆\": [\r\n    \"zopiclone\"\r\n  ],\r\n  \"扎来普隆\": [\r\n    \"zaleplon\"\r\n  ],\r\n  \"水合氯醛\": [\r\n    \"chloral hydrate\"\r\n  ],\r\n  \"丁螺环酮\": [\r\n    \"buspirone\"\r\n  ],\r\n  \"坦度螺酮\": [\r\n    \"tandospirone\"\r\n  ],\r\n  \"氟西汀\": [\r\n    \"fluoxetine\"\r\n  ],\r\n  \"帕罗西汀\": [\r\n    \"paroxetine\"\r\n  ],\r\n  \"舍曲林\": [\r\n    \"sertraline\"\r\n  ],\r\n  \"氟伏沙明\": [\r\n    \"fluvoxamine\"\r\n  ],\r\n  \"西酞普兰\": [\r\n    \"citalopram\"\r\n  ],\r\n  \"艾司西酞普兰\": [\r\n    \"escitalopram\"\r\n  ],\r\n  \"文拉法辛\": [\r\n    \"venlafaxine\"\r\n  ],\r\n  \"度洛西汀\": [\r\n    \"duloxetine\"\r\n  ],\r\n  \"米那普仑\": [\r\n    \"milnacipran\"\r\n  ],\r\n  \"米氮平\": [\r\n    \"mirtazapine\"\r\n  ],\r\n  \"阿戈美拉汀\": [\r\n    \"agomelatine\"\r\n  ],\r\n  \"安非他酮\": [\r\n    \"bupropion\"\r\n  ],\r\n  \"瑞波西汀\": [\r\n    \"reboxetine\"\r\n  ],\r\n  \"曲唑酮\": [\r\n    \"trazodone\"\r\n  ],\r\n  \"奈法唑酮\": [\r\n    \"nefazodone\"\r\n  ],\r\n  \"吗氯贝胺\": [\r\n    \"moclobemide\"\r\n  ],\r\n  \"苯乙肼\": [\r\n    \"phenelzine\"\r\n  ],\r\n  \"反苯环丙胺\": [\r\n    \"tranylcypromine\"\r\n  ],\r\n  \"碳酸锂\": [\r\n    \"lithium carbonate\"\r\n  ],\r\n  \"奥氮平\": [\r\n    \"olanzapine\"\r\n  ],\r\n  \"喹硫平\": [\r\n    \"quetiapine\"\r\n  ],\r\n  \"利培酮\": [\r\n    \"risperidone\"\r\n  ],\r\n  \"帕利哌酮\": [\r\n    \"paliperidone\"\r\n  ],\r\n  \"齐拉西酮\": [\r\n    \"ziprasidone\"\r\n  ],\r\n  \"阿立哌唑\": [\r\n    \"aripiprazole\"\r\n  ],\r\n  \"鲁拉西酮\": [\r\n    \"lurasidone\"\r\n  ],\r\n  \"布南色尔\": [\r\n    \"blonanserin\"\r\n  ],\r\n  \"氨磺必利\": [\r\n    \"amisulpride\"\r\n  ],\r\n  \"氯氮平\": [\r\n    \"clozapine\"\r\n  ],\r\n  \"氟哌啶醇\": [\r\n    \"haloperidol\"\r\n  ],\r\n  \"奋乃静\": [\r\n    \"perphenazine\"\r\n  ],\r\n  \"氟奋乃静\": [\r\n    \"fluphenazine\"\r\n  ],\r\n  \"三氟拉嗪\": [\r\n    \"trifluoperazine\"\r\n  ],\r\n  \"硫必利\": [\r\n    \"tiapride\"\r\n  ],\r\n  \"舒必利\": [\r\n    \"sulpiride\"\r\n  ],\r\n  \"左舒必利\": [\r\n    \"levosulpiride\"\r\n  ],\r\n  \"扑米酮\": [\r\n    \"primidone\"\r\n  ],\r\n  \"拉考沙胺\": [\r\n    \"lacosamide\"\r\n  ],\r\n  \"吡仑帕奈\": [\r\n    \"perampanel\"\r\n  ],\r\n  \"司替戊醇\": [\r\n    \"stiripentol\"\r\n  ],\r\n  \"卡立普多\": [\r\n    \"carisoprodol\"\r\n  ],\r\n  \"巴氯芬\": [\r\n    \"baclofen\"\r\n  ],\r\n  \"替扎尼定\": [\r\n    \"tizanidine\"\r\n  ],\r\n  \"丹曲林\": [\r\n    \"dantrolene\"\r\n  ],\r\n  \"乙哌立松\": [\r\n    \"eperisone\"\r\n  ],\r\n  \"苯海索\": [\r\n    \"trihexyphenidyl\"\r\n  ],\r\n  \"丙环定\": [\r\n    \"procyclidine\"\r\n  ],\r\n  \"左旋多巴\": [\r\n    \"levodopa\"\r\n  ],\r\n  \"卡比多巴\": [\r\n    \"carbidopa\"\r\n  ],\r\n  \"恩他卡朋\": [\r\n    \"entacapone\"\r\n  ],\r\n  \"托卡朋\": [\r\n    \"tolcapone\"\r\n  ],\r\n  \"司来吉兰\": [\r\n    \"selegiline\"\r\n  ],\r\n  \"雷沙吉兰\": [\r\n    \"rasagiline\"\r\n  ],\r\n  \"金刚烷胺\": [\r\n    \"amantadine\"\r\n  ],\r\n  \"普拉克索\": [\r\n    \"pramipexole\"\r\n  ],\r\n  \"罗匹尼罗\": [\r\n    \"ropinirole\"\r\n  ],\r\n  \"罗替高汀\": [\r\n    \"rotigotine\"\r\n  ],\r\n  \"培高利特\": [\r\n    \"pergolide\"\r\n  ],\r\n  \"阿扑吗啡\": [\r\n    \"apomorphine\"\r\n  ],\r\n  \"多奈哌齐\": [\r\n    \"donepezil\"\r\n  ],\r\n  \"卡巴拉汀\": [\r\n    \"rivastigmine\"\r\n  ],\r\n  \"加兰他敏\": [\r\n    \"galantamine\"\r\n  ],\r\n  \"美金刚\": [\r\n    \"memantine\"\r\n  ],\r\n  \"尼麦角林\": [\r\n    \"nicergoline\"\r\n  ],\r\n  \"倍他司汀\": [\r\n    \"betahistine\"\r\n  ],\r\n  \"氟桂利嗪\": [\r\n    \"flunarizine\"\r\n  ],\r\n  \"桂利嗪\": [\r\n    \"cinnarizine\"\r\n  ],\r\n  \"罂粟碱\": [\r\n    \"papaverine\"\r\n  ],\r\n  \"川芎嗪\": [\r\n    \"ligustrazine\"\r\n  ],\r\n  \"丁苯酞\": [\r\n    \"dl-3-n-butylphthalide\"\r\n  ],\r\n  \"依达拉奉\": [\r\n    \"edaravone\"\r\n  ],\r\n  \"脑苷肌苷\": [\r\n    \"cattle encephaloglycan\"\r\n  ],\r\n  \"鼠神经生长因子\": [\r\n    \"mouse nerve growth factor\"\r\n  ],\r\n  \"奥拉西坦\": [\r\n    \"oxiracetam\"\r\n  ],\r\n  \"吡拉西坦\": [\r\n    \"piracetam\"\r\n  ],\r\n  \"胞磷胆碱\": [\r\n    \"citicoline\"\r\n  ],\r\n  \"神经节苷脂\": [\r\n    \"ganglioside\"\r\n  ],\r\n  \"艾地苯醌\": [\r\n    \"idebenone\"\r\n  ],\r\n  \"维生素B1\": [\r\n    \"vitamin b1\",\r\n    \"thiamine\"\r\n  ],\r\n  \"维生素B2\": [\r\n    \"vitamin b2\",\r\n    \"riboflavin\"\r\n  ],\r\n  \"维生素B6\": [\r\n    \"vitamin b6\",\r\n    \"pyridoxine\"\r\n  ],\r\n  \"维生素B12\": [\r\n    \"vitamin b12\",\r\n    \"cyanocobalamin\"\r\n  ],\r\n  \"维生素C\": [\r\n    \"vitamin c\",\r\n    \"ascorbic acid\"\r\n  ],\r\n  \"维生素D\": [\r\n    \"vitamin d\",\r\n    \"cholecalciferol\"\r\n  ],\r\n  \"维生素E\": [\r\n    \"vitamin e\",\r\n    \"tocopherol\"\r\n  ],\r\n  \"维生素K1\": [\r\n    \"vitamin k1\",\r\n    \"phytomenadione\"\r\n  ],\r\n  \"叶酸\": [\r\n    \"folic acid\"\r\n  ],\r\n  \"烟酸\": [\r\n    \"niacin\",\r\n    \"nicotinic acid\"\r\n  ],\r\n  \"烟酰胺\": [\r\n    \"niacinamide\"\r\n  ],\r\n  \"复合维生素B\": [\r\n    \"vitamin b complex\"\r\n  ],\r\n  \"葡萄糖酸锌\": [\r\n    \"zinc gluconate\"\r\n  ],\r\n  \"硫酸亚铁\": [\r\n    \"ferrous sulfate\"\r\n  ],\r\n  \"富马酸亚铁\": [\r\n    \"ferrous fumarate\"\r\n  ],\r\n  \"琥珀酸亚铁\": [\r\n    \"ferrous succinate\"\r\n  ],\r\n  \"多糖铁复合物\": [\r\n    \"polysaccharide iron complex\"\r\n  ],\r\n  \"右旋糖酐铁\": [\r\n    \"iron dextran\"\r\n  ],\r\n  \"蔗糖铁\": [\r\n    \"iron sucrose\"\r\n  ],\r\n  \"重组人促红素\": [\r\n    \"erythropoietin\"\r\n  ],\r\n  \"聚乙二醇化重组人粒细胞集落刺激因子\": [\r\n    \"pegfilgrastim\"\r\n  ],\r\n  \"重组人粒细胞集落刺激因子\": [\r\n    \"filgrastim\"\r\n  ],\r\n  \"粒细胞-巨噬细胞集落刺激因子\": [\r\n    \"sargramostim\"\r\n  ],\r\n  \"白介素-2\": [\r\n    \"interleukin-2\"\r\n  ],\r\n  \"白介素-11\": [\r\n    \"interleukin-11\"\r\n  ],\r\n  \"干扰素\": [\r\n    \"interferon\"\r\n  ],\r\n  \"聚乙二醇干扰素\": [\r\n    \"peginterferon\"\r\n  ],\r\n  \"利巴韦林\": [\r\n    \"ribavirin\"\r\n  ],\r\n  \"阿昔洛韦\": [\r\n    \"acyclovir\"\r\n  ],\r\n  \"更昔洛韦\": [\r\n    \"ganciclovir\"\r\n  ],\r\n  \"伐昔洛韦\": [\r\n    \"valacyclovir\"\r\n  ],\r\n  \"泛昔洛韦\": [\r\n    \"famciclovir\"\r\n  ],\r\n  \"膦甲酸钠\": [\r\n    \"foscarnet sodium\"\r\n  ],\r\n  \"奥司他韦\": [\r\n    \"oseltamivir\"\r\n  ],\r\n  \"扎那米韦\": [\r\n    \"zanamivir\"\r\n  ],\r\n  \"帕拉米韦\": [\r\n    \"peramivir\"\r\n  ],\r\n  \"法匹拉韦\": [\r\n    \"favipiravir\"\r\n  ],\r\n  \"瑞德西韦\": [\r\n    \"remdesivir\"\r\n  ],\r\n  \"莫诺拉韦\": [\r\n    \"molnupiravir\"\r\n  ],\r\n  \"奈玛特韦\": [\r\n    \"nirmatrelvir\"\r\n  ],\r\n  \"利托那韦\": [\r\n    \"ritonavir\"\r\n  ],\r\n  \"洛匹那韦\": [\r\n    \"lopinavir\"\r\n  ],\r\n  \"达芦那韦\": [\r\n    \"darunavir\"\r\n  ],\r\n  \"阿扎那韦\": [\r\n    \"atazanavir\"\r\n  ],\r\n  \"拉替拉韦\": [\r\n    \"raltegravir\"\r\n  ],\r\n  \"多替拉韦\": [\r\n    \"dolutegravir\"\r\n  ],\r\n  \"艾维雷韦\": [\r\n    \"elvitegravir\"\r\n  ],\r\n  \"比克替拉韦\": [\r\n    \"bictegravir\"\r\n  ],\r\n  \"恩曲他滨\": [\r\n    \"emtricitabine\"\r\n  ],\r\n  \"替诺福韦\": [\r\n    \"tenofovir\"\r\n  ],\r\n  \"恩替卡韦\": [\r\n    \"entecavir\"\r\n  ],\r\n  \"拉米夫定\": [\r\n    \"lamivudine\"\r\n  ],\r\n  \"阿德福韦\": [\r\n    \"adefovir\"\r\n  ],\r\n  \"替比夫定\": [\r\n    \"telbivudine\"\r\n  ],\r\n  \"索磷布韦\": [\r\n    \"sofosbuvir\"\r\n  ],\r\n  \"维帕他韦\": [\r\n    \"velpatasvir\"\r\n  ],\r\n  \"格卡瑞韦\": [\r\n    \"grazoprevir\"\r\n  ],\r\n  \"哌仑他韦\": [\r\n    \"pibrentasvir\"\r\n  ],\r\n  \"伏西瑞韦\": [\r\n    \"voxilaprevir\"\r\n  ],\r\n  \"艾尔巴韦\": [\r\n    \"elbasvir\"\r\n  ],\r\n  \"达拉他韦\": [\r\n    \"daclatasvir\"\r\n  ],\r\n  \"阿舒瑞韦\": [\r\n    \"asunaprevir\"\r\n  ],\r\n  \"达塞布韦\": [\r\n    \"dasabuvir\"\r\n  ],\r\n  \"波普瑞韦\": [\r\n    \"boceprevir\"\r\n  ],\r\n  \"特拉匹拉韦\": [\r\n    \"telaprevir\"\r\n  ],\r\n  \"西咪匹韦\": [\r\n    \"simeprevir\"\r\n  ],\r\n  \"帕利瑞韦\": [\r\n    \"paritaprevir\"\r\n  ],\r\n  \"奥比他韦\": [\r\n    \"ombitasvir\"\r\n  ],\r\n  \"异烟肼\": [\r\n    \"isoniazid\"\r\n  ],\r\n  \"利福平\": [\r\n    \"rifampicin\"\r\n  ],\r\n  \"吡嗪酰胺\": [\r\n    \"pyrazinamide\"\r\n  ],\r\n  \"乙胺丁醇\": [\r\n    \"ethambutol\"\r\n  ],\r\n  \"链霉素\": [\r\n    \"streptomycin\"\r\n  ],\r\n  \"对氨基水杨酸\": [\r\n    \"para-aminosalicylic acid\"\r\n  ],\r\n  \"利福布汀\": [\r\n    \"rifabutin\"\r\n  ],\r\n  \"利福喷丁\": [\r\n    \"rifapentine\"\r\n  ],\r\n  \"贝达喹啉\": [\r\n    \"bedaquiline\"\r\n  ],\r\n  \"德拉马尼\": [\r\n    \"delamanid\"\r\n  ],\r\n  \"氯法齐明\": [\r\n    \"clofazimine\"\r\n  ],\r\n  \"环丝氨酸\": [\r\n    \"cycloserine\"\r\n  ],\r\n  \"丙硫异烟胺\": [\r\n    \"protionamide\"\r\n  ],\r\n  \"氨硫脲\": [\r\n    \"thioacetazone\"\r\n  ],\r\n  \"卷曲霉素\": [\r\n    \"capreomycin\"\r\n  ],\r\n  \"卡那霉素\": [\r\n    \"kanamycin\"\r\n  ],\r\n  \"阿米卡星\": [\r\n    \"amikacin\"\r\n  ],\r\n  \"加替沙星\": [\r\n    \"gatifloxacin\"\r\n  ],\r\n  \"环丙沙星\": [\r\n    \"ciprofloxacin\"\r\n  ],\r\n  \"氧氟沙星\": [\r\n    \"ofloxacin\"\r\n  ],\r\n  \"诺氟沙星\": [\r\n    \"norfloxacin\"\r\n  ],\r\n  \"依诺沙星\": [\r\n    \"enoxacin\"\r\n  ],\r\n  \"洛美沙星\": [\r\n    \"lomefloxacin\"\r\n  ],\r\n  \"司帕沙星\": [\r\n    \"sparfloxacin\"\r\n  ],\r\n  \"培氟沙星\": [\r\n    \"pefloxacin\"\r\n  ],\r\n  \"妥舒沙星\": [\r\n    \"tosufloxacin\"\r\n  ],\r\n  \"芦氟沙星\": [\r\n    \"rufloxacin\"\r\n  ],\r\n  \"克林霉素\": [\r\n    \"clindamycin\"\r\n  ],\r\n  \"林可霉素\": [\r\n    \"lincomycin\"\r\n  ],\r\n  \"磷霉素\": [\r\n    \"fosfomycin\"\r\n  ],\r\n  \"夫西地酸\": [\r\n    \"fusidic acid\"\r\n  ],\r\n  \"利奈唑胺\": [\r\n    \"linezolid\"\r\n  ],\r\n  \"替加环素\": [\r\n    \"tigecycline\"\r\n  ],\r\n  \"替考拉宁\": [\r\n    \"teicoplanin\"\r\n  ],\r\n  \"万古霉素\": [\r\n    \"vancomycin\"\r\n  ],\r\n  \"去甲万古霉素\": [\r\n    \"norvancomycin\"\r\n  ],\r\n  \"达托霉素\": [\r\n    \"daptomycin\"\r\n  ],\r\n  \"特拉万星\": [\r\n    \"telavancin\"\r\n  ],\r\n  \"头孢洛林\": [\r\n    \"ceftaroline\"\r\n  ],\r\n  \"头孢他啶\": [\r\n    \"ceftazidime\"\r\n  ],\r\n  \"头孢哌酮\": [\r\n    \"cefoperazone\"\r\n  ],\r\n  \"头孢吡肟\": [\r\n    \"cefepime\"\r\n  ],\r\n  \"头孢噻肟\": [\r\n    \"cefotaxime\"\r\n  ],\r\n  \"头孢唑林\": [\r\n    \"cefazolin\"\r\n  ],\r\n  \"头孢拉定\": [\r\n    \"cefradine\"\r\n  ],\r\n  \"头孢克洛\": [\r\n    \"cefaclor\"\r\n  ],\r\n  \"头孢丙烯\": [\r\n    \"cefprozil\"\r\n  ],\r\n  \"头孢地尼\": [\r\n    \"cefdinir\"\r\n  ],\r\n  \"头孢克肟\": [\r\n    \"cefixime\"\r\n  ],\r\n  \"头孢布烯\": [\r\n    \"ceftibuten\"\r\n  ],\r\n  \"头孢泊肟酯\": [\r\n    \"cefpodoxime proxetil\"\r\n  ],\r\n  \"亚胺培南\": [\r\n    \"imipenem\"\r\n  ],\r\n  \"美罗培南\": [\r\n    \"meropenem\"\r\n  ],\r\n  \"厄他培南\": [\r\n    \"ertapenem\"\r\n  ],\r\n  \"比阿培南\": [\r\n    \"biapenem\"\r\n  ],\r\n  \"帕尼培南\": [\r\n    \"panipenem\"\r\n  ],\r\n  \"氨曲南\": [\r\n    \"aztreonam\"\r\n  ],\r\n  \"克拉维酸\": [\r\n    \"clavulanic acid\"\r\n  ],\r\n  \"舒巴坦\": [\r\n    \"sulbactam\"\r\n  ],\r\n  \"他唑巴坦\": [\r\n    \"tazobactam\"\r\n  ],\r\n  \"阿维巴坦\": [\r\n    \"avibactam\"\r\n  ],\r\n  \"瑞来巴坦\": [\r\n    \"relebactam\"\r\n  ],\r\n  \"法硼巴坦\": [\r\n    \"vaborbactam\"\r\n  ],\r\n  \"多尼培南\": [\r\n    \"doripenem\"\r\n  ],\r\n  \"头孢他啶阿维巴坦\": [\r\n    \"ceftazidime-avibactam\"\r\n  ],\r\n  \"美罗培南法硼巴坦\": [\r\n    \"meropenem-vaborbactam\"\r\n  ],\r\n  \"亚胺培南西司他丁\": [\r\n    \"imipenem-cilastatin\"\r\n  ],\r\n  \"头孢哌酮舒巴坦\": [\r\n    \"cefoperazone-sulbactam\"\r\n  ],\r\n  \"哌拉西林他唑巴坦\": [\r\n    \"piperacillin-tazobactam\"\r\n  ],\r\n  \"阿莫西林克拉维酸\": [\r\n    \"amoxicillin-clavulanate\"\r\n  ],\r\n  \"氟康唑\": [\r\n    \"fluconazole\"\r\n  ],\r\n  \"伊曲康唑\": [\r\n    \"itraconazole\"\r\n  ],\r\n  \"伏立康唑\": [\r\n    \"voriconazole\"\r\n  ],\r\n  \"泊沙康唑\": [\r\n    \"posaconazole\"\r\n  ],\r\n  \"卡泊芬净\": [\r\n    \"caspofungin\"\r\n  ],\r\n  \"米卡芬净\": [\r\n    \"micafungin\"\r\n  ],\r\n  \"阿尼芬净\": [\r\n    \"anidulafungin\"\r\n  ],\r\n  \"两性霉素B\": [\r\n    \"amphotericin b\"\r\n  ],\r\n  \"氟胞嘧啶\": [\r\n    \"flucytosine\"\r\n  ],\r\n  \"特比萘芬\": [\r\n    \"terbinafine\"\r\n  ],\r\n  \"酮康唑\": [\r\n    \"ketoconazole\"\r\n  ],\r\n  \"咪康唑\": [\r\n    \"miconazole\"\r\n  ],\r\n  \"克霉唑\": [\r\n    \"clotrimazole\"\r\n  ],\r\n  \"益康唑\": [\r\n    \"econazole\"\r\n  ],\r\n  \"制霉菌素\": [\r\n    \"nystatin\"\r\n  ],\r\n  \"环吡酮胺\": [\r\n    \"ciclopirox olamine\"\r\n  ],\r\n  \"阿莫罗芬\": [\r\n    \"amorolfine\"\r\n  ],\r\n  \"艾沙康唑\": [\r\n    \"isavuconazole\"\r\n  ],\r\n  \"奥希替尼\": [\r\n    \"osimertinib\"\r\n  ],\r\n  \"吉非替尼\": [\r\n    \"gefitinib\"\r\n  ],\r\n  \"厄洛替尼\": [\r\n    \"erlotinib\"\r\n  ],\r\n  \"阿法替尼\": [\r\n    \"afatinib\"\r\n  ],\r\n  \"克唑替尼\": [\r\n    \"crizotinib\"\r\n  ],\r\n  \"伊马替尼\": [\r\n    \"imatinib\"\r\n  ],\r\n  \"索拉非尼\": [\r\n    \"sorafenib\"\r\n  ],\r\n  \"帕博利珠单抗\": [\r\n    \"pembrolizumab\"\r\n  ],\r\n  \"纳武利尤单抗\": [\r\n    \"nivolumab\"\r\n  ],\r\n  \"信迪利单抗\": [\r\n    \"sintilimab\"\r\n  ],\r\n  \"卡瑞利珠单抗\": [\r\n    \"camrelizumab\"\r\n  ],\r\n  \"曲妥珠单抗\": [\r\n    \"trastuzumab\"\r\n  ],\r\n  \"贝伐珠单抗\": [\r\n    \"bevacizumab\"\r\n  ],\r\n  \"利妥昔单抗\": [\r\n    \"rituximab\"\r\n  ],\r\n  \"佐妥昔单抗\": [\r\n    \"zolbetuximab\"\r\n  ]\r\n}\n\nFile v1.0.1:references/errors.md\n\n# Error Catalogue · ct-literature\r\n\r\n| Error | Cause | Fix |\r\n|---|---|---|\r\n| `urllib.error.URLError` / timeout (after retries) | No network / proxy / outage | Auto-retried with exponential backoff (4 attempts, honors `Retry-After`); if still failing, confirm api.openalex.org reachable; configure proxy |\r\n| Semantic Scholar HTTP 429 | No-key rate limit | Expected — source is skipped; rely on OpenAlex + Europe PMC |\r\n| OpenAlex HTTP 401 / persistent 429 | Invalid key / daily quota exhausted | Re-copy key from settings/api; confirm `.env` loaded (see references/openalex_key.md) |\r\n| Empty results | Topic too narrow / wrong spelling | Broaden topic; drop `--review-type` / year filter |\r\n| DOI dedupe merged too aggressively | Two papers share a DOI typo | Rare; inspect `merged.json` and re-run a single source if needed |\n\nFile v1.0.1:references/guidelines/guidelines_index.json\n\n{\r\n  \"schema_version\": 1,\r\n  \"built_at\": \"2026-08-16T14:08:01\",\r\n  \"built_by\": \"build_guidelines.py\",\r\n  \"corpus_dir\": \"references\\\\guidelines\",\r\n  \"total_sources\": 13,\r\n  \"api_sources\": 7,\r\n  \"portal_sources\": 6,\r\n  \"entries\": [\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Clinical practice guidelines and consensus statements integrating periodontal disease into cardiology, diabetes care and dementia: A scoping review and gap analysis.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/41578910\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Periodontal disease (PD) is a prevalent chronic inflammatory condition linked to cardiovascular disease, diabetes mellitus and dementia, yet it is unclear how far medical specialty guidelines translate this evidence into concrete recommendations for assessment, referral and shared care.<h4>Objective</h4>To map clinical practice guidelines, consensus statements and position paper\",\r\n      \"update_date\": \"2026-05-01\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"41578910\",\r\n        \"pmcid\": \"PMC13135285\",\r\n        \"doi\": \"10.4317/medoral.27981\",\r\n        \"publication\": \"Medicina oral, patologia oral y cirugia bucal\"\r\n      },\r\n      \"id\": \"EuropePMC:10_4317_medoral_27981\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-01\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Guideline on treatment intensification with injectable therapies beyond GLP-1 RA based therapies in type 2 diabetes.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42543082\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"Guideline on Treatment Intensification with Injectable Therapies Beyond GLP-1 RA Monotherapy in Type 2 Diabetes.<h4>Aims</h4>To provide evidence-based recommendations for selecting injectable therapies in adults with type 2 diabetes (T2DM) who have suboptimal response to GLP‑1 receptor agonists (GLP‑1 RAs).<h4>Methods</h4>Using the GRADE framework, a systematic search (updated November 2025) ident\",\r\n      \"update_date\": \"2026-08-02\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42543082\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1016/j.diabres.2026.113474\",\r\n        \"publication\": \"Diabetes research and clinical practice\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1016_j_diabres_2026_113474\",\r\n      \"version\": null,\r\n      \"date\": \"2026-08-02\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Bridging gaps in diabetic neuropathy care: A Delphi-based regional consensus from the Gulf Cooperation Council.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42557853\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Aims/introduction</h4>Diabetic peripheral neuropathy (DPN) is a common complication of diabetes in the Gulf Cooperation Council (GCC) region, associated with delayed diagnosis, significant pain burden, and preventable complications. This Delphi-based consensus aimed to identify regional gaps in screening and management to develop practical, evidence-based recommendations tailored to GCC health\",\r\n      \"update_date\": \"2026-08-05\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42557853\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1111/jdi.70411\",\r\n        \"publication\": \"Journal of diabetes investigation\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1111_jdi_70411\",\r\n      \"version\": null,\r\n      \"date\": \"2026-08-05\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"A Survey of German Dentists on the Prophylactic Use of Antibacterial Drugs in Patients in Risk Groups: Diabetes, Joint Replacement, Risk of Endocarditis, and Immunosuppression or Organ Transplantation.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42325694\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Introduction</h4>Antibacterial drugs (ABDs) prescribed by dentists account for a significant proportion of all prescriptions for such drugs in Germany. The number of prescriptions is by no means uncontroversial, as guidelines are often lacking and antibacterial stewardship (antibiotic stewardship) calls for greater caution in the use of ABD. A survey was therefore conducted to answer the quest\",\r\n      \"update_date\": \"2026-06-19\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42325694\",\r\n        \"pmcid\": \"PMC13280459\",\r\n        \"doi\": \"10.1155/ijod/8452465\",\r\n        \"publication\": \"International journal of dentistry\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1155_ijod_8452465\",\r\n      \"version\": null,\r\n      \"date\": \"2026-06-19\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Bridging Mouth and Metal: Dental Hygiene and the Risk of Periprosthetic Joint Infection.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42358612\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"Periprosthetic joint infection (PJI) is one of the most serious complications of total joint arthroplasty (TJA), carrying both severe functional consequences and substantial economic costs. PJIs most commonly result from microbial contamination at the time of surgery or during the early postoperative period, while haematogenous seeding from distant infection sources accounts for a smaller proporti\",\r\n      \"update_date\": \"2026-06-22\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42358612\",\r\n        \"pmcid\": \"PMC13293608\",\r\n        \"doi\": \"10.52965/001c.163041\",\r\n        \"publication\": \"Orthopedic reviews\"\r\n      },\r\n      \"id\": \"EuropePMC:10_52965_001c_163041\",\r\n      \"version\": null,\r\n      \"date\": \"2026-06-22\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Guidelines for Verification of Gastric Tube Location in Adult Hospitalised Patients: A Systematic Review.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/41913447\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Verification of correct gastric tube placement is a major patient safety issue. Guidelines recommend different procedures.<h4>Aim</h4>To evaluate international guidelines for verifying correct gastric tube placement in adult hospitalised patients, identifying recommended practices and methodological quality.<h4>Study design</h4>Systematic review with searches conducted in Medlin\",\r\n      \"update_date\": \"2026-05-01\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"41913447\",\r\n        \"pmcid\": \"PMC13036308\",\r\n        \"doi\": \"10.1111/nicc.70466\",\r\n        \"publication\": \"Nursing in critical care\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1111_nicc_70466\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-01\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"From guidelines to practice: general practitioners' consensus on indicators for managing selected multimorbidity in primary care in Western Australia.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42485647\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Multimorbidity is rising in primary care, yet adherence to guidelines is hindered by fragmented, disease-specific recommendations. This study sought to establish consensus among general practitioners (GPs) on indicators of adherence to Australian guidelines in managing five common chronic conditions [type 2 diabetes mellitus (T2DM), obesity, hypertension, cardiovascular disease,\",\r\n      \"update_date\": \"2026-06-01\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42485647\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1093/fampra/cmag055\",\r\n        \"publication\": \"Family practice\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1093_fampra_cmag055\",\r\n      \"version\": null,\r\n      \"date\": \"2026-06-01\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"The 2024 Endocrine Society Guideline on Vitamin D: Comprehensive Summary and Critical Appraisal.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42124073\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background/objectives</h4>An Endocrine Society Clinical Practice Guideline on vitamin D was published in 2024. Its main objective was the use of vitamin D to lower the risk of disease in individuals without established indications for vitamin D treatment or 25-hydroxavitamin D (25(OH)D) testing. The methodology followed the Grading of Recommendations, Assessment, Development, and Evaluation (G\",\r\n      \"update_date\": \"2026-05-05\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42124073\",\r\n        \"pmcid\": \"PMC13164739\",\r\n        \"doi\": \"10.3390/nu18091472\",\r\n        \"publication\": \"Nutrients\"\r\n      },\r\n      \"id\": \"EuropePMC:10_3390_nu18091472\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-05\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"[Management of Antidiabetic Therapy in Patients Undergoing [18F]FDG PET].\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42184428\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"Positron emission tomography (PET) with fluorodeoxyglucose {[18F]FDG} is a technique used to identify areas of increased glycolytic metabolism, aiding in the diagnosis, staging, and follow-up of neoplastic, infectious, or inflammatory disease. In people with diabetes mellitus (DM), hyperglycemia and hyperinsulinemia alter the radiotracer biodistribution, compromising the diagnostic accuracy of thi\",\r\n      \"update_date\": \"2026-05-25\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"pmid\": \"42184428\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.20344/amp.24274\",\r\n        \"publication\": \"Acta medica portuguesa\"\r\n      },\r\n      \"id\": \"EuropePMC:10_20344_amp_24274\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-25\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"KDIGO 2022 Clinical Practice Guideline for Diabetes Management in Chronic Kidney Disease\",\r\n      \"year\": 2022,\r\n      \"url\": \"https://curis.ku.dk/ws/files/345510128/1_s2.0_S0085253822005075_main.pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2022-10-19\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Kidney International\",\r\n        \"doi\": \"https://doi.org/10.1016/j.kint.2022.06.008\",\r\n        \"pdf_url\": \"https://curis.ku.dk/ws/files/345510128/1_s2.0_S0085253822005075_main.pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1016_j_kint_2022_06_008\",\r\n      \"version\": null,\r\n      \"date\": \"2022-10-19\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"KDIGO 2020 Clinical Practice Guideline for Diabetes Management in Chronic Kidney Disease\",\r\n      \"year\": 2020,\r\n      \"url\": \"https://curis.ku.dk/ws/files/259830341/PIIS0085253820307183.pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2020-09-30\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Kidney International\",\r\n        \"doi\": \"https://doi.org/10.1016/j.kint.2020.06.019\",\r\n        \"pdf_url\": \"https://curis.ku.dk/ws/files/259830341/PIIS0085253820307183.pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1016_j_kint_2020_06_019\",\r\n      \"version\": null,\r\n      \"date\": \"2020-09-30\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Japanese Clinical Practice Guideline for Diabetes 2019\",\r\n      \"year\": 2020,\r\n      \"url\": \"https://www.ncbi.nlm.nih.gov/pmc/articles/7378414\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2020-07-01\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Diabetology International\",\r\n        \"doi\": \"https://doi.org/10.1007/s13340-020-00439-5\",\r\n        \"pdf_url\": null\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1007_s13340_020_00439_5\",\r\n      \"version\": null,\r\n      \"date\": \"2020-07-01\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Treatment of Diabetes in Older Adults: An Endocrine Society* Clinical Practice Guideline\",\r\n      \"year\": 2019,\r\n      \"url\": \"https://academic.oup.com/jcem/article-pdf/104/5/1520/33345080/jc.2019-00198.pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"OBJECTIVE: The objective is to formulate clinical practice guidelines for the treatment of diabetes in older adults. CONCLUSIONS: Diabetes, particularly type 2, is becoming more prevalent in the general population, especially in individuals over the age of 65 years. The underlying pathophysiology of the disease in these patients is exacerbated by the direct effects of aging on metabolic regulation\",\r\n      \"update_date\": \"2019-03-23\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"The Journal of Clinical Endocrinology & Metabolism\",\r\n        \"doi\": \"https://doi.org/10.1210/jc.2019-00198\",\r\n        \"pdf_url\": \"https://academic.oup.com/jcem/article-pdf/104/5/1520/33345080/jc.2019-00198.pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1210_jc_2019_00198\",\r\n      \"version\": null,\r\n      \"date\": \"2019-03-23\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Global Guideline for Type 2 Diabetes\",\r\n      \"year\": 2014,\r\n      \"url\": \"http://www.diabetesresearchclinicalpractice.com/article/S0168822712003683/pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2014-02-05\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Diabetes Research and Clinical Practice\",\r\n        \"doi\": \"https://doi.org/10.1016/j.diabres.2012.10.001\",\r\n        \"pdf_url\": \"http://www.diabetesresearchclinicalpractice.com/article/S0168822712003683/pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1016_j_diabres_2012_10_001\",\r\n      \"version\": null,\r\n      \"date\": \"2014-02-05\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Diabetes and Pregnancy: An Endocrine Society Clinical Practice Guideline\",\r\n      \"year\": 2013,\r\n      \"url\": \"https://academic.oup.com/jcem/article-pdf/98/11/4227/20288359/jcem4227.pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"OBJECTIVE: Our objective was to formulate a clinical practice guideline for the management of the pregnant woman with diabetes. PARTICIPANTS: The Task Force was composed of a chair, selected by the Clinical Guidelines Subcommittee of The Endocrine Society, 5 additional experts, a methodologist, and a medical writer. EVIDENCE: This evidence-based guideline was developed using the Grading of Recomme\",\r\n      \"update_date\": \"2013-11-01\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"The Journal of Clinical Endocrinology & Metabolism\",\r\n        \"doi\": \"https://doi.org/10.1210/jc.2013-2465\",\r\n        \"pdf_url\": \"https://academic.oup.com/jcem/article-pdf/98/11/4227/20288359/jcem4227.pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1210_jc_2013_2465\",\r\n      \"version\": null,\r\n      \"date\": \"2013-11-01\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"2014 Evidence-Based Guideline for the Management of High Blood Pressure in Adults\",\r\n      \"year\": 2013,\r\n      \"url\": \"https://doi.org/10.1001/jama.2013.284427\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"Hypertension is the most common condition seen in primary care and leads to myocardial infarction, stroke, renal failure, and death if not detected early and treated appropriately. Patients want to be assured that blood pressure (BP) treatment will reduce their disease burden, while clinicians want guidance on hypertension management using the best scientific evidence. This report takes a rigorous\",\r\n      \"update_date\": \"2013-12-18\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"JAMA\",\r\n        \"doi\": \"https://doi.org/10.1001/jama.2013.284427\",\r\n        \"pdf_url\": null\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1001_jama_2013_284427\",\r\n      \"version\": null,\r\n      \"date\": \"2013-12-18\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"2013 ACCF/AHA Guideline for the Management of Heart Failure\",\r\n      \"year\": 2013,\r\n      \"url\": \"https://www.sciencedirect.com/science/article/pii/S0735109713021141/pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"In an effort to maintain relevance at the point of care for practicing clinicians\",\r\n      \"update_date\": \"2013-06-05\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Journal of the American College of Cardiology\",\r\n        \"doi\": \"https://doi.org/10.1016/j.jacc.2013.05.019\",\r\n        \"pdf_url\": \"https://www.sciencedirect.com/science/article/pii/S0735109713021141/pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1016_j_jacc_2013_05_019\",\r\n      \"version\": null,\r\n      \"date\": \"2013-06-05\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"KDOQI Clinical Practice Guideline for Diabetes and CKD: 2012 Update\",\r\n      \"year\": 2012,\r\n      \"url\": \"https://doi.org/10.1053/j.ajkd.2012.07.005\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2012-10-13\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"American Journal of Kidney Diseases\",\r\n        \"doi\": \"https://doi.org/10.1053/j.ajkd.2012.07.005\",\r\n        \"pdf_url\": null\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1053_j_ajkd_2012_07_005\",\r\n      \"version\": null,\r\n      \"date\": \"2012-10-13\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"NHS Diabetes guideline for the perioperative management of the adult patient with diabetes<sup>*</sup>\",\r\n      \"year\": 2012,\r\n      \"url\": \"https://onlinelibrary.wiley.com/doi/pdfdirect/10.1111/j.1464-5491.2012.03582.x\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"These Joint British Diabetes Societies guidelines, commissioned by NHS Diabetes, for the perioperative management of the adult patient undergoing surgery are available in full in the Supporting Information. This document goes through the seven stages of the patient journey when having surgery. These are: primary care referral; surgical outpatients; preoperative assessment; hospital admission; surg\",\r\n      \"update_date\": \"2012-01-31\",\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"publication\": \"Diabetic Medicine\",\r\n        \"doi\": \"https://doi.org/10.1111/j.1464-5491.2012.03582.x\",\r\n        \"pdf_url\": \"https://onlinelibrary.wiley.com/doi/pdfdirect/10.1111/j.1464-5491.2012.03582.x\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1111_j_1464_5491_2012_03582_x\",\r\n      \"version\": null,\r\n      \"date\": \"2012-01-31\",\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"NCCN\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"NCCN — 在 NCCN 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://www.nccn.org/professionals/physician_gls\",\r\n      \"org_url\": \"https://www.nccn.org/professionals/physician_gls\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"NCCN:diabetes:nccn_在_nccn_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"ADA\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"ADA — 在 ADA 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://diabetesjournals.org/clinicalcare\",\r\n      \"org_url\": \"https://diabetesjournals.org/clinicalcare\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"ADA:diabetes:ada_在_ada_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"AHA\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"AHA — 在 AHA 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://www.ahajournals.org\",\r\n      \"org_url\": \"https://www.ahajournals.org\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"AHA:diabetes:aha_在_aha_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"SIGN\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"SIGN — 在 SIGN 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://www.sign.ac.uk/our-guidelines\",\r\n      \"org_url\": \"https://www.sign.ac.uk/our-guidelines\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"SIGN:diabetes:sign_在_sign_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"CMA\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"CMA — 在 CMA 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://www.cma.org.cn\",\r\n      \"org_url\": \"https://www.cma.org.cn\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"CMA:diabetes:cma_在_cma_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"CPIC\",\r\n      \"access\": \"portal\",\r\n      \"retrieved\": false,\r\n      \"title\": \"CPIC — 在 CPIC 官方门户检索「diabetes」\",\r\n      \"year\": null,\r\n      \"url\": \"https://cpicpgx.org/guidelines\",\r\n      \"org_url\": \"https://cpicpgx.org/guidelines\",\r\n      \"summary\": null,\r\n      \"update_date\": null,\r\n      \"topic\": \"diabetes\",\r\n      \"extra\": {\r\n        \"note\": \"portal-only: no free keyword API; navigate the org portal to retrieve\"\r\n      },\r\n      \"id\": \"CPIC:diabetes:cpic_在_cpic_官方门户检索_diabetes\",\r\n      \"version\": null,\r\n      \"date\": null,\r\n      \"topic_tags\": [\r\n        \"diabetes\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Breast Cancer Follow-Up and Surveillance After Primary Treatment: ASCO Guideline Update.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42462191\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Purpose</h4>To offer clinicians recommendations concerning breast cancer follow-up and surveillance after primary treatment.<h4>Methods</h4>ASCO convened an Expert Panel to develop recommendations based on a systematic review and a formal consensus process.<h4>Results</h4>One randomized controlled trial (RCT) was identified and formed the evidentiary basis for the surveillance mammography guid\",\r\n      \"update_date\": \"2026-07-16\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42462191\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1200/jco-26-01700\",\r\n        \"publication\": \"Journal of clinical oncology : official journal of the American Society of Clinical Oncology\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1200_jco_26_01700\",\r\n      \"version\": null,\r\n      \"date\": \"2026-07-16\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Clinical practice guidelines for prognosis and follow-up of early-stage breast cancer patients: Chinese Society of Breast Surgery (CSBrS) practice guidelines (2026 edition) Chinese Society of Breast Surgery, Chinese Society of Surgery, Chinese Medical Association.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42170568\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Long-term survival in early-stage breast cancer patients has markedly improved, making follow-up an increasingly prolonged phase of care. Accurate prognosis assessment and a scientifically grounded follow-up plan are essential for achieving effective and individualized chronic disease management. This guideline aims to standardize these practices in China.<h4>Methods</h4>The Chi\",\r\n      \"update_date\": \"2026-04-27\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42170568\",\r\n        \"pmcid\": \"PMC13187551\",\r\n        \"doi\": \"10.21037/tbcr-2025-1-64\",\r\n        \"publication\": \"Translational breast cancer research : a journal focusing on translational research in breast cancer\"\r\n      },\r\n      \"id\": \"EuropePMC:10_21037_tbcr_2025_1_64\",\r\n      \"version\": null,\r\n      \"date\": \"2026-04-27\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Nutrition Recommendations for People Living After Cancer: A Systematic Review and Critical Appraisal of Clinical Practice Guidelines.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42196976\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<b>Background/Objectives</b>: Clinical practice guidelines are essential tools for ensuring evidence-based, standardised care for people living after cancer; however, the quality of international clinical practice guidelines with nutrition recommendations for this population has not been assessed. This systematic review aimed to critically appraise the quality of international clinical practice gu\",\r\n      \"update_date\": \"2026-05-09\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42196976\",\r\n        \"pmcid\": \"PMC13210353\",\r\n        \"doi\": \"10.3390/nu18101516\",\r\n        \"publication\": \"Nutrients\"\r\n      },\r\n      \"id\": \"EuropePMC:10_3390_nu18101516\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-09\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Guidance on physical activity from cancer survivorship to pregnancy: a scoping review.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42293667\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Improvements in cancer survival have resulted in a growing number of women of reproductive age who plan pregnancy or become pregnant after cancer. Physical activity is widely recommended during pregnancy and across the cancer survivorship continuum; however, there is currently no existing guidance adequately addressing women who fall at the intersection of these contexts. This s\",\r\n      \"update_date\": \"2026-05-29\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42293667\",\r\n        \"pmcid\": \"PMC13262188\",\r\n        \"doi\": \"10.3389/fpubh.2026.1801672\",\r\n        \"publication\": \"Frontiers in public health\"\r\n      },\r\n      \"id\": \"EuropePMC:10_3389_fpubh_2026_1801672\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-29\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Association of the European Society for Medical Oncology Magnitude of Clinical Benefit Scale (ESMO-MCBS) Scores with Guideline Recommendations in Breast Cancer.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42041746\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Objectives</h4>To evaluate the association between European Society for Medical Oncology Magnitude of Clinical Benefit Scale (ESMO-MCBS) scores and treatment recommendations from European Society for Medical Oncology, National Comprehensive Cancer Network (NCCN), and American Society of Clinical Oncology (ASCO) in curative and metastatic breast cancer (BC), and to assess inter-guideline concor\",\r\n      \"update_date\": \"2026-04-17\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42041746\",\r\n        \"pmcid\": \"PMC13114725\",\r\n        \"doi\": \"10.3390/curroncol33040227\",\r\n        \"publication\": \"Current oncology (Toronto, Ont.)\"\r\n      },\r\n      \"id\": \"EuropePMC:10_3390_curroncol33040227\",\r\n      \"version\": null,\r\n      \"date\": \"2026-04-17\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Cardiovascular care in adult cancer survivorship post-therapy: a cross-sectional analysis of clinical practice guidelines.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42057201\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background/objective</h4>Cardiovascular disease (CVD) is a major and potentially life-threatening late effect in cancer survivors, in some populations surpassing the risk of cancer recurrence as a leading cause of mortality. The aim of this study was to compare and critically appraise existing guidelines on CVD in cancer survivorship and to synthesize evidence-informed recommendations for the\",\r\n      \"update_date\": \"2026-04-29\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42057201\",\r\n        \"pmcid\": \"PMC13281353\",\r\n        \"doi\": \"10.1186/s40959-026-00493-z\",\r\n        \"publication\": \"Cardio-oncology (London, England)\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1186_s40959_026_00493_z\",\r\n      \"version\": null,\r\n      \"date\": \"2026-04-29\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Benchmarking large language models in breast cancer care: agreement with radiology-led multidisciplinary tumor board decisions.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42121209\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Multidisciplinary tumor boards (MDTBs) play a central role in breast cancer management by integrating imaging findings with clinical and pathological information to guide treatment decisions. The increasing integration of artificial intelligence into clinical workflows has raised interest in the potential role of large language models (LLMs) as supportive tools in oncologic deci\",\r\n      \"update_date\": \"2026-05-12\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42121209\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1186/s12911-026-03556-4\",\r\n        \"publication\": \"BMC medical informatics and decision making\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1186_s12911_026_03556_4\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-12\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Balancing global standards and regional nuances in breast cancer care: the role of guidelines, clinical research, precision medicine, and artificial intelligence in advancing quality of care for patients worldwide.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/41968993\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2026-04-01\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"41968993\",\r\n        \"pmcid\": \"PMC13059880\",\r\n        \"doi\": \"10.20892/j.issn.2095-3941.2025.0674\",\r\n        \"publication\": \"Cancer biology & medicine\"\r\n      },\r\n      \"id\": \"EuropePMC:10_20892_j_issn_2095_3941_2025_0674\",\r\n      \"version\": null,\r\n      \"date\": \"2026-04-01\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Applications of large language models in tumor boards: a systematic review.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/42245825\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>Multidisciplinary tumor boards (MDTs) are the gold standard for cancer care but currently face significant pressure from rising case volumes and the increasing complexity of precision medicine. Large Language Models (LLMs) offer potential as Clinical Decision Support Systems (CDSS) to augment these workflows. This systematic review evaluates the current applications, accuracy, a\",\r\n      \"update_date\": \"2026-05-20\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"42245825\",\r\n        \"pmcid\": \"PMC13230141\",\r\n        \"doi\": \"10.3389/or.2026.1757059\",\r\n        \"publication\": \"Oncology reviews\"\r\n      },\r\n      \"id\": \"EuropePMC:10_3389_or_2026_1757059\",\r\n      \"version\": null,\r\n      \"date\": \"2026-05-20\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"EuropePMC\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Feasibility of quality indicators to assess the prevalence of guideline adherence in a german cohort of patients with advanced or metastatic breast cancer: Results of the BRE-BY-MED study.\",\r\n      \"year\": 2026,\r\n      \"url\": \"https://europepmc.org/article/MED/41955827\",\r\n      \"org_url\": \"https://europepmc.org\",\r\n      \"summary\": \"<h4>Background</h4>In Germany, the national evidence- and consensus-based S3-Guideline guide treating physicians on effective therapies. Data on guideline adherence in patients with advanced or mBC in everyday clinical practice are lacking for Germany. The aim of the present study was to test the feasibility of quality indicators (QIs) to assess guideline adherence in a German cohort of patients w\",\r\n      \"update_date\": \"2026-04-03\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"pmid\": \"41955827\",\r\n        \"pmcid\": null,\r\n        \"doi\": \"10.1016/j.ctarc.2026.101200\",\r\n        \"publication\": \"Cancer treatment and research communications\"\r\n      },\r\n      \"id\": \"EuropePMC:10_1016_j_ctarc_2026_101200\",\r\n      \"version\": null,\r\n      \"date\": \"2026-04-03\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"ESMO Clinical Practice Guideline for the diagnosis, staging and treatment of patients with metastatic breast cancer\",\r\n      \"year\": 2021,\r\n      \"url\": \"https://www.annalsofoncology.org/article/S0923-7534(21)04498-7/pdf\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": null,\r\n      \"update_date\": \"2021-10-20\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"publication\": \"Annals of Oncology\",\r\n        \"doi\": \"https://doi.org/10.1016/j.annonc.2021.09.019\",\r\n        \"pdf_url\": \"https://www.annalsofoncology.org/article/S0923-7534(21)04498-7/pdf\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1016_j_annonc_2021_09_019\",\r\n      \"version\": null,\r\n      \"date\": \"2021-10-20\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Neoadjuvant Chemotherapy, Endocrine Therapy, and Targeted Therapy for Breast Cancer: ASCO Guideline\",\r\n      \"year\": 2021,\r\n      \"url\": \"https://ascopubs.org/doi/pdfdirect/10.1200/JCO.20.03399\",\r\n      \"org_url\": \"https://openalex.org\",\r\n      \"summary\": \"PURPOSE: To develop guideline recommendations concerning optimal neoadjuvant therapy for breast cancer. METHODS: ASCO convened an Expert Panel to conduct a systematic review of the literature on neoadjuvant therapy for breast cancer and provide recommended care options. RESULTS: A total of 41 articles met eligibility criteria and form the evidentiary basis for the guideline recommendations. RECOMM\",\r\n      \"update_date\": \"2021-01-28\",\r\n      \"topic\": \"breast cancer\",\r\n      \"extra\": {\r\n        \"publication\": \"Journal of Clinical Oncology\",\r\n        \"doi\": \"https://doi.org/10.1200/jco.20.03399\",\r\n        \"pdf_url\": \"https://ascopubs.org/doi/pdfdirect/10.1200/JCO.20.03399\"\r\n      },\r\n      \"id\": \"OpenAlex:https_doi_org_10_1200_jco_20_03399\",\r\n      \"version\": null,\r\n      \"date\": \"2021-01-28\",\r\n      \"topic_tags\": [\r\n        \"breast_cancer\"\r\n      ],\r\n      \"file\": null\r\n    },\r\n    {\r\n      \"source\": \"Guidelines\",\r\n      \"guideline_org\": \"OpenAlex\",\r\n      \"access\": \"api\",\r\n      \"retrieved\": true,\r\n      \"title\": \"Estrogen and Progesterone Receptor Testing in Breast Cancer: ASCO/CAP Guideline Update\",\r\n      \"year\": 2020,\r\n      \"url\": \"https://asco\n\nArchive v1.0.0: 66 files, 419448 bytes\n\nFiles: adapters/__init__.py (270b), adapters/bug_report.py (21369b), adapters/build_guidelines.py (12663b), adapters/coze_resolve.py (12444b), adapters/fetch_arxiv.py (10534b), adapters/fetch_coze_unified.py (28365b), adapters/fetch_europepmc.py (11281b), adapters/fetch_guidelines.py (21282b), adapters/fetch_openalex.py (15933b), adapters/fetch_preprints.py (17306b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/guideline_corpus.py (5199b), adapters/http_utils.py (21902b), adapters/pdf_download.py (58540b), adapters/portal_fetch.py (7069b), adapters/preprint_fallback.py (13392b), adapters/verify_citations.py (22652b), AGENTS.md (2609b), assets/ct-lifecycle-diagram.svg (10356b), assets/icon.svg (2417b), CHANGELOG.md (100815b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (38530b), README.md (41117b), references/citation_styles.md (2494b), references/drug_name_map.json (23396b), references/errors.md (834b), references/guidelines/guidelines_index.json (102767b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (17603b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (18485b), references/sop.md (5228b), references/term_map.json (9214b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (10376b), scripts/ct_literature.py (58494b), scripts/drug_name_resolver.py (5168b), scripts/evidence_log.py (7644b), scripts/excel_style.py (24154b), scripts/export_html.py (40326b), scripts/export_xlsx.py (53259b), scripts/format_citations.py (12667b), scripts/hardware_id.py (4142b), scripts/i18n_messages.json (35149b), scripts/i18n.py (11705b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25723b), scripts/kw_localize.py (34076b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (20544b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7896b), scripts/source_guard.py (5915b), scripts/topic_translator.py (9352b), scripts/update_xlsx_pdf_paths.py (5188b), scripts/zotero_exporter.py (4654b), skill-card.md (2960b), SKILL.md (21999b), _meta.json (132b)\n\nArchive v0.9.5: 60 files, 312576 bytes\n\nFiles: adapters/__init__.py (270b), adapters/bug_report.py (20622b), adapters/build_guidelines.py (12663b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (8892b), adapters/fetch_guidelines.py (21282b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/guideline_corpus.py (5199b), adapters/http_utils.py (21749b), adapters/portal_fetch.py (7069b), adapters/verify_citations.py (22652b), AGENTS.md (1954b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2417b), CHANGELOG.md (50449b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (32324b), README.md (34641b), references/citation_styles.md (2494b), references/drug_name_map.json (22956b), references/errors.md (834b), references/guidelines/guidelines_index.json (102767b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (9007b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (18304b), references/sop.md (5203b), references/term_map.json (9188b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (10376b), scripts/ct_literature.py (43130b), scripts/drug_name_resolver.py (5178b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (24977b), scripts/export_xlsx.py (39979b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (34322b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (5247b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7256b), scripts/source_guard.py (5915b), scripts/topic_translator.py (9352b), scripts/zotero_exporter.py (4654b), skill-card.md (2889b), SKILL.md (17315b), _meta.json (132b)\n\nArchive v0.9.0: 60 files, 304394 bytes\n\nFiles: adapters/__init__.py (263b), adapters/bug_report.py (20266b), adapters/build_guidelines.py (12397b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (7591b), adapters/fetch_guidelines.py (20827b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/guideline_corpus.py (5067b), adapters/http_utils.py (21229b), adapters/portal_fetch.py (6902b), adapters/verify_citations.py (22652b), AGENTS.md (1924b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2379b), CHANGELOG.md (49911b), docs/prospero_access_guide.md (10752b), README_zh-CN.md (30985b), README.md (32741b), references/citation_styles.md (2441b), references/drug_name_map.json (22340b), references/errors.md (825b), references/guidelines/guidelines_index.json (102767b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7453b), references/multi-db-search.md (8482b), references/openalex_key.md (4430b), references/report_template.md (4246b), references/search_menu.md (5903b), references/sop.md (5109b), references/term_map.json (8934b), references/units.md (3463b), requirements.txt (528b), scripts/abstract_translator.py (10376b), scripts/ct_literature.py (40946b), scripts/drug_name_resolver.py (5178b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (24977b), scripts/export_xlsx.py (39979b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (34322b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (5247b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7256b), scripts/source_guard.py (5915b), scripts/topic_translator.py (9144b), scripts/zotero_exporter.py (4654b), skill-card.md (3075b), SKILL.md (18032b), _meta.json (132b)\n\nArchive v0.6.15: 54 files, 251572 bytes\n\nFiles: adapters/__init__.py (43b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (7591b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/http_utils.py (21749b), adapters/verify_citations.py (22652b), AGENTS.md (1954b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2417b), CHANGELOG.md (34191b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (29738b), README.md (30964b), references/citation_styles.md (2494b), references/drug_name_map.json (22956b), references/errors.md (834b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (8655b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (6100b), references/sop.md (5203b), references/term_map.json (8983b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (9043b), scripts/ct_literature.py (37300b), scripts/drug_name_resolver.py (5178b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (24977b), scripts/export_xlsx.py (39894b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (34322b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (5247b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7256b), scripts/source_guard.py (5915b), scripts/topic_translator.py (9352b), scripts/zotero_exporter.py (4654b), skill-card.md (2595b), SKILL.md (20485b), _meta.json (133b)\n\nArchive v0.6.14: 53 files, 238397 bytes\n\nFiles: adapters/__init__.py (43b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (7591b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/http_utils.py (18344b), adapters/verify_citations.py (22852b), AGENTS.md (1954b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2417b), CHANGELOG.md (30375b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (26419b), README.md (27441b), references/citation_styles.md (2494b), references/drug_name_map.json (22956b), references/errors.md (834b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (8655b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (6100b), references/sop.md (5203b), references/term_map.json (6449b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (9043b), scripts/ct_literature.py (27887b), scripts/drug_name_resolver.py (5178b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (22752b), scripts/export_xlsx.py (39434b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (35818b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (5247b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7256b), scripts/source_guard.py (5915b), scripts/zotero_exporter.py (4654b), skill-card.md (3327b), SKILL.md (20082b), _meta.json (133b)\n\nArchive v0.6.13: 53 files, 238297 bytes\n\nFiles: adapters/__init__.py (43b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (7591b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/http_utils.py (18344b), adapters/verify_citations.py (22852b), AGENTS.md (1954b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2417b), CHANGELOG.md (30375b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (26419b), README.md (27441b), references/citation_styles.md (2494b), references/drug_name_map.json (22956b), references/errors.md (834b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (8655b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (6100b), references/sop.md (5203b), references/term_map.json (6449b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (9043b), scripts/ct_literature.py (27887b), scripts/drug_name_resolver.py (5178b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (22752b), scripts/export_xlsx.py (39434b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (35818b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/mesh_mapper.py (5941b), scripts/normalize.py (5247b), scripts/obsidian_exporter.py (10702b), scripts/report.py (25389b), scripts/score_relevance.py (5578b), scripts/screen_prisma.py (7256b), scripts/source_guard.py (5915b), scripts/zotero_exporter.py (4654b), skill-card.md (3054b), SKILL.md (20282b), _meta.json (133b)\n\nArchive v0.6.12: 61 files, 268413 bytes\n\nFiles: adapters/__init__.py (43b), adapters/fetch_arxiv.py (10534b), adapters/fetch_europepmc.py (7591b), adapters/fetch_openalex.py (12907b), adapters/fetch_preprints.py (8808b), adapters/fetch_prospero.py (9554b), adapters/fetch_semantic_scholar.py (7615b), adapters/http_utils.py (18344b), adapters/verify_citations.py (22758b), AGENTS.md (1857b), assets/ct-lifecycle-diagram.svg (13151b), assets/icon.svg (2417b), CHANGELOG.md (27661b), docs/prospero_access_guide.md (10931b), README_zh-CN.md (25872b), README.md (26772b), references/citation_styles.md (2494b), references/drug_name_map.json (22956b), references/errors.md (834b), references/language_policy.md (3832b), references/mesh_terms_mapping.json (7661b), references/multi-db-search.md (8655b), references/openalex_key.md (4544b), references/report_template.md (4246b), references/search_menu.md (6100b), references/sop.md (5203b), references/term_map.json (6449b), references/units.md (3533b), requirements.txt (534b), scripts/abstract_translator.py (8870b), scripts/ct_literature.py (27634b), scripts/drug_name_resolver.py (5168b), scripts/evidence_log.py (7627b), scripts/excel_style.py (24154b), scripts/export_html.py (22752b), scripts/export_xlsx.py (39434b), scripts/format_citations.py (12667b), scripts/i18n_messages.json (37818b), scripts/i18n.py (5890b), scripts/keyword_breadth.py (9756b), scripts/kw_lexicon.json (25562b), scripts/kw_localize.py (29986b), scripts/me...","readmeExcerpt":"Skill: Clinical Trial Literature Search / 临床试验文献检索专家 Owner: medstatstar Summary: Search 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 withou","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nslug: ct-literature\r\nname: ct-literature\r\ndisplayName: Clinical Trial Literature Search / 临床试验文献检索专家\r\ncn_name: 临床试验文献检索专家\r\nversion: 1.2.0\r\ninvocable: true\r\nsummary: 全数据源覆盖检索医学领域学术文献（OpenAlex + Europe PMC/MeSH + bioRxiv/medRxiv 预印本 + arXiv 方法学广度），归一化合并去重，可产出 CSM 安全性定性子集，协助提供OA文献PDF下载。无key亦可使用。\r\nlicense: MIT\r\ndescription: \"Search 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亦可使用。\"\r\ntriggers:\r\n  - \"systematic literature search\"\r\n  - \"系统文献检索\"\r\n  - \"文献证据基础\"\r\n  - \"已发表安全性文献 / CSM\"\r\n  - \"cross-database literature search\"\r\n  - \"跨数据库 文献检索\"\r\n  - \"Embase Cochrane Web of Science\"\r\n  - \"多数据库 系统综述\"\r\n  - \"ct-literature\"\r\nrequired_commands: [python]\r\nmetadata:\r\n  openclaw: { emoji: \"📚\" }\r\n  authors: [\"medstatstar\", \"phoe-zip\"]\r\n  tags: [clinical-trial, literature, evidence, systematic-review, csm, openalex, pubmed, public-data]\r\n  homepage: \"https://github.com/medstatstar/ct-literature\"\r\npermissions:\r\n  scope: \"user-space-only\"\r\n  network: \"optional\"\r\n  network_note: \"Reads only public bibliographic sources: OpenAlex (api.openalex.org, no key), Europe PMC (ebi.ac.uk, MEDLINE/MeSH, no key; also indexes bioRxiv/medRxiv preprints via SRC:PPR), Semantic Scholar (api.semanticscholar.org, no key; rate-limited HTTP 429 -> gracefully skipped), arXiv (export.arxiv.org/api/query, no key). Europe PMC is ON by default (--no-with-europepmc to disable); bioRxiv/medRxiv are ON by default (--no-with-biorxiv / --no-with-medrxiv to disable); arXiv is opt-in via --with-arxiv. No WAF, no confidential input; ordinary input + public retrieval (A-tier). Opt-in, user-confirmed bug reports additionally reach https://ct-bugreport.coze.site/run with an 11-key sanitized envelope only (never raw data).\"\r\n  filesystem: \"read-only to its own files; writes report files only to the current working directory\"\r\n  data: \"no confidential data input; no external transmission of user data\"\r\n\r\n---\r\n\r\n## Published Application\r\n\r\nThe workbench is published as a Python HTTP service at `https://ct-literature.app.workbuddy.host/`\r\n(appId `wbapp_WuOPnJ4caJ32GTquNlR7vc`; bundle `workbench/publish-dist/`, workspace-independent,\r\nre-publish via `workbench/publish-kit/install_genie.py` — **overwrite, never `createNewApp`**;\r\nmis-bound paths are permanently retired and the returned `shareLink` must always be asserted).\r\n**Full registry table + re-publishing protocol → [references/published_app.md](references/published_app.md)** — load it before any deploy / re-publish operation.\r\n\r\n## Language\r\n\r\n- **English guide** → [README.md](https://github.com/medstatstar/ct-literature/blob/main/README.md)"},{"path":"README.md","content":"# Clinical Trial Literature Search (ct-literature)\r\n\r\n[🇨🇳 中文](./README_zh-CN.md) | [🇺🇸 English (Current)](#)\r\n\r\n<div align=\"center\">\r\n<img src=\"assets/icon.svg\" width=\"240\" height=\"240\" alt=\"ct-literature logo\"/>\r\n</div>\r\n\r\n> **No install needed to try it:** if you don't want to install this skill and just want to quickly use its basic features, visit the web app directly at **https://ct.medstatstar.com**.\r\n\r\n> **A `ct-` library skill (A-tier public-intel — non-confidential input) that retrieves published scholarly literature about a drug / disease / method, normalizes multiple public bibliographic sources into one de-duplicated evidence base, and surfaces the evidence landscape plus a CSM (cumulative safety monitoring) qualitative subset.**\r\n\r\n> No commands or manual needed. Just describe your literature question **in plain language inside a chat** — the skill fetches from **OpenAlex (primary) + Europe PMC (on by default) + bioRxiv/medRxiv (on by default)**, then writes a self-contained **HTML + Excel** report. (Semantic Scholar and arXiv are opt-in via flags, not part of the default pipeline.) A-tier (non-confidential input): fully local computation, only public retrieval. **Note: your topic query is sent to the public bibliographic APIs below — see the [outbound notice](#outbound--privacy).** The skill activates **only when you explicitly ask for a literature search**; it never retrieves on its own during unrelated conversations.\r\n\r\n> 💡 **Keyless by default, but a free key lifts the cap a lot:** OpenAlex has required an API key since 2026-02-13; without one you are in the keyless pool (100 credits/day, flagged *not suitable for production*). A free key lifts this to 100k/day. Apply in ~30s — see the [First-Time FAQ](#first-time-faq) and the key-notice the skill prints automatically when no key is detected.\r\n\r\n## Table of Contents\r\n\r\n- [Who This Is For](#who-this-is-for)\r\n- [How to Use It in a Chat](#how-to-use-it-in-a-chat)\r\n- [Data Sources](#data-sources)\r\n- [Why You Can Trust the Output — Anti-Hallucination](#why-you-can-trust-the-output--anti-hallucination)\r\n- [What Can It Do — Scenarios](#what-can-it-do--scenarios)\r\n- [First-Time FAQ](#first-time-faq)\r\n- [Security & Privacy](#security--privacy)\r\n- [Advanced Reference (Developers)](#advanced-reference-developers)\r\n\r\n---\r\n\r\n## Who This Is For\r\n\r\nct-literature is part of the `ct-` clinical-trial skill family, built for three groups:\r\n\r\n- **Clinical-trial practitioners at pharmaceutical companies** — sponsors, CROs, and medical / statistical / regulatory roles;\r\n- **Clinicians and nurses who take part in the hands-on conduct of trials**;\r\n- **Medical students who want to learn clinical-trial methodology in a structured way**.\r\n\r\n## How to Use It in a Chat\r\n\r\nct-literature is a **conversational skill**: you simply tell the assistant what you want to look up — no commands, no parameter names to remember. Once installed as a WorkBuddy skill, you invoke it in a chat via the Skill tool; there "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7amqq1jv28skb63wavr6shah89jsm5\",\n  \"slug\": \"ct-literature\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1790910100254\n}"},{"path":"references/capabilities.md","content":"# Capabilities & Reference Detail (ct-literature)\r\n\r\n> Extracted verbatim from `SKILL.md` (2026-09-27, line-budget refactor — SKILL.md ≤ 200 lines per ct-base §16.1 / F02). No content removed; SKILL.md keeps one-line pointers here. Load this file when you need the full source / feature / output / invocation detail.\r\n\r\n## Positioning within the ct- library\r\n\r\nThe four A-tier public-intel skills (non-confidential input, `network=public-retrieval`) are complementary:\r\n\r\n| Skill | Answers | Object retrieved | Source family |\r\n|---|---|---|---|\r\n| `ct-registry` | What trials are registered / ongoing / completed? | Trial-registry metadata | Registry libraries |\r\n| `ct-literature` | What evidence has been *published*? | Publications | Literature libraries |\r\n| `ct-safety` | Is a drug–event over-reported (signal)? | FAERS cases | Adverse-event databases |\r\n| `ct-pipeline` | Aggregate the above into a strategic intel brief | Consumes the three JSONs | Public-intel layer |\r\n\r\n**Boundaries:** `ct-registry` never fetches paper full-text/abstracts; `ct-literature` never fetches registry structured metadata. `ct-literature --safety` surfaces *published* safety literature — **qualitative**, must NOT replace `ct-safety`'s FAERS disproportionality. Not sure which skill? Route via `ct-advisor`; full competitive-intel picture → `ct-pipeline` directly (§15).\r\n\r\n## Data Sources (detail)\r\n\r\n| Source | Access | Status | Role |\r\n|---|---|---|---|\r\n| OpenAlex | Public REST; free key recommended (100k/day via `.env` auto-load) — keyless capped 100/day since 2026-02-13 | Required (primary) | Broad coverage + citation counts |\r\n| Europe PMC | Public REST (MEDLINE / PubMed Central), no key, MeSH-indexed | **Default ON** (`--no-with-europepmc`) | Biomedical precision + MeSH |\r\n| Cochrane (CDSR) | Via Europe PMC journal filter | Opt-in `--cochrane` | Cochrane Database of Systematic Reviews only |\r\n| Semantic Scholar | Public Graph API, no key, rate-limited (429) | **Opt-in only** `--with-semantic-scholar` (not part of default sources; requires key to be useful) | Citation-aware ranking; skipped when no key |\r\n| bioRxiv / medRxiv | Via Europe PMC `SRC:PPR` + publisher filter | **Default ON** (`--no-with-biorxiv` / `--no-with-medrxiv`) | Preprints (Tier P) |\r\n| arXiv | Public Atom API, no key | Optional `--with-arxiv` | Methodology breadth |\r\n| PROSPERO | Public REST (CRD York); **auth header undocumented** | Optional `--with-prospero` (key-gated, **reserved source**) | Duplication-avoidance / protocol discovery |\r\n\r\n> All are public bibliographic APIs — no WAF. The **default data sources are OpenAlex (primary) + Europe PMC (on by default) + bioRxiv/medRxiv (on by default)**; everything else (arXiv, Cochrane, PROSPERO, Semantic Scholar) are opt-in. OpenAlex keyless = 100 credits/day since 2026-02-13; a free key lifts to 100k/day (`--openalex-key` / env `OPENALEX_API_KEY` / skill `.env` auto-load; key never printed). Semantic Scholar is an explicit opt-in source (`--with-semantic"},{"path":"references/citation_styles.md","content":"# Citation Styles\r\n\r\n`ct-literature` supports five citation styles (`--citation-style`), implemented in `scripts/format_citations.py`. It reads `merged.json` and reuses existing fields (title / authors / year / publication / volume / issue / page / doi / url) to assemble each citation. Exports `references.bib` (BibTeX) + `references.ris` (RIS).\r\n\r\n> The applied style is labeled at the top of the report and `references_<style>.md` for traceability.\r\n\r\n## 1. APA (7th) — default\r\n```\r\nAuthor, A. A., & Author, B. B. (Year). Title of article. *Journal Name*, *Vol*(Issue), Pages. https://doi.org/DOI\r\n```\r\n- Authors: surname, initials; multiple authors joined with `, &`.\r\n- Journal name italic; volume italic, issue in parentheses.\r\n\r\n## 2. Nature\r\n```\r\nAuthor1 AB, Author2 CD. Title of article. Journal Name Vol, Pages (Year). https://doi.org/DOI\r\n```\r\n- Given name first, abbreviated to initials (no dots); surname last; comma-separated.\r\n- Inline style for numbered journals; year in trailing parentheses.\r\n\r\n## 3. Vancouver (sequential numeric)\r\n```\r\nAuthor1 AB, Author2 CD. Title of article. Journal Name. Year;Vol(Issue):Pages. doi:DOI\r\n```\r\n- Up to 6 authors listed in full; beyond that, close with `et al.` (this implementation lists all, for clean Bib/RIS round-tripping).\r\n- Year followed by `;Vol(Issue):Pages`.\r\n\r\n## 4. IEEE\r\n```\r\nAuthor1, \"Title of article,\" Journal Name, vol. Vol, no. Issue, pp. Pages, Year. doi: DOI.\r\n```\r\n- Article title in double quotes; `vol.` / `no.` / `pp.` explicit.\r\n\r\n## 5. GB/T 7714 (PRC national standard)\r\n```\r\nAuthor. Title[J]. Journal, Year, Vol(Issue):Pages. DOI:DOI.\r\n```\r\n- **Chinese branch**: full-width Chinese punctuation (。、[J]、，、：); authors separated by Chinese comma 「，」.\r\n- When mixing with the English styles (apa/nature/vancouver/ieee), branch on `style == 'gb7714'` so Chinese punctuation is not swallowed by the English templates.\r\n\r\n## Field mapping (merged.json → citation)\r\n| Citation element | merged.json field |\r\n|---|---|\r\n| Authors | `authors` (list; tolerates string/None) |\r\n| Year | `year` |\r\n| Title | `title` |\r\n| Journal | `publication` |\r\n| Volume / Issue / Pages | `volume` / `issue` / `page` |\r\n| DOI / Link | `doi` / `url` |\r\n\r\n## Notes\r\n- Purely local generation; does not touch the fetch layer. Styles are layout templates only, not formal typographic validation.\r\n- Author-name resolution handles both `Surname, Given` and `Given Surname`; Chinese names are preserved as a single token."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Search 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亦可使用。 Skill: Clinical Trial Literature Search / 临床试验文献检索专家 Owner: medstatstar Summary: Search 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 withou","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":2070,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T00:37:58.812Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:56:21.171Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}