Resolves free-text scientific labels to ontology term IDs and validates existing CURIEs against the EBI Ontology Lookup Service (OLS4). Also looks up prefixes in Bioregistry, resolves compact identifiers via Identifiers.org, maps lab shorthand with ZOOMA, and builds Ontobee term pages. Use whenever an ontology identifier must be produced or checked - annotating tissue, cell type, disease, phenotype, assay, chemical, organism, sex, or developmental stage fields; preparing metadata for GEO, ENA, BioSamples, CELLxGENE, HCA, or ISA-Tab submission; auditing a metadata table of term IDs; checking whether a term is obsolete and what replaced it; or deciding HPO vs HP. Triggers include "ontology term", "ontology ID", "CURIE", "controlled vocabulary", "UBERON", "CL:", "MONDO", "HPO", "EFO", "ChEBI", "NCBITaxon", "GO term", "PATO", "Zooma", "Bioregistry", "Identifiers.org", "Ontobee", "annotate this tissue/cell type/disease", and any request to emit or verify an identifier shaped like PREFIX:0001234.
○ declared by the publisher, as-is
Safety
CC: 3 or more mediums, or any high9 severity-bearing
Safety · gatev1.4 · = 92ace75 · assessed 2w ago
C9 severity-bearing
Graded from 9 severity-bearing findings on this release.
A gate; it passes or fails, never weighed against price or quality.
Reliability & Quality
A0 findings
Reliability & Qualityv1.4 · = 92ace75 · assessed 2w ago
A0 findings
Graded from 0 severity-bearing findings on this release.
Findings with severity, graded on the same letter scale as safety.
Cost
n/anot assessed
Costv1.4 · = 92ace75 · assessed 2w ago
n/anot assessed
Not assessed; no producer has emitted into this category. An absence, not a zero.
Declared external service dependencies. Never a monetary figure.
not assessed
Popularity
4335Forks
Popularity · not a figurev1.4 · = 92ace75 · assessed 2w ago
4335Forks
Read off the linked repository, not off this record. It carries no verdict and enters no grade.
Context read off the linked repository. It enters no ranking and no grade.
Performance tested for◌ not assessed
no controlled task evaluation on this release
Repo★ 48.2k○·4.3k forks·203 watchers·23 open issues·last commit 4d old when scanned
◌ Vettd does not install assets; this record describes a copy you obtain yourself.
Custody chainSource ↗○ linked, not verified by Vettd
k-dense-ai◐→k-dense-ai/scientific-agent-skills○→v1.4 = 92ace75◐→sha256:7750…439e◐→signature △ not assessed|MIT○record 9fd8996a-8db1-4551-ab04-dd8494f3296c · live
◌ public recordYou are signed out, so you see the record and nothing else. sign in
▲References external URL — review for indirect prompt injection riskflaggedExternal URL(s) detected in SKILL.md — referenced content can change after auditvettd · scan · 2wMedium
▲Code makes network requestsflaggedSKILL.md — Skill code makes network requests. While not controlled by allowed-tools, network access should be documented and justified in the skill description.cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/id_client.py:68 — Pattern detected: urllib.request.Request(cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/id_client.py:72 — Pattern detected: urllib.request.urlopen(cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/ols_client.py:79 — Pattern detected: urllib.request.Request(cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/ols_client.py:86 — Pattern detected: urllib.request.urlopen(cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/zooma_client.py:78 — Pattern detected: urllib.request.Request(cisco · scan · 2wMedium
▲Outbound network request primitives that can transmit data externallyflaggedscripts/zooma_client.py:83 — Pattern detected: urllib.request.urlopen(cisco · scan · 2wMedium
▲Code uses search/grep patterns but Grep tool not in allowed-toolsflaggedSKILL.md — Skill restricts tools to ['Read', 'Write', 'Edit', 'Bash'] but code uses regex search patternscisco · scan · 2wLow
◌Secrets scan passednothing foundNo secrets or unsafe code patterns were detected.vettd · scan · 2wnothing found
◌behavioral scan passednothing foundNo prompt-injection or jailbreak signals were detected.vettd · scan · 2wnothing found
◌Name validation passednothing foundThe declared skill name follows the supported naming rules.vettd · scan · 2wnothing found
▲Description overclaims scopeflaggedBroad trigger words (anything, everything, all files, etc.) widen attack surface — narrow to specific use casesvettd · scan · 2wLow
◌Internal reference resolution completednothing foundAll body-referenced paths under references/, scripts/, and assets/ resolved in the bundle.vettd · scan · 2wnothing found
Not assessed; no producer has emitted into cost for this asset. That is different from a check that ran and found nothing, which the record would carry as a row of its own.
▲Unpinned dependency versionsflaggedPin dependency versions for reproducibility (e.g., >=4.12,<5 instead of >=4.12)vettd · scan · 2wLow
▪CLI helpreadvettd · scan · 2wpresent
▪Declared environment assumptionsreadvettd · scan · 2wRequires Python 3.11+. Scripts use only the standard library - no third-party packages. Needs network access to https://www.ebi.ac.uk/ols4, https://bioregistry.io, https://resolver.api.identifiers.org, and https://www.ebi.ac.uk/spot/zooma (all public, no API key).
ontology-term-resolution v1.4 · = 92ace75 · assessed 2w ago /
40 signals · 6 categories
Safety
▲References external URL — review for indirect prompt injection riskMedium
▲Code makes network requestsMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Outbound network request primitives that can transmit data externallyMedium
▲Code uses search/grep patterns but Grep tool not in allowed-toolsLow
◌Secrets scan passednothing found
◌behavioral scan passednothing found
◌Name validation passednothing found
Reliability & Quality
▲Description overclaims scopeLow
◌Internal reference resolution completednothing found
▪Checklist patternabsent
▪Description usage contextpresent
▪Examplespresent
▪Gotchas sectionabsent
▪Step-by-step workflowabsent
▪Validation looppresent
Performance
▪Progressive disclosurepresent
●Static context tokens3243
Compatibility
▲Unpinned dependency versionsLow
▪CLI helppresent
▪Declared environment assumptionsRequires Python 3.11+. Scripts use only the standard library - no third-party packages. Needs network access to https://www.ebi.ac.uk/ols4, https://bioregistry.io, https://resolver.api.identifiers.org, and https://www.ebi.ac.uk/spot/zooma (all public, no API key).
assessed2w ago · Cisco AI Defense · Vettd core● current
source stateThe source matches what was scanned. No changes detected.Up to date
re-check policyre-checked against the upstream source on the scheduler's cadencenext check in 2h
re-run whena new release ships, the upstream source changes, or the scanner ruleset is revisedauto-scheduled
Limitations & open conflicts
limitationCost is not assessed: behaviour there is unmeasured, not clean△ gap
conflictno two sources report the same quantity on this record
Verify: does this record describe your copy?
What record 9fd8996a-8db1-4551-ab04-dd8494f3296c covers
scannerv11● current
validityassessed 2w ago · Up to date
$vettd scan folder <path>
this record was taken at digest sha256:77506d5d5652… compare it against the digest your own scan prints
Reproduce: re-run the evidence yourself
$vettd scan folder /path/to/your/copy
runs the same scanners against your own copy; the published record is never overwritten
How this record comparesagainst other published records · full comparison →
Signal kinds
▲ finding: something to act on, carries a severity● measurement: a reproducible quantityƒ estimate: inferred from a sample▪ fact: read directly off the artifact◆ classification: assigned from a taxonomy◌ nothing found: a producer looked and emitted no object◇ context only: described, never graded
Custody marks
◐ computed by vettd○ declared by the publisher, as-is△ not assessed: nothing looked
Weigh ontology-term-resolution against other published skills: the safety grade, its finding counts and each category’s verdict, one row apiece. The full comparison page carries every signal and framework coverage.