* feat(vscode): expose /skills as slash command with secondary picker
Add a secondary completion picker for the /skills slash command in the
VSCode IDE companion, allowing users to browse and select skills from
a dropdown before sending.
Changes:
- CLI: add 'skills' to ALLOWED_BUILTIN_COMMANDS_NON_INTERACTIVE whitelist
- CLI: send available_skills_update via ACP with skill names/descriptions
- Extension: handle available_skills_update in session update handler
- Webview: implement secondary picker that triggers after selecting /skills
- Webview: allow spaces in completion trigger for /skills sub-queries
Closes#1562
Made-with: Cursor
* feat(vscode-ide-companion): embed skills in commands update metadata
- Move available skills from separate session update to _meta field of
available_commands_update for more efficient delivery
- Simplify skill data to just skill names (string array)
- Add skillsCompletion utility for secondary picker logic
- Cache available skills in WebViewProvider for replay on webview ready
- Update all related types and handlers to support the new structure
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* refactor(vscode-ide-companion): simplify skills picker flow
* refactor(vscode-ide-companion): extract skills completion utils to shared module
Move `isSkillsSecondaryQuery`, `shouldOpenSkillsSecondaryPicker`, and
`SKILL_ITEM_ID_PREFIX` from App.tsx and useCompletionTrigger.ts into a
shared `completionUtils.ts` file to eliminate duplication.
* fix(vscode-ide-companion): restore skills picker state on reload
Cache and replay available skills when the webview becomes ready again.
Clear stale skills when commands metadata does not include availableSkills.
* fix(vscode-ide-companion): replay slash commands after webview reload
Cache available commands in the webview provider.
Replay them on webviewReady so slash command state survives reloads.
* fix(vscode-ide-companion): import AvailableCommand from ACP SDK
* fix(vscode-ide-companion): fallback /skills to direct command
* test(vscode-ide-companion): cover skills secondary picker flow
* test(vscode-ide-companion): guard App mock initialization
* fix(vscode-ide-companion): remove duplicate AvailableCommand import
The auto-merge introduced a duplicate AvailableCommand in the
@agentclientprotocol/sdk import block, causing TS2300.
* fix(vscode-ide-companion): remove duplicate availableCommands replay in handleWebviewReady
The handleWebviewReady method was sending cachedAvailableCommands twice
on every webview-ready handshake, causing an unnecessary extra state
update in the webview.
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add test-engineer agent for bug reproduction and verification
- Add /qc:bugfix command for structured bugfix workflow
- Add e2e-testing skill covering headless/interactive modes, MCP testing
- Add structured-debugging skill for hypothesis-driven debugging
- Simplify AGENTS.md to focus on essential commands and conventions
- Add terminal-capture scenario for bugfix workflow testing
- Add .qwen folder to ESLint ignore list
Known limitations: The /qc:bugfix workflow and e2e-testing skill
are experimental and may be unstable or consume significant tokens.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>