Agent Skills by ALSEL
Anthropic Claudeセキュリティ⭐ リポ 0品質スコア 50/100

django-verification

DjangoプロジェクトのリリースやPR前に、マイグレーション・リント・カバレッジ付きテスト・セキュリティスキャン・デプロイ準備チェックを一連のループで自動検証するスキル。

description の原文を見る

Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.

SKILL.md 本文

Django 検証ループ

PR前、大きな変更後、デプロイ前に実行して、Djangoアプリケーションの品質とセキュリティを確保します。

フェーズ1: 環境チェック

# Pythonバージョンを確認
python --version  # プロジェクト要件と一致すること

# 仮想環境をチェック
which python
pip list --outdated

# 環境変数を確認
python -c "import os; import environ; print('DJANGO_SECRET_KEY set' if os.environ.get('DJANGO_SECRET_KEY') else 'MISSING: DJANGO_SECRET_KEY')"

環境が誤って構成されている場合は、停止して修正します。

フェーズ2: コード品質とフォーマット

# 型チェック
mypy . --config-file pyproject.toml

# ruffでリンティング
ruff check . --fix

# blackでフォーマット
black . --check
black .  # 自動修正

# インポートソート
isort . --check-only
isort .  # 自動修正

# Django固有のチェック
python manage.py check --deploy

一般的な問題:

  • パブリック関数の型ヒントの欠落
  • PEP 8フォーマット違反
  • ソートされていないインポート
  • 本番構成に残されたデバッグ設定

フェーズ3: マイグレーション

# 未適用のマイグレーションをチェック
python manage.py showmigrations

# 欠落しているマイグレーションを作成
python manage.py makemigrations --check

# マイグレーション適用のドライラン
python manage.py migrate --plan

# マイグレーションを適用(テスト環境)
python manage.py migrate

# マイグレーションの競合をチェック
python manage.py makemigrations --merge  # 競合がある場合のみ

レポート:

  • 保留中のマイグレーション数
  • マイグレーションの競合
  • マイグレーションのないモデルの変更

フェーズ4: テスト + カバレッジ

# pytestですべてのテストを実行
pytest --cov=apps --cov-report=html --cov-report=term-missing --reuse-db

# 特定のアプリテストを実行
pytest apps/users/tests/

# マーカーで実行
pytest -m "not slow"  # 遅いテストをスキップ
pytest -m integration  # 統合テストのみ

# カバレッジレポート
open htmlcov/index.html

レポート:

  • 合計テスト: X成功、Y失敗、Zスキップ
  • 全体カバレッジ: XX%
  • アプリごとのカバレッジ内訳

カバレッジ目標:

コンポーネント目標
モデル90%+
シリアライザー85%+
ビュー80%+
サービス90%+
全体80%+

フェーズ5: セキュリティスキャン

# 依存関係の脆弱性
pip-audit
safety check --full-report

# Djangoセキュリティチェック
python manage.py check --deploy

# Banditセキュリティリンター
bandit -r . -f json -o bandit-report.json

# シークレットスキャン(gitleaksがインストールされている場合)
gitleaks detect --source . --verbose

# 環境変数チェック
python -c "from django.core.exceptions import ImproperlyConfigured; from django.conf import settings; settings.DEBUG"

レポート:

  • 見つかった脆弱な依存関係
  • セキュリティ構成の問題
  • ハードコードされたシークレットが検出
  • DEBUGモードのステータス(本番環境ではFalseであるべき)

フェーズ6: Django管理コマンド

# モデルの問題をチェック
python manage.py check

# 静的ファイルを収集
python manage.py collectstatic --noinput --clear

# スーパーユーザーを作成(テストに必要な場合)
echo "from apps.users.models import User; User.objects.create_superuser('admin@example.com', 'admin')" | python manage.py shell

# データベースの整合性
python manage.py check --database default

# キャッシュの検証(Redisを使用している場合)
python -c "from django.core.cache import cache; cache.set('test', 'value', 10); print(cache.get('test'))"

フェーズ7: パフォーマンスチェック

# Django Debug Toolbar出力(N+1クエリをチェック)
# DEBUG=Trueで開発モードで実行してページにアクセス
# SQLパネルで重複クエリを探す

# クエリ数分析
django-admin debugsqlshell  # django-debug-sqlshellがインストールされている場合

