Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Execute PowerShell commands reliably on Windows. Avoid &&, handle parameter parsing, recover from interruptions, and ensure cross-session continuity.
Execute PowerShell commands reliably on Windows. Avoid &&, handle parameter parsing, recover from interruptions, and ensure cross-session continuity.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Execute commands reliably on Windows PowerShell. Avoid common pitfalls like && chaining, parameter swallowing, and session interruptions.
Windows PowerShell differs from bash in critical ways: IssueBashPowerShellSolutionCommand chainingcmd1 && cmd2cmd1 -ErrorAction Stop; if ($?) { cmd2 }Use semicolons + error handlingParameter parsing-arg value-Argument value (case-insensitive)Use full parameter namesPath separators/\ (or / in some cmdlets)Use Join-PathOutput redirection> >>> >> (encoding issues)Use Out-File -Encoding UTF8Environment vars$VAR$env:VARUse $env: prefix
Wrong: mkdir test && cd test && echo done Right: $ErrorActionPreference = 'Stop' try { New-Item -ItemType Directory -Path test -Force Set-Location test Write-Host 'done' } catch { Write-Error "Failed: $_" exit 1 }
Wrong: git commit -m "message" Right: git commit -Message "message" # Or use splatting: $params = @{ Message = "message" } git commit @params
Wrong: $path = "C:/Users/name/file.txt" Right: $path = Join-Path $env:USERPROFILE "file.txt" # Or use literal paths: $path = 'C:\Users\name\file.txt'
Wrong: echo "text" > file.txt Right: "text" | Out-File -FilePath file.txt -Encoding UTF8
For long-running commands: # Start background job $job = Start-Job -ScriptBlock { param($arg) # Long operation } -ArgumentList $arg # Wait with timeout Wait-Job $job -Timeout 300 # Get results if ($job.State -eq 'Completed') { Receive-Job $job } else { Stop-Job $job Write-Warning "Job timed out" }
function Invoke-Retry { param( [scriptblock]$Command, [int]$MaxAttempts = 3, [int]$DelaySeconds = 2 ) $attempt = 0 while ($attempt -lt $MaxAttempts) { try { $attempt++ return & $Command } catch { if ($attempt -eq $MaxAttempts) { throw } Start-Sleep -Seconds $DelaySeconds } } } # Usage Invoke-Retry -Command { Invoke-WebRequest -Uri $url } -MaxAttempts 3
# Checkpoint pattern $checkpointFile = ".checkpoint.json" if (Test-Path $checkpointFile) { $state = Get-Content $checkpointFile | ConvertFrom-Json Write-Host "Resuming from step $($state.step)" } else { $state = @{ step = 0 } } switch ($state.step) { 0 { # Step 1 $state.step = 1 $state | ConvertTo-Json | Out-File $checkpointFile } 1 { # Step 2 Remove-Item $checkpointFile } }
All execution is local: NO command logging to external services NO credential capture in scripts NO automatic upload of execution results Sensitive data handled via [SecureString] Checkpoint files stored in working directory only Sensitive Data Filter: Before writing any checkpoint or log: Exclude Password, Token, Secret, ApiKey Use [SecureString] for credentials Never echo sensitive variables
A PowerShell command execution is reliable if and only if: CriteriaVerificationNo && chainingSelect-String '&&' script.ps1 returns nothingError handling present`Select-String 'tryPaths use Join-Path`Select-String 'Join-PathOutput encoding specifiedSelect-String 'Out-File.*Encoding' script.ps1 matchesCheckpoint for long opsCheckpoint file pattern present for ops > 60sNo hardcoded secrets`Select-String 'password
TaskBashPowerShellList filesls -laGet-ChildItem -ForceChange dircd /pathSet-Location C:\pathCreate dirmkdir xNew-Item -ItemType Directory xCopy filecp a bCopy-Item a bMove filemv a bMove-Item a bDeleterm xRemove-Item xView filecat xGet-Content xEdit filevim xnotepad xFind textgrep xSelect-String xPipe|| (same)Redirect>> (use Out-File)
$params = @{ Path = $filePath Encoding = 'UTF8' Force = $true } Set-Content @params
references/privacy-checklist.md - Privacy security checklist Microsoft Docs: PowerShell Best Practices Execute reliably. Recover gracefully.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.