CtrlK
BlogDocsLog inGet started
Tessl Logo

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

62

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/bioservices/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, actionable skill body with strong progressive disclosure and verifiable bundle files. Its main weaknesses are mild verbosity/redundancy across capability sections and the absence of an explicit validation feedback loop in the body for batch operations.

Suggestions

Consolidate the duplicated UniChem/compound example (sections 3 and 5) into a single canonical snippet and remove the standalone 'Note: BLAST jobs are asynchronous' line, folding it into the BLAST example.

Add an explicit validate-then-retry checkpoint for batch operations in the body (e.g., for batch_id_converter.py: verify input IDs are recognized before bulk conversion, and report/skip unmapped IDs rather than failing silently).

Replace the undefined `protein_sequence` placeholder in the BLAST example with a concrete retrieval step or a clear comment that it comes from the prior `u.retrieve()` call.

DimensionReasoningScore

Conciseness

The ~380-line body is mostly efficient with dense, runnable code per capability, but repeats setup (KEGG init, the compound/UniChem example appears in both sections 3 and 5) and includes minor padding like 'Note: BLAST jobs are asynchronous' that could be trimmed.

3 / 5

Actionability

Provides executable, copy-paste-ready snippets with real method names, arguments, and example outputs ('Returns cpd:C11222'), plus runnable CLI scripts and inline version-aware caveats; small gaps like the undefined `protein_sequence` variable keep it just short of fully self-contained.

4 / 5

Workflow Clarity

Multi-step pipelines are sequenced (5-6 numbered steps) and scripts include try/except with sys.exit-on-failure and BLAST status polling, but the SKILL.md body lacks an explicit validate-then-fix-then-retry feedback loop for the batch/destructive-style operations, which the rubric caps at 3.

3 / 5

Progressive Disclosure

Clear overview with well-signaled, one-level-deep references (services_reference.md, workflow_patterns.md, identifier_mapping.md) and four executable scripts, all verified to exist on disk; content is appropriately split between the body and bundle files.

5 / 5

Total

15

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, third-person description that states what the skill does, when to use it, and where its boundaries are relative to neighboring skills. It is specific and well-triggered; the only room for improvement is slightly more concrete action verbs and a few more colloquial trigger synonyms.

DimensionReasoningScore

Specificity

Names the domain ('Unified Python interface to 40+ bioinformatics services') and several concrete actions (querying multiple databases, cross-database analysis, ID mapping) with an explicit service list, but the action verbs stay slightly generic compared to a fully enumerated action set.

4 / 5

Completeness

Explicitly answers both 'what' (unified Python interface to 40+ services with consistent API) and 'when' ('Use when querying multiple databases... in a single workflow'), and adds boundary routing to gget/biopython.

5 / 5

Trigger Term Quality

Includes natural trigger phrases users would say ('querying multiple databases', 'cross-database analysis', 'ID mapping') plus concrete database names (UniProt, KEGG, ChEMBL, Reactome), though a few common phrasings like 'look up a protein' are absent.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear multi-service cross-database niche and explicitly routes single-DB lookups to gget and sequence/file work to biopython, leaving only minor overlap risk with those adjacent skills.

4 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

Total

15

/

16

Passed

Repository
K-Dense-AI/scientific-agent-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.