CtrlK
BlogDocsLog inGet started
Tessl Logo

uniprot-database

Direct REST API access to UniProt for protein search, entry retrieval, and identifier mapping; use when you need programmatic UniProtKB queries or cross-database ID conversion.

64

Quality

81%

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

SKILL.md
Quality
Evals
Security

Quality

Content

82%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 strong, action-oriented skill body: fully executable examples covering all three capabilities, a clearly sequenced async mapping workflow with status validation, and well-signaled one-level references. The main gaps are redundancy between the code and Implementation Details section, and the unreferenced scripts/uniprot_client.py in the bundle.

Suggestions

Reference the bundled script in the body (e.g., a "## Ready-made client" line pointing to scripts/uniprot_client.py) so the existing bundle file is discoverable instead of duplicating it inline.

Trim Implementation Details entries that restate the example code (e.g., the ids list/string note) and keep only non-obvious API behavior like polling etiquette and from_db/to_db naming constraints.

Add a brief error-recovery note for the mapping workflow (e.g., what to do when jobStatus is FAILED or the job times out) to strengthen the feedback loop.

DimensionReasoningScore

Conciseness

The body is lean and API-specific (endpoints, polling flow, parameters) without explaining concepts Claude already knows, matching anchor 4 ("Efficient; minor instances of over-explanation that could be trimmed"). Not 5 because the Implementation Details section restates what the example code already shows (e.g., "ids accepts either a list or a comma-separated string" duplicates the code), and not 3 because there is no concept tutoring or padding.

4 / 5

Actionability

The Example Usage block is complete, executable Python with real queries ("gene:BRCA1 AND organism_id:9606", accession "P38398", mapping from "Gene_Name" to "UniProtKB"), timeouts, and error handling — matching anchor 5 ("Fully executable; copy-paste ready code...specific examples cover the common cases"). Not below 5 because all three advertised capabilities have working code.

5 / 5

Workflow Clarity

The asynchronous ID mapping workflow is clearly sequenced ("1. POST /idmapping/run", "2. Poll GET /idmapping/status/{jobId} until finished", "3. Fetch GET /idmapping/results/{jobId}?format=json") with a status checkpoint that raises on FAILED, matching anchor 4. Not 5 because there is no error-recovery feedback loop beyond raising (no retry/backoff guidance); not 3 because validation checkpoints (raise_for_status, jobStatus polling) are present, and the read-only operations avoid the destructive/batch cap.

4 / 5

Progressive Disclosure

References "references/query_syntax.md" and "references/api_fields.md" are clearly signaled, one level deep, and both exist in the bundle; the quick-start code plus pointers match the anchor-4 pattern. Not 5 because the bundle's "scripts/uniprot_client.py" (98 lines) is never referenced from SKILL.md, leaving a real bundle file undiscoverable, and the inline client code substantially duplicates that script.

4 / 5

Total

17

/

20

Passed

Description

73%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 clear, well-scoped description that names the domain, three concrete capabilities, and an explicit use-when clause with distinct UniProt triggers. Its main deductions are the second-person phrasing ("use when you need"), which the guidelines penalize, and trigger coverage that misses common user phrasings like accession lookups.

Suggestions

Rewrite in third person to avoid the second-person penalty, e.g., "Direct REST API access to UniProt for protein search, entry retrieval, and identifier mapping; use when the user needs programmatic UniProtKB queries, accession lookups, or cross-database ID conversion."

Broaden trigger terms to include natural variations users would say: "protein entry", "UniProt accession", "gene name to UniProt", and "ID conversion".

Add a concrete instance in the what-clause (e.g., "fetch entries by accession such as P12345 in JSON/TSV/FASTA") to nudge specificity toward anchor 4-5.

DimensionReasoningScore

Specificity

"protein search, entry retrieval, and identifier mapping" lists three concrete actions matching anchor 4 ("Lists several specific actions; minor gaps in coverage"), but the judging guideline penalizes second-person voice ("use when you need programmatic UniProtKB queries") by reducing specificity by 1, landing at 3. It is above anchor 3's baseline because the what-clause is genuinely concrete, and below anchor 5 because coverage omits details like output formats and query syntax.

3 / 5

Completeness

Both parts are explicit: what is "Direct REST API access to UniProt for protein search, entry retrieval, and identifier mapping" and when is "use when you need programmatic UniProtKB queries or cross-database ID conversion", matching anchor 4. Not 5 because the when-clause is narrower than the good-example pattern (it misses triggers like searching for a protein entry by accession or mention of UniProt).

4 / 5

Trigger Term Quality

Terms like "UniProt", "UniProtKB queries", "protein search", "identifier mapping", and "cross-database ID conversion" are natural phrases users would say, matching anchor 4 ("Good keyword coverage; a few natural terms missing"). Not 5 because common variations such as "accession", "protein entry lookup", or file-format terms are absent.

4 / 5

Distinctiveness Conflict Risk

"UniProt" and "UniProtKB" name a clear niche with distinct triggers; a user mentioning these terms almost certainly means this skill, matching anchor 5 ("Clear niche with distinct triggers; minimal conflict risk"). Not 4 because the domain anchor is specific enough that even related bioinformatics skills would not compete for these triggers.

5 / 5

Total

16

/

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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
aipoch/medical-research-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.