con un clic
validation
// Use when validating changes in the Win repo. Per-change-type checks for PowerShell, dotbot, autounattend.xml, and guidance files.
// Use when validating changes in the Win repo. Per-change-type checks for PowerShell, dotbot, autounattend.xml, and guidance files.
Three-layer bootstrap flow, dotbot patterns, and deployment order for Win dotfiles. Use when editing bootstrap.ps1, install.conf.yaml, or Setup-Dotfiles.ps1.
Use when working on PowerShell scripts, registry tweaks, or dotfile deployment in the Win repo. Covers conventions, Common.ps1 helpers, and path rules.
Use to run the mandatory end-of-session workflow — file issues, run quality gates, push to remote, verify clean state, hand off context.
Use when orchestrating complex tasks across specialized agents with proper context handoff
Use when configuring or troubleshooting MCP servers for OpenCode/Kilo environments
Use when migrating AI assistant configurations from Claude Code, Cursor, and other tools to OpenCode/Kilo
| name | validation |
| description | Use when validating changes in the Win repo. Per-change-type checks for PowerShell, dotbot, autounattend.xml, and guidance files. |
| compatibility | opencode |
Use this skill when you need to validate changes in the Ven0m0/Win repository. Run only the checks that match the files you changed.
Scripts/**/*.ps1, *.psm1, *.psd1 or standalone setup.ps1user/.dotfiles/config/** — tracked configurationinstall.conf.yaml, Scripts/Setup-Dotfiles.ps1, README.md.github/ — workflows, instructions, skillsScripts/auto/autounattend.xmlFor every changed PowerShell file:
cd /path/to/repo
pwsh -NoLogo -NoProfile -Command "Invoke-ScriptAnalyzer -Path '<changed-script>' -Settings './PSScriptAnalyzerSettings.psd1'"
CI enforces PSAvoidGlobalAliases and PSAvoidUsingConvertToSecureStringWithPlainText.
When install.conf.yaml or Scripts/Setup-Dotfiles.ps1 changes:
README.md and AGENTS.md for consistency (setup instructions should match)When a file under user/.dotfiles/config/ changes:
After any edit to Scripts/auto/autounattend.xml:
$xml = [xml]::new(); $xml.Load('Scripts/auto/autounattend.xml')
Also verify:
<File path="..."> scripts inside <Extensions> use XML entity encoding (&, >, etc.)ExtractScript paths resolve to C:\Windows\Setup\Scripts\ at runtime.github/After editing any file in .github/:
npx -y @yawlabs/ctxlint --depth 3 --mcp --strict --yes
Use --fix only if the task explicitly asks for autofix. Keep .github/copilot-instructions.md short; broad rules belong in AGENTS.md.
Run Invoke-Pester -Path Scripts/ -Output Minimal only when:
Do not invent or widen test scope solely to satisfy validation.
| Area Changed | Primary Check | Secondary Checks |
|---|---|---|
Any .ps1 | Invoke-ScriptAnalyzer | — |
install.conf.yaml | Path resolution, hash logic | README.md consistency |
Setup-Dotfiles.ps1 | ScriptAnalyzer, hash deployment | Config paths review |
user/.dotfiles/config/* | Format preservation | Deployment manifest |
Scripts/auto/autounattend.xml | XML validate, entity encoding | Script embed review |
.kilo/* | JSON/YAML syntax, path references | ctxlint |
.github/workflows/* | YAML syntax, tool availability | — |