CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

django-storages-s3

Use when configuring Django to store static and media files on AWS S3 with django-storages. Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py. Configures the Django 4.2+ STORAGES dict, public/private custom backends, presigned GET/POST URLs, IAM policies, and S3 mocking for tests. Trigger terms: django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic, AWS_STORAGE_BUCKET_NAME.

74

Quality

93%

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

86%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.

Highly actionable content: a copy-paste-ready core example, a grep-driven audit checklist, and crisp MUST DO/MUST NOT constraints, with details correctly pushed into a well-signaled, one-level-deep reference bundle. The minor gaps are a slightly redundant keyword list and the absence of explicit error-recovery feedback loops in the workflow.

DimensionReasoningScore

Conciseness

The body is dense and constraint-driven — no explanations of concepts Claude already knows (no 'S3 is object storage' padding), and the minimal example is fully load-bearing. Minor trimmable parts remain: the 'Knowledge Reference' keyword list largely duplicates the description's trigger terms, and the doc-link/related-skills sections add little operational value. That matches anchor 4 (efficient, minor instances that could be trimmed) rather than 5 (every token earns its place).

4 / 5

Actionability

The settings.py example is copy-paste ready and complete (env-loaded credentials, full STORAGES dict with OPTIONS, MEDIA_URL/STATIC_URL), the models.py snippet is executable, the install command is exact ("pip install django-storages[s3] boto3"), and the audit checklist gives literal grep commands. This matches anchor 5 (fully executable, copy-paste ready, covers the common cases) rather than 4, since even edge behaviors like the April-2023 ACL cutoff and file_overwrite cleanup are handled with concrete instructions.

5 / 5

Workflow Clarity

The Core Workflow is a clear 5-step sequence ending in an explicit verification step ("Verify & test — Run collectstatic, confirm uploads land in S3, and mock S3 in tests"), and the 8-item audit checklist adds per-check validation, so the destructive/batch cap does not apply since verification is present. It falls short of anchor 5 only because there is no error-recovery feedback loop (e.g., what to check when collectstatic or a presigned URL fails), matching anchor 4 (clear sequence, most checkpoints, minor gaps).

4 / 5

Progressive Disclosure

The Reference Guide table signals each bundle file with a topic and an explicit 'Load When' condition, and all four referenced paths (references/configuration.md, custom-backends.md, presigned-urls.md, testing-storages.md) exist in the bundle and contain no nested second-level references. The inline content is exactly the overview-plus-minimal-example that belongs in SKILL.md, matching anchor 5 (clear overview, well-signaled one-level-deep references, easy navigation).

5 / 5

Total

18

/

20

Passed

Description

96%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: concrete and comprehensive on capabilities, with explicit 'Use when'/'Invoke when' clauses and a rich, natural trigger-term list. The only weakness is that a few generic trigger terms (S3, boto3, CloudFront) could collide with adjacent AWS/devops skills.

DimensionReasoningScore

Specificity

Lists multiple concrete, comprehensive actions: "Configures the Django 4.2+ STORAGES dict, public/private custom backends, presigned GET/POST URLs, IAM policies, and S3 mocking for tests" — this covers the full task surface of the domain with no vague filler. It matches anchor 5 (multiple specific concrete actions, comprehensive coverage) rather than 4, since no significant capability of django-storages configuration is missing.

5 / 5

Completeness

Both questions are answered explicitly and concretely: what it does ("Configures the Django 4.2+ STORAGES dict, public/private custom backends, presigned GET/POST URLs, IAM policies, and S3 mocking for tests") and when to use it ("Use when configuring Django to store static and media files on AWS S3... Invoke when working with the STORAGES setting, S3 buckets, presigned URLs, CloudFront, or boto3-backed file storage in settings.py"). This matches anchor 5 exactly — explicit what AND when with concrete trigger phrases — and exceeds anchor 4 (where 'when' could be more specific).

5 / 5

Trigger Term Quality

The explicit trigger list — "django-storages, S3, boto3, S3Boto3Storage, STORAGES, presigned URL, CloudFront, media files, collectstatic, AWS_STORAGE_BUCKET_NAME" — covers the natural phrases a user would actually say ("S3", "media files", "collectstatic", "presigned URL") plus library-specific synonyms and exact setting names. It sits between anchor 5 (comprehensive natural terms including synonyms) and anchor 4; the inclusion of the concrete setting name AWS_STORAGE_BUCKET_NAME that users paste when debugging pushes it to 5.

5 / 5

Distinctiveness Conflict Risk

The niche is clear — Django file storage on S3 via django-storages — with distinctive triggers like "S3Boto3Storage" and "STORAGES" that no other skill would claim. However, bare trigger terms "S3", "boto3", and "CloudFront" overlap with general AWS/devops skills (the skill itself lists a related devops-engineer that provisions S3 buckets and CloudFront), which is exactly the 'minor overlap risk with closely related skills' of anchor 4 rather than the 'minimal conflict risk' of anchor 5.

4 / 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

Jeffallan/claude-skills

Path

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