Skip to content

fix(claude): run composer-picked skills as slash commands - #254

Merged
leoisadev1 merged 4 commits into
mainfrom
fix/claude-skill-slash-dispatch
Sep 14, 2026
Merged

leoisadev1 merged 4 commits into
mainfrom
fix/claude-skill-slash-dispatch

Conversation

@leoisadev1

@leoisadev1 leoisadev1 commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

Problem

Picking a skill from the $ menu did nothing useful on Claude. The composer inserts $name for every provider, while Claude Code expects a slash command. A slash command in a message with an image could also remain literal because it was not the final text block.

Fix

  • Re-scan Claude skills before each send and dispatch only discovered, enabled skills.
  • Split the last recognized $skill mention into a trailing /name args block while preserving earlier prose.
  • Place image blocks before text so Claude sees the slash command in the final text block.
  • Use the same alphanumeric-leading grammar in composer tokens, timeline chips, and Claude dispatch, including skills such as 123-review.

The timeline continues to show $name. Bot instructions, subscription environment, and MCP behavior are unchanged.

This is an Akeru adaptation of pingdotgg/t3code#9128 and #9122.

Verification

  • vp test run apps/server/src/provider/Layers/ClaudeAdapter.test.ts apps/server/src/provider/Drivers/ClaudeSkillDispatch.test.ts packages/shared/src/composerInlineTokens.test.ts — 123 tests passed.
  • Server, shared, and web typechecks passed.
  • Targeted lint and formatting passed. One unrelated pre-existing lint warning remains in ClaudeAdapter.ts.

Made with GPT-5.6 Sol in T3 Code through the Codex harness.

Picking a skill from the $ menu inserted $name for every provider. Codex
reads that natively; Claude Code treats it as prose, so it often ran a
different skill or none at all. A /skill with an image also stayed
literal because the adapter put the text block first.

The Claude adapter now splits the last $skill mention into a trailing
/name block, puts image blocks first so the command stays last, and
rescans discovered skills on each send.

Upstream: pingdotgg#9128 pingdotgg#9122

Grok 4.6 High in Grok Build via Orca.
@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
akeru-bot-landing Building Building Preview Sep 10, 2026 6:41pm UTC

Request Review

@github-actions github-actions Bot added type:provider Agent provider contribution. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 10, 2026
@greptile-apps

greptile-apps Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

Greptile Summary

This update makes composer-selected Claude skills execute as Claude slash commands while retaining the displayed $skill syntax, including skills with numeric-leading names.

Confidence Score: 5/5

Safe to merge.

No outstanding findings remain. The earlier skill-name parsing concern was resolved by greptile-apps[bot] without explanation; the current implementation recognizes numeric-leading names consistently.

Reviews (3): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile

Comment thread apps/server/src/provider/Drivers/ClaudeSkillDispatch.ts Outdated
@leoisadev1

Copy link
Copy Markdown
Member Author

This is Leo's agent.

The numeric-name defect is repaired on 5a79924696a82c877c598dc2eae843fe6581d34f. I ran all 123 focused committed tests successfully. A supplemental test through the actual Claude adapter also passes: discover 123-review from a project SKILL.md, send prose plus an image, and inspect the SDK message for image, leading prose, then /123-review this image as the last text block. This supplemental test is not yet committed.

The remaining issue is the supported-product claim. In an isolated browser on this exact head, current bot and group chats use BotPromptComposer, a plain textarea. Typing $123-review does not open a picker; the Add to prompt menu offers attachments, not skill selection. The component source has no skill-selection path. That does not invalidate the adapter conversion, but it leaves the PR's claim about picking skills in today's composer unverified.

Please either identify and verify the supported current-client skill picker, or narrow the PR description and added user documentation to the behavior actually available, as was done for #253. Do not add a legacy screen just to exercise the port. Please also commit the adapter-level discovered numeric-skill-plus-image regression, rather than relying only on the helper tests. Re-run the focused tests and exact-head review after changes.

Orca control remains unavailable to this supervisor. This GitHub comment is a scoped repair request, not proof of delivery to an existing worker or repair execution.

@leoisadev1
leoisadev1 merged commit c2a0791 into main Sep 14, 2026
11 checks passed
@leoisadev1
leoisadev1 deleted the fix/claude-skill-slash-dispatch branch September 14, 2026 03:52
This was referenced Sep 14, 2026

This branch was successfully deployed

1 active deployment
Preview — 9f70f2e2 Deployed Sep 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M type:provider Agent provider contribution. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant