What problem does it solve? Answering "which genes are annotated to this GO term" or "what GO terms does this gene have" is error-prone: casual sources skip child-term propagation, gene identifiers come in mismatched formats (symbol, UniProt, Ensembl, Entrez), and results rarely record evidence codes or source versions. This Skill performs authoritative bidirectional lookups with propagation on by default, transparent ID resolution, and full provenance on every output. ## Core Features & Use Cases - Term-to-genes lookup: genes_with_annotation GO:0006915 returns all genes annotated to a GO term including descendants (use --direct to disable propagation). - Gene-to-terms lookup: annotations_of_gene TP53 resolves symbols via UniProt and returns GO annotations with evidence codes, qualifiers, and per-row direct/propagated flags. - Two authoritative sources: GOA via the QuickGO REST API (live, rich coverage) and per-species GAF files from the GO Consortium (offline, version-pinned, reproducible via cached go.obo). - Provenance sidecars: every TSV ships with a .meta.json recording source URL, sha256 hashes, species, propagation flag, and evidence codes. - Use Case: Verify a paper's claim that TP53 is involved in DNA repair by fetching its GO annotations, filtering to experimental evidence codes (IDA, IMP, EXP), and reporting exactly which terms are experimentally backed versus electronically inferred. ## Quick Start Ask the assistant to list the human genes annotated to apoptosis (GO:0006915) including child terms, or to fetch the GO annotations for a gene such as TP53, and it will run the annotate.py script and save a provenance-stamped TSV.