DO NOT USE when the target already consumes an injected interface or built-in abstraction such as IFileSystem or TimeProvider, even if the request says "generate a wrapper"; no new wrapper is needed. Use only when C# source calls an ambient/static dependency and no injectable seam exists: first-time TimeProvider, IHttpClientFactory, or System.IO.Abstractions adoption; minimal Environment/Console/…
安装
npx skills add dotnet/skills --skill generate-testability-wrappersnpx skills add dotnet/skills --skill generate-testability-wrappers -a claude-code -gnpx skills add dotnet/skills --skill generate-testability-wrappers -a codex -ggemini skills install https://github.com/dotnet/skills.git --path plugins/dotnet-test/skills/generate-testability-wrappersgh skill install dotnet/skills generate-testability-wrappersgit clone --depth 1 https://github.com/dotnet/skills /tmp/dotnet__skills
mkdir -p ~/.claude/skills ~/.agents/skills
cp -R /tmp/dotnet__skills/plugins/dotnet-test/skills/generate-testability-wrappers ~/.claude/skills/generate-testability-wrappers # Claude Code
cp -R /tmp/dotnet__skills/plugins/dotnet-test/skills/generate-testability-wrappers ~/.agents/skills/generate-testability-wrappers # Codex, Cursor, Gemini CLI, Copilot, OpenCode