security-first-validator SKILL.md skillA

security-first-validator from smicolon/ai-kit is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add smicolon/ai-kit/security-first-validator@git:20260215.92455aa

Pins git:20260215.92455aa in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
smicolon/ai-kit
Path
packs/django/skills/security-first-validator/SKILL.md
Versions recorded
1
Latest version
git:20260215.92455aa, committed Feb 15, 2026
Size
11,704 bytes
Repository stars
7
License
MIT

This skill should be used when the user asks to "create an API endpoint", "add a view", "write a viewset", "create a serializer", or when writing Django REST Framework code. Enforces security requirements (permissions, authentication, rate limiting).

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Security-First Validator

Enforces security requirements for all Django REST Framework API endpoints.

## Activation Triggers

This skill activates when:
- Creating API views or viewsets
- Creating serializers
- Mentioning "endpoint", "API", "view", "route"
- Writing DRF classes (APIView, ViewSet, Serializer)
- Creating URL patterns for APIs
- Discussing authentication or permissions

## Security Requirements (MANDATORY)

Every API endpoint MUST have:

### 1. Permission Classes (REQUIRED)

```python
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated

class UserViewSet(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated]  # ✅ REQUIRED
    # ...
```

### 2. Serializer Validation (REQUIRED)

```python
from rest_framework import serializers

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'email', 'first_name']
        # NO sensitive fields exposed ✅

    def validate_email(self, value):
        # Custom validation ✅
        if not value.endswith('@company.com'):
            raise serializers.ValidationError("Must use company email")
        return value
```
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add smicolon/ai-kit/security-first-validator@sha256:670f9e285dfcd944

The line at the top of this page pins the label git:20260215.92455aa, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_gdj7qfu55e5yv6pe.svg)](https://markdownregistry.com/a/art_gdj7qfu55e5yv6pe)

5 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on Feb 15, 2026.

versioncommittedcommitsizeaudit
git:20260215.92455aa latest2026-02-15 92455aa 11,704 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (11704 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

smicolon/ai-kit · 7 stars · license MIT · pushed 2026-09-15 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_gdj7qfu55e5yv6pe
GET https://markdownregistry.com/api/v1/resolve?ref=smicolon/ai-kit/security-first-validator
GET https://markdownregistry.com/api/v1/blob/670f9e285dfcd944e66fbbb8d8bef1d6231742ad2bd05a71a4b362646cb8bb8f

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from smicolon/ai-kit

AGENTS.md AGENTS.md file
smicolon/ai-kit · AGENTS.md
git:20260509.1200573 · audit B · 7 stars
CLAUDE.md CLAUDE.md file
smicolon/ai-kit · CLAUDE.md
git:20260902.8af3db4 · audit B · 7 stars
mermaid-architect SKILL.md skill
smicolon/ai-kit · packs/architect/skills/mermaid-architect/SKILL.md · Generates clean, syntactically valid Mermaid.js diagrams for ERDs, system architecture, sequence flows, class diagrams…
v1.0.0 · audit A · 7 stars
Auth Security Patterns SKILL.md skill
smicolon/ai-kit · packs/better-auth/skills/auth-security/SKILL.md · Auto-enforce authentication security best practices. Activates when implementing password policies, rate limiting…
v1.0.0 · audit A · 7 stars
Better Auth Patterns SKILL.md skill
smicolon/ai-kit · packs/better-auth/skills/better-auth-patterns/SKILL.md · Auto-enforce Better Auth implementation patterns. Activates when setting up authentication, configuring providers…
v1.0.0 · audit A · 7 stars
explain-error SKILL.md skill
smicolon/ai-kit · packs/better-auth/skills/explain-error/SKILL.md · Automatically diagnoses, explains, and resolves Better Auth runtime errors, configuration issues, database adapter…
v1.0.0 · audit A · 7 stars
execution-context-builder SKILL.md skill
smicolon/ai-kit · packs/clarify/skills/execution-context-builder/SKILL.md · Synthesizes the chosen (or only) candidate flow into the canonical execution-context Markdown + JSON artifacts under…
git:20260427.f533809 · audit A · 7 stars
flow-detector SKILL.md skill
smicolon/ai-kit · packs/clarify/skills/flow-detector/SKILL.md · Analyzes a task description plus the surrounding codebase and produces a list of candidate end-to-end flows. Activates…
git:20260427.f533809 · audit A · 7 stars
flow-selector SKILL.md skill
smicolon/ai-kit · packs/clarify/skills/flow-selector/SKILL.md · Presents 2+ candidate flows from flow-detector and asks the user to pick one. Issues exactly one AskUserQuestion. Never…
git:20260427.f533809 · audit A · 7 stars
tdd-planner SKILL.md skill
smicolon/ai-kit · packs/dev-loop/skills/tdd-planner/SKILL.md · This skill should be used when the user asks to "plan a feature", "prepare for dev loop", "structure TDD approach"…
git:20260215.92455aa · audit A · 7 stars
django-import-enforcer SKILL.md skill
smicolon/ai-kit · packs/django/skills/import-convention-enforcer/SKILL.md · Automatically validate and fix Django import patterns to use absolute modular imports with aliases. Use when writing…
git:20260902.8af3db4 · audit A · 7 stars
migration-safety-checker SKILL.md skill
smicolon/ai-kit · packs/django/skills/migration-safety-checker/SKILL.md · This skill should be used when the user asks to "create a migration", "run makemigrations", "modify a model field"…
git:20260215.92455aa · audit A · 7 stars

Every file in smicolon/ai-kit

Browse by kind, by grade A, or by owner.