CtrlK
BlogDocsLog inGet started
Tessl Logo

tdg-personal/django-tdd

Django testing strategies with pytest-django, TDD methodology, factory_boy, mocking, coverage, and testing Django REST Framework APIs.

54

Quality

54%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

Quality

Discovery

47%

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 reads as a comma-separated list of topics rather than a functional skill description. While it includes excellent trigger terms that Django developers would naturally use, it lacks concrete action verbs describing what the skill does and entirely omits a 'Use when...' clause to guide skill selection. Restructuring it with explicit actions and trigger conditions would significantly improve its effectiveness.

Suggestions

Add a 'Use when...' clause, e.g., 'Use when the user asks about writing Django tests, setting up pytest-django, creating test factories, mocking dependencies, or testing DRF API endpoints.'

Replace the topic list with concrete actions, e.g., 'Writes and structures Django test suites using pytest-django, creates test data with factory_boy, mocks external dependencies, measures code coverage, and tests Django REST Framework API endpoints using TDD methodology.'

Use third-person verb phrases to start the description (e.g., 'Guides Django testing strategies...' or 'Implements Django test suites...') to make the capability more actionable.

DimensionReasoningScore

Specificity

Names the domain (Django testing) and lists several tools/concepts (pytest-django, TDD, factory_boy, mocking, coverage, DRF API testing), but doesn't describe concrete actions like 'write test cases', 'generate fixtures', or 'measure code coverage'. It reads more like a topic list than a capability description.

2 / 3

Completeness

Describes the 'what' at a topic level but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' itself is weak (topic listing rather than actions), warranting a 1.

1 / 3

Trigger Term Quality

Includes strong natural keywords users would say: 'Django testing', 'pytest-django', 'TDD', 'factory_boy', 'mocking', 'coverage', 'Django REST Framework', 'APIs'. These are terms developers naturally use when seeking help with Django testing.

3 / 3

Distinctiveness Conflict Risk

The Django + testing focus is fairly specific, but it could overlap with general Python testing skills or Django development skills. The mention of specific tools like pytest-django and factory_boy helps, but without explicit trigger boundaries it could still conflict with broader Django or testing skills.

2 / 3

Total

8

/

12

Passed

Implementation

42%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The skill provides comprehensive, executable Django testing examples covering models, views, APIs, mocking, and integration tests — its actionability is its strongest quality. However, it is far too verbose for a skill file, explaining concepts Claude already knows and including every pattern inline rather than using progressive disclosure. The content would benefit enormously from being split into a concise overview with references to detailed sub-files.

Suggestions

Reduce the SKILL.md to a concise overview (~100 lines) covering setup essentials and key patterns, then move detailed examples (factory definitions, model tests, API tests, mocking, integration tests) into separate referenced files like FACTORIES.md, API_TESTING.md, etc.

Remove all docstrings and comments that restate the obvious (e.g., '"""Factory for User model."""', '"""Test User model."""', '# Step 1: RED - Write failing test') — Claude doesn't need these.

Cut the DO/DON'T best practices section entirely or reduce to 3-4 non-obvious project-specific rules; generic advice like 'Don't test Django internals' is already known.

Add explicit validation steps to the TDD workflow section — e.g., 'Run pytest after each change, check coverage delta, verify no regressions before committing.'

DimensionReasoningScore

Conciseness

Extremely verbose at ~500+ lines. Explains basic concepts Claude already knows (what TDD is, what factories are, basic pytest usage). Docstrings like '"""Factory for User model."""' and '"""Test User model."""' add zero value. The DO/DON'T section restates common testing wisdom. Much of this could be condensed to 1/4 the size.

1 / 3

Actionability

Provides fully executable, copy-paste ready code examples throughout: pytest.ini configuration, test settings, conftest.py fixtures, factory definitions, model tests, view tests, API tests, mocking patterns, and integration tests. All code is concrete and complete.

3 / 3

Workflow Clarity

The TDD Red-Green-Refactor cycle is mentioned but only superficially demonstrated. The integration test shows a clear multi-step flow. However, there are no explicit validation checkpoints or feedback loops for the overall testing workflow (e.g., what to do when tests fail, how to iterate on coverage gaps).

2 / 3

Progressive Disclosure

Monolithic wall of text with no references to external files. All content is inline — factory setup, model tests, view tests, API tests, mocking, integration tests, and best practices are all in one massive document. This should be split into separate reference files (e.g., FACTORIES.md, API_TESTING.md) with the SKILL.md serving as an overview.

1 / 3

Total

7

/

12

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.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

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

Warning

frontmatter_unknown_keys

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

Warning

Total

9

/

11

Passed

Reviewed

Table of Contents