# 欠落しているインデックスをチェック
python manage.py shell << EOF
from django.db import connection
with connection.cursor() as cursor:
    cursor.execute("SELECT table_name, index_name FROM information_schema.statistics WHERE table_schema = 'public'")
    print(cursor.fetchall())
EOF

レポート:

  • ページあたりのクエリ数(典型的なページで50未満であるべき)
  • 欠落しているデータベースインデックス
  • 重複クエリが検出

フェーズ8: 静的アセット

# npm依存関係をチェック(npmを使用している場合)
npm audit
npm audit fix

# 静的ファイルをビルド(webpack/viteを使用している場合)
npm run build

# 静的ファイルを検証
ls -la staticfiles/
python manage.py findstatic css/style.css

フェーズ9: 構成レビュー

# Pythonシェルで実行して設定を検証
python manage.py shell << EOF
from django.conf import settings
import os

# 重要なチェック
checks = {
    'DEBUG is False': not settings.DEBUG,
    'SECRET_KEY set': bool(settings.SECRET_KEY and len(settings.SECRET_KEY) > 30),
    'ALLOWED_HOSTS set': len(settings.ALLOWED_HOSTS) > 0,
    'HTTPS enabled': getattr(settings, 'SECURE_SSL_REDIRECT', False),
    'HSTS enabled': getattr(settings, 'SECURE_HSTS_SECONDS', 0) > 0,
    'Database configured': settings.DATABASES['default']['ENGINE'] != 'django.db.backends.sqlite3',
}

for check, result in checks.items():
    status = '✓' if result else '✗'
    print(f"{status} {check}")
EOF

フェーズ10: ログ設定

# ログ出力をテスト
python manage.py shell << EOF
import logging
logger = logging.getLogger('django')
logger.warning('Test warning message')
logger.error('Test error message')
EOF

# ログファイルをチェック(設定されている場合)
tail -f /var/log/django/django.log

フェーズ11: APIドキュメント(DRFの場合)

# スキーマを生成
python manage.py generateschema --format openapi-json > schema.json

# スキーマを検証
# schema.jsonが有効なJSONかチェック
python -c "import json; json.load(open('schema.json'))"

# Swagger UIにアクセス(drf-yasgを使用している場合)
# ブラウザで http://localhost:8000/swagger/ を訪問

フェーズ12: 差分レビュー

# 差分統計を表示
git diff --stat

# 実際の変更を表示
git diff

# 変更されたファイルを表示
git diff --name-only

# 一般的な問題をチェック
git diff | grep -i "todo\|fixme\|hack\|xxx"
git diff | grep "print("  # デバッグステートメント
git diff | grep "DEBUG = True"  # デバッグモード
git diff | grep "import pdb"  # デバッガー

チェックリスト:

  • デバッグステートメント(print、pdb、breakpoint())なし
  • 重要なコードにTODO/FIXMEコメントなし
  • ハードコードされたシークレットや資格情報なし
  • モデル変更のためのデータベースマイグレーションが含まれている
  • 構成の変更が文書化されている
  • 外部呼び出しのエラーハンドリングが存在
  • 必要な場所でトランザクション管理

出力テンプレート

DJANGO 検証レポート
==========================

フェーズ1: 環境チェック
  ✓ Python 3.11.5
  ✓ 仮想環境がアクティブ
  ✓ すべての環境変数が設定済み

フェーズ2: コード品質
  ✓ mypy: 型エラーなし
  ✗ ruff: 3つの問題が見つかりました(自動修正済み)
  ✓ black: フォーマット問題なし
  ✓ isort: インポートが適切にソート済み
  ✓ manage.py check: 問題なし

フェーズ3: マイグレーション
  ✓ 未適用のマイグレーションなし
  ✓ マイグレーションの競合なし
  ✓ すべてのモデルにマイグレーションあり

フェーズ4: テスト + カバレッジ
  テスト: 247成功、0失敗、5スキップ
  カバレッジ:
    全体: 87%
    users: 92%
    products: 89%
    orders: 85%
    payments: 91%

フェーズ5: セキュリティスキャン
  ✗ pip-audit: 2つの脆弱性が見つかりました(修正が必要)
  ✓ safety check: 問題なし
  ✓ bandit: セキュリティ問題なし
  ✓ シークレットが検出されず
  ✓ DEBUG = False

