windows-shell-reliability
Reliable command execution on Windows: paths, encoding, and common binary pitfalls.
What this skill does
# Windows Shell Reliability Patterns > Best practices for running commands on Windows via PowerShell and CMD. ## When to Use 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. --- ## 1. Encoding & Redirection ### CRITICAL: Redirection Differences Across PowerShell Versions 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. --- ## 2. Handling Paths & Spaces ### CRITICAL: Quoting 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. ### The Call Operator (&) In PowerShell, if an executable path starts with a quote, you MUST use the `&` operator. **Pattern:** ```powershell & "C:\Program Files\dotnet\dotnet.exe" build ... ``` --- ## 3. Common Binary & Cmdlet Pitfalls | 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. --- ## 4. Dotnet CLI Reliability ### Build Speed & Consistency | 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. | --- ## 5. Environment Variables | Shell | Syntax | |-------|--------| | PowerShell | `$env:VARIABLE_NAME` | | CMD | `%VARIABLE_NAME%` | --- ## 6. Long Paths 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\...` --- ## 7. Troubleshooting Shell Errors | 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`. | --- ## Limitations - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.