CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

jupyter-notebook

Iterative Python via live Jupyter kernel (hamelnb).

52

Quality

66%

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 ./optional-skills/data-science/jupyter-notebook/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.

The body is a strong operational guide: concrete, copy-paste-ready commands throughout, honest hard-won gotchas (argument ordering, xsrf flag, zmq fallback), and a clear setup-to-workflow sequence with error-recovery paths. Remaining gaps are small: the scratch .ipynb content is never shown, server startup is not verified, and the troubleshooting detail could be split out.

Suggestions

Include the actual minimal .ipynb JSON for the scratch notebook so the setup step is fully copy-paste ready.

Add a post-startup check (e.g. re-run `uv run "$SCRIPT" servers --compact` or curl the /api/status endpoint) instead of relying on `sleep 3`.

Consider moving the long troubleshooting tips (websocket/zmq and xsrf details) into a references/TROUBLESHOOTING.md to slim the main file.

DimensionReasoningScore

Conciseness

The body is almost entirely operational specifics — commands, flags, gotchas — with no explanation of concepts Claude already knows. Minor trims exist (e.g. "State persists across execute calls. Variables, imports, objects all survive." is partially redundant), fitting 'Efficient; minor instances of over-explanation that could be trimmed' rather than the fully lean anchor.

4 / 5

Actionability

Nearly every step is a copy-paste-ready command (`uv run "$SCRIPT" execute --path ... --code ... --compact`, the curl session-creation call, the $'...' multi-line example). The one gap: "Write a minimal .ipynb JSON file with one empty code cell" does not provide the actual JSON, so a required setup artifact must be constructed blind — 'concrete code or commands with minor gaps'.

4 / 5

Workflow Clarity

The sequence is clear (prerequisites → check for running server → start server → create session → execute/inspect → optional restart-run-all verification) with strong error-recovery loops (timeout→retry, websocket→zmq fallback, reading ename/evalue). Minor validation gaps keep it below the top anchor: no check that the server actually came up after `sleep 3`, and no confirmation that the curl session creation succeeded.

4 / 5

Progressive Disclosure

Single-file skill (no references/scripts/assets bundle exists) with well-organized sections, a tool-comparison table, and clear headers; navigation is easy. The ~40-line 'Practical Tips' troubleshooting block (especially tips 9–10) is borderline content that could live in a separate reference file, fitting 'Good structure; most content is appropriately placed; minor organization gaps'.

4 / 5

Total

16

/

20

Passed

Description

45%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 names a genuine niche (stateful Python via a live Jupyter kernel) but is too terse to work as a trigger: it lists no concrete capabilities and gives no "use when" guidance, so it relies on the reader already knowing what the skill does. It reads more like a tagline than a routing description.

Suggestions

Add an explicit trigger clause, e.g. "Use when iterating on Python code, exploring APIs, inspecting DataFrames, or when state must persist across executions".

List 2-3 concrete actions in the description (execute code with persistent state, inspect live variables, edit notebook cells) instead of the single characterization "Iterative Python".

Include natural synonyms users would say — "Jupyter notebook", "REPL", "DataFrame" — so the skill triggers on those phrases.

DimensionReasoningScore

Specificity

The description "Iterative Python via live Jupyter kernel (hamelnb)" names the domain (iterative Python, Jupyter kernel) but offers no concrete actions — no verbs like "execute code", "inspect variables", or "edit cells". It matches the anchor 'Names the domain but actions are minimal or generic' (cf. "Processes PDF files").

2 / 5

Completeness

The 'what' is present but terse ("Iterative Python via live Jupyter kernel"), while any 'when' guidance is entirely absent — no "Use when..." clause or equivalent. Per the judging guideline, a missing 'Use when' clause caps completeness at 3; the anchor 'Has a clear what but when is missing or only weakly implied' fits.

3 / 5

Trigger Term Quality

"Iterative Python", "live Jupyter kernel", and "hamelnb" are relevant keywords, and "Python"/"Jupyter" are terms users naturally say. However, common variations are missing: "notebook", "REPL", "dataframe", "explore", "state persists" — matching 'Some relevant keywords but missing common variations or synonyms'.

3 / 5

Distinctiveness Conflict Risk

"via live Jupyter kernel (hamelnb)" carves out a specific mechanism, but the leading phrase "Iterative Python" is broad and could overlap with generic Python-execution skills (the body's comparison table shows execute_code is a close rival, but that differentiation is not in the description). This fits 'Somewhat specific but could still overlap with similar skills' better than the minor-overlap anchor above, since no trigger guidance limits when it fires.

3 / 5

Total

11

/

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

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository

NousResearch/hermes-agent

Path

optional-skills/data-science/jupyter-notebook/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.