CtrlK
BlogDocsLog inGet started
Tessl Logo

string-database

Query STRING API for protein-protein interactions (59M proteins, 20B interactions). Network analysis, GO/KEGG enrichment, interaction discovery, 5000+ species, for systems biology.

58

Quality

68%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./backend/cli/skills/databases/string-database/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 highly actionable, well-structured skill body: every core operation has executable examples, five realistic workflows show multi-step usage, and both bundle files referenced are real and one level deep. The main weaknesses are length — much of the per-operation parameter/output detail duplicates the existing reference file and belongs there — and a couple of accuracy slips in the examples, including an import from a nonexistent `scripts.string_enrichment` module.

Suggestions

Fix the enrichment example to import from `scripts.string_api` (the `string_enrichment` function lives there; `scripts/string_enrichment.py` does not exist), and make Workflow 1's Step 6 executable rather than a stub comment.

Move the per-operation parameter/output-column tables, the species table, and the confidence-evidence explanation into `references/string_reference.md`, keeping SKILL.md to an overview with one compact example per operation plus the workflows.

Add explicit validation checkpoints in workflows (e.g., after `string_map_ids`, verify identifiers resolved and check for the documented "Error:" prefix before running network or enrichment queries).

DimensionReasoningScore

Conciseness

The ~525-line body contains substantial reference-grade material — full parameter tables, output-column listings, a nine-row species table, evidence-channel explanations, and a troubleshooting section — much of which duplicates content in the existing 455-line `references/string_reference.md`. Content is concrete rather than padded with concepts Claude already knows, but a significant fraction of detail (per-operation parameter/output tables, species table, network-type prose) should live in the reference file, matching the anchor "mostly efficient but some unnecessary explanation or could be tightened". Not a 4: the volume of deferred-to-reference material goes beyond minor trimming; not a 2 because almost everything written is operationally useful and free of filler.

3 / 5

Actionability

Nearly every operation ships executable, copy-paste-ready Python with realistic arguments (e.g. `string_network(['9606.ENSP00000269305', ...], required_score=700)`) plus concrete output-column and threshold guidance. Not a 5: the enrichment example imports from a nonexistent module (`from scripts.string_enrichment import string_enrichment` — only `scripts/string_api.py` exists), Workflow 1 ends with the non-executable stub "# Step 6: Parse and interpret results", and Workflow 4 uses a placeholder `'gene_name'` identifier.

4 / 5

Workflow Clarity

Five named workflows (protein-list analysis, single-protein investigation, pathway-centric, cross-species, network expansion) are presented as clearly numbered, sequenced steps with a strong "Always map identifiers first" convention and a troubleshooting section covering error recovery. Not a 5: there are no explicit validation checkpoints between steps (e.g., verify the mapping returned identifiers or check for the documented "Error:" prefix before proceeding with network/enrichment queries), so checkpoints are implicit rather than stated.

4 / 5

Progressive Disclosure

The bundle structure is real and well-signaled: `scripts/string_api.py` (verified to exist and contain all eight advertised functions) and `references/string_reference.md` (verified to exist, one level deep), with a "Detailed Reference" section explicitly enumerating what the reference covers. Not a 5: the body itself is ~525 lines — far beyond an overview — with parameter/output detail inlined that belongs in the reference file, so the split between SKILL.md and the reference is imbalanced.

4 / 5

Total

15

/

20

Passed

Description

70%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 concise, concrete description that clearly names the domain and several specific capabilities with impressive scale figures. Its main weakness is the absence of an explicit "Use when..." trigger clause — the only use-context is the appended "for systems biology" — which both limits completeness and slightly narrows its discoverability via natural trigger phrases.

Suggestions

Add an explicit trigger clause, e.g. "Use when a user mentions STRING, protein-protein interactions, PPI networks, interaction partners, or asks for GO/KEGG enrichment of a protein list."

Include common synonyms users would say — "PPI network", "functional enrichment", "pathway analysis" — to broaden natural trigger coverage.

Optionally mention identifier mapping and network visualization so the description reflects the full capability set of the skill.

DimensionReasoningScore

Specificity

The description lists several concrete actions — "Query STRING API for protein-protein interactions", "Network analysis, GO/KEGG enrichment, interaction discovery" — with domain-specific detail ("59M proteins, 20B interactions", "5000+ species"). Not a 5: a few capability areas visible in the body (identifier mapping, network visualization, homology analysis) are missing from the description, leaving minor coverage gaps.

4 / 5

Completeness

The "what" is clearly and concretely answered (query STRING for PPIs, network analysis, enrichment). The "when" is only weakly implied by the trailing phrase "for systems biology"; there is no "Use when..." clause or equivalent explicit trigger guidance, which per the rubric caps this dimension at 3. Not a 2 because the "what" is concrete and a faint use-context exists; not a 4 because that context is not an explicit "when" statement.

3 / 5

Trigger Term Quality

Good natural keyword coverage: "protein-protein interactions", "STRING API", "GO/KEGG enrichment", "systems biology" — phrases a systems biologist would actually say. Not a 5: common variations and synonyms like "PPI network", "protein network", "pathway analysis", or "functional enrichment" as a standalone phrase are absent.

4 / 5

Distinctiveness Conflict Risk

"STRING API" and "protein-protein interactions" establish a clear niche with distinct triggers; a user wanting PPI data or STRING queries would naturally land here, and overlap with adjacent bioinformatics skills (e.g., generic GO/KEGG tools) is minimal because STRING is named explicitly.

5 / 5

Total

16

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (540 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository
synthetic-sciences/openscience
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.