Content
71%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body is a strong, dense practitioner guide: executable code with exact API spellings, high-value version-specific gotchas, and a symptom→fix troubleshooting table. Its main weaknesses are a dangling reference to a kernel.py that is not in the bundle (leaving h5ad_safe_obs undefined), a placeholdered remote recipe that is not copy-paste ready, duplicated content across the Gotchas and Troubleshooting tables, and no progressive disclosure of reference-grade material into separate files.
Suggestions
Ship kernel.py in scripts/ (or inline the h5ad_safe_obs definition in SKILL.md) — the Setup section, Gotchas, and Troubleshooting all depend on it, but no such file exists in the bundle, so exec(open(...)) fails and the obs-coercion fix is unusable as written.
Move the Modal remote-compute recipe (and optionally the DE output-column enumeration) into a reference file with a clearly signaled one-level link, keeping SKILL.md as a lean overview.
Merge the Gotchas and Troubleshooting tables into a single symptom→fix table — use_gpu, IORegistryError, and KeyError 'lfc_mean' currently appear in both, spending tokens twice on the same three errors.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and almost every token is version-specific, non-obvious knowledge (the vanilla-vs-change DE column trap, the ArrowStringArray write failure, the removed use_gpu kwarg) rather than concepts Claude already knows. It is not a 5 because the Gotchas and Troubleshooting tables repeat the same three errors (use_gpu TypeError, IORegistryError, KeyError 'lfc_mean') and the "This is a pure skill ... There is no host runtime and no LLM API" paragraph is environment meta-commentary that could be trimmed. | 4 / 5 |
Actionability | The scVI, scANVI, and DE blocks are fully executable with exact kwargs and the exact output-column list, and the troubleshooting table maps concrete error strings to fixes. It is not a 5 because the Modal pipeline.py snippet is a placeholder ("# ... setup_anndata / scVI / scANVI / DE — see the recipe above ...", "paste the helper into THIS script (below)") and its h5ad_safe_obs call depends on a helper whose definition is nowhere in the skill — the referenced kernel.py does not exist in the bundle. | 4 / 5 |
Workflow Clarity | The pipeline is clearly sequenced with inline ordering guards ("preserve raw BEFORE any normalize/log1p", stash counts layer, then setup_anndata → train → latent → neighbors/leiden in the Next footer), and the troubleshooting table supplies symptom→fix recovery paths. It is not a 5 because there is no explicit verification checkpoint (e.g., confirm out.h5ad exists and reads back after the remote GPU job, or check the embedding shape before downstream clustering); it is not a 3 because the sequence and error-recovery paths are explicit and the operations write new files rather than destructively modifying inputs. | 4 / 5 |
Progressive Disclosure | Everything — the full DE output-column enumeration, the complete Modal remote recipe, and two dense tables — is inlined in a single ~170-line SKILL.md with no reference files, and the one bundle file the body depends on ("exec(open(\"scvi-tools/kernel.py\").read())") is absent from the bundle (no references/, scripts/, or assets/ exist), leaving the central h5ad_safe_obs helper as a dangling reference. It is not a 2 because section structure is clear and well-organized; it is not a 4 because a referenced path is broken and reference-grade material that belongs in separate files sits inline. | 3 / 5 |
Total | 15 / 20 Passed |