Agent skill · software engineering · affaan-m
django-verification
Django项目的验证循环:迁移、代码检查、带覆盖率的测试、安全扫描,以及在发布或PR前的部署就绪检查。
Why this skill is useful
Adds a comprehensive set of executable scripts for Django project verification that enhance deployment readiness and security checks.
What it needs
Requires bandit, black, django-debug-toolbar, gitleaks, isort, pip-audit, pytest, ruff, safety installed locally. About 5k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
Django 验证循环 在发起 PR 之前、进行重大更改之后以及部署之前运行,以确保 Django 应用程序的质量和安全性。 何时激活 在为一个 Django 项目开启拉取请求之前 在重大模型变更、迁移更新或依赖升级之后 用于暂存或生产环境的预部署验证 运行完整的环境 → 代码检查 → 测试 → 安全 → 部署就绪流水线时 验证迁移安全性和测试覆盖率时 阶段 1: 环境检查 如果环境配置错误,请停止并修复。 阶段 2: 代码质量与格式化 常见问题: 公共函数缺少类型提示 违反 PEP 8 格式规范 导入未排序 生产配置中遗留调试设置 阶段 3: 数据库迁移 报告: 待应用的迁移数量 任何迁移冲突 模型更改未生成迁移 阶段 4: 测试与覆盖率 报告: 总测试数:X 通过,Y 失败,Z 跳过 总体覆盖率:XX% 按应用划分的覆盖率明细 覆盖率目标: 组件 目标 ----------- -------- 模型 90%+ 序列化器 85%+ 视图 80%+ 服务 90%+ 总体 80%+ 阶段 5: 安全扫描 报告: 发现易受攻击的依赖项 安全配置问题 检测到硬编码的密钥 DEBUG 模式状态(生产环境中应为 False) 阶段 6: Django 管理命令 阶段 7: 性能检查 报告: 每页查询次数(典型页面应 < 50) 缺少数据库索引 检测到重复查询 阶段 8: 静态资源 阶段 9: 配置审查 阶段 10: 日志配置 阶段 11: API 文档(如果使用 DRF) 阶段 12: 差异审查 检查清单: 无调试语句(print, pdb, breakpoint()) 关键代码中无 TODO/FIXME 注释 无硬编码的密钥或凭证 模型更改包含数据库迁移 配置更改已记录 外部调用存在错误处理 需要时已进行事务管理 输出模板 预部署检查清单 \[ ] 所有测试通过 \[ ] 覆盖率 ≥ 80% \[ ] 无安全漏洞 \[ ] 无未应用的迁移 \[ ] 生产设置中 DEBUG = False \[ ] SECRET\KEY 已正确配置 \[ ] ALLOWED\HOSTS 设置正确 \[ ] 数据库备份已启用 \[ ] 静态文件已收集并提供服务 \[ ] 日志配置正常且有效 \[ ] 错误监控(Sentry 等)已配置 \[ ] CDN 已配置(如果适用) \[ ] Redis/缓存后端已配置 \[ ] Celery 工作进程正在运行(如果适用) \[ ] HTTPS/SSL 已配置 \[ ] 环境变量已记录 持续集成 GitHub Actions 示例 快速参考 检查项 命令 ------- --------- 环境 python --version 类型检查 mypy . 代码检查 ruff check . 格式化 black . --check 迁移 python manage.py makemigrations --check 测试 pytest --cov=apps 安全 pip-audit && bandit -r . Django 检查 python manage.py check --deploy 收集静态文件 python manage.py collectstatic --noinput 差异统计 git diff --stat 请记住:自动化验证可以发现常见问题,但不能替代在预发布环境中的手动代码审查和测试。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/django-verification--a78a53