CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

django-security

Django security best practices, authentication, authorization, CSRF protection, SQL injection prevention, XSS prevention, and secure deployment configurations.

Quality

63%

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-security/SKILL.md
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 body delivers concrete, mostly copy-paste-ready Django security code with good and bad examples, which is its main strength. However, it is a verbose ~590-line monolith with duplicated header/CSP sections, standard Django content Claude already knows, no ordered audit workflow with validation steps, and no use of reference files for topic detail.

Suggestions

Deduplicate the security-header/CSP material, which currently appears in three sections (Core Security Settings, XSS HTTP Headers, and Security Headers), and drop the boilerplate JavaScript cookie helper Claude can write itself.

Split topic-specific detail (API security/rate limiting, file upload validation, logging configuration) into one-level-deep reference files, keeping SKILL.md as an overview plus the quick checklist.

Add an ordered, verifiable workflow — e.g., a security-audit sequence starting with "python manage.py check --deploy" and stepping through settings, auth, and view-level checks with explicit validation at each step.

DimensionReasoningScore

Conciseness

The ~590-line body is noticeably padded: security-header and CSP settings and middleware appear in three separate sections ("Core Security Settings", XSS "HTTP Headers", and "Security Headers"), CSRF cookie settings are duplicated, a boilerplate JavaScript cookie-fetching function is inlined, and much of it restates standard Django settings and defaults Claude already knows. It matches anchor 2 ("several unnecessary explanations or padded sections") rather than 3, where only isolated tightening would be needed.

2 / 5

Actionability

Guidance is overwhelmingly concrete and mostly executable — full settings blocks, model/view code, DRF permission classes, throttling config, and file validators with GOOD/BAD contrasts. Minor gaps keep it below anchor 5: "ImproperlyConfigured" is raised without an import, the RBAC section redefines a second "User" model conflicting with the earlier custom-user example, and "Response" is used without import in the API view.

4 / 5

Workflow Clarity

Content is organized by topic with a "When to Activate" list and a closing checklist, but there is no sequenced multi-step process (e.g., an ordered security-audit workflow) and no validation checkpoints such as running "python manage.py check --deploy". The simple-skill exception does not apply (multi-topic, ~590 lines), so it sits at anchor 3: structure present, checkpoints missing.

3 / 5

Progressive Disclosure

There are no bundle files, and the entire reference material — API rate limiting, file-upload validation, logging config, RBAC — is inlined in SKILL.md rather than split into one-level-deep reference files. Clear section headers and the final checklist keep it above anchor 2's "minimal structure", matching anchor 3's "content that should be separate is inline".

3 / 5

Total

12

/

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 identifies a clear, distinctive niche with good natural trigger keywords, but it is a topic list rather than an action statement and completely lacks a "Use when..." trigger clause. Rewriting it as concrete third-person actions plus explicit activation scenarios would substantially improve it.

Suggestions

Rewrite as concrete third-person actions, e.g., "Configures Django production security settings, sets up authentication and role-based permissions, and audits Django apps for CSRF, SQL injection, and XSS vulnerabilities."

Add an explicit trigger clause, e.g., "Use when setting up Django authentication, hardening a Django app for production, deploying Django, or reviewing Django code for security issues."

Include natural synonyms users would say, such as "hardening", "permissions", "production settings", and "vulnerabilities", to broaden trigger coverage.

DimensionReasoningScore

Specificity

The description names specific security domains ("CSRF protection", "SQL injection prevention", "XSS prevention") but enumerates topics as nouns rather than concrete actions — it never states what the skill actually does (e.g., configure settings, audit code, review deployments). It sits between anchor 2 ("actions are minimal or generic") and anchor 3 ("names domain and 1-2 concrete actions"): the specific topic list lifts it above a bare domain mention, but no actions are described.

3 / 5

Completeness

The "what" is present as a clear topic inventory ("Django security best practices... secure deployment configurations") but the "when" is entirely absent — there is no "Use when..." clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. It is above anchor 2 because the "what" is specific rather than vague.

3 / 5

Trigger Term Quality

Good natural keyword coverage — "Django", "security", "authentication", "CSRF", "SQL injection", "XSS", and "deployment" are terms a user would naturally say when needing this skill. It falls short of anchor 5 because common synonyms and variations like "hardening", "permissions", "production settings", and "vulnerabilities" are missing.

4 / 5

Distinctiveness Conflict Risk

"Django security" is a well-scoped niche with distinct triggers, clearly distinguishable from generic security or other-framework skills. It is not a 5 because without a "when" clause it could still overlap with a general Django development or code-review skill.

4 / 5

Total

14

/

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 (594 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-security/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.