jpskill.com
🛠️ 開発・MCP コミュニティ

laravel-api-tool-kit

LaravelのAPI開発において、コード品質や認証、テストなどの一般的なベストプラクティスに加え、ApiResponseやQueryFiltersといった専用ツールキットのパターンも活用し、高品質なAPIを構築・レビューするSkill。

📜 元の英語説明(参考)

Build production-grade Laravel REST APIs. Covers general best practices (code quality, DI, events, auth, exceptions, testing, database) AND essa/api-tool-kit specific patterns (ApiResponse, QueryFilters, dynamicPaginate, EnumHelpers). Use when creating or reviewing any Laravel API code in a project that has essa/api-tool-kit installed.

🇯🇵 日本人クリエイター向け解説

一言でいうと

LaravelのAPI開発において、コード品質や認証、テストなどの一般的なベストプラクティスに加え、ApiResponseやQueryFiltersといった専用ツールキットのパターンも活用し、高品質なAPIを構築・レビューするSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o laravel-api-tool-kit.zip https://jpskill.com/download/10691.zip && unzip -o laravel-api-tool-kit.zip && rm laravel-api-tool-kit.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10691.zip -OutFile "$d\laravel-api-tool-kit.zip"; Expand-Archive "$d\laravel-api-tool-kit.zip" -DestinationPath $d -Force; ri "$d\laravel-api-tool-kit.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して laravel-api-tool-kit.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → laravel-api-tool-kit フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Laravel API Tool Kit Skill

このプロジェクトでは、essa/api-tool-kit パッケージを使用します。すべてのAPIコードは、一般的なLaravelのベストプラクティスとパッケージ固有のパターンの両方において、このSkillの標準に従う必要があります。

前提となるセットアップ

  • essa/api-tool-kit が Composer 経由でインストールされていること
  • ベースの ControllerApiResponse トレイトをすでに使用していること
  • dateTimeFormat() グローバルヘルパーが利用可能であること
  • dynamicPaginate() マクロがクエリビルダーに登録されていること

プロジェクトのデフォルト

このSkillをインストールする際に、以下を記入してください。 AIはこのセクションを読み取り、既存のプロジェクトの慣習に合わせます。

  • 主キーの型: ulid ← このプロジェクトが自動インクリメントを使用している場合は id に変更
  • Auth guard: sanctum ← 異なる場合は変更 (例: api)
  • テストクラス: Tests\TestCase ← プロジェクトがカスタムベースを使用している場合は変更

構造マッピングとカスタマイズ

rules/ ディレクトリ内のルールは パターンベース です。例では標準的なLaravelのパス(例:app/Models)を使用していますが、あらゆる構造にマッピングできるように設計されています。

DDD / ドメイン駆動設計

プロジェクトがDDD構造を使用している場合、ルールは対応するドメインフォルダに適用されます。フォルダの命名はプロジェクトによって異なる場合があります (例: Repository vs Repositories)。例としては以下があります。

  • Models: app/Domain/{Domain}/Models/
  • Actions: app/Domain/{Domain}/Actions/
  • Repositories: app/Domain/{Domain}/Repository/ (または Repositories/)
  • DTOs: app/Domain/{Domain}/DTO/ (または DTOs/)
  • Filters: app/Domain/{Domain}/Filters/

AIへの注意: 新しいファイルを作成する前に、必ず ls app/Domain/ を実行して、プロジェクト固有の命名規則を特定してください。優先順位は常に プロジェクトのパターン > グローバルルール です。

プロジェクト固有のルール

特定のプロジェクトでオーバーライドが必要な場合(例:「ulid の代わりに id を使用する」または「DTOの代わりに生の配列を返す」)、これらのグローバルルールを変更しないでください。代わりに:

  1. プロジェクトのAI指示ファイル(例:AGENTS.mdCLAUDE.md、または Claude Code の場合は .claude/rules/)にオーバーライドを追加します。
  2. AIは、これらのグローバルパターンよりもプロジェクトレベルの指示を優先します。

ベースライン — すべてのファイルに適用

他のルールを読む前に、以下のルールが普遍的に適用されます。

  • すべてのPHPファイルは declare(strict_types=1); で始まる必要があります
  • すべてのメソッドは、パラメータ型と戻り値の型を持つ必要があります
  • コンストラクタの依存性は private readonly プロモーションを使用する必要があります
  • ユーザー向けの文字列は trans() を使用する必要があります — ハードコードしないでください

