Best fit
- Modernizing a Pester suite to the v6 Should- assertions.
- A user asks to migrate / convert / rewrite Should -... calls.
- You want clearer, type-aware failure messages from the new assertions.
github/awesome-copilot
Experimental (preview) Pester skill for migrating classic Should -Be (v5) assertion syntax to the new Should-* (v6) assertions (note the hyphen, no space), e.g. `Should -Be` -> `Should-Be`, `Should -Not -Be` -> `Should-NotBe`. Tracks Pester 6, which is still a release candidate, so this guidance may change; verified against Pester 6.0.0-rc2. Use when converting Pester v5 assertions to Pester v6 Should-* operators, modernizing a Pester test suite, or when a user asks to migrate, convert, or rewri
npx skills add https://github.com/github/awesome-copilot --skill "skills/pester-should-migration"Source checked Jul 28, 2026·Refresh due Oct 26, 2026
Reorganized from the pinned upstream SKILL.md
According to the pinned SKILL.md from github/awesome-copilot: Convert classic Pester v5 assertions (Should -Be, space then parameter) to the new Pester v6 Should- assertions (Should-Be, hyphen, no space).
npx skills add https://github.com/github/awesome-copilot --skill "skills/pester-should-migration"Best fit
Bring this context
Expected outputs
Key source sections
Sections are extracted automatically from the pinned SKILL.md and link back to the source.
Search the target for the classic space-separated syntax (the tell is Should -, or Should followed by -Not):
Search the target for the classic space-separated syntax (the tell is Should -, or Should followed by -Not):
Most-used conversions (full list in references/assertion-map.md):
These do not translate by a plain rename. Read each before converting:
Run the suite and confirm it's still green — the new messages differ, but passes must stay passes:
SkillSignal prompt templates
These prompts were written by SkillSignal from the source structure; they are not upstream text.
Task-start prompt
Confirm source fit, inputs, and outputs before acting.
Use pester-should-migration to help me with: [specific task]. Context: [files, data, or background]. Constraints: [environment, scope, and prohibited actions]. Before acting, check the pinned SKILL.md and explain which sections apply, what inputs are still missing, and what you will deliver.
Source-guided execution
Make the Agent explicitly follow the key extracted sections.
Apply the pinned pester-should-migration source to [task]. Pay particular attention to these source sections: “Procedure”, “Step 1 — Find the classic assertions”, “Step 2 — Apply the mapping”, “Step 3 — Check the behavioral gotchas (do NOT skip)”, “Step 4 — Verify”. Preserve the important decision at each step. Mark facts not covered by the source as “needs confirmation” instead of inventing them. Then verify the result against my acceptance criteria: [criteria].
Result-review prompt
Check omissions, permissions, and source drift before delivery.
Review the current pester-should-migration result: (1) does it satisfy the original task; (2) were any applicable steps or limits in the pinned SKILL.md missed; (3) did it perform any unauthorized file, command, network, or data action; and (4) which conclusions remain unverified? List issues first, then fix only what the source or user authorization supports.
Output checklist
The task matches the purpose documented in the SKILL.md.
The source section “Procedure” has been checked.
The source section “Step 1 — Find the classic assertions” has been checked.
The source section “Step 2 — Apply the mapping” has been checked.
The source section “Step 3 — Check the behavioral gotchas (do NOT skip)” has been checked.
Inputs, constraints, and acceptance criteria are explicit.
Unverified facts, compatibility, and outcome claims are clearly marked.
Any file, command, network, or data action has been reviewed.
Choose a different workflow
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.
A separate implementation from K-Dense-AI/scientific-agent-skills; compare its source, maintenance signals, and permission requirements.
Open source detailBuild, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Your agent constructs flow definitions, wires connections, deploys, and tests — all via MCP without opening the portal. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from
A separate implementation from github/awesome-copilot; compare its source, maintenance signals, and permission requirements.
Open source detailApex code quality guardrails for Salesforce development. Enforces bulk-safety rules (no SOQL/DML in loops), sharing model requirements, CRUD/FLS security, SOQL injection prevention, PNB test coverage (Positive / Negative / Bulk), and modern Apex idioms. Use this skill when reviewing or generating Apex classes, trigger handlers, batch jobs, or test classes to catch governor limit risks, security gaps, and quality issues before deployment.
A separate implementation from github/awesome-copilot; compare its source, maintenance signals, and permission requirements.
Open source detailFAQ
Convert classic Pester v5 assertions (Should -Be, space then parameter) to the new Pester v6 Should- assertions (Should-Be, hyphen, no space).
The catalog detected this source-specific install command: npx skills add https://github.com/github/awesome-copilot --skill "skills/pester-should-migration". Inspect the command and pinned source before running it.
No dedicated Agent platform is declared in the pinned source record.
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.
Build, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Your agent constructs flow definitions, wires connections, deploys, and tests — all via MCP without opening the portal. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from
Apex code quality guardrails for Salesforce development. Enforces bulk-safety rules (no SOQL/DML in loops), sharing model requirements, CRUD/FLS security, SOQL injection prevention, PNB test coverage (Positive / Negative / Bulk), and modern Apex idioms. Use this skill when reviewing or generating Apex classes, trigger handlers, batch jobs, or test classes to catch governor limit risks, security gaps, and quality issues before deployment.
Release pipeline for already-done local work. Dispatches /ground-state pre-flight, runs the project test suite, drafts a commit message, pushes, and opens a PR with a structured verification summary. Use when local changes are ready to hand off to review — e.g. 'ship this', 'push and open a PR', 'release this work'. Add --verify to trigger an adversarial verifier wave on the diff before a human reads the PR.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Should -* → Should-* MigrationConvert classic Pester v5 assertions (Should -Be, space then parameter) to the
new Pester v6 Should-* assertions (Should-Be, hyphen, no space).
Status: experimental / preview. Verified against Pester 6.0.0-rc2. The classic
Should -Bestyle still works in v6, so migrate incrementally and keep the suite green.
Companion skill. This skill covers the optional move to the new
Should-*operators. To upgrade a suite across major Pester versions (v3→v4→v5→v6 — the runtime, mocks, and config), use the separate pester-migration skill. In v6 the classicShould -Bekeeps working, so adoptingShould-*is independent of any version bump.
Should-* assertions.Should -... calls.Should-* commands do not exist in v5.-Not switch: Should -Not -Be →
Should-NotBe. There is no -Not parameter on the new assertions.$x | Should-Be 1) or from
-Actual (Should-Be -Actual $x -Expected 1). -Because carries over unchanged.Search the target for the classic space-separated syntax (the tell is Should -,
or Should followed by -Not):
Should - # any classic operator
Should -Not - # negated classic operator
Assert-MockCalled # also removed in v6 -> Should-Invoke
Limit the scope to PowerShell test files (*.Tests.ps1, *.ps1).
Most-used conversions (full list in references/assertion-map.md):
| Classic (v5) | New (v6) |
|---|---|
$x | Should -Be 1 | $x | Should-Be 1 |
$x | Should -Not -Be 1 | $x | Should-NotBe 1 |
$x | Should -BeExactly 'A' | $x | Should-BeString 'A' -CaseSensitive |
$x | Should -BeGreaterOrEqual 2 | $x | Should-BeGreaterThanOrEqual 2 |
$x | Should -BeLessOrEqual 2 | $x | Should-BeLessThanOrEqual 2 |
$x | Should -BeLike 'a*' | $x | Should-BeLikeString 'a*' |
$x | Should -Match 're' | $x | Should-MatchString 're' |
$x | Should -BeOfType [int] | $x | Should-HaveType ([int]) |
$x | Should -BeNullOrEmpty | depends — see gotchas (no single equivalent) |
$c | Should -HaveCount 3 | $c | Should-BeCollection -Count 3 |
$c | Should -Contain 2 | $c | Should-ContainCollection 2 |
{ ... } | Should -Throw 'msg' | { ... } | Should-Throw -ExceptionMessage 'msg' |
Should -Invoke Get-Thing | Should-Invoke Get-Thing |
Should -InvokeVerifiable | Should-Invoke -Verifiable |
These do not translate by a plain rename. Read each before converting:
Should -Be is case-insensitive on strings; so is
Should-Be. But classic Should -BeExactly (case-sensitive) has no plain
equivalent — use Should-BeString -CaseSensitive. (Should-Be is never
case-sensitive.) Same pattern for BeLikeExactly → Should-BeLikeString -CaseSensitive
and MatchExactly → Should-MatchString -CaseSensitive.Should -BeTrue / -BeFalse accept any truthy /
falsy value (1, 'x', 0, '', $null, @()). The new Should-BeTrue /
Should-BeFalse are strict (exactly $true / $false). To preserve the old
loose behavior use Should-BeTruthy / Should-BeFalsy. Only use the strict ones
when the value really is a boolean.BeNullOrEmpty has no single equivalent. Pick by intent: $null →
Should-BeNull; empty string → Should-BeEmptyString; empty collection →
Should-BeCollection -Count 0; broad "falsy" → Should-BeFalsy. The negation
Should -Not -BeNullOrEmpty similarly splits into Should-NotBeNull /
Should-NotBeEmptyString / Should-NotBeWhiteSpaceString.Should -Be also compares arrays; the new Should-Be is
a value assertion and errors if -Expected is a collection ("You provided a
collection to the -Expected parameter"). Use Should-BeCollection to compare arrays.
Should -Contain (single-item membership) → Should-ContainCollection. The new
command also takes a collection of expected items and checks they are all present,
in the right order (1, 2, 3 | Should-ContainCollection @(1, 2)). For exact,
whole-collection equality use Should-BeCollection instead.@(1)
as 1 and @() as $null, and a typed collection ([int[]]) is re-collected as
[object[]]. When the exact value or concrete collection type matters (e.g.
Should-HaveType), pass it with -Actual instead of piping.Should-* equivalent. Should -Exist and the Should -FileContentMatch*
family have no new counterpart. Either keep the classic assertion, or rewrite with
PowerShell: Test-Path $p | Should-BeTrue, (Get-Content $p -Raw) | Should-MatchString 're'.Should -BeIn direction. No Should-BeIn. Reverse the operands:
$value | Should -BeIn $collection → $collection | Should-ContainCollection $value
(note the actual/expected swap), or keep the classic form.Run the suite and confirm it's still green — the new messages differ, but passes must stay passes:
Invoke-Pester -Path ./tests
If a converted assertion newly fails, re-check the gotchas above (most often #2 truthy/falsy, #3 null-or-empty, or #4 collections).
Once a suite is fully migrated, switch off the classic syntax so it can't creep back:
$config = New-PesterConfiguration
$config.Should.DisableV5 = $true
With this set, any remaining Should -Be throws and points at the Should-Be form.
Summarize what changed: files touched, count of assertions converted, any classic
assertions intentionally left (e.g. Should -Exist), and any conversions that need
a human decision (truthy/falsy, null-or-empty, collection semantics).
https://pester.dev/docs/commands/Should-Be (swap in any
Should-* name) for exact parameters and examples.https://pester.dev/docs/assertions/should-command (value vs. collection
assertions, pipeline vs. -Actual).https://pester.dev/docs/migrations/v5-to-v6.