-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Bug Description
The new /plugin-dev:start router command is designed to help users choose between creating a plugin or marketplace, then route them to the appropriate workflow using the SlashCommand tool. However, both target commands block programmatic invocation, causing the router to fail.
The target commands have this frontmatter:
plugins/plugin-dev/commands/create-plugin.md:disable-model-invocation: trueplugins/plugin-dev/commands/create-marketplace.md:disable-model-invocation: true
Per official Claude Code documentation:
"disable-model-invocation: Whether to prevent SlashCommand tool from calling this command"
And per the plugin's own slashcommand-tool.md reference:
"disable-model-invocation: true - Blocks programmatic invocation"
This means the SlashCommand tool cannot invoke these commands, making the router non-functional.
Steps to Reproduce
- Load plugin:
claude --plugin-dir plugins/plugin-dev - Run
/plugin-dev:start - Choose "A plugin" option
- Observe: Router attempts to invoke
/plugin-dev:create-pluginvia SlashCommand tool - Expected: Workflow starts
- Actual: Invocation blocked due to
disable-model-invocation: true
Expected Behavior
After user selects their path, the router should successfully invoke the target workflow (/plugin-dev:create-plugin or /plugin-dev:create-marketplace).
Actual Behavior
The SlashCommand tool cannot invoke target commands because they have disable-model-invocation: true set, which absolutely blocks programmatic invocation.
Command Used
/plugin-dev:start
Environment
- This is a design/configuration issue, not environment-specific
- Affects all environments where the plugin is used
Proposed Fix
Remove disable-model-invocation: true from both target commands:
plugins/plugin-dev/commands/create-plugin.md- remove line 6plugins/plugin-dev/commands/create-marketplace.md- remove line 6
Rationale: The protection should be at the entry point (start.md), not the child commands. The router pattern requires:
- Entry point (
start.md) hasdisable-model-invocation: true✅ (already set) - Child commands are invocable via SlashCommand tool
This is the standard pattern: protect the entry point, allow internal routing.
Additional Context
This bug was discovered during a comprehensive review of the new /plugin-dev:start command against:
- Official Claude Code slash-commands documentation
- Official Claude Code plugins-reference documentation
- The plugin's own command-development skill and references
Files to modify:
plugins/plugin-dev/commands/create-plugin.mdplugins/plugin-dev/commands/create-marketplace.md