CtrlK
BlogDocsLog inGet started
Tessl Logo

survival-curve-risk-table

Analyze data with `survival-curve-risk-table` using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

40

Quality

51%

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/survival-curve-risk-table/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

56%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 contains genuinely useful, accurate task content (CLI parameters, data formats, journal styles, quality checklists) that matches the real script API, but it is wrapped in ~150 lines of generic template boilerplate and duplicated sections. It is a monolithic 530-line document that barely uses its own references directory.

Suggestions

Cut the generic template sections (Key Features, Implementation Details, Output Requirements, Response Template, Inputs to Collect, Output Contract, Validation and Safety Rules, Lifecycle Status) — they are skill-agnostic filler; consolidate the two duplicate dependency listings.

Make CLI examples copy-paste executable by removing the "# Example invocation:" comment prefix, and drop the hardcoded `cd "20260318/scientific-skills/..."` path.

Link references/runtime_checklist.md by name, and move the journal style configuration JSON, journal-specific notes, and FAQ into reference files to shrink SKILL.md to an overview.

DimensionReasoningScore

Conciseness

The body runs ~530 lines with substantial template boilerplate ("Key Features", "Implementation Details", "Output Requirements", "Response Template", "Inputs to Collect", "Output Contract", "Validation and Safety Rules") that teaches Claude nothing skill-specific. There are also redundancies — two dependency listings (a "Dependencies" section listing both `pil` and `pillow`, plus a separate "Dependency Requirements" block) and broken self-references ("See `## Prerequisites` above" / "See `## Usage` above" pointing to sections that appear later or duplicate content). Genuine task content (parameter tables, style configs) is buried in the padding.

2 / 5

Actionability

Concrete, verified guidance dominates: `python -m py_compile scripts/main.py` is executable; CLI examples use flags that match the actual argparse surface in scripts/main.py (--input, --time-col, --event-col, --group-col, --style, --time-points, --combine, --km-plot); and the Python API example matches the real `RiskTableGenerator` class (main.py:41). The gap keeping it below 5: every CLI example is commented out ("# Example invocation:" prefix) rather than copy-paste runnable, and the Example Usage block begins with a bogus hardcoded path (`cd "20260318/scientific-skills/..."`).

4 / 5

Workflow Clarity

A clear sequence exists with explicit checkpoints: the Workflow section's 5 steps include validation ("stop early if the task would require unsupported assumptions") and a fallback path ("If execution fails ... switch to the fallback path and state exactly what blocked full completion"); "Quick Check" supplies a concrete pre-execution validation command; and "Error Handling" defines failure reporting per failure mode. Minor gaps: three overlapping workflow descriptions ("Example run plan", "Workflow", and an unlinked references/runtime_checklist.md) dilute which path to follow, and validation steps are described generically rather than woven into the CLI usage sequence.

4 / 5

Progressive Disclosure

Section headers exist and the body points to real bundle files (scripts/main.py, references/), but it is a ~530-line monolith: journal style configs, the algorithm description, FAQ, journal-specific notes, lifecycle status, and security checklists are all inlined content that belongs in reference files. The single reference file (references/runtime_checklist.md) is never named or linked — the body says only "Reference material available in `references/`" — so references are present but not clearly signaled.

3 / 5

Total

13

/

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 boilerplate that could describe almost any data-analysis skill. It omits every domain-specific term (Kaplan-Meier, survival curve, number at risk, journal standards) that would let a model or user select this skill correctly, and it contains no use-when trigger guidance.

Suggestions

Rewrite the description around concrete capabilities, e.g. "Adds a 'Number at risk' table beneath Kaplan-Meier survival curves, aligned to the curve's time axis, in NEJM/Lancet/JCO journal styles; exports PNG/PDF/SVG combined figures. Use when generating publication-ready survival plots or risk tables for clinical trial reports."

Include natural trigger terms users would actually say: "survival curve", "Kaplan-Meier", "KM plot", "number at risk", "risk table".

Remove process buzzwords ("reproducible workflow", "explicit validation", "review-ready interpretation") that add no selective information and inflate token cost.

DimensionReasoningScore

Specificity

The only action phrase is "Analyze data"; the rest — "reproducible workflow, explicit validation, and structured outputs for review-ready interpretation" — is process buzzwords describing how work is done, not what the skill does. It never mentions its actual capabilities (adding 'number at risk' tables to Kaplan-Meier curves, journal-standard figures), so it names the domain only minimally and keeps actions generic.

2 / 5

Completeness

The "what" is vague ("Analyze data ... using a reproducible workflow") and the "when" is entirely absent — there is no "Use when..." clause or equivalent trigger guidance. This matches the anchor for a vague what with no when, and the rubric's cap for missing trigger guidance applies.

2 / 5

Trigger Term Quality

No domain keywords a user would naturally say appear: "survival curve", "Kaplan-Meier", "KM plot", "number at risk", "risk table" are all absent. The description offers only the generic phrase "Analyze data" plus the skill name as technical jargon, so common variations and synonyms are entirely missing.

2 / 5

Distinctiveness Conflict Risk

"Analyze data ... reproducible workflow, explicit validation, structured outputs" describes virtually every data-analysis skill, creating high overlap risk. Only the embedded skill name provides any distinctiveness; the trigger text itself would not distinguish this skill from any generic analysis skill.

2 / 5

Total

8

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (538 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

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.