unopim-plugin-development について
UnoPim の自己完結型 Concord モジュールやサードパーティーコネクターを構築するスキルです。開発段階に応じた資料と、バックエンド、セキュリティ、UI、連携の規約を提供します。
主な機能
- 01段階別の開発リファレンス
- 02Laravel 13 と PHP 8.4 の規約
- 03コネクターの認証情報と HTTP の設計
- 04管理 UI、CRUD、ACL のガイド
- 05一覧表示と検証に必要な関連スキル
活用シーン
- 01UnoPim モジュールの新規作成
- 02REST API コネクターの構築
- 03認証情報の安全な保存
- 04管理画面への CRUD 追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ unopim/ agent-skills --skill unopim-plugin-developmentインストール後、Claude Code で/unopim-plugin-developmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
acl-security.mdadmin-ui.mdbackend.mdcredentials.mdcrud-patterns.mdhttp-client.mdmapping.mdpackage-structure.mdquickstart.md詳細
UnoPim プラグイン開発
packages/Webkul/{ModuleName}/ の下に、自己完結型の Concord パッケージを構築します。機能モジュールでも、サードパーティーコネクター(Shopify、Shopware、任意の REST API)でも構いません。現行のコネクター実装リファレンスは packages/Webkul/AiAgent です。ここにあるテンプレートとそのパッケージの内容が異なる場合は、パッケージの内容を優先します。
参照ファイル — 現在のフェーズで必要なものだけを読み込んでください
| ファイル | 読み込むタイミング |
|---|---|
| quickstart.md | 新しいモジュールを開始するとき — 初日の順序付きチェックリスト |
| package-structure.md | ディレクトリ構成、composer.json、サービスプロバイダー、設定のマージ、マイグレーション |
| backend.md | モデル、コントラクト、リポジトリ、イベント、Octane セーフなバインディング |
| credentials.md | 認証情報の保存、保存時の暗号化、履歴/監査、接続テストエンドポイント |
| http-client.md | cURL ApiClient、認証方式、SSRF ガード、コンテナバインディング |
| admin-ui.md | Blade ビュー — コンポーネント、テーマトークン、CRUD の概要 |
| crud-patterns.md | 管理画面 CRUD の基本構成 — 保存バー、モーダルでの作成、パンくずリスト、ページのひな型 |
| acl-security.md | ACL の適用範囲、FormRequest の認可、アップロード、CSRF、シークレット |
| mapping.md | コネクターの属性マッピング画面 |
必須サブスキル: 管理画面の一覧ページには、unopim-datagrid を使用してください。 必須サブスキル: Exporter、Importer、Validator クラスには、unopim-data-transfer を使用してください。 必須サブスキル: 変更の完了を主張する前に、unopim-verify を使用してください。
重要な規約(詳細と具体例は参照ファイルを確認してください)
- Laravel 13/PHP 8.4 を対象とします。コンストラクタプロパティのプロモーション、明示的な戻り値の型、モデルの
#[Fillable]/#[Table]/#[Hidden]属性とcasts(): arrayメソッドを使用してください。 - プロバイダーは
bootstrap/providers.phpに登録します。config/app.phpに providers 配列はありません。 - メニュー設定は
'menu.admin'キーにマージし、'menu'には絶対にマージしないでください。管理画面のサイドバーはconfig('menu.admin')のみを読み取るため、'menu'にマージしたモジュールは表示されません。 - プラグインパッケージのマイグレーションは、ルートレベルの
Database/Migration/(単数形)に配置します。コアパッケージではsrc/Database/Migrations/(複数形)を使用します。テーブル名はプレフィックスなしで記述します。プレフィックスはenv('DB_PREFIX', '')から付与され、デフォルトは空です。 - ルートミドルウェアは
['admin']のみです。ACL の適用はルート名ごとにフェイルオープンです。すべての書き込みルート(store、update、destroy、mass_*、test-connection)はConfig/acl.phpに登録する必要があります。登録しないと、ログイン中の管理者であれば誰でも呼び出せます。acl-security.md を参照してください。 - 履歴/監査モデルは、モジュールのコントラクト、
PresentableHistoryInterface(getPresenters()を含む)、OwenIt のAuditableコントラクトを実装し、HistoryTraitを使用して、$historyTagsを定義する必要があります。いずれかが欠けると、クラスの読み込み時または初回保存時に致命的なエラーが発生します。 - 保存時のシークレットには、
'encrypted'キャスト、#[Hidden]、$auditExcludeをすべて併用する必要があります。$auditExcludeだけでは平文で保存されます。 - コネクターの HTTP 通信にはネイティブ cURL を使用します。Guzzle と
Httpファサードは使用しないでください。状態を持つクライアントはsingleton()ではなくscoped()でバインドします(このスタックは Octane 上で動作します)。 - ローカライズファイルは
Resources/lang/{locale}/に配置します。33 のロケール全体でen_USを標準として使用してください。en/ディレクトリだけでは読み込まれません。 - メソッド本体、配列リテラル、ルートグループ、Blade マークアップの中にコメントを記述しないでください。メソッドの PHPDoc は、一行の命令形の要約にしてください。
- ユーザーに表示される文字列をハードコードしないでください。すべてのラベル、メッセージ、プレースホルダーに
trans('{module}::app.…')を使用してください。
コメント
Markdown 対応