CtrlK
BlogDocsLog inGet started
Tessl Logo

smiles-de-salter

Analyze data with `smiles-de-salter` using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

39

Quality

49%

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 ./scientific-skills/Data Analysis/smiles-de-salter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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 chemically substantive parts (parameters, input/output formats, salt-identification rules, worked examples) are solid and mostly executable, but they are buried in generic hub boilerplate that roughly doubles the file's length, include one bogus copied-from-another-domain audit command, and contradict themselves on dependencies. Consolidating the five overlapping command sections, adding an output-validation step, and either deleting or offloading the process boilerplate to references/ would substantially improve the skill.

Suggestions

Cut the generic boilerplate sections (Output Requirements, Response Template, Inputs to Collect, Output Contract, Validation and Safety Rules, Risk Assessment, Security Checklist, Lifecycle Status, Evaluation Criteria) or move them to a reference file — they are the main conciseness drag and are not task-specific.

Fix the broken command guidance: remove the clinical-note --input string from 'Audit-Ready Commands', add the '-s' single-string flag to the parameter table, and merge Quick Check / Audit-Ready Commands / Usage / Example Usage into one command section.

Add an explicit post-run validation step to the workflow (e.g., verify output row count matches input and spot-check desalted SMILES against the examples) — batch processing without output validation currently caps workflow clarity at 3.

DimensionReasoningScore

Conciseness

The ~310-line body carries substantial padding: ten-plus hub-boilerplate sections ('Output Requirements', 'Response Template', 'Inputs to Collect', 'Output Contract', 'Risk Assessment', 'Security Checklist', 'Lifecycle Status', 'Evaluation Criteria') that add no task-specific knowledge, self-referential filler ('See `## Usage` above', 'See `## Workflow` above'), and contradictory dependency statements (Dependencies list rdkit >= 2022.03.1, 'Prerequisites' says no packages required, while 'Install Dependencies' says pip install rdkit pandas). This matches 'noticeably verbose; several unnecessary explanations or padded sections'; it exceeds anchor 3's 'some unnecessary explanation' because whole sections are removable without information loss.

2 / 5

Actionability

The core guidance is executable: a parameter table, a single-string invocation with expected output ("python scripts/main.py -s \"CCO.[Na+]\""), input/output CSV format examples, worked salt examples, and install commands. Gaps keep it below 5: the '-s' flag never appears in the parameter table, the 'Usage > Command Line' example is only a commented-out line, and the 'Audit-Ready Commands' section passes a clinical-note sentence as --input ('Audit validation sample with explicit symptoms, history, assessment...') which contradicts the table defining --input as a file path — foreign boilerplate, not a runnable command.

4 / 5

Workflow Clarity

Sequences exist ('Workflow', 'Processing Logic', 'Example run plan') with a py_compile smoke check and an error-handling section, but this is a batch file-processing operation and no workflow step validates the output (e.g., row-count check or spot-checking desalted SMILES), which caps workflow clarity at 3 per the batch-operation guideline. Command guidance is also fragmented across five overlapping sections (Quick Check, Audit-Ready Commands, Usage, Example Usage, Processing Logic).

3 / 5

Progressive Disclosure

Sections provide structure and the bundle files exist (scripts/main.py, references/runtime_checklist.md), but the body never names or links runtime_checklist.md — it only gestures generically ('Reference guidance: `references/` contains supporting rules') — while large amounts of boilerplate that belongs in a separate reference (risk tables, security checklists, lifecycle metadata, response templates) are inlined in SKILL.md. This matches anchor 3: 'references present but not clearly signaled; content that should be separate is inline'.

3 / 5

Total

12

/

20

Passed

Description

25%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 generic process boilerplate: it names the tool but never states what the skill actually does to SMILES strings, includes no natural trigger terms a chemistry user would say, and omits any 'use when' guidance. A rewrite stating the concrete capability (e.g., 'Remove salt/counterion components from dot-disconnected SMILES strings, retaining the largest active core') plus explicit triggers would move it up sharply.

Suggestions

State the concrete capability in the description itself, e.g. 'Removes salt and counterion fragments from dot-disconnected SMILES strings (e.g. Na+, Cl-, citrate), retaining the largest active core' — this fixes both specificity and trigger_term_quality.

Add an explicit trigger clause: 'Use when processing chemical structure files, cleaning salt/counterion forms, or standardizing SMILES for analysis (.csv, .tsv, .smi)'.

Drop the process buzzwords ('reproducible workflow, explicit validation, structured outputs, review-ready interpretation') which are padding shared by any data-analysis skill and create conflict risk with other data skills.

DimensionReasoningScore

Specificity

The only stated action is the generic "Analyze data"; the rest ("reproducible workflow, explicit validation, and structured outputs for review-ready interpretation") is process buzzword padding with no SMILES-specific capability such as removing salt ions or retaining the active core. It names a domain only via the tool identifier, matching 'names the domain but actions are minimal or generic' rather than anchor 1 (some domain is named) or anchor 3 (no concrete chemical-structure action is listed).

2 / 5

Completeness

The 'what' is vague ("Analyze data with `smiles-de-salter`" plus boilerplate) and there is no 'when' at all — no 'Use when...' clause or equivalent trigger guidance, which also caps this dimension at 3 per the guidelines. This fits anchor 2 ('has a vague what and no when') rather than anchor 3, which requires a clear statement of what the skill does.

2 / 5

Trigger Term Quality

No natural user phrases appear: "SMILES", "salt", "counterion", "de-salt", "chemical structure", or file extensions (.csv, .smi) are all absent, leaving only the generic keyword "Analyze data" and the tool name. This matches 'one or two generic keywords; missing the natural phrases users say' and falls well short of anchor 3's 'some relevant keywords'.

2 / 5

Distinctiveness Conflict Risk

"Analyze data ... reproducible workflow ... structured outputs" is boilerplate that would equally describe virtually any data-analysis skill, and only the backticked tool name differentiates it. This matches 'very broad; high overlap risk with many similar skills'; it is not anchor 3 because the descriptive text itself carries no chemistry or SMILES distinctiveness.

2 / 5

Total

8

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository
aipoch/medical-research-skills
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.