feat(skills): auto-discover .agents/skills as a default root (closes #870)#932
Merged
Conversation
added 2 commits
May 15, 2026 03:39
Closes #870. The configurable-paths system from #925 lets users point at any directory, but a user with existing skills already sitting in `~/.agents/skills` or `<project>/.agents/skills` still has to find that setting and configure it — which is exactly the friction the original issue asked us to avoid. Append `.agents/skills` to the default discovery list in `SkillStore.roots()` at both project and global scope, alongside the existing `.reasonix/skills` entries. Anything sitting in the skills.sh-style convention now just works on first launch.
…stic The combined-POST test from #925 asserts `resolved: "/opt/skills"` for an input of `/opt/skills`, which only holds on POSIX. On Windows `/opt/skills` isn't an absolute path — `path.resolve` rebases it against the current drive and returns `F:\opt\skills` (or whatever `CWD`'s drive is). Same behavior as the production code, just the test forgot to mirror it. Wrap the expected `resolved` in `resolve(absolute)` so both the production resolver and the test compute the value through the same function. Linux output unchanged. (This would have been caught by the matrix CI from #926, but #925's PR build ran a few minutes before that landed.)
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
Closes #870. PR #925 landed a configurable-paths system, but the original issue's core ask — existing skills sitting in
~/.agents/skillsor<project>/.agents/skillsshould be picked up automatically — still wasn't covered. A user on that convention still had to discover the new setting and configure it, which is exactly the friction the issue asked us to avoid.Append
.agents/skillsto the default discovery list inSkillStore.roots()at both project and global scope, alongside the existing.reasonix/skillsentries. Skills in skills.sh-style locations now just work on first launch; the configurable-paths layer from #925 is unchanged for everything else.Side fix:
tests/settings-api.test.ts:181hardcodedresolved: "/opt/skills"which only holds on POSIX. On Windows/opt/skillsisn't absolute,path.resolverebases it to the current drive, and the production resolver returnsF:\opt\skills. Wrap the expected inresolve(absolute)so both sides compute the value through the same function. This would have been caught by the matrix CI from #926, but #925's build ran a few minutes before that landed.Test plan
npm run verify(pre-push gate, all 2923 tests green on Windows + Git Bash)tests/skills.test.ts—discovers .agents/skills as a default root (#870) — both project and globalverifies both layerswindows-latestjob for the first time on the post-Support custom skill roots and update React import in tests #925 codebase