Effort: thorough
Wire one canonical evidence provider per non-ND vertical into the
SciDEX tool registry so personas in each vertical can cite first-class
data, not generic PubMed: cBioPortal for oncology, AHA/ACC ClinVar
cardiac variant subset for cardiovascular, GISAID/NCBI Pathogen
Detection for infectious, MetaboLights for metabolic, IEDB for
immunology. Each provider gets a tools.py wrapper with
@log_tool_call instrumentation, a unit-tested fetch path, and an
on-disk cache mirroring the Census / DepMap pattern.
A vertical persona pack without vertical-specific tools just inherits
PubMed + ChEMBL — there's no signal differentiating an oncology debate
from a cardio debate. cBioPortal's pan-cancer mutation data is the
canonical answer to "is this gene a known cancer driver?"; IEDB
answers "is this peptide a known T-cell epitope?". Bringing each
provider in as a first-class tool lets the new personas argue at the
same epistemic level as the founding ND personas, not several rungs
below.
scidex/forge/tools.py, each ≤200 LoC,chembl_drug_targets templatetools.py:2547):cbioportal_mutations(gene_symbol, study='pan_cancer',
max_results=50) — REST https://www.cbioportal.org/api.cardio_clinvar(gene_symbol, max_results=50) — filtersclinvar-variants skill output to the AHA-curatedscidex/forge/cardio_genes.json).pathogen_genomes(taxon_id, since='90d', max_results=20) —metabolights_studies(metabolite_or_disease, max_results=20)https://www.ebi.ac.uk/metabolights/ws.iedb_epitopes(antigen_or_disease, max_results=20) — RESThttps://query-api.iedb.org.
data/<provider>/<query_hash>.json and respectsq-sand-rate-limit-aware-tools budgets.
q-tools-skill-marketplace) so debates can pick them.
q-vert-vertical-personas-pack)/atlas/tools page shows the 5 new tools with provider, lasttests/test_vertical_providers.py — mocked HTTPscidex/forge/_providers/<vertical>_client.py) so retries +configs/provider_rate_limits.yaml (extend existing file, dotools.py:_register_all_tools so no new dispatch machinery.q-vert-vertical-personas-pack — tool consumers.q-sand-rate-limit-aware-tools (wave-3) — rate limiter.q-tools-skill-marketplace (wave-3) — registry.TOOL_NAME_MAPPING in scidex/forge/tools.py:cbioportal_mutations, cardio_clinvar, pathogen_genomes,metabolights_studies, iedb_epitopes.scidex/forge/cardio_genes.json — AHA/ACC curated cardiovascularcardio_clinvar for gene filtering.scidex/forge/rate_limits.yaml with three new provider entries:cBioPortal (3 req/s), MetaboLights (2 req/s), IEDB (3 req/s).NCBI provider.)scidex/forge/tools.py (lines 2654–3070):cbioportal_mutations — queries cBioPortal REST API for cancer mutations;data/cbioportal/.cardio_clinvar — delegates to existing clinvar_variants, filters to AHApathogen_genomes — queries NCBI Entrez E-utilities BioSample DB filtereddata/pathogen/.metabolights_studies — queries MetaboLights REST API for metabolomicsdata/metabolights/.iedb_epitopes — POSTs to IEDB query API for T/B-cell epitopes;data/iedb/.@require_preregistration, @log_tool_call, and callacquire(<provider>) for rate-limit-aware token bucket budgeting._vertical_cache_path, _read_vertical_cache,_write_vertical_cache) implement content-hash-keyed caching with no TTL.tests/test_vertical_providers.py — 14 passing tests covering:scidex/forge/tools.py — TOOL_NAME_MAPPING + 5 wrappers + helpersscidex/forge/cardio_genes.json — new (AHA cardiovascular gene list)scidex/forge/rate_limits.yaml — extended with cBioPortal/MetaboLights/IEDBtests/test_vertical_providers.py — new (14 tests, all passing)docs/planning/specs/q-vert-vertical-evidence-providers_spec.md — work log