feat(ai-core): discover skills from .agents/skills directories#17553
Merged
Conversation
ndoschek
requested changes
May 27, 2026
sgraband
added a commit
that referenced
this pull request
May 29, 2026
- Refactor combineSkillDirectories to return tagged tuples (path + tier) so DefaultSkillService.update() can call the helper directly. Eliminates the drift between the helper and the inline dedup in update(); collapses three near-duplicate per-tier loops into one tier-dispatched loop. - Add tests documenting the workspace-tier priority (.prompts/skills wins over .agents/skills on duplicate skill names), both at helper level and via a FileService-mock-based service-level integration test. - Add CHANGELOG breaking-changes entry under 1.73.0 for the renamed getDefaultSkillsDirectoryPaths and the changed combineSkillDirectories signature.
Add .agents/skills/ as an additional skill source location alongside the existing .prompts/skills/ directory. Skills are now discovered from: - Workspace: .prompts/skills/ and .agents/skills/ - User-configured directories (unchanged) - Global: ~/.theia/skills/ and ~/.agents/skills/ Refactor DefaultSkillService and combineSkillDirectories to operate on arrays of workspace/default directories instead of single paths, and update the corresponding tests. The CreateSkill agent prompt now asks the user which target directory to use, defaulting to .agents/skills/, and the README and agent description are updated accordingly.
- Refactor combineSkillDirectories to return tagged tuples (path + tier) so DefaultSkillService.update() can call the helper directly. Eliminates the drift between the helper and the inline dedup in update(); collapses three near-duplicate per-tier loops into one tier-dispatched loop. - Add tests documenting the workspace-tier priority (.prompts/skills wins over .agents/skills on duplicate skill names), both at helper level and via a FileService-mock-based service-level integration test. - Add CHANGELOG breaking-changes entry under 1.73.0 for the renamed getDefaultSkillsDirectoryPaths and the changed combineSkillDirectories signature.
The duplicate-skill test compared the resolved skill location against a POSIX-style string, but `Path.fsPath()` on the production side returns backslashes on Windows. Normalize the expected value through `Path.fsPath()` so the assertion holds on both POSIX and Windows runners.
ndoschek
approved these changes
Jun 3, 2026
Member
ndoschek
left a comment
There was a problem hiding this comment.
Thank you for the updates Simon, LGTM 🎉
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What it does
Add .agents/skills/ as an additional skill source location alongside the existing .prompts/skills/ directory. Skills are now discovered from:
Refactor DefaultSkillService and combineSkillDirectories to operate on arrays of workspace/default directories instead of single paths, and update the corresponding tests.
The CreateSkill agent prompt now asks the user which target directory to use, defaulting to .agents/skills/, and the README and agent description are updated accordingly.
How to test
Follow-ups
Breaking changes
Attribution
Review checklist
nlsservice (for details, please see the Internationalization/Localization section in the Coding Guidelines)Reminder for reviewers