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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
laravel-api-tool-kit.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
laravel-api-tool-kitフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 経由でインストールされていること- ベースの
ControllerがApiResponseトレイトをすでに使用していること 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の代わりに生の配列を返す」)、これらのグローバルルールを変更しないでください。代わりに:
- プロジェクトのAI指示ファイル(例:
AGENTS.md、CLAUDE.md、または Claude Code の場合は.claude/rules/)にオーバーライドを追加します。 - 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-kitis installed via Composer- Base
Controlleralready uses theApiResponsetrait - 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 toidif 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/(orRepositories/) - DTOs:
app/Domain/{Domain}/DTO/(orDTOs/) - 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:
- Add the override to your project's AI instructions file (e.g.
AGENTS.md,CLAUDE.md, or.claude/rules/for Claude Code). - 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 readonlypromotion - 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 scratchworkflows/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 filesworkflows/organize-knowledge.md— consolidate scattered docs into one-file-per-featureworkflows/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.