Skip to content

feat(skills): auto-discover .agents/skills as a default root (closes #870)#932

Merged
esengine merged 2 commits into
mainfrom
feat/skills-default-agents-dir
May 15, 2026
Merged

feat(skills): auto-discover .agents/skills as a default root (closes #870)#932
esengine merged 2 commits into
mainfrom
feat/skills-default-agents-dir

Conversation

@esengine
Copy link
Copy Markdown
Owner

Summary

Closes #870. PR #925 landed a configurable-paths system, but the original issue's core ask — existing skills sitting in ~/.agents/skills or <project>/.agents/skills should 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/skills to the default discovery list in SkillStore.roots() at both project and global scope, alongside the existing .reasonix/skills entries. 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:181 hardcoded resolved: "/opt/skills" which only holds on POSIX. On Windows /opt/skills isn't absolute, path.resolve rebases it to the current drive, and the production resolver returns F:\opt\skills. Wrap the expected in resolve(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)
  • New test in tests/skills.test.tsdiscovers .agents/skills as a default root (#870) — both project and global verifies both layers
  • Matrix CI run on this PR will exercise the windows-latest job for the first time on the post-Support custom skill roots and update React import in tests #925 codebase

reasonix 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.)
@esengine esengine merged commit aff9ac8 into main May 15, 2026
4 checks passed
@esengine esengine deleted the feat/skills-default-agents-dir branch May 15, 2026 10:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support the .agents/skills directory

1 participant