mcpField
N
nocobase-plugin-manage

nocobase-plugin-manage

github.com/nocobaseDevelopment55240 installsUpdated 8w ago
Repository

About nocobase-plugin-manage

nocobase-plugin-manage is a skill for inspecting and changing NocoBase plugin states through direct `nb plugin` commands. It supports listing, enabling, and disabling plugins, with state readback to verify changes.

Key features

  1. 01List plugin inventory and state
  2. 02Enable plugins
  3. 03Disable plugins
  4. 04Read back state after changes
  5. 05Target a configured CLI environment

Use cases

  1. 01Check which plugins are active in an environment
  2. 02Enable a requested NocoBase plugin
  3. 03Disable a plugin with post-change verification
  4. 04Confirm a plugin change completed or remains pending

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nocobase/skills --skill nocobase-plugin-manage

After installing, type/nocobase-plugin-managein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
test-playbook.md
v1-runtime-contract.md

Details

From the project README

Goal

Provide a deterministic plugin workflow using only direct nb plugin commands:

  • nb plugin list [--env <env>]
  • nb plugin enable [--env <env>] <plugin...>
  • nb plugin disable [--env <env>] <plugin...>

This skill must not route plugin operations through wrapper scripts or fallback channels.

Scope

  • Inspect plugin inventory/state from CLI runtime (nb plugin list [--env <env>]).
  • Enable plugins with nb plugin enable [--env <env>] <plugin...>.
  • Disable plugins with nb plugin disable [--env <env>] <plugin...>.
  • Always perform readback with nb plugin list after writes.

Non-Goals

  • Do not use docker compose exec ... yarn nocobase plugin ....
  • Do not use API action routes as fallback.
  • Do not use legacy ctl commands or wrapper scripts for plugin operations.
  • Do not support install/remove in this skill version.

Input Contract

InputRequiredDefaultValidationClarification Question
actionyesnoneone of inspect/enable/disable"Which action should I run: inspect, enable, or disable?"
pluginsenable/disable: yesnonenon-empty string array"Which plugin(s) should be changed?"
runtime_env_namenocurrent envconfigured CLI env name"Which env should I target?"
base_dirnocurrent working directoryexisting path"Which directory should nb commands run in?"
execution_modenosafeone of safe/fast"Use safe mode or fast mode?"
verify.timeout_secondsno90integer 10..600"What verification timeout should I use?"

Rules:

  • Keep compact invocation: Use $nocobase-plugin-manage <action> [plugin...].
  • safe mode requires pre-state + post-state readback.
  • If user says "you decide", use defaults above.

Mandatory Clarification Gate

  • Max clarification rounds: 2
  • Max questions per round: 3
  • Before enable/disable, plugins must be resolved.
  • If required inputs are missing, stop mutation and ask.

Workflow

  1. Parse request and normalize to inspect/enable/disable.
  2. Capture pre-state via nb plugin list when execution_mode=safe.
  3. Execute action with direct command:
  • inspect: nb plugin list [--env <env>]
  • enable: nb plugin enable [--env <env>] <plugin...>
  • disable: nb plugin disable [--env <env>] <plugin...>
  1. Readback polling via nb plugin list until timeout.
  2. Return structured output.

Safety Gate

  • High-impact actions:
  • disable auth/ACL/system-critical plugins
  • batch disable in shared environments
  • Secondary confirmation template:
  • "Confirm execution: {{action}} for {{plugins}}. Type confirm to continue."
  • Rollback guidance:
  • failed disable: run nb plugin enable [--env <env>] <plugin...>
  • failed enable: run nb plugin disable [--env <env>] <plugin...> (only when user requests rollback)

Verification Checklist

  • action and plugins resolved.
  • Command path uses direct nb plugin only.
  • Pre-state captured in safe mode.
  • Post-state readback captured.
  • enable => plugin shows enabled=true.
  • disable => plugin shows enabled=false.
  • Timeout reported as pending_verification.

Minimal Test Scenarios

  1. inspect uses nb plugin list.
  2. enable uses nb plugin enable then readback by nb plugin list.
  3. disable uses nb plugin disable then readback by nb plugin list.
  4. Missing plugin input blocks mutation with clarification.

Output Contract

Always return:

  • request
  • commands
  • pre_state
  • post_state
  • verification (passed|failed|pending_verification)
  • assumptions
  • next_steps

Reference Loading Map

ReferenceUse When
V1 Runtime ContractMapping plugin actions to final nb plugin commands.
Test PlaybookChecking inspect/enable/disable behavior and fallback guarantees.

References

Comments

Markdown supported