* 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)
806 B
806 B
type, pr
| type | pr |
|---|---|
| Fixed | 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.