Official agent skill

Testfx Acceptance Validation

by microsoft in microsoft/testfx

Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence.

OfficialMITAuto-check passed

Install Testfx Acceptance Validation

skills CLI
$ npx skills add microsoft/testfx --skill testfx-acceptance-validation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/testfx testfx-acceptance-validation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/testfx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/testfx-acceptance-validation .claude/skills/testfx-acceptance-validation && rm -rf skills-src

Use ~/.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/

Facts

Skill name
testfx-acceptance-validation
GitHub stars
1k
Token cost
~4.7k tokens
SKILL.md length
1,852 words
Files
3 (incl. scripts)
Skills in repo
50
Repo updated
First seen
Licence
MIT

At a glance

Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence.

  • Works in 5 steps: Choose the smallest shipping contract → Pack and establish provenance → Run a focused regression and verify… → …
  • Acceptance regressions
  • SKILL.md covers Runtime choice, 1. Choose the smallest…, 2. Pack and establish provenance and 3. Run a focused regression…, plus 3 more sections
  • Runs Python scripts from its folder; calls python and dotnet

What it does

Testfx Acceptance Validation is an agent skill from microsoft/testfx, published by the product's own GitHub organization. Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence. Use for acceptance regressions, package/MSBuild/launcher/protocol changes, or skipped-only CI results; not for unrelated unit-only or documentation changes.

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/test_verify_execution.py` and `scripts/verify_execution.py`).

It works with Python and PowerShell. The repository describes itself as: This repository holds the source code of Microsoft.Testing.Platform (MTP), a lightweight alternative to VSTest, as well as MSTest adapter and framework. The licence is MIT.

When your agent uses it

  • Acceptance regressions
  • Package/MSBuild/launcher/protocol changes
  • Skipped-only CI results
  • Not for unrelated unit-only

Example prompts

  • “/testfx-acceptance-validation”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Choose the smallest shipping contract
  2. Pack and establish provenance
  3. Run a focused regression and verify execution
  4. Prove the capable CI job will run the cases
  5. Preserve evidence and clean up only owned state

What it can do on your machine

Read from SKILL.md and the folder at commit 19d717a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Testfx Acceptance Validation loads about 4.7k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,852 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from microsoft/testfx at commit 19d717a, republished under its MIT licence (© microsoft). 1,852 words, ~4,670 tokens.

Download SKILL.mdSave it as .claude/skills/testfx-acceptance-validation/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
testfx-acceptance-validation
description
Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence. Use for acceptance regressions, package/MSBuild/launcher/protocol changes, or skipped-only CI results; not for unrelated unit-only or documentation changes.

TestFx acceptance validation

Produce evidence that the changed product ships correctly and that the intended regressions execute. A successful build, discovered tests, published TRX, or green job alone is not proof. Keep the work bounded to the changed contract.

Runtime choice

The Python execution gate is a measured exception to the repository's conditional PowerShell preference. A native PowerShell candidate did not meet the no-performance-regression condition for the documented standalone CLI path. On Windows with Python 3.12.10 and PowerShell 7.6.6, three warmups followed by 15 interleaved fresh-process samples per workload produced these medians, including process startup:

WorkloadPython median, msPowerShell candidate median, ms
Empty runtime startup76528
One passed case208898
29 skipped cases200819
1,000 passed cases2221,330
10,000 passed cases2223,882
10,000 failed cases3053,983

Retain the existing gate and all 16 regression scenarios rather than accepting that slowdown or weakening validation. This feasibility assessment does not establish complete feature/security parity, compare a warmed persistent host, or prove that every PowerShell implementation or other OS is slower. A future port must preserve the same input-validation and failure contracts, demonstrate feature/security parity, and avoid a performance regression on the supported invocation paths, including startup where applicable.

1. Choose the smallest shipping contract

Before implementation, record the following in the session or existing PR evidence, not a new repository planning file:

DecisionRequired detail
Producer and consumerOwning projects, exact NuGet IDs/versions, shipping binaries/sidecars/extensions, TFM/RID/architecture, SDK, and release branch that must work together.
LifecycleWho launches, connects, cancels, disposes, and cleans up; required handshake and intentionally absent handshake; unsupported/undeclared versus explicitly disabled capability.
Observable resultExact parent and child exits, selected test identities/counts, expected artifacts/content, and fallback rules. An outer acceptance test can pass while asserting an intentionally failing child.
ScopeOne representative real consumer per changed boundary; additional scenarios only where the change can affect them. Explain material exclusions.
Delivery ownerOne owner through dependency flow, downstream rollout, release-branch proof/backports, and removal of temporary flags/denylists.

An assertion-only change can need just its focused unit test. A package layout, MSBuild launcher, process/protocol, SDK, or independently shipped component change needs a packed consumer, not just mocks or in-repo project references. For an SDK integration, a fake SDK is useful protocol coverage but cannot replace the real shipping SDK invocation.

Before enabling a downstream feature, validate the branch/packages that will ship and decide whether supported release branches need servicing/backports. A rollout flag does not replace compatibility or composed-product proof.

Use this risk table to choose cases, not to impose a full matrix on every change:

Changed boundaryRepresentative proof
Package/targetsInspect actual .nupkg entries and restore a generated consumer; assert resolved props/targets/runtime assets and aligned dependencies.
CLI/launcher/routingReal execution plus discovery (--list-tests); help/info if changed; a named launch profile with distinctive arguments/environment if profile routing is affected. Assert the marker/filter reaches the actual packaged host/sidecar, not merely the outer command.
Handshake/capabilityNormal handshake, intentionally suppressed/no-handshake path, and one old/incompatible consumer when relevant. A successful no-work child must not become a false parent failure; a missing required handshake must not become false success.
Failure/fallbackNonzero child exit, zero-result selection, partial/missing input, and missing/stale/incompatible data where fallback is supported. Assert which work actually runs, not only a message saying fallback ran.
OrchestrationCancellation with bounded teardown and one mixed-success multi-module/TFM run. Verify every module's artifacts and the aggregate parent exit; do not let one passed module conceal a missing or failed module.

2. Pack and establish provenance

Run from the worktree root. Use .\build.cmd -pack -c Release -bl on Windows (./build.sh -pack -c Release -bl on Linux/macOS). Capture the exit immediately and stop on failure. Repack after every source change. Do not pack/build concurrently against the same outputs. Do not run the full integration matrix solely to validate this skill or another documentation-only change.

Inspect these current sources before adapting commands:

SourceWhat it establishes
global.json, eng\Versions.props, Directory.Packages.propsPinned repository SDK/runtime and dependency versions. Do not substitute a globally installed SDK.
test\Utilities\Microsoft.Testing.TestInfrastructure\Constants.csConfiguration-matched artifacts\packages\<Configuration>\Shipping, NonShipping, and artifacts\tmp\<Configuration>\packages feeds.
test\Utilities\Microsoft.Testing.TestInfrastructure\TestAsset.csGenerated NuGet.config, local feeds, and public-feed/source-mapping behavior. A local feed in the config alone does not prove the resolved package came from it.
test\IntegrationTests\Microsoft.Testing.Platform.Acceptance.IntegrationTests\Helpers\AcceptanceFixture.csA fresh random .packages cache for generated consumers each assembly run. The fixture also links into MSTest acceptance.
test\Utilities\Microsoft.Testing.TestInfrastructure\TestAssetFixtureBase.cs, AcceptanceSourceGen.cs, TestHost.csGenerated builds and separate reflection/source-generation outputs. Building a variant is not evidence that a test executed that variant.
test\Directory.Build.targetsMTP diagnostics/reporting and UsingDotNetTest=true wiring for TRX/results directories.

Record commit/dirty source state, pack configuration/exit, exact package filenames and SHA-256 hashes, consumer restore/build command, generated obj\project.assets.json and *.nuget.g.props/*.nuget.g.targets, and loaded/executed binary paths. Check package IDs/versions, restore packageFolders, chosen TFM/RID assets, and physical package/binary content. Compare relevant cached package payloads with the current pack; same version does not imply same bits. Keep MSTest and MTP version families distinct while checking alignment within each contract.

The outer acceptance runner may reference source projects; the inner generated consumer must consume the shipping package for the boundary under test. TestAsset.GenerateAssetAsync, DotnetCli.RunAsync, TestHost.LocateFrom, and TestHost.ExecuteAsync are existing building/launching helpers. Prefer them over new ad-hoc runners, but assert the real shipping layout when apphost versus DLL, published output, controller, or package identity matters.

Useful existing examples are WindowsApplicationModelPackageTests (physical package entries), PackagedAppIntegrationTests (real packed consumer targets, custom/suppressed launchers, incompatible payloads, and multi-target exits), and PackagedWinUITests (real activation, package identity, native shipping SDK, and TRX). The first two are under MSTest acceptance; the last is under MTP acceptance. For CLI descriptions, update the corresponding HelpInfoTests and HelpInfoAllExtensionsTests expectations rather than testing only option parsing.

For an independently constructed consumer, use a unique run-owned NUGET_PACKAGES cache and explicit feeds; do not clear shared/global caches. The existing acceptance fixture already isolates generated-consumer restores. CI's outer runner uses eng\pipelines\variables\test-env-vars.yml (DOTNET_ROOT=.dotnet, NUGET_PACKAGES=.packages); distinguish that cache from the inner fixture's cache.

When a consumer uses a different SDK, invoke the outer acceptance project through dotnet test, not only its apphost. The CLI exports MSBuildSDKsPath, MSBuildExtensionsPath, and DOTNET_ROOT_X64 to the test host. A child global.json and a successful dotnet --version do not prevent mixed-SDK targets/task loading. Use AcceptanceTestBase.ConfigureDotnetSdkEnvironment for the isolated native SDK, preserving shared cache/tooling settings. Verify actual build provenance (NETCoreSdkVersion, MSBuildToolsPath, extensions and SDK paths) alongside the real packaged-host results.

Keep CI's DOTNET_CLI_CONTEXT_VERBOSE=1 enabled during native CLI validation. SDK tracing can name the sidecar executable even when help/discovery correctly comes from the activated host, and ANSI color/reset-only lines can interrupt an otherwise deterministic block. Normalize presentation only, preserve the diagnostics, and assert host usage or the delimited JSON payload rather than requiring the entire mixed CLI output to be a payload.

Show full SKILL.md (758 more words)Show less

3. Run a focused regression and verify execution

This Windows example runs one existing packed-package regression. It is a package layout check, not evidence of real UWP/WinUI activation. Adapt the project/filter and expected names for the changed contract. Use a unique results directory, retain logs/binlogs, and do not infer expectations from the report being verified.

powershell
# After the successful configuration-matched pack above.
$project = 'test\IntegrationTests\MSTest.Acceptance.IntegrationTests\MSTest.Acceptance.IntegrationTests.csproj'
$case = 'PackedMSTestTestAdapter_ContainsRequiredWindowsApplicationModelAssets'
$results = Join-Path (Get-Location).Path ('artifacts\TestResults\Release\acceptance-' + [Guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Path $results | Out-Null

$packages = @(Get-ChildItem -LiteralPath artifacts\packages\Release\Shipping `
    -Filter 'MSTest.TestAdapter.*.nupkg' -File)
