Detects MSBuild projects with conflicting OutputPath or IntermediateOutputPath. USE FOR: builds failing with 'Cannot create a file when that file already exists', 'The process cannot access the file because it is being used by another process', intermittent build failures that succeed on retry, or missing/overwritten outputs in multi-project or multi-targeting builds where bin/obj (or project.assets.json) collide. Common causes: shared OutputPath, missing AppendTargetFrameworkToOutputPath, extra global properties (e.g. PublishReadyToRun), or SetTargetFramework on a ProjectReference to a single-targeting project. DO NOT USE FOR: file access errors unrelated to MSBuild (OS-level locking), single-project single-TFM builds, non-MSBuild build systems.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Diagnose MSBuild bottlenecks from binlog timelines and Target/Task Performance Summaries after build-perf-baseline establishes measurements. USE FOR: unknown build slowness, RAR >5s, analyzers >30% of Csc, one target >50% of build time, node utilization <80%, excessive Copy tasks, finding restore overhead. DO NOT USE FOR: known repeated-restore fixes (use eliminate-redundant-restores), initial baselines (use build-perf-baseline), incremental rebuilds (use incremental-build), parallelism tuning (use build-parallelism), non-MSBuild builds.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use the open-source free `cloc` tool for line-count, language-mix, and diff statistics in .NET repositories. USE FOR: repeatable LOC reports; language-mix or branch-diff statistics; codebase size and solution-composition measurements. DO NOT USE FOR: judging developer productivity from raw LOC; replacing behavioral verification, architecture review, or complexity analysis. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use the free built-in .NET SDK analyzers and analysis levels with gradual Roslyn warning promotion. USE FOR: the repo wants first-party .NET analyzers; CI should fail on analyzer warnings; the team needs AnalysisLevel or AnalysisMode guidance. DO NOT USE FOR: third-party analyzer selection by itself; formatting-only work. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client. USE FOR: the repo needs browser-level debugging for ASP.NET Core, Blazor, WebAssembly, or any .NET app with a web UI; the user wants an MCP server that can inspect console. DO NOT USE FOR: pure .NET code analysis, unit testing, or NuGet/package management; static HTML linting alone. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use Biome in .NET repositories that ship Node-based frontend assets and want a fast combined formatter-linter-import organizer for JavaScript, TypeScript, CSS, JSON, GraphQL, or HTML. USE FOR: biome.json or @biomejs/biome setup; fast frontend formatting and linting; replacing overlapping frontend style tools deliberately. DO NOT USE FOR: ESLint-only plugin coverage; runtime site audits such as headers, accessibility, or browser behavior. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use the open-source CodeQL ecosystem for .NET security analysis. Use when a repo needs CodeQL query packs, CLI-based analysis on open source codebases, or GitHub Action setup with explicit licensing caveats. USE FOR: the repo uses or wants CodeQL for .NET security analysis; GitHub code scanning is part of the CI plan. DO NOT USE FOR: teams that need a tool with no private-repo licensing caveat. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use Chous in .NET repositories that ship sizeable frontend codebases and want file-structure linting, naming convention enforcement, and folder-layout policy as a CLI gate. USE FOR: growing frontend trees; naming, folder, or file-placement policy; CI checks for frontend layout drift. DO NOT USE FOR: semantic code bugs, type errors, or framework API misuse; CSS, HTML, or JS rule enforcement inside files. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Write, run, or repair .NET tests that use xUnit with the right package, CLI, and runner guidance. USE FOR: xUnit v2 or xUnit v3 projects; adding, running, debugging, or repairing xUnit tests; choosing between VSTest and Microsoft.Testing.Platform. DO NOT USE FOR: TUnit projects; MSTest projects. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use a repo-root `.editorconfig` to configure free .NET analyzer and style rules. Use when a .NET repo needs rule severity, code-style options, section layout, or analyzer ownership made explicit. USE FOR: the repo needs a root .editorconfig; analyzer severity and style ownership are unclear; the team wants one source of truth for rule configuration. DO NOT USE FOR: choosing analyzers with no config change; formatting-only execution with no config ownership question. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Write, run, or repair .NET tests that use TUnit. Use when a repo uses `TUnit`, `TUnit.Playwright`, `[Test]`, `[Arguments]`, `ClassDataSource`, `SharedType.PerTestSession`, or Microsoft.Testing.Platform-based execution. Preserve TUnit's parallel-by-default model and constrain only destructive shared-state collisions. DO NOT USE FOR: xUnit projects; MSTest projects.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use free built-in .NET maintainability analyzers and code metrics configuration to find overly complex methods and coupled code. USE FOR: the team wants to find overly complex methods; cyclomatic complexity thresholds are needed in CI; maintainability metrics or coupling thresholds need to be configured. DO NOT USE FOR: formatting-only work; generic analyzer setup with no complexity policy change. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use the open-source free `Stryker.NET` mutation testing tool for .NET. Use when a repo needs to measure whether tests actually catch faults, especially in critical libraries or domains. USE FOR: the repo uses or wants Stryker.NET; mutation testing is needed for high-risk code. DO NOT USE FOR: every PR path by default in a large repo; simple coverage collection. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Use the open-source free `Asynkron.Profiler` dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts. USE FOR: Asynkron.Profiler setup; automation-friendly profiling output; CPU, allocation, exception, contention, and heap investigation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Audits existing tests in any language using formal, research-backed test smell names and the testsmells.org 19-smell academic taxonomy. Use when the caller asks for an academic or citable test-smell review, named smell categories, or a formal severity-ranked smell assessment. Covers Assertion Roulette, Conditional Test Logic, Mystery Guest, Eager Test, Sleepy Test, Unknown Test, Sensitive Equality, and the rest of the catalog across .NET, Python, JavaScript/TypeScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, and C++. DO NOT USE FOR a quick pragmatic test review (use test-anti-patterns), writing or running tests, framework migration, coverage, or assertion-diversity metrics.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Find caller-visible production changes existing tests would miss through pseudo-mutation analysis; verify candidates or close gaps only when requested. Includes read-only per-test composition for grading. Polyglot. USE FOR: would tests catch a bug, behavioral blind spots, surviving mutations. DO NOT USE FOR: concrete fix/feature revision proof (test-value-evidence); suite taxonomy (test-tagging); .NET coverage, Cobertura, plateaus or coverage-backed priorities (coverage-analysis); named CRAP (crap-score); new suites (code-testing); assertion/smell audits; mutation tools.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Classifies existing tests by standard traits and reports their distribution. USE FOR: tagging all tests with category attributes, categorizing/tagging/ labeling each test, compare happy vs error paths, audit the test mix, describe coverage shape by test type, or tag then verify the project builds. Read bodies when names mislead. Apply canonical attributes; otherwise report only. DO NOT USE FOR: requests owned by test-anti-patterns, coverage-analysis, crap-score, test-gap-analysis, code-testing, or migration skills.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
ALWAYS USE before running .NET tests or answering with a test command or flags. Trigger on "run the tests", "exact dotnet test command", one test/class/category/trait/target framework, combined filters, `--filter-query`, `--no-build`, `--diag`, diagnostic logs, TRX, coverage collection, crash/hang dumps, filter errors, or unrecognized options. Chooses repository-compatible classic, VSTest, bridged MTP, or native MTP syntax for MSTest/xUnit/NUnit/TUnit. DO NOT USE for platform identification alone (platform-detection), writing or debugging test code, interpreting an existing coverage report, CI investigation, migration, or a persistent hot reload/watch loop.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Identify a .NET project's test platform, framework, command mode, and SDK-style vs classic project system. Use only for "which test platform/framework?", "VSTest or MTP?", or "what runner does this project use?", including bridge settings, UseVSTest opt-outs, and incompatible or conflicting VSTest/MTP configuration. Resolves global.json, project, packages.config, Directory.Build.props, and Directory.Packages.props precedence for MSTest/xUnit/NUnit/TUnit. DO NOT USE when the user asks to run/filter tests or for commands, flags, TRX/dumps, or test-command/filter errors; use run-tests directly. Do not route hot-reload or migration requests here as the entry skill; mtp-hot-reload may use this skill internally for platform detection.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Audit a test file or suite; produce a severity-ranked diagnostic report. ALWAYS USE for tests that verify nothing, missing/tautological assertions, swallowed/broad exceptions, flaky/order-dependent tests, duplication, or magic values. Polyglot. DO NOT USE for direct edits: writing-mstest-tests owns supplied MSTest assertions/attributes/lifecycle; code-testing owns new tests. Exclude running tests, migration, assertion metrics (assertion-quality), raw .NET coverage collection (run-tests), non-.NET coverage collection/analysis (native tooling), project-wide .NET coverage/CRAP (coverage-analysis), named-target .NET CRAP (crap-score), behavioral/pseudo-mutation gaps (test-gap-analysis), test-mix/ happy-vs-error classification and trait distributions (test-tagging), or the testsmells.org catalog (test-smell-detection).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
MANDATORY for static source-to-test pairing: find or list source files/modules without corresponding tests, or suggest test locations from repository structure. Invoke even for a tiny package; do not substitute manual globbing. Uses Roslyn for C#/.NET and tree-sitter for Python, TS/JS, Go, Java, Rust, Ruby, Kotlin, Swift, PowerShell, and C++. DO NOT USE FOR: real line/branch/Cobertura data, coverage-backed test priorities, CRAP risk, or grading existing tests.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
Reference-only filter syntax for VSTest and MTP with MSTest, NUnit, xUnit v3, and TUnit. Load only after the platform/framework is known and a consumer needs to create or translate a filter. Do not load for unfiltered runs or platform detection. Used by run-tests and mtp-hot-reload; never invoke directly.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
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/Process wrappers; IProcessRunner; DI registration; or an ambient seam that preserves a static API. Exclude static detection (detect-static-dependencies), migration to an existing/registered abstraction (migrate-static-to-wrapper), one blocked behavior plus deterministic tests (testability-obstacle), and general interface design.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ
ALWAYS USE when asked to fix, rewrite, update, improve, modernize, show corrected code for, or explain existing MSTest tests or MSTest-specific configuration. Use for "review" when corrected code or edits are wanted, even for one pasted assertion or passing tests with bad failure output. Covers expected/actual labels; generic Boolean, collection, string, numeric, null, identity, exception, hard-cast, and object[] checks; TestContext/lifecycle; timeout/cancellation; OS/CI conditions, retry, cleanup, parallelization, MSTest.Sdk project setup, and MSTESTxxxx. Honor the installed MSTest version. DO NOT USE to design new test cases (code-testing), perform report-only audits, create project files rather than explain MSTest setup, run tests, migrate frameworks, or handle non-MSTest/non-.NET code.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4902026๋
10์ 21์ผ ์
๋ฐ์ดํธ