mcpField
C
cdrf-expert

cdrf-expert

github.com/vintasoftware開発166523 回インストール14 週間前に更新
リポジトリ

cdrf-expert について

cdrf-expertは、Django REST framework開発者がクラスベースビューの内部動作を調べるためのスキルです。DRFのバージョン、クラス階層、リクエストライフサイクルに基づき、適切なビューと最小限のオーバーライド箇所を提案し、回帰リスクやテストも示します。

主な機能

  1. 01リクエストの種類に応じてDRFの質問を分類
  2. 02該当バージョンのCDRF資料を参照
  3. 03継承関係とメソッドの定義元を追跡
  4. 04ビュークラスとオーバーライド用フックを選択
  5. 05回帰リスクを確認してテストを提案

活用シーン

  1. 01APIView、汎用ビュー、ViewSetの選択
  2. 02リクエストからレスポンスまでの追跡
  3. 03メソッド解決順序や定義元のデバッグ
  4. 04DRFバージョン間の動作比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vintasoftware/django-ai-plugins --skill cdrf-expert

インストール後、Claude Code で/cdrf-expertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
class-selection-matrix.md
lifecycle-and-overrides.md
mro-debugging-playbook.md
version-check-workflow.md

詳細

CDRF エキスパート

手順

  1. リクエストを分類します。

ユーザーのリクエストを、次のカテゴリの1つ以上に分類します。

  • クラスの選択(APIView、GenericAPIView、具体的なジェネリックビュー、ViewSets)
  • ライフサイクルの追跡(リクエストからレスポンスまでのフロー)
  • オーバーライド戦略(カスタマイズするフック)
  • MRO のデバッグ(メソッドがどのミックスイン/基底クラスに由来するか)
  • バージョンの違い(DRF のバージョン間で動作が変わったか)
  1. 必要な参照ファイルだけを読みます。

必要最小限のコンテキストを読み込みます。

  • クラスの選択には references/class-selection-matrix.md
  • フックの配置とライフサイクルには references/lifecycle-and-overrides.md
  • MRO/メソッドの出典を追跡するには references/mro-debugging-playbook.md
  • DRF のバージョン比較には references/version-check-workflow.md
  1. バージョンを最初に確認する手順で cdrf.co を参照します。
  • ユーザーのコンテキストから、プロジェクトの DRF バージョンを特定します。
  • バージョンが不明な場合は、バージョンを確認するか、バージョンに依存しない回答を提示し、前提を明示します。
  • まず該当する CDRF のバージョン名前空間を開きます(例:https://www.cdrf.co/3.16/)。
  • 対象クラスのページを開き、以下を抽出します。
    • 祖先クラスと MRO
    • 利用可能なメソッドと、各メソッドの定義元クラス
    • 動作に影響するデフォルト属性(queryset、serializer_class、ページネーション/フィルターバックエンド)
  1. 最小限のオーバーライドポイントを選びます。
  • 広範なメソッド(create、update、destroy)より、範囲の狭いフック(perform_create、perform_update、perform_destroy)を優先します。
  • リクエストごとの動作には、クラス属性のハードコードより get_queryset と get_serializer_class を優先します。
  • HTTP のオーケストレーションはビューのメソッドに置き、ビジネスロジック/ドメインロジックはビューの外に置きます。
  • リクエストで動作の変更が必要な場合を除き、DRF のデフォルトを維持します。
  1. メソッドのフローに基づいた回答を作成します。

以下を提示します。

  • 推奨するクラス
  • オーバーライドするメソッド
  • MRO/ライフサイクル上、これらのメソッドが適切である理由
  • 簡潔なコードの修正案またはひな形
  • リスク/リグレッションと追加すべきテスト
  1. 最終回答の前に検証します。

よくあるリグレッションがないか確認します。

  • パーミッション/認証/フィルター/ページネーションのフックを誤って迂回していないか
  • シリアライザーとビューの間でオブジェクト保存ロジックを重複させていないか
  • 範囲の狭いフックで十分なのに、広範なメソッドをオーバーライドしていないか
  • 選択した DRF バージョンに存在しないメソッドに依存していないか

エラー処理

  1. cdrf.co を利用できない場合は、その制限を伝え、DRF の公式ドキュメントとインストール済みのソースコードを代わりに参照します。
  2. ユーザーが DRF のバージョンを提示できない場合は、バージョンに依存しない手順を示し、前提を明確にします。
  3. 複数のオーバーライドポイントが有効に見える場合は、まず最も範囲の狭いフックを推奨し、トレードオフを説明します。

出力ルール

  • CDRF のクラス名とメソッド名を正確に引用します。
  • DRF のバージョンが不明な場合は、前提を明示します。
  • DRF の CBV の内部動作と、すぐに適用できるコード変更に焦点を絞ります。

コメント