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]

Reply via email to