SDD helper scripts prompt for an app on Windows when invoked from PowerShell

Author: sean-parentCreated Sep 16, 2026Updated Sep 16, 2026

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

  1. 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
  1. Add Windows .cmd shims 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.

  1. Update scripts/sdd-workspace to 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_FILE executes and returns an existing workspace path
  • bash scripts/task-brief PLAN_FILE 1 writes a readable task brief
  • bash scripts/review-package PLAN_FILE BASE HEAD writes a readable review diff
  • the same validation passes for both the Copilot-installed plugin copy and the Claude plugin cache copy