フェーズ6: Djangoコマンド
  ✓ collectstatic 完了
  ✓ データベース整合性OK
  ✓ キャッシュバックエンド到達可能

フェーズ7: パフォーマンス
  ✓ N+1クエリが検出されず
  ✓ データベースインデックスが構成済み
  ✓ クエリ数が許容範囲

フェーズ8: 静的アセット
  ✓ npm audit: 脆弱性なし
  ✓ アセットが正常にビルド
  ✓ 静的ファイルが収集済み

フェーズ9: 構成
  ✓ DEBUG = False
  ✓ SECRET_KEY 構成済み
  ✓ ALLOWED_HOSTS 設定済み
  ✓ HTTPS 有効
  ✓ HSTS 有効
  ✓ データベース構成済み

フェーズ10: ログ
  ✓ ログが構成済み
  ✓ ログファイルが書き込み可能

フェーズ11: APIドキュメント
  ✓ スキーマ生成済み
  ✓ Swagger UIアクセス可能

フェーズ12: 差分レビュー
  変更されたファイル: 12
  +450、-120行
  ✓ デバッグステートメントなし
  ✓ ハードコードされたシークレットなし
  ✓ マイグレーションが含まれる

推奨: WARNING: デプロイ前にpip-auditの脆弱性を修正してください

次のステップ:
1. 脆弱な依存関係を更新
2. セキュリティスキャンを再実行
3. 最終テストのためにステージングにデプロイ

デプロイ前チェックリスト

  • すべてのテストが成功
  • カバレッジ ≥ 80%
  • セキュリティ脆弱性なし
  • 未適用のマイグレーションなし
  • 本番設定でDEBUG = False
  • SECRET_KEYが適切に構成
  • ALLOWED_HOSTSが正しく設定
  • データベースバックアップが有効
  • 静的ファイルが収集され提供
  • ログが構成され動作中
  • エラー監視(Sentryなど)が構成済み
  • CDNが構成済み(該当する場合)
  • Redis/キャッシュバックエンドが構成済み
  • Celeryワーカーが実行中(該当する場合)
  • HTTPS/SSLが構成済み
  • 環境変数が文書化済み

継続的インテグレーション

GitHub Actionsの例

# .github/workflows/django-verification.yml
name: Django Verification

on: [push, pull_request]

jobs:
  verify:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:14
        env:
          POSTGRES_PASSWORD: postgres
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
      - uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'

      - name: Cache pip
        uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}

      - name: Install dependencies
        run: |
          pip install -r requirements.txt
          pip install ruff black mypy pytest pytest-django pytest-cov bandit safety pip-audit

      - name: Code quality checks
        run: |
          ruff check .
          black . --check
          isort . --check-only
          mypy .

      - name: Security scan
        run: |
          bandit -r . -f json -o bandit-report.json
          safety check --full-report
          pip-audit

      - name: Run tests
        env:
          DATABASE_URL: postgres://postgres:postgres@localhost:5432/test
          DJANGO_SECRET_KEY: test-secret-key
        run: |
          pytest --cov=apps --cov-report=xml --cov-report=term-missing

      - name: Upload coverage
        uses: codecov/codecov-action@v3

クイックリファレンス

チェックコマンド
環境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

覚えておいてください: 自動化された検証は一般的な問題を捕捉しますが、手動でのコードレビューとステージング環境でのテストに代わるものではありません。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
affaan-m
リポジトリ
affaan-m/everything-claude-code
ライセンス
MIT
最終更新
不明

Source: https://github.com/affaan-m/everything-claude-code / ライセンス: MIT

関連スキル

Anthropic Claudeセキュリティ⭐ リポ 8,981

secure-code-guardian

認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。

by Jeffallan
汎用セキュリティ⭐ リポ 1,982

claude-authenticity

APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。

by LeoYeAI
Anthropic Claudeセキュリティ⭐ リポ 2,159

anth-security-basics

Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。

by jeremylongshore
汎用セキュリティ⭐ リポ 699

x-ray

x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。

by pashov
汎用セキュリティ⭐ リポ 677

semgrep

Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。

by wimpysworld
汎用セキュリティ⭐ リポ 591

ghost-bits-cast-attack

Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。

by yaklang
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: affaan-m · affaan-m/everything-claude-code · ライセンス: MIT