Diagnoses .NET Framework CLR activation issues using CLR activation logs (CLRLoad logs) produced by mscoree.dll. Use when: the shim picks the wrong runtime, fails to load any runtime, shows unexpected .NET 3.5 Feature-on-Demand (FOD) dialogs, unexpectedly does NOT show FOD dialogs, loads both v2 and v4 into the same process causing failures, or any time someone is wondering "what is happening with .NET Framework activation?"
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Write, review, or modernize F# code in .NET repositories with functional-first design, algebraic data types, pattern matching, pipelines, async workflows, project ordering, and C# interop. USE FOR: F# .fs/.fsproj code; discriminated unions, records, options, results, pattern matching, computation expressions, or functional domain modeling; strongly typed AI-generated .NET code. DO NOT USE FOR: C# language modernization; FSI-only exploratory scripts with no project changes. INVOKES: inspect .fsproj file order and SDK settings, edit F# source and project files, and run dotnet build/test or dotnet fsi validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Guides migration of .NET Framework Thread.Abort usage to cooperative cancellation in modern .NET. USE FOR: modernizing code that calls Thread.Abort, catching ThreadAbortException, replacing Thread.ResetAbort, replacing Thread.Interrupt for thread termination, resolving PlatformNotSupportedException or SYSLIB0006 after retargeting to .NET 6+, migrating ASP.NET Response.End or Response.Redirect(url, true) which internally call Thread.Abort. DO NOT USE FOR: code that only uses Thread.Join, Thread.Sleep, or Thread.Start without any abort, interrupt, or ThreadAbortException usage โ these APIs work identically in modern .NET and need no migration. Also not for projects staying on .NET Framework, or Thread.Abort usage inside third-party libraries you do not control.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Convert .NET tests from NUnit 3/4 to MSTest v4 while preserving VSTest or MTP. Use for replacing NUnit/NUnit3TestAdapter packages, Test/TestCase/ TestCaseSource/Values attributes, constraint assertions, SetUp/TearDown, OneTimeSetUp, SetUpFixture, FixtureLifeCycle, TestContext, categories, retries, timeouts, and NUnit parallelization. Also use when a "convert NUnit to MSTest" request may already be migrated: inspect and report the no-op. Do not use for NUnit version upgrades, xUnit/TUnit conversion, MSTest upgrades, or runner-only VSTest-to-MTP migration.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Safely refactors C#/.NET code without changing behavior. USE FOR any request to refactor, rename, move, extract, inline, merge, consolidate, deduplicate, split, or modernize C# code, including partial/generated declarations, wrappers, public APIs, serialization/reflection/configuration names, friend assemblies, conditional compilation, and multi-targeted projects. Also use when a request calls a feature, bug fix, package/framework upgrade, or public nullability change a refactor and the behavior-changing part must be separated or declined. DO NOT USE FOR ordinary feature or bug fixes not presented as refactoring; standalone upgrades after reclassification (use dotnet-upgrade); adding tests; or formatting-only work.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Use only for MSBuild failure investigation, build-performance analysis, or review of existing build XML/extension contracts. A plan to convert a working legacy/non-SDK project to SDK style or migrate packages.config is a project-system migration, NOT a build-file review: do not activate, even to check scope. Framework/API upgrades are also excluded. Activate for advisory Import/Exists hook and NuGet packed-import questions even without a checkout or failed build; .csproj/.fsproj/.vbproj/.props/.targets conditions; custom-target inputs/outputs; .binlog capture/replay; failing dotnet build/restore/pack/publish or MSBuild-based test builds; slow evaluation, compilation, copying, or no-change builds; and controlled timing comparisons. Exclude SDK installation alone, C# refactoring, runtime profiling, assertions after successful builds, and non-MSBuild builds.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Use this skill before answering or editing whenever an MSTest v1/v2 project is being upgraded or repaired for v3. Triggers include QualityTools assembly references; MSTest.TestFramework/TestAdapter 1.x-2.x; "upgrade to MSTest v3"; comparing v1 and v2 migration paths; choosing MSTest or MSTest.Sdk; CS0411/CS1503 after a v3 package bump; DataRow type mismatch, MSTEST0014, or "Test data doesn't match method parameters"; .testsettings/LegacySettings to .runsettings; timeout changes; and net5.0 or other dropped v3 TFMs. Still use it when packages say 3.x but migration source errors or legacy settings remain. Preserve VSTest/MTP. Do not use for a clean v3 project, v3-to-v4, framework conversion, or runner-only migration.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Enable nullable reference types in a C# project and systematically resolve all warnings. USE FOR: adopting NRTs in existing codebases, file-by-file or project-wide migration, fixing CS8602/CS8618/CS86xx warnings, annotating APIs for nullability, cleaning up null-forgiving operators, upgrading dependencies with new nullable annotations. DO NOT USE FOR: projects already fully migrated with zero warnings (unless auditing suppressions), fixing a handful of nullable warnings in code that already has NRTs enabled, suppressing warnings without fixing them, C# 7.3 or earlier projects. INVOKES: Get-NullableReadiness.ps1 scanner script.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Primary router skill for broad .NET work. Classify the repo by app model and cross-cutting concern first, then switch to the narrowest matching .NET skill instead of staying at a generic layer. USE FOR: general .NET requests without a narrower framework; C# implementation, debugging, review, or refactoring; routing to framework and tooling skills. DO NOT USE FOR: unrelated stacks; tasks already covered by a narrower .NET skill. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Migrate a .NET 8 project to .NET 9 and resolve all breaking changes. USE FOR: upgrading TargetFramework from net8.0 to net9.0, fixing build errors after updating the .NET 9 SDK, resolving behavioral changes in .NET 9 / C# 13 / ASP.NET Core 9 / EF Core 9, replacing BinaryFormatter (now always throws), resolving SYSLIB0054-SYSLIB0057, adapting to params span overload resolution, fixing C# 13 compiler changes, updating HttpClientFactory for SocketsHttpHandler, and resolving EF Core 9 migration/Cosmos DB changes. DO NOT USE FOR: .NET Framework migrations, upgrading from .NET 7 or earlier, greenfield .NET 9 projects, or cosmetic modernization unrelated to the upgrade.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Install a .NET SDK locally for safe preview testing, specific-version pinning, or reproducible team setups โ without modifying the system-wide installation. USE FOR: trying .NET previews safely, testing specific SDK versions, installing MAUI or other workloads on a preview, updating or replacing an existing local SDK, creating reproducible team/CI install scripts, configuring global.json paths. DO NOT USE FOR: system-wide SDK installs, .NET hosts older than 10, runtime-only installs, or projects not using SDK-style commands.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Review .NET changes for bugs, regressions, architectural drift, missing tests, incorrect async or disposal behavior, and platform-specific pitfalls before you approve or merge them. USE FOR: reviewing a pull request or patch in a .NET repository; checking for behavioral regressions, API misuse, or missing tests; auditing architectural or framework-specific. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Design, implement, optimize, and review SIMD code in .NET. USE FOR: vectorizing scalar loops with TensorPrimitives, Vector64/128/256/512, or platform hardware intrinsics; reviewing existing SIMD code, including the generic Vector type, for contract equivalence, tail handling, memory safety, portability, fallbacks, and measured performance. DO NOT USE FOR: performance work unrelated to SIMD or vectorization.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Migrate a .NET 9 project or solution to .NET 10 and resolve all breaking changes. USE FOR: upgrading TargetFramework from net9.0 to net10.0, fixing build errors after updating the .NET 10 SDK, resolving source and behavioral changes in .NET 10 / C# 14 / ASP.NET Core 10 / EF Core 10, updating Dockerfiles for Debian-to-Ubuntu base images, resolving obsoletion warnings (SYSLIB0058-SYSLIB0062), adapting to SDK/NuGet changes (NU1510, PrunePackageReference), migrating System.Linq.Async to built-in AsyncEnumerable, fixing OpenApi v2 API changes, cryptography renames, and C# 14 compiler changes (field keyword, extension keyword, span overloads). DO NOT USE FOR: .NET Framework migrations, upgrading from .NET 8 or earlier (use migrate-dotnet8-to-dotnet9 first), greenfield .NET 10 projects, or cosmetic modernization. LOADS REFERENCES: csharp-compiler, core-libraries, sdk-msbuild (always); aspnet-core, efcore, cryptography, extensions-hosting, serialization-networking, winforms-wpf, containers-interop (selective).
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Use Sep for high-performance separated-value parsing and writing in .NET, including delimiter inference, explicit parser/writer options, and low-allocation row/column workflows. USE FOR: delimited data needs are performance-sensitive and allocation-aware; project needs explicit control over separator inference, escaping, trimming, and header behavior;. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Run file-based C# apps with the .NET CLI when the user explicitly wants C#/.NET code without creating a project. Use for C# language/API experiments, one-file C# apps, small multi-file C# apps composed with `#:include`/`#:exclude`, or C# file-based apps linked with `#:ref`. Do not use for language-agnostic throwaway scripts, generic computations, Python/PowerShell-style automation, full projects, or existing app integration.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Apply minimal MCAF repository governance when the user explicitly asks to adopt MCAF or change MCAF-specific rules. USE FOR: creating or tightening root and local AGENTS.md policy; placing durable engineering context; defining the repository's own verification contract. DO NOT USE FOR: ordinary .NET implementation, documentation edits, UI/UX, testing, CI, Git, NFR, developer-experience, or ML work unless the request is specifically about MCAF governance. INVOKES: inspect repository policy and documentation, make the smallest durable governance change, then validate the affected repository surfaces.
ํ๊ตญ์ด ์์ฝ์ ์ค๋น ์ค์
๋๋ค. ์๋ฌธ ์ค๋ช
์ ํ์ํ๊ณ ์์ต๋๋ค.
managedcode/dotnet-skillsโ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Design or review .NET solution architecture across modular monoliths, clean architecture, vertical slices, microservices, DDD, CQRS, and cloud-native boundaries without over-engineering. USE FOR: .NET architecture choices; layer and domain boundary review; service decomposition; clean architecture, vertical slice, DDD, CQRS, and modular monolith decisions. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Maintain classic ASP.NET applications on .NET Framework, including Web Forms, older MVC, and legacy hosting patterns, while planning realistic modernization boundaries. USE FOR: working in Web Forms, legacy MVC, or classic ASP.NET applications; reviewing old IIS-centric configuration and lifecycle behavior; planning migration toward ASP.NET Core. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Work on C# and .NET-adjacent mixed-reality solutions around HoloLens, MRTK, OpenXR, Azure services, and integration boundaries where .NET participates in the stack. USE FOR: building or integrating mixed-reality solutions with C#; working on HoloLens, MRTK, Azure mixed-reality services, or OpenXR-related code; reviewing how .NET services. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ
Create or reorganize .NET solutions with clean project boundaries, repeatable SDK settings, and a maintainable baseline for libraries, apps, tests, CI, and local development. USE FOR: creating a new .NET solution or restructuring an existing one; setting up Directory.Build.props, shared package management, or repo-wide defaults; defining project. 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โ 4932026๋
10์ 24์ผ ์
๋ฐ์ดํธ