完全なベースラインについては、rules/code-quality.md を参照してください。

コンポーネントマップ

特定の懸念事項に取り組む場合は、対応するルールファイルを読んでください。

一般的な標準 (どこにでも適用)

タスク 参照
コードスタイル、型、命名、定数 rules/code-quality.md
依存性の注入 rules/dependency-injection.md
イベントとリスナー rules/events.md
スタンドアロンのキュー投入ジョブ rules/jobs.md
認可とポリシー rules/authorization.md
エラーと例外処理 rules/exceptions.md
機能テストの作成 rules/testing.md
データベースパターン、ULID、トランザクション、バルク操作 rules/database.md
外部のサードパーティ統合 rules/services.md
DDD構造、ドメイン境界、ドメイン間のルール rules/ddd.md

パッケージ固有のパターン

タスク 参照
JSONレスポンスを返す rules/responses.md
エンドポイントにフィルタリング/ソート/検索を追加する rules/filters.md
新しい Action クラスを作成する rules/actions.md
Action または Service の DTO を作成する rules/dtos.md
Controller を作成またはレビューする rules/controllers.md
FormRequest を作成する rules/requests.md
API Resource を作成する rules/resources.md
Model を作成または更新する rules/models.md
Repository を作成または更新する rules/repositories.md
Enum を作成する rules/enums.md
ページネーションを追加する rules/pagination.md

最初に必ず確認

タスク 参照
コードを書く前に rules/anti-patterns.md

新しいエンドポイントの構築

完全なステップバイステップのプロセスについては、workflows/new-endpoint.md を参照してください。

順序は常に次のとおりです。 Model → Migration → Filter → Enum → Requests → Resource → Policy → Action (必要な場合) → Controller → Language file → Route → Test

利用可能なワークフロー

構築

  • workflows/new-endpoint.md — 完全なCRUDリソースをゼロから追加する
  • workflows/add-filter.md — 既存のモデルにフィルタリングを追加する

レビュー

  • workflows/code-review.md — 多段階のコードレビュー(構造 + 防御 + スコープの規律)

デバッグ

  • workflows/investigate.md — 構造化されたデバッグ(データファースト、マルチソース、15分チェックポイント)
  • workflows/curl-test.md — curl でエンドポイントをテストし、レスポンスとDBを相互参照する

ナレッジマネジメント

  • workflows/update-knowledge.md — 学習内容をルールまたはナレッジファイルに保存する
  • workflows/organize-knowledge.md — 散在するドキュメントを機能ごとに1つのファイルに統合する
  • workflows/create-workflow.md — 発見されたプロセスを再利用可能なワークフローとしてキャプチャする

ナレッジベース

機能ごとの蓄積されたナレッジは、knowledge/ ディレクトリに存在します。正確な場所は、使用するAIツールによって異なります。

  • Claude Code: .claude/knowledge/[feature].md
  • Antigravity: .agent/knowledge/[feature].md
  • Cursor / Copilot: knowledge/[feature].md (プロジェクトルート)

各ファイルには以下が含まれます。

  • 過去の問題とその確認済みの根本原因
  • 再利用可能な診断クエリ(プレースホルダー変数付き)
  • このプロジェクトに固有のDB/データの注意点
  • 一般的なルールに当てはまらない教訓

バグを調査するときは、最初に knowledge/ を確認してください。根本原因を確認したら、セッションを閉じる前に knowledge/ を更新してください

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Laravel API Tool Kit Skill

This project uses the essa/api-tool-kit package. All API code MUST follow the standards in this skill — both the general Laravel best practices and the package-specific patterns.

Assumed Setup

  • essa/api-tool-kit is installed via Composer
  • Base Controller already uses the ApiResponse trait
  • The dateTimeFormat() global helper is available
  • dynamicPaginate() macro is registered on the query builder

Project Defaults

Fill these in when installing the skill. The AI reads this section to match existing project conventions.

  • Primary key type: ulid ← change to id if this project uses auto-increment
  • Auth guard: sanctum ← change if different (e.g. api)
  • Test class: Tests\TestCase ← change if the project uses a custom base

