From 1e8356fa259153b56213fa434a822bbf4a885f39 Mon Sep 17 00:00:00 2001 From: Abdul Wahab <32850166+abdulwahabone@users.noreply.github.com> Date: Fri, 15 May 2026 02:52:24 +0900 Subject: [PATCH] fix(cli): pass --copy to npx skills add to avoid symlinking provider dirs (#148) By default, `npx skills add` installs to .agents/skills/ and symlinks .claude/skills/ to it. That symlink fails to be created on fresh projects with no .claude/ directory, and on Windows without elevated privileges, leading to `Cannot find module .../.claude/skills/impeccable/scripts/ load-context.mjs` (issue #140). It also collapses meaningful per-provider differences between the two directories (Claude-specific frontmatter, command prefix, paths) into a single shared file. The skills CLI's `--copy` flag installs each provider's variant separately without any symlinks, fixing both problems at once. Fixes #140. Co-authored-by: Claude Sonnet 4.6 (1M context) --- cli/bin/commands/skills.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cli/bin/commands/skills.mjs b/cli/bin/commands/skills.mjs index e1e5782bc..4df17e98d 100644 --- a/cli/bin/commands/skills.mjs +++ b/cli/bin/commands/skills.mjs @@ -336,7 +336,12 @@ async function install(flags) { console.log('Installing impeccable skills via npx skills...\n'); try { - execSync(`npx skills add pbakaus/impeccable${yes ? ' -y' : ''}`, { stdio: 'inherit' }); + // --copy forces npx skills to install each provider's variant separately + // instead of symlinking .claude/skills/ to .agents/skills/. The two + // directories have meaningfully different per-provider content (frontmatter, + // command prefix, paths), and the default symlink also fails silently when + // .claude/ doesn't exist yet or on Windows without elevated privileges (#140). + execSync(`npx skills add pbakaus/impeccable --copy${yes ? ' -y' : ''}`, { stdio: 'inherit' }); } catch (e) { process.exit(e.status ?? 1); }