CtrlK
BlogDocsLog inGet started
Tessl Logo

datamol

Pythonic wrapper around RDKit with simplified interface and sensible defaults. Preferred for standard drug discovery including SMILES parsing, standardization, descriptors, fingerprints, clustering, 3D conformers, parallel processing. Returns native rdkit.Chem.Mol objects. For advanced control or custom parameters, use rdkit directly.

64

Quality

79%

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

Fix and improve this skill with Tessl

tessl review fix ./backend/cli/skills/chemistry/datamol/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 body with real executable examples and genuine one-level-deep reference files. Its main weaknesses are duplication between the body and the reference bundle, and recapitulated workflows that pad the token budget without adding new information.

Suggestions

Replace the inline scaffold-splitting code in section 6 (and the repeated grouping logic in the SAR workflow) with a pointer to references/fragments_scaffolds.md, which already contains the same logic.

Trim or remove the 'Integration with Machine Learning' section — generic sklearn fit/predict usage is knowledge Claude already has and adds no datamol-specific value.

Consolidate the three 'Common Workflows' pipelines by referencing the already-shown building blocks instead of re-printing the Lipinski filter and pick_diverse calls verbatim.

DimensionReasoningScore

Conciseness

The body is code-heavy but noticeably redundant: the full scaffold-splitting logic appears in section 6 and again in the SAR workflow, the 'Common Workflows' pipelines recapitulate earlier sections (Lipinski filter, pick_diverse, viz), and the ML-integration section is generic sklearn usage Claude already knows.

3 / 5

Actionability

Nearly every section gives executable, copy-paste-ready code with real function signatures and parameter values (dm.to_mol("CCO"), dm.conformers.generate(mol, n_confs=50, rms_cutoff=0.5, minimize_energy=True, method='ETKDGv3')), with expected behaviors documented inline ('Returns None', 'Lower distance = higher similarity').

5 / 5

Workflow Clarity

Numbered core workflows (1-10) plus three end-to-end pipelines, with batch-operation validation shown (None checks, df[df['mol'].notna()], try/except in batch reactions, and a Troubleshooting section). Checkpoints are present but implicit rather than explicit validate-fix-retry loops, so it sits at the 4 anchor.

4 / 5

Progressive Disclosure

Each section clearly signals a real, one-level-deep reference file (all six referenced files exist) and a consolidated Reference Documentation index provides navigation. However, the 715-line body duplicates substantial content that also lives in the references (scaffold splitting, scaffold grouping), so content is not ideally split between overview and bundle.

4 / 5

Total

16

/

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, third-person description with concrete capability enumeration, an explicit return contract, and a clear boundary against using RDKit directly. Its only weakness is that the 'when' guidance is domain-level rather than phrased as concrete user triggers, and a few natural synonyms are absent.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ('SMILES parsing, standardization, descriptors, fingerprints, clustering, 3D conformers, parallel processing') plus a concrete return type ('Returns native rdkit.Chem.Mol objects'), giving comprehensive coverage of the library surface.

5 / 5

Completeness

Both 'what' (wrapper with capability list and return type) and 'when' ('Preferred for standard drug discovery') are present, plus an explicit exclusion boundary ('For advanced control or custom parameters, use rdkit directly'); the 'when' clause names a domain rather than concrete user-utterance trigger phrases, so it falls short of the 5 anchor.

4 / 5

Trigger Term Quality

Good coverage of natural domain terms (SMILES, drug discovery, descriptors, fingerprints, clustering), but misses common variations users would say such as 'molecules', 'cheminformatics', 'SDF', or 'similarity'.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (Pythonic RDKit wrapper for standard drug discovery) and explicitly distinguishes itself from the nearest sibling ('For advanced control or custom parameters, use rdkit directly'), minimizing conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

75%

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

Validation — 12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (716 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

relative_links

Relative link issues: 2 missing

Warning

Total

12

/

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.