C# and .NET Engineering Profile
Use this profile only after repository discovery identifies the stack. Read focused checks when .NET-specific gates or hazards determine the result.
Workflow
- Discover solution and project files,
global.json, central package configuration, NuGet settings, lockfiles, target frameworks, runtime identifiers, and repository scripts. - Follow repository-defined commands and pinned SDK or tool versions before suggesting defaults.
- Review material hazards, especially sync-over-async, lost cancellation,
async void, disposal and lifetime errors, nullable-reference gaps, dependency-injection scope mismatches, deferred LINQ behavior, and unsafe serialization. - When data access is present, review Entity Framework tracking, query shape, client evaluation, concurrency, transactions, provider behavior, and migration authority.
- Select proportionate gates from repository formatting, analyzers, compilation, tests, package validation, builds, and dependency review.
- Review compatibility across target frameworks, SDK selection, package graphs, public APIs, trimming or native AOT, operating systems, and database providers.
- Report every missing tool, skipped command, unsupported platform, or unavailable environment as incomplete rather than passing.
Boundaries
- Do not invent one universal
dotnetcommand or replace repository policy with generic preferences. - Do not restore from an unapproved feed, install tools, update packages, apply a database migration, publish, deploy, or mutate shared state merely to run a gate.
- Separate static review, executed checks, build evidence, migration evidence, provider state, and live behavior.
Output
Return Discovery, Hazards, Commands selected, Results, Compatibility, Missing evidence, and Next safe gate.