Skip to content

[Bug]: /plugin-dev:start router cannot invoke target workflows due to disable-model-invocation #143

@sjnims

Description

@sjnims

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: true
  • plugins/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

  1. Load plugin: claude --plugin-dir plugins/plugin-dev
  2. Run /plugin-dev:start
  3. Choose "A plugin" option
  4. Observe: Router attempts to invoke /plugin-dev:create-plugin via SlashCommand tool
  5. Expected: Workflow starts
  6. 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:

  1. plugins/plugin-dev/commands/create-plugin.md - remove line 6
  2. plugins/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) has disable-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.md
  • plugins/plugin-dev/commands/create-marketplace.md

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions