luigidemasi opened a new issue, #89: URL: https://github.com/apache/camel-kit/issues/89
> Imported from [luigidemasi/camel-kit#213](https://github.com/luigidemasi/camel-kit/issues/213), opened by [luigidemasi](https://github.com/luigidemasi) on 2026-09-07. > Closed by [luigidemasi/camel-kit#214](https://github.com/luigidemasi/camel-kit/pull/214), merged on 2026-09-08. --- ## Description After `camel kit init` generates a Bob 2 workspace, Bob Shell 2.0.2 does not expose `/camel-migrate` and seven other public Camel-Kit commands. Their Markdown command stubs and matching skills are present, but Bob's command-to-skill migration skips the existing skills and its command menu then hides them because they declare `user-invocable: false`. This prevents starting the documented Camel-Kit workflows from the command menu. The reported menu showed Camel/Citrus MCP prompts such as `/camel:camel_migrate_pr`, which are separate from Camel-Kit's `/camel-migrate` workflow. ## Environment - Camel-Kit plugin: `io.github.luigidemasi:camel-jbang-plugin-kit:0.4.0-SNAPSHOT` - Camel JBang: `4.22.0` - Bob Shell: installed `bobshell` package version `2.0.2` - Generated agent: `bob2`; `.camel-kit/config.properties` records `agent.name=bob2` and `agent.folder=.bob/commands` - Observed in an existing MuleSoft project on Linux; the Bob startup log confirms the correct project workspace. - Camel-Kit source checked at `ea0b97926d983f33911e4b11aaac1c244b5871b5`. ## Steps to reproduce 1. With the snapshot plugin installed and resolvable, initialize an existing project for Bob 2: ```bash cd /path/to/project camel kit init --ai bob2 ``` 2. Confirm that `.bob/commands/camel-migrate.md` and `.bob/skills/camel-migrate/SKILL.md` exist. 3. Start Bob Shell 2.0.2 from that project root. 4. Open slash-command completion and look for `/camel-migrate` and the other public Camel-Kit commands. ## Expected behavior All nine generated public commands are discoverable and invocable: `camel-start`, `camel-brainstorm`, `camel-migrate`, `camel-plan`, `camel-execute`, `camel-validate`, `camel-ship`, `camel-knowledge`, and `camel-debug`. ## Actual behavior and verified cause All nine `.bob/commands/*.md` stubs and their matching skills exist. Eight of those skills contain: ```yaml user_invocable: false user-invocable: false ``` `camel-start` is the exception: both flags are already `true`. Inspection of the installed Bob Shell 2.0.2 implementation shows: 1. The skill parser reads `user-invocable` from metadata or top-level frontmatter. 2. `CommandMigrator` attempts to migrate legacy command files into skills, but `_writeSkills` skips any command whose destination `SKILL.md` already exists. 3. `getWorkspaceCommands()` builds the menu from skills filtered by `userInvocable !== false`. Consequently, the command stubs do not make the eight hidden skills available. An isolated, read-only probe of the installed `getWorkspaceCommands()` method using the generated flags returned only `camel-start`; changing the nine public flags only in memory returned all nine commands. A probe of the installed migration method against the existing skill paths returned zero migrations and attempted zero filesystem writes. These probes verify the discovery mechanism; they are not an interactive confirmation of the workaround below. Relevant Camel-Kit code: - [Bob 2 descriptor](https://github.com/luigidemasi/camel-kit/blob/ea0b97926d983f33911e4b11aaac1c244b5871b5/camel-kit-core/src/main/resources/agents/registry/bob2.yaml): generates both command stubs and native skills. - [SkillResourceInstaller](https://github.com/luigidemasi/camel-kit/blob/ea0b97926d983f33911e4b11aaac1c244b5871b5/camel-kit-core/src/main/java/io/github/luigidemasi/camelkit/generator/SkillResourceInstaller.java): adds the hyphenated invocation field for Bob 2 while retaining the source value. - [camel-migrate skill](https://github.com/luigidemasi/camel-kit/blob/ea0b97926d983f33911e4b11aaac1c244b5871b5/camel-kit-core/src/main/resources/skills/camel-migrate/SKILL.md): declares `user_invocable: false`. - [CommandStubGenerator](https://github.com/luigidemasi/camel-kit/blob/ea0b97926d983f33911e4b11aaac1c244b5871b5/camel-kit-core/src/main/java/io/github/luigidemasi/camelkit/generator/CommandStubGenerator.java): writes same-name Bob Markdown stubs, including the Ship delegation contract. ## Proposed temporary workaround Exit Bob, set both invocation flags to `true` only in the public skills corresponding to `.bob/commands/*.md`, then restart Bob in the same project. For example, update those two fields in `.bob/skills/camel-migrate/SKILL.md` to expose that workflow. Keep internal helper skills at their intended visibility. This workaround has not yet been confirmed interactively; regeneration can overwrite these manual edits. ## Acceptance criteria - [ ] Fresh Bob 2 initialization exposes all nine public commands in Bob Shell 2.0.2 without manual metadata edits. - [ ] Reinitialization preserves that visibility, and standalone `camel-kit init` and plugin `camel kit init` produce consistent output. - [ ] Internal helper skills retain their intended visibility; the shared `bob2` target remains compatible with Bob IDE, and other agent targets do not regress. - [ ] Command arguments and the existing `/camel-ship` CLI delegation behavior are preserved. - [ ] Regression coverage checks command discovery/invocation metadata and the existing-skill collision, rather than only checking that command files exist. Record an interactive Bob Shell smoke test. - [ ] Update the affected Bob setup/command documentation and website guidance, or link the website follow-up before closing this issue. ## Website impact **Required.** Document the verified Bob Shell compatibility and working command-discovery setup, including any temporary workaround and its removal when a fixed version is available. ## Related context - luigidemasi/camel-kit#119 introduced the separate Bob 2 target; this reports a command-discovery compatibility defect in that target. - [IBM Bob Shell slash-command documentation](https://bob.ibm.com/docs/shell/features/slash-commands) describes Markdown commands under `.bob/commands/`; the existing files use that documented format. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
