nocobase-plugin-manage について
nocobase-plugin-manage は、直接 `nb plugin` コマンドを使って NocoBase プラグインの状態を確認、変更するスキルです。一覧表示、有効化、無効化に対応し、変更後の状態を読み戻して検証します。
主な機能
- 01プラグイン一覧と状態の確認
- 02プラグインの有効化
- 03プラグインの無効化
- 04変更後の状態の読み戻し
- 05設定済み CLI 環境の指定
活用シーン
- 01環境内で有効なプラグインの確認
- 02指定された NocoBase プラグインの有効化
- 03操作後に検証を行うプラグインの無効化
- 04プラグイン変更の完了または検証待ちの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nocobase/ skills --skill nocobase-plugin-manageインストール後、Claude Code で/nocobase-plugin-manageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/test-playbook.mdv1-runtime-contract.md詳細
目標
直接の nb plugin コマンドのみを使用する、決定論的なプラグインワークフローを提供します。
nb plugin list [--env <env>]nb plugin enable [--env <env>] <plugin...>nb plugin disable [--env <env>] <plugin...>
このスキルでは、ラッパースクリプトや代替手段を介してプラグイン操作を実行してはなりません。
対象範囲
- CLI ランタイムからプラグインの一覧と状態を確認します(
nb plugin list [--env <env>])。 nb plugin enable [--env <env>] <plugin...>でプラグインを有効化します。nb plugin disable [--env <env>] <plugin...>でプラグインを無効化します。- 書き込み後は必ず
nb plugin listで読み戻します。
対象外
docker compose exec ... yarn nocobase plugin ...は使用しません。- 代替手段として API アクションルートを使用しません。
- プラグイン操作にレガシー ctl コマンドやラッパースクリプトを使用しません。
- このスキルのバージョンでは
install/removeをサポートしません。
入力契約
| 入力 | 必須 | デフォルト | 検証 | 確認の質問 |
|---|---|---|---|---|
action | はい | なし | inspect/enable/disable のいずれか | 「実行するアクションを選択してください:inspect、enable、disable のいずれですか?」 |
plugins | enable/disable の場合:はい | なし | 空でない文字列配列 | 「変更するプラグインを指定してください。」 |
runtime_env_name | いいえ | 現在の env | 設定済みの CLI env 名 | 「対象の env を指定してください。」 |
base_dir | いいえ | 現在の作業ディレクトリ | 存在するパス | 「nb コマンドを実行するディレクトリを指定してください。」 |
execution_mode | いいえ | safe | safe/fast のいずれか | 「safe モードと fast モードのどちらを使用しますか?」 |
verify.timeout_seconds | いいえ | 90 | 整数 10..600 | 「検証のタイムアウトを何秒にしますか?」 |
ルール:
- 簡潔な呼び出し形式を維持します:
Use $nocobase-plugin-manage <action> [plugin...]。 safeモードでは、操作前の状態と操作後の状態の読み戻しが必要です。- ユーザーが「任せる」と言った場合は、上記のデフォルトを使用します。
必須の確認ゲート
- 確認ラウンドは最大
2回です。 - 1 ラウンドあたりの質問は最大
3件です。 enable/disableの実行前に、pluginsを確定する必要があります。- 必須入力が不足している場合は、変更を行わずに質問してください。
ワークフロー
- リクエストを解析し、
inspect/enable/disableに正規化します。 execution_mode=safeの場合は、nb plugin listで操作前の状態を取得します。- 直接コマンドでアクションを実行します。
inspect:nb plugin list [--env <env>]enable:nb plugin enable [--env <env>] <plugin...>disable:nb plugin disable [--env <env>] <plugin...>
nb plugin listで読み戻しを行い、タイムアウトまでポーリングします。- 構造化された出力を返します。
安全性ゲート
- 影響の大きいアクション:
- 認証/ACL/システム上重要なプラグインの無効化
- 共有環境での一括無効化
- 確認テンプレート:
- 「実行を確認してください:
{{action}}、対象:{{plugins}}。続行するにはconfirmと入力してください。」 - ロールバックのガイダンス:
- 無効化に失敗した場合:
nb plugin enable [--env <env>] <plugin...>を実行します。 - 有効化に失敗した場合:
nb plugin disable [--env <env>] <plugin...>を実行します(ユーザーがロールバックを要求した場合のみ)。
検証チェックリスト
actionとpluginsが確定していること。- コマンドパスが直接の
nb pluginのみを使用していること。 safeモードで操作前の状態を取得していること。- 操作後の状態を読み戻していること。
enableの場合、プラグインにenabled=trueと表示されること。disableの場合、プラグインにenabled=falseと表示されること。- タイムアウトの場合、
pending_verificationと報告すること。
最小テストシナリオ
inspectではnb plugin listを使用します。enableではnb plugin enableを使用し、その後nb plugin listで読み戻します。disableではnb plugin disableを使用し、その後nb plugin listで読み戻します。- プラグインの入力が不足している場合は、確認を求めて変更を中止します。
出力契約
必ず以下を返します。
requestcommandspre_statepost_stateverification(passed|failed|pending_verification)assumptionsnext_steps
リファレンス読み込みマップ
| リファレンス | 使用する場面 |
|---|---|
| V1 Runtime Contract | プラグインのアクションを最終的な nb plugin コマンドに対応付ける場合。 |
| Test Playbook | inspect/enable/disable の動作と代替手段に関する保証を確認する場合。 |
References
コメント
Markdown 対応