fix(setup): namespace skill symlinks with gstack- prefix (#267, #284)#503
fix(setup): namespace skill symlinks with gstack- prefix (#267, #284)#503LarHope wants to merge 1 commit intogarrytan:mainfrom
Conversation
…lution Skills like /review, /ship, /qa pollute ~/.claude/skills/ and collide with other skill packs. Prefix all Claude symlinks with gstack- (e.g., gstack-review, gstack-ship) matching the Codex convention. - Default: prefixed symlinks (gstack-review → gstack/review) - --no-prefix flag for backward compatibility - Auto-cleanup of old unprefixed symlinks on re-run - gstack-upgrade stays unchanged (already prefixed) Closes garrytan#267, closes garrytan#284 Oscar Hope
|
Really clean approach to a problem I've been running into. I have a few custom skills alongside gstack and the flat namespace was causing me to second-guess which The One thing I noticed: the |
|
This is overdue. Managing a shared The fact that Codex already uses prefixed names via 👍 from me. Would be good to get the follow-up PR with the SKILL.md template updates soon so the slash command references stay in sync. |
|
I have a follow-up PR ready that updates all 28 SKILL.md templates, resolver TypeScript files, and documentation (README, docs/skills.md, CLAUDE.md, CONTRIBUTING.md, ARCHITECTURE.md) to use the new Happy to submit it once this lands, or happy to let the team handle the alignment if you'd prefer to do it as part of a wave. Just let me know which you'd prefer. |
Closes #267
Closes #284
The problem
gstack installs 27 skills as flat symlinks in
~/.claude/skills/— names likereview,ship,qa,browse. These are generic names that collide with other skill packs and make it impossible to tell which skills belong to gstack vs. something else.Issue #267 (6 👍) and #284 (2 👍) have been asking for this — it's the #2 most-requested change by community reactions.
Every other skill pack uses namespaced names (
superpowers:brainstorming,example-skills:pdf). gstack is the outlier dumping 27 generic names into the global namespace. As the ecosystem grows, this gets worse.The fix (1 file, 51 lines)
The
setupscript now prefixes all Claude skill symlinks withgstack-:This matches what gstack already does for Codex via
codexSkillName()— the Claude side was just missing the same treatment.What's in the diff:
link_claude_skill_dirs()appliesgstack-prefix (skipsgstack-upgradeto avoid double-prefix)cleanup_old_claude_symlinks()removes stale flat symlinks on upgrade--no-prefixflag for users who want the old behaviorWhat's NOT in the diff: templates, docs, tests. Those come in a follow-up PR to keep this reviewable.
Backward compatibility
./setupgstack-review)./setup --no-prefixreview)How to test
Follow-up
This is PR 1 of 2. A follow-up PR will update SKILL.md templates and docs to reference
/gstack-reviewinstead of/review. Kept separate to make each PR easy to review.🤖 Generated with Claude Code