SDD helper scripts prompt for an app on Windows when invoked from PowerShell
Problem
While executing a Superpowers implementation plan on Windows, the controller is prompted by Windows to choose an app to open sdd-workspace and task-brief instead of running the helper scripts.
This happens because the SDD skill documentation tells agents to invoke extensionless Bash scripts directly, for example:
scripts/sdd-workspace PLAN_FILE
scripts/task-brief PLAN_FILE N
scripts/review-package PLAN_FILE BASE HEAD
On Windows/PowerShell, extensionless script paths are not reliably executable as commands. They can route through the Windows file association / ShellExecute path, producing the app picker dialog rather than executing the Bash script.
Reproduction
From PowerShell on Windows, run an SDD plan flow that follows the documented helper commands directly:
.\scripts\sdd-workspace docs\superpowers\plans\sample-plan.md
.\scripts\task-brief docs\superpowers\plans\sample-plan.md 1
Observed: Windows asks which app should open sdd-workspace / task-brief, or the invocation produces no useful script output.
Expected: the helper scripts run and print the generated workspace / artifact paths.
Additional Windows path issue
When the scripts are run through Git Bash/MSYS, sdd-workspace currently prints POSIX/MSYS-style paths such as /tmp/.... Those paths are not always directly consumable by PowerShell-side checks/tools. On Windows, the script should prefer a native-readable absolute path.
Suggested changes
- Update SDD skill guidance to invoke helpers through Bash explicitly:
bash scripts/sdd-workspace PLAN_FILE
bash scripts/task-brief PLAN_FILE N
bash scripts/review-package PLAN_FILE BASE HEAD
- Add Windows
.cmdshims beside the extensionless scripts as a fallback/convenience:
@echo off
bash "%~dp0sdd-workspace" %*
exit /b %ERRORLEVEL%
Equivalent shims would be added for task-brief and review-package.
- Update
scripts/sdd-workspaceto emit a Windows-readable path when running under Git Bash/MSYS:
cd "$dir"
if pwd -W >/dev/null 2>&1; then
pwd -W
else
pwd
fi
Local validation performed
I patched my installed local copies with the changes above and verified from PowerShell that:
bash scripts/sdd-workspace PLAN_FILEexecutes and returns an existing workspace pathbash scripts/task-brief PLAN_FILE 1writes a readable task briefbash scripts/review-package PLAN_FILE BASE HEADwrites a readable review diff- the same validation passes for both the Copilot-installed plugin copy and the Claude plugin cache copy
Source: obra/superpowers