CtrlK
BlogDocsLog inGet started
Tessl Logo

dmr-from-drf

Migrate an existing Django API from Django REST Framework to django-modern-rest while preserving routes, request/response contracts, auth, permissions, throttling, pagination, and test coverage. Use when replacing APIView/ViewSet/GenericAPIView and DRF serializers/routers with dmr controllers/routers and typed DTOs.

65

Quality

77%

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 ./dmr/.agents/skills/dmr-from-drf/SKILL.md

The canonical home for this skill is dmr-from-drf in wemake-services/django-modern-rest

SKILL.md
Quality
Evals
Security

Quality

Content

60%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 provides a well-sequenced, gated migration workflow with strong validation checkpoints and a genuine, well-signaled reference file, and it wastes no tokens explaining known concepts. Its main weaknesses are redundancy — the same preservation requirements are repeated across four sections — and the absence of any executable code or command examples for the actual DRF-to-DMR translation.

Suggestions

Consolidate the preservation requirements repeated across 'Migration Policy', Workflow step 9, 'Translation Rules', and the 'Output Checklist' into a single authoritative section referenced from the others to reduce token redundancy.

Add one minimal executable example of a migrated endpoint (e.g., a DRF ModelViewSet before/after as a DMR Controller + Router wiring, or a validate_responses settings snippet) so the translation steps have copy-paste-ready grounding.

Make the finish gate an explicit feedback loop: 'if linters or tests fail, fix the slice and re-run the repository-native CI entrypoints before marking it done' rather than only listing pass conditions.

DimensionReasoningScore

Conciseness

The body is imperative and free of concept explanations Claude already knows, but the preservation requirements are restated roughly four times across 'Migration Policy', Workflow step 9, 'Translation Rules', and the 'Output Checklist' (e.g., auth/permission/throttle preservation appears in all four), which is tightening-eligible redundancy rather than lean token efficiency.

3 / 5

Actionability

Guidance names concrete constructs (Body[...], Query[...], Controller[...], ResponseSpec, validate_responses, the local mapping file) but contains no executable code or commands for the migration itself — no example of a migrated controller, DMR router wiring, or settings snippet — leaving key implementation details deferred to the external docs link, which fits anchor 3's 'concrete guidance but incomplete'.

3 / 5

Workflow Clarity

The 12-step sequence is clear with explicit validation checkpoints (pre-code mismatch gate in step 3, required error-strategy gate in step 4, per-slice CI validation in step 11, and a finish gate in step 12 plus a checklist), but there is no explicit failure-recovery loop (e.g., 'if tests fail, fix and re-run'), keeping it just below the anchor 5 example.

4 / 5

Progressive Disclosure

The single bundle reference (references/drf-to-dmr-map.md) is real, one level deep, and clearly signaled with a link under 'Required docs', and the body is well sectioned; however, a substantial amount of detail (Translation Rules, Migration Pitfalls, and the repeated preservation lists) is inlined in SKILL.md that could be split out, matching anchor 4's 'good structure, minor organization gaps'.

4 / 5

Total

14

/

20

Passed

Description

95%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 strong: it names a concrete, well-scoped migration task, enumerates the preserved contracts comprehensively, and includes an explicit 'Use when' clause with the exact DRF constructs that would trigger it. Its only limitation is relying on a single action verb rather than listing several distinct actions, which slightly caps specificity.

DimensionReasoningScore

Specificity

The description gives one primary action ('Migrate an existing Django API from Django REST Framework to django-modern-rest') with a comprehensive enumeration of the preserved contract surface ('routes, request/response contracts, auth, permissions, throttling, pagination, and test coverage'), which goes beyond anchor 4's minor gaps but lacks the multiple distinct action verbs of the anchor 5 example.

4 / 5

Completeness

Both 'what' (migrate a Django API from DRF to django-modern-rest while preserving enumerated contracts) and 'when' ('Use when replacing APIView/ViewSet/GenericAPIView and DRF serializers/routers with dmr controllers/routers and typed DTOs') are explicitly stated with concrete trigger phrases, matching the anchor 5 example structure.

5 / 5

Trigger Term Quality

It covers the full framework name ('Django REST Framework'), the acronym ('DRF'), the exact class names a user would naturally mention when requesting this migration ('APIView/ViewSet/GenericAPIView', 'DRF serializers/routers'), and the target framework name, providing comprehensive synonym and keyword coverage.

5 / 5

Distinctiveness Conflict Risk

The description occupies a clear niche — migrating Django APIs specifically from DRF to django-modern-rest — with distinct trigger class names, making conflict with any other skill extremely unlikely.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
wemake-services/django-modern-rest
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.