CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

python

Python development with ruff, mypy, pytest - TDD and type safety

59

Quality

74%

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 ./skills/python/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

76%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 lean, highly actionable Python standards document: complete, executable configs and test examples with concrete good/bad patterns and no filler. Its main weakness is the absence of an explicit workflow — no TDD sequence or local verify loop tying the tools together, with validation only implicit in CI/pre-commit config.

Suggestions

Add a short 'Development workflow' section with an explicit ordered loop, e.g. write failing test → implement → `ruff check .` → `mypy src/` → `pytest`, to make the promised TDD process concrete.

Add a local verification checkpoint (e.g. 'run `pre-commit run --all-files` or the pytest unit gate before committing') so validation isn't only implicit in CI config.

Consider moving the full GitHub Actions and pre-commit YAML into referenced files with a one-line pointer each, keeping SKILL.md closer to an overview.

DimensionReasoningScore

Conciseness

The body is almost entirely prescriptive config and code with no explanations of concepts Claude already knows — "Use type hints on all function signatures", "Run `mypy --strict` in CI", then complete config blocks. Not 5 because the full GitHub Actions and pre-commit YAML blocks are bulk Claude could largely generate itself and could be trimmed or referenced, and the type-hints snippet uses an undefined `User`/`Any` placeholder; not 3 because there is no padding or over-explanation anywhere.

4 / 5

Actionability

Everything is copy-paste ready: a complete `[tool.ruff]/[tool.mypy]/[tool.pytest.ini_options]` pyproject block, a fully executable pytest test class with arrange/act/assert and a `pytest.raises` case, complete CI and pre-commit YAML, and a concrete bad/good dependency-injection comparison. Not 4 because the common cases are covered with specific, runnable artifacts rather than hints.

5 / 5

Workflow Clarity

Sections are well organized but there is no explicit development workflow: the description promises "TDD" yet the body contains no red/green/refactor sequence, and no 'after changes run ruff → mypy → pytest' loop with validation checkpoints — validation exists only implicitly inside the CI and pre-commit configs. Matches the 'sequence/checkpoints implicit' anchor; not 4 because there is no stated sequence of steps at all, only parallel standards.

3 / 5

Progressive Disclosure

A single-file skill (no references/, scripts/, or assets/ exist) with clearly headed, well-separated sections, each appropriately sized for the main file. Not 5 because at ~215 lines it exceeds the simple-skill threshold and the GitHub Actions and Pre-Commit sections are self-contained config blobs that could live in referenced files to keep SKILL.md as an overview; not 3 because nothing is buried and navigation between sections is easy.

4 / 5

Total

16

/

20

Passed

Description

61%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 the domain and concrete tooling but reads more like a tech-stack label than a capability description: it never states what the skill actually does with those tools. It also lacks any 'use when' trigger clause, which limits completeness and weakens trigger discoverability.

Suggestions

State concrete actions instead of naming the stack, e.g. "Lint, type-check, and test Python code with ruff, mypy, and pytest following TDD practices."

Add an explicit trigger clause to the description, e.g. "Use when working on Python files, pyproject.toml, or running the Python quality gate (ruff/mypy/pytest)."

Include natural trigger variations users would say — ".py", "pyproject.toml", "lint", "type checking" — to improve trigger term coverage.

DimensionReasoningScore

Specificity

"Python development" is a generic action phrase, but the concrete tool names ("ruff, mypy, pytest") and practices ("TDD and type safety") ground it. It names the domain and concrete elements but never states specific actions per tool, matching the '1-2 concrete actions, not comprehensive' anchor; not 4 because there is no list of specific actions like 'lint with ruff, type-check with mypy'.

3 / 5

Completeness

There is a reasonably clear 'what' (Python development with ruff/mypy/pytest, TDD, type safety) but the description contains no 'Use when...' clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. Not 4 because the 'when' is entirely absent from the description field rather than merely imprecise.

3 / 5

Trigger Term Quality

Includes natural terms users would say — "Python", "pytest", "mypy", "TDD", "type safety". Not 5 because common variations and file cues are missing (".py", "pyproject.toml", "lint", "type checking"); not 3 because the tool names themselves are natural user vocabulary, not jargon-only.

4 / 5

Distinctiveness Conflict Risk

"Python development with ruff, mypy, pytest" carves a clear Python-tooling niche that would not trigger for PDF, git, or other-language skills. Not 5 because it could mildly overlap with a generic testing or linting skill; not 3 because the named tools and TDD/type-safety framing make it mostly distinct.

4 / 5

Total

14

/

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

alinaqi/maggy

Path

skills/python/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.