CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

scanpy

Scanpy is a scalable Python toolkit for analyzing single-cell RNA-seq data, built on AnnData. Apply this skill for complete single-cell workflows including quality control, normalization, dimensionality reduction, clustering, marker gene identification, visualization, and trajectory analysis.

Quality

75%

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 ./plugins/AI-Agents-Safe-Coding-Skills/skills/scanpy/SKILL.md

The canonical home for this skill is scanpy in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

60%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, highly actionable workflow reference whose main defects are broken bundle references (all five referenced files are missing), some redundant sections that restate the description and earlier guidance, and placeholder variables in a few code examples. Fixing the missing bundle files would resolve the largest scoring drag.

Suggestions

Add the referenced bundle files (scripts/qc_analysis.py, references/standard_workflow.md, references/api_reference.md, references/plotting_guide.md, assets/analysis_template.py) or remove the references — every referenced path currently 404s, which cripples navigation and the automated QC/script entry points.

Delete the Overview section that duplicates the frontmatter description verbatim, and fold 'Tips for Effective Analysis' into 'Common Pitfalls and Best Practices' to remove redundant guidance.

Fix placeholder variables in the code examples: define `genes` in the publication-plots section and note that the differential-expression example requires a `condition` column in adata.obs.

DimensionReasoningScore

Conciseness

Mostly efficient — content is dominated by lean, commented code blocks — but there is real padding: the Overview section repeats the frontmatter description verbatim, and 'Tips for Effective Analysis' restates guidance already given in 'Common Pitfalls' and 'Bundled Resources' (e.g., 'Run QC script first', 'Start with the template'). Fits anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') better than 4, since the duplication is structural, not minor.

3 / 5

Actionability

The body is dominated by concrete, executable code covering loading, QC, normalization, PCA/UMAP, Leiden clustering, marker identification, annotation, and saving — largely copy-paste ready. Minor gaps keep it below 5: the publication-plots section uses an undefined variable `genes` (only `marker_genes` is defined earlier), the differential-expression example assumes an undefined `condition` column, and the qc_analysis.py invocation depends on a script not present in the bundle.

4 / 5

Workflow Clarity

A clear numbered 1–7 sequence (QC → normalization → dimensionality reduction → clustering → markers → annotation → save) with most checkpoints present: 'Visualize QC metrics' before filtering, 'Check elbow plot' for PC selection, 'Try multiple resolutions' for clustering, and 'Save intermediate results'. It stays at 4 rather than 5 because destructive filtering steps lack an explicit validate-after-filtering loop — the checkpoints are advisory best-practice bullets rather than inline validation gates.

4 / 5

Progressive Disclosure

References are clearly signaled and well-described (per-file purpose and 'read this when' guidance), but every referenced bundle path is broken: scripts/qc_analysis.py, references/standard_workflow.md, references/api_reference.md, references/plotting_guide.md, and assets/analysis_template.py do not exist in the bundle. Per the guideline to score against the actual bundle structure, navigation to all detailed material fails, fitting anchor 2 ('minimal structure... references are buried'/unusable) better than 3's 'references present but not clearly signaled'.

2 / 5

Total

13

/

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 description: third-person, specific, and comprehensive about capabilities, with an explicit apply-when clause. The only meaningful gap is that the when-clause is capability-framed rather than user-trigger-framed and lacks file-format/algorithm synonyms (.h5ad, scRNA-seq, UMAP) that would improve retrieval.

DimensionReasoningScore

Specificity

The description names the domain ('single-cell RNA-seq data, built on AnnData') and lists seven concrete actions: 'quality control, normalization, dimensionality reduction, clustering, marker gene identification, visualization, and trajectory analysis' — comprehensive coverage of the toolkit's capabilities, matching the anchor-5 example's breadth.

5 / 5

Completeness

Both 'what' ('scalable Python toolkit for analyzing single-cell RNA-seq data') and 'when' ('Apply this skill for complete single-cell workflows including...') are present, so it clears the missing-trigger cap. However, the when-clause restates the capability list rather than naming user-side triggers (e.g., 'when the user mentions scRNA-seq data or .h5ad files'), matching anchor 4 ('when' could be more explicit or specific) rather than 5's concrete trigger phrases.

4 / 5

Trigger Term Quality

Good natural keywords ('single-cell RNA-seq', 'clustering', 'quality control', 'marker gene identification', 'trajectory analysis', 'Scanpy') but a few common terms users would actually say are missing: no file extensions (.h5ad, 10X), no 'scRNA-seq' hyphenated variant, and no 'UMAP'/'t-SNE'/'cell type annotation'. Fits anchor 4 ('good keyword coverage; a few natural terms missing') rather than 5's comprehensive synonym/extension coverage.

4 / 5

Distinctiveness Conflict Risk

The single-cell RNA-seq analysis niche with the Scanpy/AnnData stack is a clear, well-defined domain with distinct triggers; virtually no overlap risk with skills outside scRNA-seq analysis. Anti-drift check: it is far more specific than anchor 4's 'minor overlap risk with closely related skills'.

5 / 5

Total

18

/

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

metadata_version

'metadata.version' is missing

Warning

frontmatter_unknown_keys

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

Warning

referenced_paths_exist

Referenced path issues: 11 missing

Warning

Total

13

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills/skills/scanpy/SKILL.md

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.