* fix(#3126): replace hardcoded globalSkillsBase with runtime-aware mapping Root cause: buildAgentSkillsBlock() used path.join(os.homedir(), '.claude', 'skills') for globalSkillsBase regardless of config.runtime. Cursor users (and every non-Claude runtime) saw their global: skill lookups fail with a warning pointing to the wrong directory. Fix: introduces get-shit-done/bin/lib/runtime-homes.cjs — a pure, side- effect-free module covering all 15 GSD runtimes: Runtime Config base Skills path claude ~/.claude ~/.claude/skills/ cursor ~/.cursor ~/.cursor/skills/ gemini ~/.gemini ~/.gemini/skills/ codex ~/.codex ~/.codex/skills/ copilot ~/.copilot ~/.copilot/skills/ antigravity ~/.gemini/antigravity ...antigravity/skills/ windsurf ~/.codeium/windsurf ...windsurf/skills/ augment ~/.augment ~/.augment/skills/ trae ~/.trae ~/.trae/skills/ qwen ~/.qwen ~/.qwen/skills/ hermes ~/.hermes ~/.hermes/skills/gsd/ (nested #2841) codebuddy ~/.codebuddy ~/.codebuddy/skills/ cline ~/.cline null (rules-based, no skills dir) opencode ~/.config/opencode ...opencode/skills/ kilo ~/.config/kilo ...kilo/skills/ Also adds CLAUDE_CONFIG_DIR env var support (was missing). Warning messages now show the actual runtime-specific path. Docs: INVENTORY.md CLI Modules 41→42. Regression test: 30 assertions across all runtimes. Suite: 7008/7008. Closes #3126. * fix(lint+init): allow-test-rule, fix display path duplication (skillName appended twice)
6 lines
806 B
Markdown
6 lines
806 B
Markdown
---
|
|
type: Fixed
|
|
pr: 3126
|
|
---
|
|
**`global:` skill resolution now uses the correct runtime home directory** — `buildAgentSkillsBlock()` hardcoded `globalSkillsBase` to `~/.claude/skills` regardless of the active runtime, causing every `global:` skill lookup to silently fail on non-Claude runtimes (Cursor, Gemini, Codex, Windsurf, etc.). Introduces `get-shit-done/bin/lib/runtime-homes.cjs` — a first-class runtime→directory mapping module covering all 15 supported runtimes with their canonical env-var overrides. Notable specifics: Hermes Agent uses a nested `skills/gsd/<skillName>/` layout (#2841); Cline is rules-based and returns `null` (no skills directory); `CLAUDE_CONFIG_DIR` env var was previously missing for Claude. Warning messages now show the actual runtime-specific path. Closes #3126.
|