-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat: Add user-facing skills management UI (#10513) #10517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Implements a comprehensive skills management feature in the settings UI by expanding the existing slash commands section into a unified 'Commands & Skills' interface. ## Backend Changes - Add CRUD operations to SkillsManager (create, delete, getSkillsForUI, getSkillFilePath) - Implement skill name validation (agentskills.io spec compliance) - Add WebviewMessage types: requestSkills, createSkill, deleteSkill, openSkillFile - Add ExtensionMessage type for skills state updates - Implement message handlers for skills CRUD operations ## UI Changes - Create CommandsAndSkillsSettings component with tabbed interface - Create SkillsTab component with Global/Workspace sections - Create SkillItem component for individual skill display - Add skills state management to ExtensionStateContext - Add i18n translations for skills UI - Update SettingsView to use new unified component ## Testing - 35 backend tests for SkillsManager (all passing) - 18 UI tests for new components (all passing) - 27 regression tests for existing functionality (all passing) Total: 80 tests passing
…port Moving the SkillForUI interface definition from SkillsManager.ts to shared/ExtensionMessage.ts prevents the webview-ui TypeScript compilation from pulling in the entire SkillsManager service and its dependencies, which was triggering strict mode checks on unrelated files.
No new issues found. The latest commit adds Skills UI translations for all 17 locales. All previously flagged issues have been resolved.
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
The frontend validation regex now matches the backend exactly: - Prevents trailing hyphens (e.g., 'skill-' is now invalid) - Prevents consecutive hyphens (e.g., 'skill--name' is now invalid) - Prevents leading hyphens (already prevented) - Requires starting with letter or number This ensures users get immediate feedback for invalid names before attempting to create a skill.
Added translations for the new Skills UI feature to all locale files: - ca, de, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW Translations include: - Section titles (Commands & Skills, tabs) - Skill labels (Global/Workspace Skills) - Placeholders and validation messages - Delete dialog strings Verified with scripts/find-missing-translations.js - all checks pass.
|
I'd keep skills separate form slash commands right now, and I suspect they are more complex to write, since they can include child files, scripts, additional instructions, etc. So I'd ask to make this its own section in settings. |
Related GitHub Issue
Closes: #10513
Roo Code Task Context (Optional)
No Roo Code task context for this PR
Description
This PR implements a comprehensive user-facing skills management feature in the settings UI by expanding and refactoring the existing slash commands section.
Key implementation details:
Backend Services:
SkillsManagerwith CRUD operations (createSkill,deleteSkill,getSkillsForUI,getSkillFilePath)requestSkills,createSkill,deleteSkill,openSkillFilewebviewMessageHandler.tswith proper error handlingUI Components:
CommandsAndSkillsSettingscomponent with a tabbed interface ("Slash Commands" | "Skills")SkillsTabwith Global and Workspace skills sectionsSkillItemcomponent for individual skill display with edit/delete actionsExtensionStateContextDesign decisions:
SkillForUIinterface to shared types to prevent circular importsAreas for special attention:
webviewMessageHandler.ts(skills CRUD operations starting at line 3032)SkillsManager.ts(line 39-59)CommandsAndSkillsSettings.tsxSkillForUIinterface location insrc/shared/ExtensionMessage.tsTest Procedure
Automated Tests (All Passing):
Test Results:
Manual Testing Steps:
Pre-Submission Checklist
Screenshots / Videos
Documentation Updates
Additional Notes
TypeScript Fix: The second commit fixes a circular import issue by moving the
SkillForUIinterface tosrc/shared/ExtensionMessage.ts. This prevents the webview-ui compilation from pulling in the entire SkillsManager service and its dependencies.Get in Touch
TBD
Important
Introduces a skills management UI in the settings, with backend support for skill CRUD operations and validation, and updates the UI with new components and tests.
CommandsAndSkillsSettings.tsxwith tabs for "Slash Commands" and "Skills".SkillsManager.tsand integrates withwebviewMessageHandler.ts.SkillsManager.ts.SkillsTabandSkillItemcomponents for skill display and management.SettingsView.tsxto include the newCommandsAndSkillsSettingscomponent.SkillsManagerinSkillsManager.spec.ts.CommandsAndSkillsSettings,SkillsTab, andSkillItemcomponents.SkillForUIinterface toExtensionMessage.tsto prevent circular imports.This description was created by
for 3944bdd. You can customize this summary. It will automatically update as commits are pushed.