bundled-skills/windows-shell-reliability/SKILL.md
Reliable command execution on Windows: paths, encoding, and common binary pitfalls.
npx skillsauth add FrancoStino/opencode-skills-antigravity windows-shell-reliabilityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Best practices for running commands on Windows via PowerShell and CMD.
Use this skill when developing or debugging scripts and automation that run on Windows systems, especially when involving file paths, character encoding, or standard CLI tools.
Older Windows PowerShell releases can rewrite native-command output in ways that break later processing. PowerShell 7.4+ preserves the byte stream when redirecting stdout, so only apply the UTF-8 conversion workaround when you are dealing with older shell behavior or a log file that is already unreadable.
| Problem | Symptom | Solution |
|---------|---------|----------|
| dotnet > log.txt | view_file fails in older Windows PowerShell | Get-Content log.txt | Set-Content -Encoding utf8 log_utf8.txt |
| npm run > log.txt | Need a UTF-8 text log with errors included | npm run ... 2>&1 | Out-File -Encoding UTF8 log.txt |
Rule: Prefer native redirection as-is on PowerShell 7.4+, and use explicit UTF-8 conversion only when older Windows PowerShell redirection produces an unreadable log.
Windows paths often contain spaces.
| ❌ Wrong | ✅ Correct |
|----------|-----------|
| dotnet build src/my project/file.fsproj | dotnet build "src/my project/file.fsproj" |
| & C:\Path With Spaces\bin.exe | & "C:\Path With Spaces\bin.exe" |
Rule: Always quote absolute and relative paths that may contain spaces.
In PowerShell, if an executable path starts with a quote, you MUST use the & operator.
Pattern:
& "C:\Program Files\dotnet\dotnet.exe" build ...
| Action | ❌ CMD Style | ✅ PowerShell Choice |
|--------|-------------|---------------------|
| Delete | del /f /q file | Remove-Item -Force file |
| Copy | copy a b | Copy-Item a b |
| Move | move a b | Move-Item a b |
| Make Dir | mkdir folder | New-Item -ItemType Directory -Path folder |
Tip: Using CLI aliases like ls, cat, and cp in PowerShell is usually fine, but using full cmdlets in scripts is more robust.
| Context | Command | Why |
|---------|---------|-----|
| Fast Iteration | dotnet build --no-restore | Skips redundant nuget restore. |
| Clean Build | dotnet build --no-incremental | Ensures no stale artifacts. |
| Background | Start-Process dotnet -ArgumentList 'run' -RedirectStandardOutput output.txt -RedirectStandardError error.txt | Launches the app without blocking the shell and keeps logs. |
| Shell | Syntax |
|-------|--------|
| PowerShell | $env:VARIABLE_NAME |
| CMD | %VARIABLE_NAME% |
Windows has a 260-character path limit by default.
Fix: If you hit long path errors, use the extended path prefix:
\\?\C:\Very\Long\Path\...
| Error | Likely Cause | Fix |
|-------|-------------|-----|
| The term 'xxx' is not recognized | Path not in $env:PATH | Use absolute path or fix PATH. |
| Access to the path is denied | File in use or permissions | Stop process or run as Admin. |
| Encoding mismatch | Older shell redirection rewrote the output | Re-export the file as UTF-8 or capture with 2>&1 | Out-File -Encoding UTF8. |
data-ai
Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.
development
Coordinate focused subagents on substantial work, keep their ownership non-overlapping, and integrate verified results. Use for large-scope Codex tasks; keep trivial work with the coordinator.
data-ai
Use when an owner asks to find a cofounder or project partner. Assess only that agent's own owner and rank only approved profiles other agents posted for their own owners.
devops
Install, configure, verify, repair, update, and uninstall Hyprland on Fedora Linux with GPU-aware detection (NVIDIA/AMD/Intel).