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) <noreply@anthropic.com>
This commit is contained in:
Abdul Wahab
2026-05-14 10:52:24 -07:00
committed by GitHub
co-authored by Claude Sonnet 4.6
parent 4027e17f4c
commit 1e8356fa25
+6 -1
View File
@@ -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);
}