feat(skills): populate registry from enabled sets and improve autocomplete#226
Merged
LeeCheneler merged 1 commit intomainfrom Mar 29, 2026
Merged
Conversation
…plete Namespace skill set skills as setName:skillName and load them into the registry from enabled sets in config. Reload skills on settings save for immediate effect. Switch autocomplete matching from startsWith to includes, sorted by match position. Remove ghost text from chat input. Refs #220
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.
Summary
This PR implements two main changes:
setName:skillName, and reloading skills when settings are saved.GitHub Issue
Closes #220
What Changed
Autocomplete Improvements
ghost,showGhost) from the autocomplete hook and chat input component.startsWithtoindexOf(substring matching) with sorting by match index (earliest match first).useAutocompletehook signature by removing thecursorparameter (no longer needed for ghost text).Skill Set Loading
getSkillSetPathfunction to retrieve the absolute path of a specific skill set within a cloned source.Skillinterface with an optionalskillSetproperty to track which skill set a skill originated from.loadSkillsto accept an optional array ofSkillSetDirand load skills from skill set directories with namespacing (setName:skillName).reloadSkills()call in settings save callback to refresh skills when skill set sources are updated.Files Modified
src/commands/settings.ts: ImportreloadSkillsand call it after saving settings.src/components/chat-input.tsx: Simplify autocomplete usage, remove ghost text related code.src/components/chat-input.test.tsx: Remove outdated ghost text test.src/hooks/use-autocomplete.ts: Rewrite matching logic, remove ghost text, adjust return values.src/hooks/use-autocomplete.test.tsx: Remove ghost text tests, add substring matching test.src/skill-sets/sources.ts: AddgetSkillSetPathhelper function.src/skills/loader.ts: Rewrite to load from skill set directories with namespacing and updated precedence.src/skills/loader.test.ts: Add extensive test suite for skill set loading behavior.src/skills/registry.ts: Resolve enabled skill set directories and pass to loader.src/skills/types.ts: AddskillSetproperty to Skill interface.Notes for Reviewers
setName:skillName(e.g., "ops:deploy") to avoid naming conflicts and allow explicit reference.