You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The two back-compat alias directories created by setup / gstack-relink — _gstack-command and connect-chrome — ship a name: field that is identical to their canonical skill. This produces duplicate skill names in ~/.claude/skills/, which violates Claude Code's global unique-name requirement and causes Claude Code to drop the entire personal-skills set. The result: none of the gstack skills (/gstack, /browse, /cso, /ship, …) are discoverable, even after a full restart.
Environment
gstack 1.2.0
Claude Code 2.1.220 (host: claude)
macOS (darwin), flat-name install (no gstack- prefix)
Root cause
setup links two top-level alias dirs whose SKILL.md is a symlink into gstack/:
_gstack-command (created by link_claude_root_skill_alias, setup ~L593) resolves to name: gstack — collides with gstack/.
connect-chrome (back-compat alias, setup ~L1003–1010) resolves to name: open-gstack-browser — collides with open-gstack-browser/.
gstack-relink calls gstack-patch-names <gstack_dir> <prefix>, but that only patches name: fields for skills insidegstack/. The two top-level alias dirs are never patched, so they retain the canonical name: and collide.
Restores discovery immediately (removing the symlink dirs doesn't touch their targets). But any subsequent ./setup or /gstack-upgrade recreates them and re-breaks discovery.
Suggested fix
Give the alias skills a distinct name: (matching their directory, e.g. gstack-command and connect-chrome) instead of symlinking the canonical SKILL.md verbatim — or extend gstack-patch-names to rewrite the name: field of the alias dirs so each skill name stays globally unique on the Claude Code host.
Activity
v1.67.0.0 fix: the tracker wave — XProtect self-heal, complete instal…