Skip to content

Skill chip picked mid-message is serialized without trailing space and never reaches Claude Code as a skill #2318

Description

@dhiyaancnirmal

bb 0.39.0, macOS, provider claude-code (thread on a remote Linux machine).

What happened

Typed a message, picked poteto-mode from the skill picker mid-sentence, kept typing. The composer rendered it as a skill chip. The prompt that reached the agent (visible in bb thread log) was:

... I am lost. /poteto-modeAlso testing out pstack for the first time!

Two problems:

  1. The chip is serialized with no trailing space, so the skill name is glued to the next word (/poteto-modeAlso).
  2. Claude Code only expands slash commands at the start of a message, so a mid-message chip is never executed as a skill regardless of spacing.

Result: the agent said "/poteto-mode isn't an installed skill" even though ~/.claude/skills/poteto-mode resolves. The skill has disable-model-invocation: true, so it is hidden from the model's catalog and the slash path was the only way to run it.

Expected

Picking a skill from the picker should invoke that skill no matter where in the message the chip sits. Either:

  • serialize the chip at the start of the prompt (/poteto-mode <rest of message>), or
  • inject the skill's SKILL.md content the way bb does for its own global skills, independent of the provider's slash parser.

At minimum, emit a space after the chip so the name is not corrupted.

Repro

  1. New thread, provider claude-code.
  2. Type hello , pick any user-invocable skill from the picker, type world, send.
  3. bb thread log <id> shows /<skill>world; the skill does not run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    provider-claude-codeBuilt-in plugin: provider-claude-codeprovidersCross-provider bridges, models, loginuiApp shell, sidebar, composer, rendering

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions