CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

molfeat

Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.

56

Quality

70%

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/chemistry/molfeat/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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.

The body is a well-structured, highly actionable overview with real, clearly signaled one-level-deep references and executable code for the common cases. Weaknesses are mild redundancy that inflates token cost and the absence of validation/feedback checkpoints in the batch featurization workflows.

Suggestions

Add validation checkpoints to the batch workflows: after `transformer(smiles)` with `ignore_errors=True`, show checking for None entries and verifying `features.shape` before fitting a model, so failures are caught early.

Deduplicate the featurizer-choice snippets — "For Similarity Searching" repeats the ecfp/maccs/map4 lines from "For Traditional Machine Learning"; collapse these and defer exhaustive listings to references/available_featurizers.md.

Make every snippet executable: define or justify `evaluate_model(X, y)`, and add the missing imports (`numpy` for `np.vstack`, `RDKitDescriptors2D`/`PretrainedMolTransformer` in the comparison example).

DimensionReasoningScore

Conciseness

The body is code-dense and avoids explaining concepts Claude already knows, but it needs tightening: the "For Traditional Machine Learning" and "For Similarity Searching" sections repeat the same ecfp/maccs/map4 snippets almost verbatim, the "Common Featurizers Reference" table duplicates content in references/available_featurizers.md, and the pickle-caching snippet is boilerplate Claude can write. This fits anchor 3 (mostly efficient, some tightening needed) better than anchor 2, since there is no conceptual padding.

3 / 5

Actionability

Nearly all snippets are concrete and executable (FPCalculator usage, MoleculeTransformer with n_jobs, ModelStore discovery, sklearn Pipeline integration). Minor gaps keep it below anchor 5: `evaluate_model(X, y)` in "Comparing Multiple Featurizers" is undefined pseudocode, `RDKitDescriptors2D`/`PretrainedMolTransformer` are used in later snippets without their imports, and `np.vstack` is used without importing numpy.

4 / 5

Workflow Clarity

A clear Quick Start and a task-type decision guide ("For Traditional ML", "For Deep Learning") sequence the work, and error handling appears via `ignore_errors=True`/`verbose=True`. However, the batch operations (QSAR training, 1M-compound screening, chunked processing) have no validate→fix→retry feedback loop — e.g. no step checking for None rows or verifying output shapes before model training — so per the rubric's batch-operation cap, workflow clarity is capped at 3.

3 / 5

Progressive Disclosure

All three referenced files exist and match their descriptions, are one level deep, and each has an explicit "When to load" signal plus grep search tips — strong navigation. It falls short of anchor 5 only because some reference-appropriate content (the featurizer quick-reference table, extended examples) is inlined in SKILL.md instead of being deferred to references/available_featurizers.md and references/examples.md.

4 / 5

Total

14

/

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.

The description is specific and distinctive, using correct domain vocabulary and concrete featurizer names in third-person voice. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which caps completeness, and a few missing natural synonyms like 'fingerprints' and 'embeddings'.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user mentions SMILES, molecular fingerprints, featurization, QSAR modeling, or converting molecules to ML-ready features."

Include common synonyms users would say — "fingerprints"/"molecular fingerprints", "embeddings", "RDKit" — alongside ECFP/MACCS to broaden trigger-term coverage.

DimensionReasoningScore

Specificity

Phrases like "convert SMILES to features", "ECFP, MACCS, descriptors, pretrained models (ChemBERTa)" list several concrete capabilities and concrete featurizer names. It sits above anchor 3 (only 1-2 actions) thanks to the enumerated specifics, but below anchor 5 because it is a noun inventory with essentially one action verb rather than a comprehensive list of distinct actions.

4 / 5

Completeness

The 'what' is clear ("Molecular featurization for ML (100+ featurizers)... convert SMILES to features"), but there is no 'Use when...' clause or equivalent explicit trigger guidance — only the purpose fragment "for QSAR and molecular ML". Per the judging guideline, a missing explicit trigger clause caps completeness at 3; this is weaker than anchor 4's example, which contains an explicit "Use when working with PDF files."

3 / 5

Trigger Term Quality

Natural terms a chemistry ML user would say are present: "SMILES", "QSAR", "ECFP", "MACCS", "ChemBERTa", "molecular ML", "descriptors". A few common synonyms are missing — "fingerprints"/"molecular fingerprints", "embeddings", and "RDKit" — which keeps it at anchor 4 rather than anchor 5's comprehensive synonym/extension coverage.

4 / 5

Distinctiveness Conflict Risk

Terms like "SMILES", "ECFP", "QSAR", "ChemBERTa", "molecular featurization" carve out a clear niche with distinct triggers and near-zero overlap risk with unrelated skills. It matches anchor 5's clear-niche example and is clearly better than anchor 4's "minor overlap risk" case.

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 (517 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

Path

backend/cli/skills/chemistry/molfeat/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.