fix: replace /gsd: slash command format with /gsd- skill format in all user-facing content (#1579)
* fix: replace /gsd: command format with /gsd- skill format in all suggestions All next-step suggestions shown to users were still using the old colon format (/gsd:xxx) which cannot be copy-pasted as skills. Migrated all occurrences across agents/, commands/, get-shit-done/, docs/, README files, bin/install.js (hardcoded defaults for claude runtime), and get-shit-done/bin/lib/*.cjs (generate-claude-md templates and error messages). Updated tests to assert new hyphen format instead of old colon format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: migrate remaining /gsd: format to /gsd- in hooks, workflows, and sdk Addresses remaining user-facing occurrences missed in the initial migration: - hooks/: fix 4 user-facing messages (pause-work, update, fast, quick) and 2 comments in gsd-workflow-guard.js - get-shit-done/workflows/: fix 21 Skill() literal calls that Claude executes directly (installer does not transform workflow content) - sdk/prompt-sanitizer.ts: update regex to strip /gsd- format in addition to legacy /gsd: format; update JSDoc comment - tests/: update autonomous-ui-steps, prompt-sanitizer to assert new format Note: commands/gsd/*.md frontmatter (name: gsd:xxx) intentionally unchanged — installer derives skillName from directory path, not the name field. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(plan-phase): preserve --chain flag in auto-advance sync and handle ui-phase gate in chain mode Bug 1: step 15 sync-flag check only guarded against --auto, causing _auto_chain_active to be cleared when plan-phase is invoked without --auto in ARGUMENTS even though a --chain pipeline was active. Added --chain to the guard condition, matching discuss-phase behaviour. Bug 2: UI Design Contract gate (step 5.6) always exited the workflow when UI-SPEC was missing, breaking the discuss --chain pipeline silently. When _auto_chain_active is true, the gate now auto-invokes gsd-ui-phase --auto via Skill() and continues to step 6 without prompting. Manual invocations retain the existing AskUserQuestion flow. * fix: remove <sub>/clear</sub> pattern and duplicate old-format command in discuss-phase.md --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -53,8 +53,8 @@ describe('autonomous workflow ui-phase and ui-review integration (#1375)', () =>
|
||||
|
||||
test('UI design contract step invokes gsd:ui-phase skill', () => {
|
||||
assert.ok(
|
||||
content.includes('skill="gsd:ui-phase"'),
|
||||
'should invoke gsd:ui-phase via Skill()'
|
||||
content.includes('skill="gsd-ui-phase"'),
|
||||
'should invoke gsd-ui-phase via Skill()'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -94,8 +94,8 @@ describe('autonomous workflow ui-phase and ui-review integration (#1375)', () =>
|
||||
|
||||
test('UI review step invokes gsd:ui-review skill', () => {
|
||||
assert.ok(
|
||||
content.includes('skill="gsd:ui-review"'),
|
||||
'should invoke gsd:ui-review via Skill()'
|
||||
content.includes('skill="gsd-ui-review"'),
|
||||
'should invoke gsd-ui-review via Skill()'
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@ describe('generate-claude-md', () => {
|
||||
const claudePath = path.join(tmpDir, 'CLAUDE.md');
|
||||
const content = fs.readFileSync(claudePath, 'utf-8');
|
||||
assert.ok(content.includes('## GSD Workflow Enforcement'));
|
||||
assert.ok(content.includes('/gsd:quick'));
|
||||
assert.ok(content.includes('/gsd:debug'));
|
||||
assert.ok(content.includes('/gsd:execute-phase'));
|
||||
assert.ok(content.includes('/gsd-quick'));
|
||||
assert.ok(content.includes('/gsd-debug'));
|
||||
assert.ok(content.includes('/gsd-execute-phase'));
|
||||
assert.ok(content.includes('Do not make direct repo edits outside a GSD workflow'));
|
||||
});
|
||||
|
||||
|
||||
@@ -1081,7 +1081,7 @@ describe('Copilot manifest and patches fixes', () => {
|
||||
assert.ok(!output.includes('/gsd:reapply-patches'), 'does not use colon format');
|
||||
});
|
||||
|
||||
test('reportLocalPatches shows /gsd:reapply-patches for Claude (unchanged)', () => {
|
||||
test('reportLocalPatches shows /gsd-reapply-patches for Claude', () => {
|
||||
// Create patches directory with metadata
|
||||
const patchesDir = path.join(tmpDir, 'gsd-local-patches');
|
||||
fs.mkdirSync(patchesDir, { recursive: true });
|
||||
@@ -1094,7 +1094,8 @@ describe('Copilot manifest and patches fixes', () => {
|
||||
|
||||
assert.ok(result.length > 0, 'returns patched files list');
|
||||
const output = logs.join('\n');
|
||||
assert.ok(output.includes('/gsd:reapply-patches'), 'uses colon format for Claude');
|
||||
assert.ok(output.includes('/gsd-reapply-patches'), 'uses hyphen format for Claude');
|
||||
assert.ok(!output.includes('/gsd:reapply-patches'), 'does not use colon format for Claude');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -89,7 +89,7 @@ describe('execute-phase docs: user-facing wave flag', () => {
|
||||
const content = fs.readFileSync(COMMANDS_DOC_PATH, 'utf-8');
|
||||
assert.ok(content.includes('`--wave N`'), 'COMMANDS.md should mention --wave N');
|
||||
assert.ok(
|
||||
content.includes('/gsd:execute-phase 1 --wave 2'),
|
||||
content.includes('/gsd-execute-phase 1 --wave 2'),
|
||||
'COMMANDS.md should include a wave-filter example'
|
||||
);
|
||||
});
|
||||
@@ -101,7 +101,7 @@ describe('execute-phase docs: user-facing wave flag', () => {
|
||||
'help.md should describe wave-specific execution'
|
||||
);
|
||||
assert.ok(
|
||||
content.includes('Usage: `/gsd:execute-phase 5 --wave 2`'),
|
||||
content.includes('Usage: `/gsd-execute-phase 5 --wave 2`'),
|
||||
'help.md should include wave-filter usage'
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user