CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

python-test-updater

Updates Python test code to work with new versions of the code being tested. Use when Claude needs to: (1) Update tests after code changes, (2) Fix broken tests due to signature changes, (3) Update assertions to match new behavior, (4) Add test cases for new functionality, (5) Analyze code differences and their test impact, (6) Run tests and fix failures based on error messages. Takes old code, new code, and old tests as input, outputs updated tests that pass.

Quality

85%

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

SKILL.md
Quality
Evals
Security

Quality

Content

77%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-sequenced workflow with executable commands, complete before/after code examples, and a genuine run-diagnose-fix feedback loop. Its weaknesses are token efficiency and file structure: the same pattern examples appear three times across Step 4, 'Common Update Patterns', and 'Example Workflow', and that material duplicates references/test-update-patterns.md instead of deferring to it.

Suggestions

Keep one canonical set of change-type examples (Step 4) and remove the duplicated 'Common Update Patterns' and 'Example Workflow' sections, deferring the extra scenarios to references/test-update-patterns.md.

Trim filler checklist lines like 'Read the error carefully / Identify what's failing / Understand why it's failing' to single actionable directives.

Briefly state what scripts/analyze_code_diff.py outputs so the tool's result can be used without running it first.

DimensionReasoningScore

Conciseness

The body avoids explaining basics Claude already knows, but it repeats the same illustrative scenarios three times — Step 4 shows the added-parameter/return-dict/validation-rule/async transformations, 'Common Update Patterns' re-shows four of them, and 'Example Workflow' repeats the added-discount-parameter case again. There is also low-value padding such as 'Read the error carefully / Identify what's failing / Understand why it's failing'. This lands on anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened'): clearly above anchor 2's 'several unnecessary explanations or padded sections' of known concepts, but the duplication keeps it below anchor 4.

3 / 5

Actionability

Guidance is fully executable throughout: a concrete command ('python scripts/analyze_code_diff.py <old_file> <new_file>'), runnable pytest invocations, complete before/after Python snippets for every change type, and a defined output format. This matches anchor 5 ('fully executable; copy-paste ready code or commands; specific examples cover the common cases'); the only nit — the analyzer script's output is not described — is too minor to drop to anchor 4.

5 / 5

Workflow Clarity

The 8-step workflow is clearly sequenced and includes explicit validation checkpoints and a feedback loop: Step 6 'Run Tests' with pass criteria (no import/syntax/assertion failures), Step 7 'Fix Remaining Failures' with a categorize-diagnose-fix-re-run cycle keyed to real error messages, and Step 8 'Verify and Refine'. This matches anchor 5 ('clear sequence with explicit validation steps; feedback loops for error recovery'), not anchor 4 which tolerates missing checkpoints.

5 / 5

Progressive Disclosure

Bundle structure is real and referenced (scripts/analyze_code_diff.py is invoked in Step 2; references/test-update-patterns.md is linked with 'See test-update-patterns.md for detailed patterns'), but the ~520-line body inlines four full 'Common Update Patterns' and a full 'Example Workflow' that substantially duplicate the content already in references/test-update-patterns.md. That is anchor 3's 'content that should be separate is inline' — better organized than anchor 2's unstructured inline dump, but not anchor 4, where content is appropriately split with only minor placement gaps.

3 / 5

Total

16

/

20

Passed

Description

88%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 description in third-person voice that clearly states what it does, its input/output contract, and an explicit six-item 'Use when' trigger list. The main gaps are missing natural synonyms (pytest, unittest, unit tests) and slight overlap of a couple of listed uses with generic testing/debugging skills.

Suggestions

Add natural trigger synonyms such as 'pytest', 'unittest', 'unit tests', or 'test suite' so users who name the framework still match the skill.

Trim or sharpen the two broadest uses ('Add test cases for new functionality', 'Run tests and fix failures') to tie them explicitly to code changes, reducing overlap with generic test-authoring and debugging skills.

DimensionReasoningScore

Specificity

The description enumerates six concrete actions ("Update tests after code changes", "Fix broken tests due to signature changes", "Update assertions to match new behavior", "Add test cases for new functionality", "Analyze code differences and their test impact", "Run tests and fix failures based on error messages") and specifies the I/O contract ("Takes old code, new code, and old tests as input, outputs updated tests that pass"), giving comprehensive coverage of the skill's capabilities. It matches the anchor-5 example format ('Presentation creation, editing, and analysis. When Claude needs to... (1)...(4)...') rather than anchor 4, which allows 'minor gaps in coverage'.

5 / 5

Completeness

It explicitly answers both questions: "what" via "Updates Python test code to work with new versions of the code being tested... Takes old code, new code, and old tests as input, outputs updated tests that pass", and "when" via the explicit "Use when Claude needs to: (1)...(6)" clause with concrete trigger scenarios. This matches the anchor-5 example almost exactly ('Extract text and tables from PDF files... Use when working with PDF files or when the user mentions...'), and is clearly above anchor 4 where the 'when' is merely present but could be more specific.

5 / 5

Trigger Term Quality

Natural user phrases like "update tests", "fix broken tests", "signature changes", "assertions", and "error messages" are covered well, but common synonyms and specifics are missing — no mention of "pytest", "unittest", "unit tests", or "test suite", which a user would plausibly say. This sits between anchor 4 ('good keyword coverage; a few natural terms missing') and anchor 5 ('comprehensive coverage... including synonyms and file extensions'), and the missing framework names keep it from a 5.

4 / 5

Distinctiveness Conflict Risk

The core niche is clear and distinct — updating existing tests in response to code changes, with triggers like "fix broken tests due to signature changes" — but two of the enumerated uses ("Add test cases for new functionality", "Run tests and fix failures based on error messages") overlap with general test-writing and debugging skills. This fits anchor 4 ('mostly distinct; minor overlap risk with closely related skills') better than anchor 5, whose example has triggers with no such overlap.

4 / 5

Total

18

/

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

skill_md_line_count

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

Warning

Total

15

/

16

Passed

Repository

ArabelaTso/Skills-4-SE

Path

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