Structure Mapping & Customization

The rules in the rules/ directory are pattern-based. While examples use standard Laravel paths (e.g., app/Models), they are designed to be mapped to any structure.

DDD / Domain-Driven Design

If the project uses a DDD structure, the rules apply to the corresponding domain folders. Folder naming may vary by project (e.g., Repository vs Repositories). Examples include:

  • Models: app/Domain/{Domain}/Models/
  • Actions: app/Domain/{Domain}/Actions/
  • Repositories: app/Domain/{Domain}/Repository/ (or Repositories/)
  • DTOs: app/Domain/{Domain}/DTO/ (or DTOs/)
  • Filters: app/Domain/{Domain}/Filters/

Note for AI: Always run ls app/Domain/ to identify the project's specific naming conventions before creating new files. Priority is always: Project Patterns > Global Rules.

Project-Specific Rules

If a specific project requires overrides (e.g., "We use id instead of ulid" or "We return raw arrays instead of DTOs"), do not modify these global rules. Instead:

  1. Add the override to your project's AI instructions file (e.g. AGENTS.md, CLAUDE.md, or .claude/rules/ for Claude Code).
  2. The AI will prioritize project-level instructions over these global patterns.

Baseline — Applies to Every File

Before reading anything else, these rules apply universally:

  • Every PHP file MUST start with declare(strict_types=1);
  • Every method MUST have parameter types and a return type
  • Constructor dependencies MUST use private readonly promotion
  • User-facing strings MUST use trans() — never hardcoded

See rules/code-quality.md for the full baseline.

Component Map

When working on a specific concern, read the corresponding rule file:

General Standards (applies everywhere)

Task Read
Code style, types, naming, constants rules/code-quality.md
Injecting dependencies rules/dependency-injection.md
Events and listeners rules/events.md
Standalone queued jobs rules/jobs.md
Authorization and policies rules/authorization.md
Error and exception handling rules/exceptions.md
Writing feature tests rules/testing.md
Database patterns, ULIDs, transactions, bulk ops rules/database.md
External 3rd-party integrations rules/services.md
DDD structure, domain boundaries, cross-domain rules rules/ddd.md

Package-Specific Patterns

Task Read
Return a JSON response rules/responses.md
Add filtering / sorting / search to an endpoint rules/filters.md
Create a new Action class rules/actions.md
Create a DTO for an Action or Service rules/dtos.md
Write or review a Controller rules/controllers.md
Write a FormRequest rules/requests.md
Write an API Resource rules/resources.md
Create or update a Model rules/models.md
Create or update a Repository rules/repositories.md
Create an Enum rules/enums.md
Add pagination rules/pagination.md

Always Check First

Task Read
Before writing any code rules/anti-patterns.md

Building a New Endpoint

Follow workflows/new-endpoint.md for the full step-by-step process.

The order is always: Model → Migration → Filter → Enum → Requests → Resource → Policy → Action (if needed) → Controller → Language file → Route → Test

Available Workflows

Building

  • workflows/new-endpoint.md — add a complete CRUD resource from scratch
  • workflows/add-filter.md — add filtering to an existing model

Reviewing

  • workflows/code-review.md — multi-phase code review (structural + defense + scope discipline)

Debugging

  • workflows/investigate.md — structured debugging (data-first, multi-source, 15-min checkpoint)
  • workflows/curl-test.md — test an endpoint with curl and cross-reference response vs DB

Knowledge Management

  • workflows/update-knowledge.md — save learnings into rules or knowledge files
  • workflows/organize-knowledge.md — consolidate scattered docs into one-file-per-feature
  • workflows/create-workflow.md — capture a discovered process as a reusable workflow

Knowledge Base

Per-feature accumulated knowledge lives in a knowledge/ directory. The exact location depends on your AI tool:

  • Claude Code: .claude/knowledge/[feature].md
  • Antigravity: .agent/knowledge/[feature].md
  • Cursor / Copilot: knowledge/[feature].md (project root)

Each file contains:

  • Past issues and their confirmed root causes
  • Reusable diagnostic queries (with placeholder variables)
  • DB/data gotchas specific to this project
  • Lessons that don't fit into general rules

When investigating a bug, check knowledge/ first. When confirming a root cause, update knowledge/ before closing the session.