fix(skills): preserve real Claude skills directories - #136
Conversation
|
| `merge it in and replace it with the symlink (ln -s ${target} ${claudeSkillsDir}).` | ||
| `left untouched. Backpass writes new skills to ${CANONICAL_SKILLS_DIR}, which Claude will not load ` + | ||
| `through ${claudeSkillsDir}. To write directly to the existing directory, use ` + | ||
| `--skills-dir ${shellQuote(claudeSkillsDir)} for one run, set "skillsDir": "${claudeSkillsDir}" in .backpassrc.json ` + |
There was a problem hiding this comment.
Windows guidance uses POSIX quoting
The warning is also emitted on Windows, but it always wraps the --skills-dir value in POSIX single quotes. In cmd.exe, those quotes are treated as part of the path rather than grouping the argument, so copying the suggested command fails even for the default .claude/skills path. Please render the argument for the active platform or provide platform-specific guidance.
|
Speaking as Kun's firstmate. Diff reviewed on Contract-class: restore. Unconfigured write path is unchanged: overflow still targets VISION per-rule
Blocker (author, not captain): Require no-mistakes is not green for this HEAD binding. The latest body-compliance run (edited event 145) failed with |
|
Require no-mistakes was rerun at the current PR head () and passed successfully: https://github.com/kunchenguid/backpass/actions/runs/35120660255 |
|
Speaking as Kun's firstmate. Re-triage after newer activity. Prior blocker cleared on old HEAD CI + Guard are green on the new HEAD (CI 35163585826, Guard 35163585825). Mergeable true; merge state CLEAN. Greptile SUCCESS — not a gate. No workflow-file changes; security clean (warning/docs/tests only). Diff intent unchanged vs prior review. Contract-class: restore. Unconfigured write path unchanged: overflow still targets VISION per-rule
Blocker (author, not captain): Require no-mistakes has no successful run bound to HEAD |
…ded space-containing path coverage. Focused tests (16/16), ESLint, Prettier, and diff checks pass
e9111da to
4d9cefb
Compare
|
Speaking as Kun's firstmate. Re-triage after newer activity (force-push / no-mistakes commits). New HEAD is CI + Guard are green on this HEAD (CI 35272674117, Guard 35272674200). Mergeable true; merge state CLEAN; not behind main. Greptile SUCCESS — not a gate. No workflow-file changes; security clean (warning/docs/tests only). Diff intent unchanged: non-destructive scope-aware guidance + shell quoting for paths with spaces. Contract-class: restore. Unconfigured write path unchanged: overflow still targets VISION per-rule
Blocker (author, not captain): Require no-mistakes has no successful run bound to HEAD |
|
Require no-mistakes was rerun at the current PR head (4d9cefb) and passed successfully: https://github.com/kunchenguid/backpass/actions/runs/35383253468 |
|
Speaking as Kun's firstmate: this is merged. Thank you @Azd325 — really appreciate you taking the time on this. Re-triage after author note that Require no-mistakes passed on HEAD Contract-class: restore. Unconfigured write path unchanged: overflow still targets VISION per-rule
Squash-merged as restore + green CI including no-mistakes + safe review. |
Intent
Fix skills-directory guidance so it is scope-aware instead of destructive: when a real .claude/skills directory already exists, backpass previously suggested replacing it with a symlink; now it leaves the real directory untouched and instead offers scope-aware alternatives (one-run --skills-dir, project config, or user config) so overflow skills land somewhere configured rather than clobbering existing content. This matches the already-promised non-clobber default (contract-class: restore, not a new always-on behavior). Follow-up commits addressed reviewer (Greptile) P2 findings: quote the --skills-dir path in the emitted warning so a CLAUDE_CONFIG_DIR containing spaces doesn't break the copy-pasted command, and added test coverage for space-containing paths.
What Changed
.claude/skillsdirectories and replace symlink-replacement guidance with scope-aware alternatives for configuring--skills-dirorskillsDir.Risk Assessment
✅ Low: The change is narrowly scoped to non-destructive skills-directory guidance, shell quoting, documentation, and behavioral coverage; no source-verifiable material issues were found.
Testing
Drove the isolated CLI and actual skills write/resolution code, including preservation and space-containing guidance; no transient worktree artifacts remain. Full synthesis was untested because no live agent credential/evidence corpus was available.
.claude/skillsdirectorybackpass status --no-uicommand and filesystem verificationresolveOverflowTargetandwriteSkill.claude config/skillsbackpass proposeend-to-end and observe the warning during synthesisEvidence: Live skills guidance verification
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
.claude/skillsdirectorybackpass status --no-uicommand and filesystem verificationresolveOverflowTargetandwriteSkill.claude config/skillsbackpass proposeend-to-end and observe the warning during synthesisnode --test test/skills.test.jsIsolatedbackpass status --no-uiwith a real.claude/skillsdirectoryExecutableresolveOverflowTarget/writeSkillcheck with a space-containing skills pathgit status --shortcleanup check✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.