sprint-coder-e2e-windowslisted
Install: claude install-skill Robbits-CO-LTD/sprint-coder
# sprint-coder E2E の実行と判定(Windows 版)
このリポジトリの E2E は Playwright の **Electron** ドライバで実アプリを起動する。ブラウザテストではないので web の常識(`page.goto`、`--headed`、trace viewer、リトライで緑にする)はほぼ当てはまらない。そして Windows では、失敗の大半が**アプリのバグではなく起動の段取り**に由来する。走らせる前に段取りを確定させる。
> **この文書の検証状況**: Windows 固有の記述は [tests/e2e/helpers.ts](../../../tests/e2e/helpers.ts) / [tests/e2e/global-setup.ts](../../../tests/e2e/global-setup.ts) / [playwright.config.ts](../../../playwright.config.ts) の実装(`process.platform === 'win32'` 分岐を含む)とWindows CIのdev-mode smokeから導いている。実際に走らせて食い違いがあれば、推測を残さずこのファイルを直すこと。
## 1. 実行前に確定させる 3 つのこと
### (a) 環境変数は PowerShell の書き方で渡す
macOS / Linux の `SPRINT_CODER_E2E_MODE=dev npx playwright test ...` という書き方は **PowerShell では動かない**(`SPRINT_CODER_E2E_MODE=dev` がコマンド名として解釈される)。
```powershell
# PowerShell(このセッションの間ずっと有効になる点に注意)
$env:SPRINT_CODER_E2E_MODE = 'dev'
npx playwright test tests/e2e/golden-path-2-cancel.spec.ts
```
```bat
:: cmd.exe
set SPRINT_CODER_E2E_MODE=dev
npx playwright test tests/e2e/golden-path-2-cancel.spec.ts
```
`$env:` はそのシェルセッションに残り続けるので、あとで packaged モードを試すときは `$env:SPRINT_CODER_E2E_MODE = 'packaged'` と明示的に上書きするか、`Remove-Item Env:SPRINT_CODER_E2E_MODE` で消す。**前のテストの残り値のまま走らせて結果を誤読するのが一番ありがちな事故。**
### (b) dev serverはglobalSetupに所有させる
globalSetupは5173に何かlistenしていればそれを再利用し、無ければ`npm.cmd start`を自動起動する。自動起動したプロセスはテスト後に、その正確なPIDを`taskkill /PID <pid> /T /F`へ渡して子プロセスごと停止する。
通常は1つのPowerShellからそのまま実行する:
```powershell
$env:SPRINT_CODER_E2E_MODE = 'dev'
npx playwright test tests/e2e/live-fil