Azsdk Common Pipeline Analysis
Azure/azure-sdk-tools
Analyze Azure SDK CI/CD pipeline failures into a structured diagnosis, and define the required output format.
Run targeted Sampler test scopes to validate changes quickly and safely, then run the full test suite when needed for confidence before PRs.
$ npx skills add gaelcolas/Sampler --skill validate-changes -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gaelcolas/Sampler validate-changes --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/validate-changes .claude/skills/validate-changes && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .claude/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gaelcolas/Sampler --skill validate-changes -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gaelcolas/Sampler validate-changes --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/validate-changes .agents/skills/validate-changes && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .agents/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gaelcolas/Sampler --skill validate-changes -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gaelcolas/Sampler validate-changes --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/validate-changes .cursor/skills/validate-changes && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .cursor/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gaelcolas/Sampler.git --path .github/skills/validate-changes--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gaelcolas/Sampler --skill validate-changes -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gaelcolas/Sampler validate-changes --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/validate-changes .gemini/skills/validate-changes && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .gemini/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gaelcolas/Sampler validate-changesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gaelcolas/Sampler --skill validate-changes -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/validate-changes .github/skills/validate-changes && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .github/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gaelcolas/Sampler --skill validate-changes -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gaelcolas/Sampler validate-changes --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gaelcolas/Sampler.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/validate-changes .opencode/skills/validate-changes && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "validate-changes" agent skill from https://github.com/gaelcolas/Sampler/tree/main/.github/skills/validate-changes into .opencode/skills/validate-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-changes", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
validate-changesRun targeted Sampler test scopes to validate changes quickly and safely, then run the full test suite when needed for confidence before PRs.
Validate Changes is an agent skill from gaelcolas/Sampler. Run targeted Sampler test scopes to validate changes quickly and safely, then run the full test suite when needed for confidence before PRs.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Test generation and CI/CD. It works with PowerShell. The repository describes itself as: Module template with build pipeline and examples, including DSC elements. The licence is MIT.
Read from SKILL.md and the folder at commit 6a6aa03. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are powershell).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Validate Changes loads about 1.8k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 693 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from gaelcolas/Sampler at commit 6a6aa03, republished under its MIT licence (© gaelcolas). 693 words, ~1,837 tokens.
.claude/skills/validate-changes/SKILL.md (or your agent's skills folder).Run the right Sampler test scope for a change, fast first and broad only when needed.
Sampler/Public or Sampler/Private.Sampler/Classes or Sampler/Enum.Sampler/Templates..build/tasks or build.yaml.changed_paths: list of changed files or folders.target_test: optional single test file path for focused validation.run_quality_gate: optional boolean to run HQRM checks.Mandatory: every command in this skill must be invoked through
./build.ps1. Do not runInvoke-Pesterdirectly, do not callBuild-Moduledirectly, and do not manually prepend anything toPSModulePath. Running./build.ps1 -ResolveDependency -Tasks noop(or any other-Tasksinvocation) is what bootstraps dependencies and wiresPSModulePathfor the current shell so the freshly built module is the one being tested. Direct test/build invocations bypass that setup and may report false results against a stale or incomplete artifact.
./build.ps1 -ResolveDependency -Tasks nooptarget_test is provided, run only that test file:./build.ps1 -Tasks test -PesterPath '<target_test>' -CodeCoverageThreshold 0tests/Unit/**.Sampler/Templates/** changed: run template integration tests:./build.ps1 -Tasks test -PesterPath 'tests/Integration/PlasterTemplates' -CodeCoverageThreshold 0.build/tasks/**, build.yaml, build.ps1): run default test workflow:./build.ps1 -Tasks test./build.ps1 -Tasks test -PesterPath 'tests/Integration' -CodeCoverageThreshold 0run_quality_gate is true, run:./build.ps1 -Tasks hqrmtestAlways tee ./build.ps1 output to output\agentic\ — this subfolder is excluded from the Clean task so logs survive between builds. Create it first, then stream:
$null = New-Item -Path 'output\agentic' -ItemType Directory -Force
./build.ps1 -Tasks test -PesterPath '<paths>' -CodeCoverageThreshold 0 2>&1 |
Tee-Object -FilePath 'output\agentic\test.log'
# Then poll/inspect the log without re-running:
Get-Content output\agentic\test.log -Tail 20
Select-String -Path output\agentic\test.log -Pattern 'Build (FAILED|succeeded)'Clean up when done: Remove output\agentic once investigation is complete:
Remove-Item -Path 'output\agentic' -Recurse -Force -ErrorAction 'Ignore'When invoked through the powershell tool, prefer mode="async" with Tee-Object and poll periodically — never tail with | Select -Last N against a still-running build.
Test failures are recorded in machine-readable XML under output/testResults/. Always read those files instead of grepping the build log — they tell you which tests failed and why.
The build summary's "N errors" count is not a reliable pass/fail signal. ./build.ps1 prints a final line like Build completed with errors. 98 tasks, 8 errors, 3 warnings, but this count reflects everything written to the PowerShell error stream during the run — including caught/non-terminating errors that scripts intentionally handle (for example, Add-Sample and New-SamplerPipeline write to $Error internally while probing dynamic parameters, even though they catch and continue). A non-zero error count here does not mean any test failed. Always confirm actual failures via the NUnit/HQRM result files below before reporting a failure to the user.
Pester (-Tasks test) writes NUnit XML at output/testResults/NUnitXml_<ProjectName>_<Version>.<OS>.PSv.<PSVersion>.xml. Each failing assertion is a <test-case result="Failure"> node with the assertion message under <failure><message>:
$latest = Get-ChildItem output\testResults\NUnitXml_*.xml |
Sort-Object LastWriteTime -Descending | Select-Object -First 1
[xml]$x = Get-Content $latest.FullName
$x.SelectNodes('//test-case[@result="Failure"]') | ForEach-Object {
"==FAIL==`n$($_.name)`n$($_.failure.message)`n"
}HQRM (-Tasks hqrmtest) writes a CliXml-serialized Pester run object at output/testResults/DscTestObject_DscTest_<ProjectName>_<Version>.<OS>.PSv.<PSVersion>.xml. This is not NUnit XML — XPath against <test-case> returns nothing. Look for <S N="Result">Failed</S> and read surrounding context, or grep DisplayErrorMessage for the assertion text:
$f = Get-ChildItem output\testResults\DscTestObject_DscTest_*.xml |
Sort-Object LastWriteTime -Descending | Select-Object -First 1
$lines = Get-Content $f.FullName
foreach ($h in Select-String -Path $f.FullName -Pattern '"Result">Failed')
{
"===line $($h.LineNumber)==="
$lines[($h.LineNumber - 1)..($h.LineNumber + 20)] -join "`n"
}
Select-String -Path $f.FullName -Pattern 'DisplayErrorMessage'Skip aggregate Result=Failed nodes (run/container totals) — real test failures sit alongside an <S N="ItemType">Test</S>, an ErrorRecord, and a ScriptBlock.
Always pick the latest result file (Sort-Object LastWriteTime -Descending); each invocation rewrites these XML files.
When reporting a failure to the user, quote the XML's assertion message — do not paraphrase the build-log tail.
CHANGELOG.md has an Unreleased entry../build.ps1 -Tasks test suite (not just focused tests). Focused tests validate the changed scope; the full suite catches HQRM, ScriptAnalyzer, help quality, and test-coverage regressions that focused runs skip. A focused run passing is a necessary but not sufficient condition for readiness.Return a short summary with:
Sampler/Public/New-SampleModule.ps1 quickly."Sampler/Templates/Sampler/plasterManifest.xml; run the right tests."© gaelcolas, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/validate-changes of gaelcolas/Sampler.
Open the folder on GitHubat commit 6a6aa03
Validate Changes next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Validate Changes this skillgaelcolas/Sampler | 244 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Azsdk Common Pipeline AnalysisAzure/azure-sdk-tools | 134 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Run Testsrunceel/ReactiveProperty | 944 | — | ~3.6k | Automated safety check: Pass | MIT | |
| MAUI UI Test Shard Rebalancerdotnet/maui | 23k | — | ~995 | Automated safety check: Pass | MIT | |
| MAUI Helix Unit Test Runnerdotnet/maui | 23k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Dokan Run Test Suitegetdokan/dokan | 288 | — | ~4.7k | Automated safety check: Notes | None |
Azure/azure-sdk-tools
Analyze Azure SDK CI/CD pipeline failures into a structured diagnosis, and define the required output format.
runceel/ReactiveProperty
Runs .NET tests with dotnet test. An agent skill from runceel/ReactiveProperty.
dotnet/maui
Splits a slow .NET MAUI UI-test category into method-level CI shards sized from historical Azure DevOps timings so each job fits a target duration.
dotnet/maui
Submits .NET MAUI unit tests to Helix queues from a local machine and monitors job status and per-work-item logs with PowerShell scripts.
getdokan/dokan
Execute the Dokan Playwright test suite (E2E + API), locally or via GitHub Actions.
gaasher/Agent-Loop-Skills
A skill your agent uses when the user has concrete failing cases in code or a guardrail/classifier/filter/prompt/API they own — a red-team failure catalogue OR a CI/CD test-failure report (failing…
Works with
Categories
Run targeted Sampler test scopes to validate changes quickly and safely, then run the full test suite when needed for confidence before PRs. Validate Changes is an agent skill from gaelcolas/Sampler. Run targeted Sampler test scopes to validate changes quickly and safely, then run the full test suite when needed for confidence before PRs.
Validate Changes fits situations like: tasks that involve Test generation; tasks that involve CI/CD.
Run `npx skills add gaelcolas/Sampler --skill validate-changes -a claude-code`. Or copy the skill folder (.github/skills/validate-changes in gaelcolas/Sampler) into .claude/skills/validate-changes in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gaelcolas/Sampler --skill validate-changes -a codex`. Or copy the skill folder (.github/skills/validate-changes in gaelcolas/Sampler) into .agents/skills/validate-changes in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gaelcolas/Sampler --skill validate-changes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validate-changes, .gemini/skills/validate-changes, .github/skills/validate-changes and .opencode/skills/validate-changes in your project.
SKILL.md names no scripts, command-line tools or credentials: Validate Changes is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Validate Changes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Validate Changes: Azsdk Common Pipeline Analysis (Azure/azure-sdk-tools, 134 stars), Run Tests (runceel/ReactiveProperty, 944 stars), MAUI UI Test Shard Rebalancer (dotnet/maui, 23k stars) and MAUI Helix Unit Test Runner (dotnet/maui, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gaelcolas (a GitHub user) maintains it in gaelcolas/Sampler, which has 244 GitHub stars. The repository was last updated on October 6, 2026.
Source: gaelcolas/Sampler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.