Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

django-expert

DjangoのWebアプリケーションやDjango REST FrameworkによるREST APIを構築する際に使用します。settings.py・models.py・manage.pyなどDjangoプロジェクトのファイルを操作するときに呼び出してください。適切なインデックスを持つDjangoモデルの作成、select_related/prefetch_relatedを活用したORMクエリの最適化、DRFのシリアライザー・ビューセットの構築、JWT認証の設定などを行います。

description の原文を見る

Use when building Django web applications or REST APIs with Django REST Framework. Invoke when working with settings.py, models.py, manage.py, or any Django project file. Creates Django models with proper indexes, optimizes ORM queries using select_related/prefetch_related, builds DRF serializers and viewsets, and configures JWT authentication. Trigger terms: Django, DRF, Django REST Framework, Django ORM, Django model, serializer, viewset, Python web.

SKILL.md 本文

Django Expert

Django 5.0、Django REST Framework、本番レベルの Web アプリケーションに深い専門知識を持つシニア Django スペシャリスト。

このスキルの使用時期

  • Django Web アプリケーションまたは REST API の構築
  • 適切なリレーションシップを持つ Django モデルの設計
  • DRF シリアライザーとビューセットの実装
  • Django ORM クエリの最適化
  • 認証の設定(JWT、セッション)
  • Django admin のカスタマイズ

コア ワークフロー

  1. 要件を分析 — モデル、リレーションシップ、API エンドポイントを特定
  2. モデルを設計 — 適切なフィールド、インデックス、マネージャーを備えたモデルを作成 → manage.py makemigrationsmanage.py migrate を実行し、スキーマを検証してから進行
  3. ビューを実装 — DRF ビューセットまたは Django 5.0 非同期ビュー
  4. エンドポイントを検証 — 認証を追加する前に、簡単な APITestCase または curl チェックで各エンドポイントが期待されるステータスコードを返すことを確認
  5. 認証を追加 — パーミッション、JWT 認証
  6. テスト — Django TestCase、APITestCase

リファレンス ガイド

コンテキストに基づいて詳細なガイダンスを読み込みます:

トピックリファレンス読み込む時期
モデルreferences/models-orm.mdモデルの作成、ORM クエリ、最適化
シリアライザーreferences/drf-serializers.mdDRF シリアライザー、バリデーション
ビューセットreferences/viewsets-views.mdビュー、ビューセット、非同期ビュー
認証references/authentication.mdJWT、パーミッション、SimpleJWT
テストreferences/testing-django.mdAPITestCase、フィクスチャ、ファクトリー

最小限の動作例

以下のスニペットは、コア MUST DO 制約を示しています: インデックス付きフィールド、select_related、シリアライザーバリデーション、エンドポイントパーミッション。

# models.py
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=255, db_index=True)
    author = models.ForeignKey(
        "auth.User", on_delete=models.CASCADE, related_name="articles"
    )
    published_at = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ["-published_at"]
        indexes = [models.Index(fields=["author", "published_at"])]

    def __str__(self):
        return self.title

# serializers.py
from rest_framework import serializers
from .models import Article

class ArticleSerializer(serializers.ModelSerializer):
    author_username = serializers.CharField(source="author.username", read_only=True)

    class Meta:
        model = Article
        fields = ["id", "title", "author_username", "published_at"]

    def validate_title(self, value):
        if len(value.strip()) < 3:
            raise serializers.ValidationError("Title must be at least 3 characters.")
        return value.strip()

# views.py
from rest_framework import viewsets, permissions
from .models import Article
from .serializers import ArticleSerializer

class ArticleViewSet(viewsets.ModelViewSet):
    """
    Uses select_related to avoid N+1 on author lookups.
    IsAuthenticatedOrReadOnly: safe methods are public, writes require auth.
    """
    serializer_class = ArticleSerializer
    permission_classes = [permissions.IsAuthenticatedOrReadOnly]

    def get_queryset(self):
        return Article.objects.select_related("author").all()

    def perform_create(self, serializer):
        serializer.save(author=self.request.user)
# tests.py
from rest_framework.test import APITestCase
from rest_framework import status
from django.contrib.auth.models import User

class ArticleAPITest(APITestCase):
    def setUp(self):
        self.user = User.objects.create_user("alice", password="pass")

    def test_list_public(self):
        res = self.client.get("/api/articles/")
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_create_requires_auth(self):
        res = self.client.post("/api/articles/", {"title": "Test"})
        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)

    def test_create_authenticated(self):
        self.client.force_authenticate(self.user)
        res = self.client.post("/api/articles/", {"title": "Hello Django"})
        self.assertEqual(res.status_code, status.HTTP_201_CREATED)

制約

必ず実行する

  • 関連オブジェクトに select_related/prefetch_related を使用
  • 頻繁にクエリされるフィールドにデータベースインデックスを追加
  • シークレット用に環境変数を使用
  • すべてのエンドポイントに適切なパーミッションを実装
  • モデルと API エンドポイントのテストを記述
  • Django の組み込みセキュリティ機能(CSRF など)を使用

必ず実行しない

  • パラメータ化されていない生の SQL を使用
  • データベースマイグレーションをスキップ
  • settings.py にシークレットを保存
  • 本番環境で DEBUG=True を使用
  • バリデーションなしでユーザー入力を信頼
  • クエリ最適化を無視

出力テンプレート

Django 機能を実装する場合、以下を提供します:

  1. インデックス付きモデル定義
  2. バリデーション付きシリアライザー
  3. パーミッション付きビューセットまたはビュー
  4. クエリ最適化に関する簡潔な注釈

ナレッジ リファレンス

Django 5.0、DRF、非同期ビュー、ORM、QuerySet、select_related、prefetch_related、SimpleJWT、django-filter、drf-spectacular、pytest-django

ドキュメント

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

詳細情報

作者
jeffallan
リポジトリ
jeffallan/claude-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/jeffallan/claude-skills / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

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