Map Debug
azalio/map-framework
Structured MAP debugging via decomposer, actor, and monitor agents.
Investigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations.
$ npx skills add PowerShell/PowerShell --skill analyze-pester-failures -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install PowerShell/PowerShell analyze-pester-failures --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/PowerShell/PowerShell.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/analyze-pester-failures .claude/skills/analyze-pester-failures && 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 "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .claude/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failuresType 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 PowerShell/PowerShell --skill analyze-pester-failures -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install PowerShell/PowerShell analyze-pester-failures --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PowerShell/PowerShell.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/analyze-pester-failures .agents/skills/analyze-pester-failures && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .agents/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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 PowerShell/PowerShell --skill analyze-pester-failures -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install PowerShell/PowerShell analyze-pester-failures --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PowerShell/PowerShell.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/analyze-pester-failures .cursor/skills/analyze-pester-failures && 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 "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .cursor/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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/PowerShell/PowerShell.git --path .github/skills/analyze-pester-failures--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 PowerShell/PowerShell --skill analyze-pester-failures -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install PowerShell/PowerShell analyze-pester-failures --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PowerShell/PowerShell.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/analyze-pester-failures .gemini/skills/analyze-pester-failures && 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 "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .gemini/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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 PowerShell/PowerShell analyze-pester-failuresInstalls 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 PowerShell/PowerShell --skill analyze-pester-failures -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/PowerShell/PowerShell.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/analyze-pester-failures .github/skills/analyze-pester-failures && 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 "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .github/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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 PowerShell/PowerShell --skill analyze-pester-failures -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install PowerShell/PowerShell analyze-pester-failures --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/PowerShell/PowerShell.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/analyze-pester-failures .opencode/skills/analyze-pester-failures && 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 "analyze-pester-failures" agent skill from https://github.com/PowerShell/PowerShell/tree/master/.github/skills/analyze-pester-failures into .opencode/skills/analyze-pester-failures/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyze-pester-failures", 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.
analyze-pester-failuresInvestigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations.
The skill helps the agent work out what failed, why, and what to change when Pester tests fail in a GitHub Actions run. It covers reading error messages, going through result data such as XML, logs and stack traces, finding root causes among test logic, assertion failures, exceptions, timeouts and skip or inconclusive reasons, comparing expected with actual behavior, and spotting environment problems such as missing dependencies.
The analysis is a sequential six-step workflow that the skill insists on following in order. A PowerShell script, analyze-pr-test-failures.ps1, enforces that order: it takes a pull request number, fetches the PR status, downloads artifacts, extracts failures, analyzes the error messages, documents context and generates recommendations. A reference note covers stack trace parsing, and the manual commands are meant only for people who fully understand the workflow. The skill is scoped away from general PowerShell debugging, CI setup problems and performance analysis.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b95da22. 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.
Ships 1 file in scripts/ (PowerShell), which the agent can run.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.github.compester.devlearn.microsoft.comgithub.comFrom 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.
Pester Failure Analysis loads about 5.1k tokens when it runs, and up to ~6.3k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 2,052 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); the scripts in this folder are not scanned.
The full file from PowerShell/PowerShell at commit b95da22, republished under its MIT licence (© PowerShell). 2,052 words, ~5,082 tokens.
.claude/skills/analyze-pester-failures/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Investigate and troubleshoot Pester test failures in GitHub Actions workflows. Understand what tests are failing, why they're failing, and provide recommendations for test fixes.
| Skill | When to Use |
|---|---|
| analyze-pester-failures | When investigating why Pester tests are failing in a CI job. Use when a test job shows failures and you need to understand what test failed, why it failed, what the error message means, and what might need to be fixed. Also use when asked: "why did this test fail?", "what's the test error?", "test is broken", "test failure analysis", "debug test failure", or given test failure logs and stack traces. |
Use this skill when you need to:
Do not use this skill for:
This skill describes a sequential 6-step analysis workflow. Skipping steps or jumping around leads to incomplete analysis and incorrect conclusions.
The Problem: It's easy to skip to Step 4 or 5 without doing Steps 1-2, resulting in missing data and bad conclusions.
The Solution: Use the automated analysis script to enforce the workflow:
# Automatically runs Steps 1-6 in order, preventing skipping
./.github/skills/analyze-pester-failures/scripts/analyze-pr-test-failures.ps1 -PR <PR_NUMBER>
# Example:
./.github/skills/analyze-pester-failures/scripts/analyze-pr-test-failures.ps1 -PR 26800This script:
Only use the manual commands below if you fully understand the workflow.
# Step 1: Identify the failing job
gh pr view <PR_NUMBER> --json 'statusCheckRollup' | ConvertFrom-Json | Where-Object { $_.conclusion -eq 'FAILURE' }
# Step 2: Download artifacts (extract RUN_ID from Step 1)
gh run download <RUN_ID> --dir ./artifacts
gh run view <RUN_ID> --log > test-logs.txt
# Step 3-6: Extract, analyze, and interpret
# (See Analysis Workflow section below)The most common test failure is when an assertion doesn't match expectations.
Example:
Expected $true but got $false at /path/to/test.ps1:42
Assertion failed: Should -Be "expected" but was "actual" How to analyze:
Tests fail when PowerShell throws an exception instead of successful completion.
Example:
Command: Write-Host $null
Error: Cannot bind argument to parameter 'Object' because it is null.How to analyze:
A test takes longer than the allowed timeout to complete.
Example:
Test 'Should complete in reasonable time' timed out after 30 secondsHow to analyze:
Tests marked as skipped or ignored provide clues about test environment.
Example:
Test marked [Skip("Only runs on Windows")] - running on Linux
Test marked [Ignore("Known issue #12345")]How to analyze:
Tests that sometimes pass, sometimes fail indicate race conditions or environment sensitivity.
Example:
How to analyze:
| Item | Purpose | Location |
|---|---|---|
| Test result XML | Pester output with test cases, failures, errors | Workflow artifacts: junit-pester-*.xml |
| Job logs | Full job output including test execution and errors | GitHub Actions run logs or gh run download |
| Stack traces | Error location information from failed assertions | Within job logs and XML failure messages |
| Test files | The actual Pester test code (.ps1 files) | test/ directory in repository |
Each step depends on the previous one. Skipping or re-ordering steps causes incomplete analysis:
Real Problem We Had:
Result: Wrong analysis and recommendations that didn't actually fix the problem.
./.github/skills/analyze-pester-failures/scripts/analyze-pr-test-failures.ps1 -PR <PR_NUMBER>This enforces the workflow and prevents skipping.
Fetch the test result artifacts and job logs:
# Download artifacts including test XML results
gh run download <RUN_ID> --dir ./artifacts
# Get job logs
gh run view <RUN_ID> --log > test-logs.txt
# Inspect test XML
$xml = [xml](Get-Content ./artifacts/junit-pester-*.xml)
$xml.'test-results' | Select-Object total, failures, errors, ignored, inconclusiveFind the failing test cases in the XML:
# Get all failed test cases
$xml = [xml](Get-Content ./artifacts/junit-pester-*.xml)
$failures = $xml.SelectNodes('.//test-case[@result = "Failure"]')
# For each failure, display key info
$failures | ForEach-Object {
[PSCustomObject]@{
Name = $_.name
Description = $_.description
Message = $_.failure.message
StackTrace = $_.failure.'stack-trace'
}
}The error message tells you what went wrong:
Assertion failures:
Expected $true but got $false
Expected "value1" but got "value2"
Expression should have failed with exception, but didn'tExceptions:
Cannot find a parameter with name 'Name'
Property 'Property' does not exist on 'Object'
Cannot bind argument to parameter because it is nullTimeouts:
Test timed out after 30 seconds
Test is taking too long to completeLook at the test file to understand what was being tested:
# Find the test file mentioned in the stack trace
# Example: /path/to/test/Feature.Tests.ps1:42
# Read the test code around that line
code <test-file-path>:<line-number>
# Understand:
# - What assertion is on that line?
# - What is the test trying to verify?
# - What are the setup/mock/before conditions?
# - Are there recent changes to the function being tested?Determine the root cause category:
Test issue (needs code fix):
Environmental issue (needs environment change):
Data issue (needs input data change):
Flakiness (needs test hardening):
| Pattern | What It Means | Example | Next Step |
|---|---|---|---|
Expected $true but got $false | Assertion on boolean result failed | Test expects function returns true, but it returns false | Check function logic for bug or test logic for wrong expectation |
Cannot find path | File or directory doesn't exist | Test tries to read config file that's not present | Verify file path, check test setup, ensure CI environment has file |
Cannot bind argument to parameter 'X' | Required parameter value is null or wrong type | Function called with $null where object expected | Check test mock setup, verify parameter types |
Test timed out after X seconds | Test exceeded time limit | Network call or loop takes too long | Increase timeout for slow test, find infinite loop, mock network calls |
Expression should have failed but didn't | Exception wasn't thrown when expected | Test expects error but function succeeds | Check if function behavior changed, update test expectation |
Could not find parameter 'X' | Function doesn't have parameter | Test calls function with parameter that doesn't exist | Check PowerShell version, verify function signature, update test |
This platform is not supported | Test skipped on current OS | Windows-only test running on Linux | Add platform check, update test environment, or mark as platform-specific |
Test marked [Ignore] | Test explicitly disabled | Test has [Ignore("reason")] attribute | Check if reason still valid, remove if issue fixed |
Pester test outcomes are categorized as:
| Count | Meaning | Notes |
|---|---|---|
total | Total number of test cases executed | Should match: passed + failed + errors + skipped + ignored |
failures | Test assertions that failed | Expected X but got Y type failures |
errors | Tests that threw exceptions | Unhandled PowerShell exceptions during test |
skipped | Tests explicitly skipped (marked with -Skip) | Test code recognizes condition and skips |
ignored | Tests marked as ignored (marked with -Ignore) | Test disabled intentionally, usually notes reason |
inconclusive | Tests with unclear result | Rare; usually means test framework issue |
passed | Tests with passing assertions | total - failures - errors - skipped - ignored |
A stack trace shows where the failure occurred:
at /home/runner/work/PowerShell/test/Feature.Tests.ps1:42
Means:
- File: /home/runner/work/PowerShell/test/Feature.Tests.ps1
- Line: 42
- Look at that line to see which assertion failedWhen XML shows result="Ignored" or result="Skipped":
<test-case name="Test Name" result="Ignored">
<reason>Only runs on Windows</reason>
</test-case>The reason explains why test didn't run. Not a failure, but important for understanding test coverage.
After gathering test output, ask yourself:
Is the test code correct?
Is the test setup correct?
Is this a code bug or test issue?
Is this environment-specific?
Is this a known/expected failure?
Based on your analysis:
| Finding | Recommendation |
|---|---|
| Test logic is wrong | "Test assertion on line X is incorrect. Test expects Y but function correctly returns Z. Update test expectation." |
| Tested code has bug | "Function at file.ps1#L42 has logic error. When X happens, returns Y instead of Z. Fix the condition." |
| Missing test setup | "Test setup incomplete. Mock for dependency Y is not configured. Add Mock Get-Y -MockWith { ... }" |
| Environment issue | "Test is Windows-specific but running on Linux. Either add platform check or skip on non-Windows." |
| Flaky test | "Test is timing-sensitive (sleep 1 second). Increase timeout or use better synchronization." |
| Test should be skipped | "Test is marked Ignored for good reason. Keep it disabled until issue #12345 is fixed." |
Provide analysis as:
Test Output:
Expected 5 but got 3 at /path/to/Test.ps1:42Investigation:
$result | Should -Be 5$items | Where-Object {$_.Status -eq "Active"} but the filter is wrongRecommendation:
Test failure is due to a code bug:
The test Set-Configuration should return 5 items but returns 3.
Looking at the tested function at [module.ps1#L42](module.ps1#L42):
$activeItems = $items | Where-Object {$_.Status -eq "Active"}
The issue is the filter condition. It's currently filtering by "Active" status,
but should include "Pending" status as well.
Fix: Change line 42 to:
$activeItems = $items | Where-Object {$_.Status -ne "Disabled"}
Then re-run the test to verify it now returns 5 items as expected.Test Output:
Cannot find path '/expected/config.json' because it does not exist at /path/to/Test.ps1:15Investigation:
Recommendation:
Test setup is incomplete:
The test Initialize-Config fails because it expects /expected/config.json but the test doesn't create this file.
The test needs to ensure the config file exists. Currently line 12-14 doesn't set up the file:
# Before:
# (no setup of config file)
# After:
@{ setting1 = "value1"; setting2 = "value2" } | ConvertTo-Json |
Out-File $testConfigPath
Alternatively, the test function should accept a parameter for the config path and use a temporary file:
param([string]$ConfigPath = (New-TemporaryFile))
Re-run the test to verify the config file is properly available.Test Output:
Test 'should read Windows Registry' failed on Linux runner
Cannot find path 'HKEY_LOCAL_MACHINE:\...'Investigation:
Recommendation:
Test is platform-specific but running on wrong platform:
The test "should read Windows Registry" assumes Windows Registry exists but is running on Linux.
Add a platform check to skip this test on non-Windows systems:
It "should read Windows Registry" -Skip:$(-not $IsWindows) {
# test code here
}
Or group Windows-only tests in a separate Describe block with platform check:
Describe "Windows Registry Tests" -Skip:$(-not $IsWindows) {
# all Windows-specific tests here
}
This allows the test to be skipped on Linux/Mac while still running on Windows CI.-ErrorAction, -WarningAction produce different test results© PowerShell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts, references) in .github/skills/analyze-pester-failures of PowerShell/PowerShell.
Open the folder on GitHubat commit b95da22
Pester Failure Analysis 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 |
|---|---|---|---|---|---|---|
| Pester Failure Analysis this skillPowerShell/PowerShell | 56k | — | ~5.1k | Automated safety check: Pass | MIT | |
| Map Debugazalio/map-framework | 157 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Map Debugazalio/map-framework | 157 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Opsmill Dev Test Driving Bugsopsmill/infrahub | 529 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Systematic DebuggingKbWen/agentic-os | 206 | — | ~496 | Automated safety check: Pass | MIT | |
| Systematic Debuggingforyourhealth111-pixel/Vibe-Skills | 3.6k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 |
azalio/map-framework
Structured MAP debugging via decomposer, actor, and monitor agents.
azalio/map-framework
Structured MAP debugging via task-decomposer, actor, and monitor agents.
opsmill/infrahub
Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written.
KbWen/agentic-os
A skill your agent uses when investigating a bug, test failure, flaky test, unexpected behavior, or a hotfix, or an unexplained or failed fix; find the root cause first.
foryourhealth111-pixel/Vibe-Skills
Root-cause route for actual bugs, failing tests, build errors, crashes, stack traces, and unexpected behavior.
PostHog/posthog-foss
Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?").
Works with
Categories
Investigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations. The skill helps the agent work out what failed, why, and what to change when Pester tests fail in a GitHub Actions run. It covers reading error messages, going through result data such as XML, logs and stack traces, finding root causes among test logic, assertion failures, exceptions, timeouts and skip or inconclusive reasons, comparing expected with actual behavior, and spotting environment problems such as missing dependencies.
Pester Failure Analysis fits situations like: A Pester test fails in a CI job and you need to know why; reading stack traces and XML results from a failed workflow run; working out whether a failure comes from the test, the code or the environment; getting concrete recommendations for fixing a failing test.
Run `npx skills add PowerShell/PowerShell --skill analyze-pester-failures -a claude-code`. Or copy the skill folder (.github/skills/analyze-pester-failures in PowerShell/PowerShell) into .claude/skills/analyze-pester-failures in your project. Claude Code loads it when a task matches its description.
Run `npx skills add PowerShell/PowerShell --skill analyze-pester-failures -a codex`. Or copy the skill folder (.github/skills/analyze-pester-failures in PowerShell/PowerShell) into .agents/skills/analyze-pester-failures 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 PowerShell/PowerShell --skill analyze-pester-failures -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/analyze-pester-failures, .gemini/skills/analyze-pester-failures, .github/skills/analyze-pester-failures and .opencode/skills/analyze-pester-failures in your project.
Going by SKILL.md and its folder, Pester Failure Analysis needs PowerShell for the scripts in its folder and the command-line tools its instructions call (gh). Our summary lists: PowerShell; Access to the pull request's GitHub Actions results and artifacts.
SKILL.md names 4 domains. As links in the text: docs.github.com, pester.dev, learn.microsoft.com and github.com. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Pester Failure Analysis is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Pester Failure Analysis: Map Debug (azalio/map-framework, 157 stars), Map Debug (azalio/map-framework, 157 stars), Opsmill Dev Test Driving Bugs (opsmill/infrahub, 529 stars) and Systematic Debugging (KbWen/agentic-os, 206 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
PowerShell (a GitHub organization) maintains it in PowerShell/PowerShell, which has 55,614 GitHub stars. The repository was last updated on October 6, 2026.
Source: PowerShell/PowerShell on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.