From aaba233f8339deb0c95c71cddb90838963f94a0d Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Sun, 24 May 2026 14:16:30 -0400 Subject: [PATCH] fix(#170): migrate workflow fallback hints to @opengsd package (#204) * fix(#170): update workflow fallback install hint package * chore(#170): add changeset for workflow fallback hint migration * fix(#170): mark workflow-hint test as structural text contract --- .../170-workflow-fallback-package-hint.md | 5 +++ get-shit-done/workflows/add-backlog.md | 2 +- get-shit-done/workflows/add-phase.md | 2 +- get-shit-done/workflows/add-tests.md | 2 +- get-shit-done/workflows/add-todo.md | 2 +- .../workflows/ai-integration-phase.md | 2 +- get-shit-done/workflows/audit-fix.md | 2 +- get-shit-done/workflows/audit-milestone.md | 2 +- get-shit-done/workflows/audit-uat.md | 2 +- get-shit-done/workflows/autonomous.md | 2 +- get-shit-done/workflows/check-todos.md | 2 +- get-shit-done/workflows/cleanup.md | 2 +- get-shit-done/workflows/code-review-fix.md | 2 +- get-shit-done/workflows/code-review.md | 2 +- get-shit-done/workflows/complete-milestone.md | 2 +- get-shit-done/workflows/debug.md | 2 +- get-shit-done/workflows/diagnose-issues.md | 2 +- .../workflows/discuss-phase-assumptions.md | 2 +- get-shit-done/workflows/discuss-phase.md | 2 +- get-shit-done/workflows/do.md | 2 +- get-shit-done/workflows/docs-update.md | 2 +- get-shit-done/workflows/edit-phase.md | 2 +- get-shit-done/workflows/eval-review.md | 2 +- get-shit-done/workflows/execute-phase.md | 2 +- get-shit-done/workflows/execute-plan.md | 2 +- get-shit-done/workflows/explore.md | 2 +- get-shit-done/workflows/extract-learnings.md | 2 +- get-shit-done/workflows/forensics.md | 2 +- get-shit-done/workflows/graduation.md | 2 +- get-shit-done/workflows/health.md | 2 +- get-shit-done/workflows/import.md | 2 +- get-shit-done/workflows/insert-phase.md | 2 +- get-shit-done/workflows/list-workspaces.md | 2 +- get-shit-done/workflows/manager.md | 2 +- get-shit-done/workflows/map-codebase.md | 2 +- get-shit-done/workflows/milestone-summary.md | 2 +- get-shit-done/workflows/mvp-phase.md | 2 +- get-shit-done/workflows/new-milestone.md | 2 +- get-shit-done/workflows/new-project.md | 2 +- get-shit-done/workflows/new-workspace.md | 2 +- get-shit-done/workflows/next.md | 2 +- get-shit-done/workflows/pause-work.md | 2 +- .../workflows/plan-milestone-gaps.md | 2 +- get-shit-done/workflows/plan-phase.md | 2 +- .../workflows/plan-review-convergence.md | 2 +- get-shit-done/workflows/plant-seed.md | 2 +- get-shit-done/workflows/profile-user.md | 2 +- get-shit-done/workflows/progress.md | 2 +- get-shit-done/workflows/remove-phase.md | 2 +- get-shit-done/workflows/remove-workspace.md | 2 +- get-shit-done/workflows/resume-project.md | 2 +- get-shit-done/workflows/review.md | 2 +- get-shit-done/workflows/scan.md | 2 +- get-shit-done/workflows/secure-phase.md | 2 +- get-shit-done/workflows/settings-advanced.md | 2 +- .../workflows/settings-integrations.md | 2 +- get-shit-done/workflows/settings.md | 2 +- get-shit-done/workflows/ship.md | 2 +- get-shit-done/workflows/sketch-wrap-up.md | 2 +- get-shit-done/workflows/sketch.md | 2 +- get-shit-done/workflows/spike-wrap-up.md | 2 +- get-shit-done/workflows/spike.md | 2 +- get-shit-done/workflows/stats.md | 2 +- get-shit-done/workflows/thread.md | 2 +- get-shit-done/workflows/transition.md | 2 +- get-shit-done/workflows/ui-phase.md | 2 +- get-shit-done/workflows/ui-review.md | 2 +- get-shit-done/workflows/ultraplan-phase.md | 2 +- get-shit-done/workflows/validate-phase.md | 2 +- get-shit-done/workflows/verify-phase.md | 2 +- get-shit-done/workflows/verify-work.md | 2 +- ...70-workflow-fallback-install-hint.test.cjs | 43 +++++++++++++++++++ 72 files changed, 118 insertions(+), 70 deletions(-) create mode 100644 .changeset/170-workflow-fallback-package-hint.md create mode 100644 tests/bug-170-workflow-fallback-install-hint.test.cjs diff --git a/.changeset/170-workflow-fallback-package-hint.md b/.changeset/170-workflow-fallback-package-hint.md new file mode 100644 index 000000000..f6e44ad9e --- /dev/null +++ b/.changeset/170-workflow-fallback-package-hint.md @@ -0,0 +1,5 @@ +--- +type: Fixed +pr: 170 +--- +**Workflow fallback install hint migration** — workflow error-path guidance for missing `gsd-sdk` now points to `npx -y @opengsd/get-shit-done-redux@latest --claude --local` instead of the abandoned `get-shit-done-cc` package. Added a regression test to prevent legacy fallback hints from reappearing in workflow markdown. diff --git a/get-shit-done/workflows/add-backlog.md b/get-shit-done/workflows/add-backlog.md index 63c5db049..b61b417c2 100644 --- a/get-shit-done/workflows/add-backlog.md +++ b/get-shit-done/workflows/add-backlog.md @@ -27,7 +27,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi NEXT=$($GSD_SDK query phase.next-decimal 999 --raw) diff --git a/get-shit-done/workflows/add-phase.md b/get-shit-done/workflows/add-phase.md index 687d7c447..c9dd72641 100644 --- a/get-shit-done/workflows/add-phase.md +++ b/get-shit-done/workflows/add-phase.md @@ -37,7 +37,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "0") diff --git a/get-shit-done/workflows/add-tests.md b/get-shit-done/workflows/add-tests.md index b2d71baea..086d05a33 100644 --- a/get-shit-done/workflows/add-tests.md +++ b/get-shit-done/workflows/add-tests.md @@ -41,7 +41,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/add-todo.md b/get-shit-done/workflows/add-todo.md index 003c07f35..65dcf3905 100644 --- a/get-shit-done/workflows/add-todo.md +++ b/get-shit-done/workflows/add-todo.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.todos) diff --git a/get-shit-done/workflows/ai-integration-phase.md b/get-shit-done/workflows/ai-integration-phase.md index 0d369d8ce..e2ec6ed68 100644 --- a/get-shit-done/workflows/ai-integration-phase.md +++ b/get-shit-done/workflows/ai-integration-phase.md @@ -28,7 +28,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.plan-phase "$PHASE") diff --git a/get-shit-done/workflows/audit-fix.md b/get-shit-done/workflows/audit-fix.md index fa7a79026..4d0028a22 100644 --- a/get-shit-done/workflows/audit-fix.md +++ b/get-shit-done/workflows/audit-fix.md @@ -40,7 +40,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query audit-uat 2>/dev/null || echo "{}") diff --git a/get-shit-done/workflows/audit-milestone.md b/get-shit-done/workflows/audit-milestone.md index b7a7a6e0b..a75d2bdc1 100644 --- a/get-shit-done/workflows/audit-milestone.md +++ b/get-shit-done/workflows/audit-milestone.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.milestone-op) diff --git a/get-shit-done/workflows/audit-uat.md b/get-shit-done/workflows/audit-uat.md index 9614278c8..2daea6ee3 100644 --- a/get-shit-done/workflows/audit-uat.md +++ b/get-shit-done/workflows/audit-uat.md @@ -16,7 +16,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi AUDIT=$($GSD_SDK query audit-uat --raw) diff --git a/get-shit-done/workflows/autonomous.md b/get-shit-done/workflows/autonomous.md index 8788b1844..964eab083 100644 --- a/get-shit-done/workflows/autonomous.md +++ b/get-shit-done/workflows/autonomous.md @@ -56,7 +56,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.milestone-op) diff --git a/get-shit-done/workflows/check-todos.md b/get-shit-done/workflows/check-todos.md index 5d93d4414..3cfc6adc6 100644 --- a/get-shit-done/workflows/check-todos.md +++ b/get-shit-done/workflows/check-todos.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.todos) diff --git a/get-shit-done/workflows/cleanup.md b/get-shit-done/workflows/cleanup.md index edcd3de47..7150056cc 100644 --- a/get-shit-done/workflows/cleanup.md +++ b/get-shit-done/workflows/cleanup.md @@ -132,7 +132,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query commit "chore: archive phase directories from completed milestones" --files .planning/milestones/ .planning/phases/ diff --git a/get-shit-done/workflows/code-review-fix.md b/get-shit-done/workflows/code-review-fix.md index 7f8add3fb..07452cd9c 100644 --- a/get-shit-done/workflows/code-review-fix.md +++ b/get-shit-done/workflows/code-review-fix.md @@ -26,7 +26,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/code-review.md b/get-shit-done/workflows/code-review.md index 85efbbd57..7a53b955d 100644 --- a/get-shit-done/workflows/code-review.md +++ b/get-shit-done/workflows/code-review.md @@ -26,7 +26,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/complete-milestone.md b/get-shit-done/workflows/complete-milestone.md index ce0ac210d..721bca3e7 100644 --- a/get-shit-done/workflows/complete-milestone.md +++ b/get-shit-done/workflows/complete-milestone.md @@ -49,7 +49,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query audit-open diff --git a/get-shit-done/workflows/debug.md b/get-shit-done/workflows/debug.md index b9e466b2d..de2442c78 100644 --- a/get-shit-done/workflows/debug.md +++ b/get-shit-done/workflows/debug.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query state.load) diff --git a/get-shit-done/workflows/diagnose-issues.md b/get-shit-done/workflows/diagnose-issues.md index 321d75f74..8d20d4096 100644 --- a/get-shit-done/workflows/diagnose-issues.md +++ b/get-shit-done/workflows/diagnose-issues.md @@ -66,7 +66,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi USE_WORKTREES=$($GSD_SDK query config-get workflow.use_worktrees 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/discuss-phase-assumptions.md b/get-shit-done/workflows/discuss-phase-assumptions.md index 06eafab38..0e5767b82 100644 --- a/get-shit-done/workflows/discuss-phase-assumptions.md +++ b/get-shit-done/workflows/discuss-phase-assumptions.md @@ -72,7 +72,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE}") diff --git a/get-shit-done/workflows/discuss-phase.md b/get-shit-done/workflows/discuss-phase.md index 963dc743f..e848a659a 100644 --- a/get-shit-done/workflows/discuss-phase.md +++ b/get-shit-done/workflows/discuss-phase.md @@ -109,7 +109,7 @@ Phase: "API documentation" → Structure/navigation, Code examples depth, Phase number from argument (required). ```bash -GSD_TOOLS="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/get-shit-done/bin/gsd-tools.cjs"; [ -f "$GSD_TOOLS" ] && GSD_SDK="node $GSD_TOOLS" || { command -v gsd-sdk >/dev/null 2>&1 && GSD_SDK=gsd-sdk || { echo "ERROR: gsd-sdk not found. Run: npx get-shit-done-cc@latest --claude --local" >&2; exit 1; }; } +GSD_TOOLS="${RUNTIME_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/get-shit-done/bin/gsd-tools.cjs"; [ -f "$GSD_TOOLS" ] && GSD_SDK="node $GSD_TOOLS" || { command -v gsd-sdk >/dev/null 2>&1 && GSD_SDK=gsd-sdk || { echo "ERROR: gsd-sdk not found. Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2; exit 1; }; } INIT=$($GSD_SDK query init.phase-op "${PHASE}"); [[ "$INIT" == @file:* ]] && INIT=$(cat "${INIT#@file:}") AGENT_SKILLS_ADVISOR=$($GSD_SDK query agent-skills gsd-advisor-researcher) ``` diff --git a/get-shit-done/workflows/do.md b/get-shit-done/workflows/do.md index c249b6f62..0afc32e21 100644 --- a/get-shit-done/workflows/do.md +++ b/get-shit-done/workflows/do.md @@ -35,7 +35,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query state.load 2>/dev/null) diff --git a/get-shit-done/workflows/docs-update.md b/get-shit-done/workflows/docs-update.md index 268e80fdb..6f1444df1 100644 --- a/get-shit-done/workflows/docs-update.md +++ b/get-shit-done/workflows/docs-update.md @@ -22,7 +22,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query docs-init) diff --git a/get-shit-done/workflows/edit-phase.md b/get-shit-done/workflows/edit-phase.md index aa6836fa9..6dd0e1ab4 100644 --- a/get-shit-done/workflows/edit-phase.md +++ b/get-shit-done/workflows/edit-phase.md @@ -42,7 +42,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${target}") diff --git a/get-shit-done/workflows/eval-review.md b/get-shit-done/workflows/eval-review.md index 575558059..ed510474b 100644 --- a/get-shit-done/workflows/eval-review.md +++ b/get-shit-done/workflows/eval-review.md @@ -21,7 +21,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/execute-phase.md b/get-shit-done/workflows/execute-phase.md index 70179d1df..1381fa141 100644 --- a/get-shit-done/workflows/execute-phase.md +++ b/get-shit-done/workflows/execute-phase.md @@ -74,7 +74,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.execute-phase "${PHASE_ARG}") diff --git a/get-shit-done/workflows/execute-plan.md b/get-shit-done/workflows/execute-plan.md index 1add9d49c..b9f725d1f 100644 --- a/get-shit-done/workflows/execute-plan.md +++ b/get-shit-done/workflows/execute-plan.md @@ -38,7 +38,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.execute-phase "${PHASE}") diff --git a/get-shit-done/workflows/explore.md b/get-shit-done/workflows/explore.md index 1bfb65709..91c219ea8 100644 --- a/get-shit-done/workflows/explore.md +++ b/get-shit-done/workflows/explore.md @@ -123,7 +123,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query commit "docs: capture exploration — {topic_slug}" --files {file_list} diff --git a/get-shit-done/workflows/extract-learnings.md b/get-shit-done/workflows/extract-learnings.md index 02a21af3a..7ce2b9f93 100644 --- a/get-shit-done/workflows/extract-learnings.md +++ b/get-shit-done/workflows/extract-learnings.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/forensics.md b/get-shit-done/workflows/forensics.md index 9966b482f..82975d352 100644 --- a/get-shit-done/workflows/forensics.md +++ b/get-shit-done/workflows/forensics.md @@ -280,7 +280,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query state.record-session "" \ diff --git a/get-shit-done/workflows/graduation.md b/get-shit-done/workflows/graduation.md index 1c5f0b04f..be5bc90dc 100644 --- a/get-shit-done/workflows/graduation.md +++ b/get-shit-done/workflows/graduation.md @@ -29,7 +29,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi GRADUATION_ENABLED=$($GSD_SDK query config-get features.graduation 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/health.md b/get-shit-done/workflows/health.md index 82b9ec141..5c2cd82f2 100644 --- a/get-shit-done/workflows/health.md +++ b/get-shit-done/workflows/health.md @@ -57,7 +57,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query validate.context \ diff --git a/get-shit-done/workflows/import.md b/get-shit-done/workflows/import.md index 007ef3096..24953d5f2 100644 --- a/get-shit-done/workflows/import.md +++ b/get-shit-done/workflows/import.md @@ -184,7 +184,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "{NN}") diff --git a/get-shit-done/workflows/insert-phase.md b/get-shit-done/workflows/insert-phase.md index 0285d783b..b492a4846 100644 --- a/get-shit-done/workflows/insert-phase.md +++ b/get-shit-done/workflows/insert-phase.md @@ -42,7 +42,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${after_phase}") diff --git a/get-shit-done/workflows/list-workspaces.md b/get-shit-done/workflows/list-workspaces.md index 12df54b99..92664926d 100644 --- a/get-shit-done/workflows/list-workspaces.md +++ b/get-shit-done/workflows/list-workspaces.md @@ -19,7 +19,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.list-workspaces) diff --git a/get-shit-done/workflows/manager.md b/get-shit-done/workflows/manager.md index a24ef33ac..b9979e082 100644 --- a/get-shit-done/workflows/manager.md +++ b/get-shit-done/workflows/manager.md @@ -27,7 +27,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.manager) diff --git a/get-shit-done/workflows/map-codebase.md b/get-shit-done/workflows/map-codebase.md index a4ffd60c8..31aa82106 100644 --- a/get-shit-done/workflows/map-codebase.md +++ b/get-shit-done/workflows/map-codebase.md @@ -77,7 +77,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.map-codebase) diff --git a/get-shit-done/workflows/milestone-summary.md b/get-shit-done/workflows/milestone-summary.md index 8aafcdf6a..6bb75a440 100644 --- a/get-shit-done/workflows/milestone-summary.md +++ b/get-shit-done/workflows/milestone-summary.md @@ -61,7 +61,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query init.progress diff --git a/get-shit-done/workflows/mvp-phase.md b/get-shit-done/workflows/mvp-phase.md index d3311145b..6be97d256 100644 --- a/get-shit-done/workflows/mvp-phase.md +++ b/get-shit-done/workflows/mvp-phase.md @@ -42,7 +42,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi PHASE_INFO=$($GSD_SDK query roadmap.get-phase "${PHASE}") diff --git a/get-shit-done/workflows/new-milestone.md b/get-shit-done/workflows/new-milestone.md index 15dccaf0a..6ec345337 100644 --- a/get-shit-done/workflows/new-milestone.md +++ b/get-shit-done/workflows/new-milestone.md @@ -189,7 +189,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query state.milestone-switch --milestone "v[X.Y]" --name "[Name]" diff --git a/get-shit-done/workflows/new-project.md b/get-shit-done/workflows/new-project.md index 06c51a0e4..b6b8a8b38 100644 --- a/get-shit-done/workflows/new-project.md +++ b/get-shit-done/workflows/new-project.md @@ -65,7 +65,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.new-project) diff --git a/get-shit-done/workflows/new-workspace.md b/get-shit-done/workflows/new-workspace.md index 2df23426e..a54c7bf23 100644 --- a/get-shit-done/workflows/new-workspace.md +++ b/get-shit-done/workflows/new-workspace.md @@ -21,7 +21,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.new-workspace) diff --git a/get-shit-done/workflows/next.md b/get-shit-done/workflows/next.md index fba00866f..e317f1377 100644 --- a/get-shit-done/workflows/next.md +++ b/get-shit-done/workflows/next.md @@ -22,7 +22,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query state.json 2>/dev/null || echo "{}" diff --git a/get-shit-done/workflows/pause-work.md b/get-shit-done/workflows/pause-work.md index d31515d19..55b5fd23a 100644 --- a/get-shit-done/workflows/pause-work.md +++ b/get-shit-done/workflows/pause-work.md @@ -74,7 +74,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi timestamp=$($GSD_SDK query current-timestamp full --raw) diff --git a/get-shit-done/workflows/plan-milestone-gaps.md b/get-shit-done/workflows/plan-milestone-gaps.md index 645d902ca..d8f1e6d89 100644 --- a/get-shit-done/workflows/plan-milestone-gaps.md +++ b/get-shit-done/workflows/plan-milestone-gaps.md @@ -73,7 +73,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi HIGHEST=$($GSD_SDK query phases.list --pick directories[-1]) diff --git a/get-shit-done/workflows/plan-phase.md b/get-shit-done/workflows/plan-phase.md index e45ca90fd..6356a5a31 100644 --- a/get-shit-done/workflows/plan-phase.md +++ b/get-shit-done/workflows/plan-phase.md @@ -39,7 +39,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.plan-phase "$PHASE") diff --git a/get-shit-done/workflows/plan-review-convergence.md b/get-shit-done/workflows/plan-review-convergence.md index cd7dd5603..d0520e637 100644 --- a/get-shit-done/workflows/plan-review-convergence.md +++ b/get-shit-done/workflows/plan-review-convergence.md @@ -51,7 +51,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi CONVERGENCE_ENABLED=$($GSD_SDK query config-get workflow.plan_review_convergence 2>/dev/null || echo "false") diff --git a/get-shit-done/workflows/plant-seed.md b/get-shit-done/workflows/plant-seed.md index 7337bb6de..817d82980 100644 --- a/get-shit-done/workflows/plant-seed.md +++ b/get-shit-done/workflows/plant-seed.md @@ -143,7 +143,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query commit "docs: plant seed — {$IDEA}" --files .planning/seeds/SEED-{PADDED}-{slug}.md diff --git a/get-shit-done/workflows/profile-user.md b/get-shit-done/workflows/profile-user.md index 8d4f54e11..b28388486 100644 --- a/get-shit-done/workflows/profile-user.md +++ b/get-shit-done/workflows/profile-user.md @@ -138,7 +138,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi SCAN_RESULT=$($GSD_SDK query scan-sessions --json 2>/dev/null) diff --git a/get-shit-done/workflows/progress.md b/get-shit-done/workflows/progress.md index 7fc6a1a64..a241021ba 100644 --- a/get-shit-done/workflows/progress.md +++ b/get-shit-done/workflows/progress.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.progress) diff --git a/get-shit-done/workflows/remove-phase.md b/get-shit-done/workflows/remove-phase.md index 90342b65b..b87064b45 100644 --- a/get-shit-done/workflows/remove-phase.md +++ b/get-shit-done/workflows/remove-phase.md @@ -37,7 +37,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${target}") diff --git a/get-shit-done/workflows/remove-workspace.md b/get-shit-done/workflows/remove-workspace.md index d8ea27737..b9ec76139 100644 --- a/get-shit-done/workflows/remove-workspace.md +++ b/get-shit-done/workflows/remove-workspace.md @@ -21,7 +21,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.remove-workspace "$WORKSPACE_NAME") diff --git a/get-shit-done/workflows/resume-project.md b/get-shit-done/workflows/resume-project.md index 8cd912da5..74e026175 100644 --- a/get-shit-done/workflows/resume-project.md +++ b/get-shit-done/workflows/resume-project.md @@ -28,7 +28,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.resume) diff --git a/get-shit-done/workflows/review.md b/get-shit-done/workflows/review.md index e51b4cbec..d14ed4378 100644 --- a/get-shit-done/workflows/review.md +++ b/get-shit-done/workflows/review.md @@ -32,7 +32,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi OLLAMA_HOST=$($GSD_SDK query config-get review.ollama_host 2>/dev/null | jq -r '.' 2>/dev/null || echo "") diff --git a/get-shit-done/workflows/scan.md b/get-shit-done/workflows/scan.md index abc9a23c4..ef258cbc0 100644 --- a/get-shit-done/workflows/scan.md +++ b/get-shit-done/workflows/scan.md @@ -47,7 +47,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.map-codebase 2>/dev/null || echo "{}") diff --git a/get-shit-done/workflows/secure-phase.md b/get-shit-done/workflows/secure-phase.md index 14a73e4a8..cfcb26f81 100644 --- a/get-shit-done/workflows/secure-phase.md +++ b/get-shit-done/workflows/secure-phase.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/settings-advanced.md b/get-shit-done/workflows/settings-advanced.md index 7ab9f5f07..e0941ceed 100644 --- a/get-shit-done/workflows/settings-advanced.md +++ b/get-shit-done/workflows/settings-advanced.md @@ -28,7 +28,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query config-ensure-section diff --git a/get-shit-done/workflows/settings-integrations.md b/get-shit-done/workflows/settings-integrations.md index f3da3c5df..1d0943bf7 100644 --- a/get-shit-done/workflows/settings-integrations.md +++ b/get-shit-done/workflows/settings-integrations.md @@ -50,7 +50,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query config-ensure-section diff --git a/get-shit-done/workflows/settings.md b/get-shit-done/workflows/settings.md index 3179109ef..2a328f204 100644 --- a/get-shit-done/workflows/settings.md +++ b/get-shit-done/workflows/settings.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query config-ensure-section diff --git a/get-shit-done/workflows/ship.md b/get-shit-done/workflows/ship.md index 80ec65bcc..9b1bcf55f 100644 --- a/get-shit-done/workflows/ship.md +++ b/get-shit-done/workflows/ship.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/sketch-wrap-up.md b/get-shit-done/workflows/sketch-wrap-up.md index 9157e46bb..e8fa2be7f 100644 --- a/get-shit-done/workflows/sketch-wrap-up.md +++ b/get-shit-done/workflows/sketch-wrap-up.md @@ -45,7 +45,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi COMMIT_DOCS=$($GSD_SDK query config-get commit_docs 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/sketch.md b/get-shit-done/workflows/sketch.md index 7dbe112d5..f27dff7a9 100644 --- a/get-shit-done/workflows/sketch.md +++ b/get-shit-done/workflows/sketch.md @@ -107,7 +107,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi COMMIT_DOCS=$($GSD_SDK query config-get commit_docs 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/spike-wrap-up.md b/get-shit-done/workflows/spike-wrap-up.md index 5decc1fb2..408825a3e 100644 --- a/get-shit-done/workflows/spike-wrap-up.md +++ b/get-shit-done/workflows/spike-wrap-up.md @@ -45,7 +45,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi COMMIT_DOCS=$($GSD_SDK query config-get commit_docs 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/spike.md b/get-shit-done/workflows/spike.md index d8acd3a3b..379c224d3 100644 --- a/get-shit-done/workflows/spike.md +++ b/get-shit-done/workflows/spike.md @@ -104,7 +104,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi COMMIT_DOCS=$($GSD_SDK query config-get commit_docs 2>/dev/null || echo "true") diff --git a/get-shit-done/workflows/stats.md b/get-shit-done/workflows/stats.md index 32bb1c739..8915b8f1a 100644 --- a/get-shit-done/workflows/stats.md +++ b/get-shit-done/workflows/stats.md @@ -20,7 +20,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi STATS=$($GSD_SDK query stats.json) diff --git a/get-shit-done/workflows/thread.md b/get-shit-done/workflows/thread.md index a8d033ef6..8348ff44c 100644 --- a/get-shit-done/workflows/thread.md +++ b/get-shit-done/workflows/thread.md @@ -36,7 +36,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi $GSD_SDK query frontmatter.get .planning/threads/{file} status diff --git a/get-shit-done/workflows/transition.md b/get-shit-done/workflows/transition.md index c592d6dc0..2e80c1c6d 100644 --- a/get-shit-done/workflows/transition.md +++ b/get-shit-done/workflows/transition.md @@ -171,7 +171,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi TRANSITION=$($GSD_SDK query phase.complete "${current_phase}") diff --git a/get-shit-done/workflows/ui-phase.md b/get-shit-done/workflows/ui-phase.md index 4a13d1dc7..7e731073e 100644 --- a/get-shit-done/workflows/ui-phase.md +++ b/get-shit-done/workflows/ui-phase.md @@ -27,7 +27,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.plan-phase "$PHASE") diff --git a/get-shit-done/workflows/ui-review.md b/get-shit-done/workflows/ui-review.md index dc60c0d0b..e1165b29b 100644 --- a/get-shit-done/workflows/ui-review.md +++ b/get-shit-done/workflows/ui-review.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/ultraplan-phase.md b/get-shit-done/workflows/ultraplan-phase.md index 8b29c5022..d35ea85f4 100644 --- a/get-shit-done/workflows/ultraplan-phase.md +++ b/get-shit-done/workflows/ultraplan-phase.md @@ -74,7 +74,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.plan-phase "$PHASE") diff --git a/get-shit-done/workflows/validate-phase.md b/get-shit-done/workflows/validate-phase.md index 0beea40a7..334be6955 100644 --- a/get-shit-done/workflows/validate-phase.md +++ b/get-shit-done/workflows/validate-phase.md @@ -24,7 +24,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/verify-phase.md b/get-shit-done/workflows/verify-phase.md index 4f28d9a44..509e63043 100644 --- a/get-shit-done/workflows/verify-phase.md +++ b/get-shit-done/workflows/verify-phase.md @@ -37,7 +37,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.phase-op "${PHASE_ARG}") diff --git a/get-shit-done/workflows/verify-work.md b/get-shit-done/workflows/verify-work.md index 3c890cc94..05352d57c 100644 --- a/get-shit-done/workflows/verify-work.md +++ b/get-shit-done/workflows/verify-work.md @@ -42,7 +42,7 @@ elif command -v gsd-sdk >/dev/null 2>&1; then GSD_SDK="gsd-sdk" else echo "ERROR: gsd-sdk not found on PATH and $GSD_TOOLS does not exist." >&2 - echo "Run: npx get-shit-done-cc@latest --claude --local" >&2 + echo "Run: npx -y @opengsd/get-shit-done-redux@latest --claude --local" >&2 exit 1 fi INIT=$($GSD_SDK query init.verify-work "${PHASE_ARG}" ${GSD_WS}) diff --git a/tests/bug-170-workflow-fallback-install-hint.test.cjs b/tests/bug-170-workflow-fallback-install-hint.test.cjs new file mode 100644 index 000000000..d4b7d6267 --- /dev/null +++ b/tests/bug-170-workflow-fallback-install-hint.test.cjs @@ -0,0 +1,43 @@ +'use strict'; +// allow-test-rule: workflow markdown is shipped product text; this test validates fallback hint literals across all workflow files + +const { test } = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); + +const WORKFLOWS_DIR = path.join(__dirname, '..', 'get-shit-done', 'workflows'); +const LEGACY_HINT = 'npx get-shit-done-cc@latest --claude --local'; +const CURRENT_HINT = 'npx -y @opengsd/get-shit-done-redux@latest --claude --local'; + +function findMarkdownFiles(dir) { + const out = []; + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) out.push(...findMarkdownFiles(full)); + else if (entry.isFile() && full.endsWith('.md')) out.push(full); + } + return out; +} + +test('bug #170: workflow fallback hints do not reference get-shit-done-cc', () => { + const files = findMarkdownFiles(WORKFLOWS_DIR); + let legacyCount = 0; + let currentCount = 0; + + for (const file of files) { + const src = fs.readFileSync(file, 'utf8'); + if (src.includes(LEGACY_HINT)) legacyCount += 1; + if (src.includes(CURRENT_HINT)) currentCount += 1; + } + + assert.equal( + legacyCount, + 0, + `workflow fallback hints must not reference legacy package (${LEGACY_HINT})` + ); + assert.ok( + currentCount > 0, + `expected at least one workflow fallback hint to use current package (${CURRENT_HINT})` + ); +});