Skip to content

feat(skills): auto-discover ~/.claude/skills (Claude Code convention)#170

Open
lxistired wants to merge 1 commit into
OpenCoworkAI:mainfrom
lxistired:feat/auto-discover-home-claude-skills
Open

feat(skills): auto-discover ~/.claude/skills (Claude Code convention)#170
lxistired wants to merge 1 commit into
OpenCoworkAI:mainfrom
lxistired:feat/auto-discover-home-claude-skills

Conversation

@lxistired

Copy link
Copy Markdown

Problem

Claude Code installs user-level skills under ~/.claude/skills (and via claude plugin into ~/.claude/plugins/*/skills). When users install skills the standard way, this fork's legacy skill-path fallback doesn't see them — it only scans the built-in directory plus an explicit globalSkillsDir setting. So users following Claude Code's convention have to manually point globalSkillsDir at ~/.claude/skills to get their skills picked up.

Fix

Add ~/.claude/skills to the legacySkillPaths() list when it exists. Deduped against any existing entries (e.g. when the user has explicitly configured the same dir as their global skills dir).

fs.existsSync gate keeps fresh-install machines (no ~/.claude dir yet) clean — no ENOENT, no log spam.

Files

  • src/main/claude/agent-runner.tslegacySkillPaths() (+7 lines)

Test plan

  • Skills under ~/.claude/skills/<name>/SKILL.md get scanned without explicit globalSkillsDir config
  • Fresh machine without ~/.claude doesn't error or log warnings
  • Already-configured globalSkillsDir == ~/.claude/skills not added twice

Claude Code installs user-level skills under ~/.claude/skills (and via
`claude plugin` into ~/.claude/plugins/*/skills). Currently the legacy
skill-path fallback only scans the built-in dir + an explicit
globalSkillsDir setting, so users who follow the standard convention
have to manually configure the path.

Add ~/.claude/skills to the legacy path list when present, deduped
against any existing entries. existsSync gate keeps fresh-install
machines (no ~/.claude dir yet) clean — no ENOENT, no log spam.
@hqhq1025 hqhq1025 added bot-rerun Temporary label for rerunning bot automation and removed bot-rerun Temporary label for rerunning bot automation labels Apr 30, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings

  • No high-confidence issues found in the added or modified lines.

Summary

Review mode: initial
No actionable issues found in the current diff. Residual risk: this adds a new legacy skill-discovery branch in src/main/claude/agent-runner.ts without targeted automated coverage under src/tests/, so regressions around path precedence or deduplication could still slip through.

Testing

Not run (automation)

Open Cowork Bot

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.

2 participants