CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

django-tdd

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

Quality

65%

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/django-tdd/SKILL.md

The canonical home for this skill is django-tdd in affaan-m/ECC

SKILL.md
Quality
Evals
Security

Quality

Content

50%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 skill body is highly actionable, with concrete executable configuration, fixtures, factories, and test examples covering the full Django testing stack. However, it is noticeably verbose for a SKILL.md — inlining ~730 lines of largely standard patterns with duplication and no reference files — and its TDD workflow lacks executable validation checkpoints.

Suggestions

Move the standard example suites (model, view, serializer, and API tests) into references/ files, keeping SKILL.md as a lean overview of project-specific conventions (pytest.ini, test settings, conftest fixtures, factory patterns).

Remove duplication: define api_client only in conftest.py and drop the duplicate fixture inside TestProductAPI; merge the two inconsistent tests/test_models.py blocks.

Make the TDD cycle executable: show the actual commands (e.g. "pytest tests/test_models.py -x" to confirm RED) with a checkpoint before the GREEN step, and fix undefined fixtures (TagFactory, category, order) so examples run as written.

DimensionReasoningScore

Conciseness

The ~730-line body inlines complete example suites for standard model, view, serializer, and API testing that largely restate patterns Claude already knows, with duplication such as two different "tests/test_models.py" blocks (lines 214 and 242) and an api_client fixture defined both in conftest.py and again inside TestProductAPI. This matches "noticeably verbose; several unnecessary sections"; it avoids a 1 because prose is minimal and nearly all content is code rather than padded explanation.

2 / 5

Actionability

Nearly all guidance is executable code: a complete pytest.ini, test settings module, conftest fixtures, factory definitions, and runnable commands ("pytest --cov=apps --cov-report=html --cov-report=term-missing"). Minor gaps keep it from a 5: TagFactory, a category fixture, and an order fixture are used but never defined, and "authenticated_api_client.user" would not exist on the APIClient the fixture returns.

4 / 5

Workflow Clarity

The Red-Green-Refactor cycle is sequenced, but its GREEN and REFACTOR steps are placeholder comments ("# Create User model or factory"), and no command or checkpoint verifies the RED failure before implementing. Sequence present with implicit checkpoints matches anchor 3; it is not a 2 because setup ordering (pytest config → settings → conftest → factories) is coherent and sections are logically ordered, and not a 4 because no explicit run-and-validate loop exists.

3 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so all content lives in SKILL.md. Section headers are clear and aid navigation, but bulk material — factory definitions, the full API test suite, coverage configuration — that belongs in one-level-deep reference files is inlined, matching "content that should be separate is inline" at anchor 3 rather than the header-less monolith of anchor 2.

3 / 5

Total

12

/

20

Passed

Description

66%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 specific and tool-rich, clearly scoping Django testing with pytest-django, factory_boy, and DRF, and carries good natural trigger keywords with low conflict risk. Its main weakness is the complete absence of a 'Use when...' trigger clause, which caps completeness at 3 and leaves activation guidance implicit.

Suggestions

Add an explicit trigger clause, e.g. "Use when writing or running tests for Django projects, setting up pytest-django, building test fixtures with factory_boy, or testing DRF serializers and API views."

Convert topic nouns into concrete verb-led actions, e.g. "Write and run Django tests with pytest-django, build test data with factory_boy, mock external services, and enforce coverage targets."

DimensionReasoningScore

Specificity

Lists several specific capabilities with named tools: "pytest-django, TDD methodology, factory_boy, mocking, coverage, and testing Django REST Framework APIs" — more than the 1-2 concrete actions of anchor 3, though phrased as topic nouns rather than verb-led actions, so it does not reach the comprehensive action coverage of a 5.

4 / 5

Completeness

The 'what' is clear — Django testing strategies with named tools — but the description contains no "Use when..." clause or equivalent explicit trigger guidance, which per the rubric guidelines caps completeness at 3. It is not a 2 because the 'what' is specific and unambiguous, not vague.

3 / 5

Trigger Term Quality

Contains natural terms users would say when needing this skill: "Django testing", "pytest-django", "TDD", "factory_boy", "mocking", "coverage", "Django REST Framework". A few natural variations are missing ("unit tests", "test-driven development" spelled out, "fixtures"), keeping it below the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

The pytest-django + factory_boy + DRF combination carves a mostly distinct niche with minor overlap risk against a generic pytest or generic Django skill. It is not a 5 because no explicit trigger phrases delineate the boundary from those closely related skills.

4 / 5

Total

15

/

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 (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

14

/

16

Passed

Repository

valeriibeck-star/claude-skills

Path

skills/django-tdd/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.