if ($packages.Count -ne 1) { throw "Expected one current adapter package, found $($packages.Count)." }
$packages | Get-FileHash -Algorithm SHA256 | ConvertTo-Json |
    Set-Content -LiteralPath "$results\package-provenance.json" -Encoding UTF8

& .\.dotnet\dotnet.exe build $project -c Release "-bl:$results\build.binlog"
if ($LASTEXITCODE -ne 0) { throw "Acceptance build failed: $LASTEXITCODE" }

$filter = "FullyQualifiedName~WindowsApplicationModelPackageTests.$case"
# Blank these global properties so discovery does not inherit execution-only reporters.
& .\.dotnet\dotnet.exe test --project $project -c Release --no-build `
    --list-tests --filter $filter -p:UsingDotNetTest=true `
    -p:TestingPlatformCommandLineArguments= -p:TestRunnerAdditionalArguments= `
    "-bl:$results\discovery.binlog" 2>&1 | Tee-Object -FilePath "$results\discovery.log"
$discoveryExit = $LASTEXITCODE
if ($discoveryExit -ne 0) { throw "Acceptance discovery failed: $discoveryExit" }
# Reconcile discovery.log with the one source-declared case before executing.

# The plan comes from source/data rows and independent discovery, not this run's TRX.
$expectedPath = Join-Path $results 'expected-tests.json'
ConvertTo-Json -InputObject @($case) | Set-Content -LiteralPath $expectedPath -Encoding UTF8
$started = [DateTimeOffset]::UtcNow.ToString('o')
& .\.dotnet\dotnet.exe test --project $project -c Release --no-build `
    --filter $filter `
    -p:UsingDotNetTest=true "-p:ArtifactsTestResultsDir=$results" `
    "-bl:$results\test.binlog" --show-test-results all `
    2>&1 | Tee-Object -FilePath "$results\execution.log"
$testExit = $LASTEXITCODE

$reports = @(Get-ChildItem -LiteralPath $results -Filter '*.trx' -File)
if ($reports.Count -ne 1) { throw "Expected one outer acceptance TRX, found $($reports.Count). Exit: $testExit" }
python .github\skills\testfx-acceptance-validation\scripts\verify_execution.py `
    --trx $reports[0].FullName --expected-tests $expectedPath `
    --started-after $started --process-exit-code $testExit
if ($LASTEXITCODE -ne 0) { throw 'Acceptance execution proof failed.' }

The verifier is standard-library Python and checks one outer acceptance TRX per module/TFM. The JSON plan is a nonempty array of exact TRX testName strings, including data-row display names and multiplicity. Establish them from source, data expansion, and separate discovery; reconcile discovery with the plan before execution. Neither --list-tests nor a list copied from a passing report proves execution. Record discovery's own exit/output and use the same selector for the run.

The output distinguishes planned, reported-selected, executed, passed, failed, and skipped counts. It requires all planned cases to be present and passed, consistent counters, a fresh run start, unique execution IDs, and outer exit zero. Zero tests, NotExecuted/inconclusive/skipped results, missing modules, stale artifacts, and a nonzero exit fail the gate. Run it separately for each planned module with that module's expected names; aggregate success only after every gate passes. Legitimate unrelated skips belong in a separate selection/report, not a lowered proof bar. For negative/discovery/help-only product commands, assert their contractual exits and output inside passing acceptance cases; do not pass their child TRX to this gate.

4. Prove the capable CI job will run the cases

Inspect azure-pipelines.yml and the actual referenced templates on the branch that will ship. Trace change detection/job conditions, SkipTests, configuration, project/module selection, filter/category, conditional attributes, and environment all the way to each consuming test step. A category missing from a new test means the dedicated filter will never select it.

For real Windows app-model changes:

  • The blocking WindowsAppModel job uses eng\pipelines\steps\test-windows-app-model.yml, Release packs/builds, and eng\pipelines\test-windows-app-model-preflight.ps1. Preflight requires an interactive/elevated AppX-capable Windows session, appropriate VS/UWP tooling, and installed SDKs. A Windows image label alone is insufficient.
  • Real activation classes use [TestCategory("WindowsApplicationModel")], TESTFX_RUN_WINDOWS_APP_MODEL_TESTS=1, and relevant OS/member conditions. WindowsApplicationModelPackageTests is instead selected by its own FQN filter; package-content checks do not substitute for activation.
  • Native .NET 10 tests need TESTFX_DOTNET_10_PATH pointing to the isolated installation from that template, including the required .NET 8 runtime. Verify the variable on every consuming MSTest/MTP step, not just where the installation happens. Copy current pinned versions from the template, not this skill. The repository SDK and the isolated shipping SDK have different roles.
  • WinApp interoperability additionally requires TESTFX_RUN_WINAPP_CLI_INTEROP_TESTS=1, TESTFX_WINAPP_CLI_PATH, and the pinned, hash-verified WinApp CLI. Do not enable it for unrelated changes.

Compare local planned identities/counts with CI's actual selection and executed outcomes. Read TRX/TestResults and the test-step log, not merely the job badge or successful PublishTestResults. Reconcile retries per attempt/module; do not sum duplicate retry reports. If the capable job is gated out or prerequisites are missing, report CI execution unproven/blocked even if a different job is green. Record build/job/attempt identity and diagnostic artifact location. Never fix that by weakening conditions or treating skipped regressions as validated.

Historical failure modes motivating these gates: missing category in #11614, 29 NotExecuted cases and missing consuming SDK path in #11805, and packed-host launch-profile/discovery routing in #11804. These are examples, not instructions to modify those PRs.

5. Preserve evidence and clean up only owned state

Retain exact commands and component versions, working directory/environment overrides (no secrets), exits, expected/observed identities and counts, pack hashes, resolved/executed paths, and meaningful output/artifact assertions. Explain which contract cases and release branches were exercised and which remain blocked. Reuse existing PR evidence when publication is requested; do not publish by default. Read back and verify any published body.

Generated assets normally live under artifacts\tmp\<Configuration>\testsuite\<random-id>. Setting Microsoft_Testing_TestInfrastructure_TempDirectory_Cleanup=0 retains asset directories for diagnostics, but AcceptanceFixture.AssemblyCleanup still removes its cache. Capture provenance before fixture cleanup if the cache is needed. Prefer finally cleanup and existing cancellation tokens/bounded command helpers. Terminate only owned PIDs, unregister only exact run-owned package identities, and restore modified environment/state. Never remove broad shared caches, registrations, or workspace roots.

The app-model pipeline runs -Mode LeakCheck and publishes binlogs/TRX/layout/ manifest/resolved-assets/log diagnostics even on failure. On a shared local machine, do not use -RemoveStaleTestPackages without verifying ownership: that pipeline switch removes reserved-prefix packages for the current user. Preserve failures and evidence first; successful cleanup must not overwrite the test failure.

Maintaining this skill

For changes confined to this directory, validate the executable gate with:

powershell
python -m unittest discover -s .github\skills\testfx-acceptance-validation\scripts -p "test_*.py"

Check referenced repository paths, command flags, and CI/helper behavior against the current branch. These self-tests validate the evidence gate, not the product. Do not claim a composed-product or CI run from documentation/script checks.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts) in .github/skills/testfx-acceptance-validation of microsoft/testfx.

  • SKILL.md
  • scripts/test_verify_execution.py
  • scripts/verify_execution.py

Open the folder on GitHubat commit 19d717a

Compare with similar skills

Testfx Acceptance Validation 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.

Testfx Acceptance Validation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Testfx Acceptance Validation this skillmicrosoft/testfx1k—~4.7kAutomated safety check: PassMIT
Environment SetupNorman-bury/research-writing-skill3.4k—~840Automated safety check: PassMIT
Hf Cloud Sagemaker Iam Preflightwaybarrios/opencode-power-pack533—~1.6kAutomated safety check: PassApache-2.0
Remote Hostslibnativeapi/nativeapi162—~1.3kAutomated safety check: PassMIT
UiPath Project Generatormarcelocruzrpa/uipath-ai-skills108—~6.9kAutomated safety check: PassMIT
Local Asrysyecust/lecture-to-notes273—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Environment Setup

    Norman-bury/research-writing-skill

    A skill your agent uses when Python environment setup is needed for data visualization or conda installation is required

    3.4k GitHub stars~840 tokensUpdated 4 mo ago
    Data & AnalyticsAuto-check passed
  • Hf Cloud Sagemaker Iam Preflight

    waybarrios/opencode-power-pack

    Verify or select a SageMaker execution role before creating models, endpoints, or training jobs.

    533 GitHub stars~1.6k tokensUpdated 3 days ago
    SecurityAuto-check passed
  • Remote Hosts

    libnativeapi/nativeapi

    Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in…

    162 GitHub stars~1.3k tokensUpdated today
    MobileAuto-check passed
  • UiPath Project Generator

    marcelocruzrpa/uipath-ai-skills

    Generates UiPath Studio projects, REFramework scaffolds, XAML workflows and expressions through 104 deterministic Python generators instead of hand-written XAML.

    108 GitHub stars~6.9k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Local Asr

    ysyecust/lecture-to-notes

    把本地长视频/音频转写成文字稿 + 可选字幕,纯本地(不上传云端),用 sherpa-onnx X-ASR Zipformer transducer 模型(int8 量化、中英双语、自动标点)。已在 macOS Apple Silicon(int8 + AMX,~100× 实时)、Linux ARM64(CPU,~32× 实时)与 Windows(PowerShell…

    273 GitHub stars~1.6k tokensUpdated 6 days ago
    AI & LLM EngineeringAuto-check passed
  • Entra Agent Id

    microsoft/GitHub-Copilot-for-Azure

    Official

    Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant)…

    255 GitHub starsUsed in 2 repos~4k tokens
    Backend & APIsAuto-check passed

More from microsoft/testfx

All 50 skills in this repo
  • Official

    Guide for organizing MSBuild infrastructure with Directory.Build.props, Directory.Build.targets, Directory.Packages.props, and Directory.Build.rsp.

    1k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Coverage Analysis

    microsoft/testfx

    Official

    Project-wide code coverage and CRAP (Change Risk Anti-Patterns) score analysis for .NET projects.

    1k GitHub stars~7.3k tokensUpdated today
    Auto-check passed
  • Incremental Build

    microsoft/testfx

    Official

    Guide for optimizing MSBuild incremental builds. An agent skill from microsoft/testfx.

    1k GitHub starsUsed in 3 repos~3.7k tokens
    Auto-check passed
  • Msbuild Modernization

    microsoft/testfx

    Official

    Guide for modernizing and migrating MSBuild project files to SDK-style format.

    1k GitHub starsUsed in 3 repos~4.3k tokens
    Auto-check passed
  • Official

    Guide for interpreting ResolveProjectReferences time in MSBuild performance summaries.

    1k GitHub starsUsed in 3 repos~743 tokens
    Auto-check passed
  • Msbuild Antipatterns

    microsoft/testfx

    Official

    Catalog of MSBuild anti-patterns with detection rules and fix recipes.

    1k GitHub stars~4.5k tokensUpdated today
    Auto-check passed

Questions about Testfx Acceptance Validation

What does Testfx Acceptance Validation do?

Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence. Testfx Acceptance Validation is an agent skill from microsoft/testfx, published by the product's own GitHub organization. Validate TestFx shipping paths and capable CI execution using packed consumers, package/cache provenance, exact exits and artifacts, and selected-versus-executed test evidence.

When should I use Testfx Acceptance Validation?

Testfx Acceptance Validation fits situations like: acceptance regressions; package/MSBuild/launcher/protocol changes; skipped-only CI results; not for unrelated unit-only.

How do I install Testfx Acceptance Validation in Claude Code?

Run `npx skills add microsoft/testfx --skill testfx-acceptance-validation -a claude-code`. Or copy the skill folder (.github/skills/testfx-acceptance-validation in microsoft/testfx) into .claude/skills/testfx-acceptance-validation in your project. Claude Code loads it when a task matches its description.

How do I install Testfx Acceptance Validation in Codex?

Run `npx skills add microsoft/testfx --skill testfx-acceptance-validation -a codex`. Or copy the skill folder (.github/skills/testfx-acceptance-validation in microsoft/testfx) into .agents/skills/testfx-acceptance-validation in your project. Codex loads it when a task matches its description.

Can I use Testfx Acceptance Validation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/testfx --skill testfx-acceptance-validation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testfx-acceptance-validation, .gemini/skills/testfx-acceptance-validation, .github/skills/testfx-acceptance-validation and .opencode/skills/testfx-acceptance-validation in your project.

What does Testfx Acceptance Validation need to run?

Going by SKILL.md and its folder, Testfx Acceptance Validation needs Python for the scripts in its folder and the command-line tools its instructions call (python and dotnet). Our summary lists: Python 3.

Does Testfx Acceptance Validation access the network?

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.

Is Testfx Acceptance Validation safe to install?

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.

What licence does Testfx Acceptance Validation use?

Testfx Acceptance Validation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Testfx Acceptance Validation use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Testfx Acceptance Validation?

Skills that share tags, products or a category with Testfx Acceptance Validation: Environment Setup (Norman-bury/research-writing-skill, 3.4k stars), Hf Cloud Sagemaker Iam Preflight (waybarrios/opencode-power-pack, 533 stars), Remote Hosts (libnativeapi/nativeapi, 162 stars) and UiPath Project Generator (marcelocruzrpa/uipath-ai-skills, 108 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Testfx Acceptance Validation?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/testfx, which has 1,047 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/testfx on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.