What problem does it solve? Migrating an existing C# codebase to nullable reference types (NRTs) produces hundreds of CS86xx warnings and risks incorrect annotations that mislead consumers or silently change runtime behavior. This Skill provides a structured, step-by-step workflow to enable <Nullable>enable</Nullable>, resolve every warning category correctly, and keep the generated IL unchanged. ## Core Features & Use Cases - Readiness scanning: The Get-NullableReadiness.ps1 script reports <Nullable>, <LangVersion>, and <TargetFramework> settings plus counts of #nullable directives, ! operators, and #pragma suppressions, with JSON output for automation. - Phased migration workflow: Choose project-wide, warnings-first, or file-by-file rollout strategies, then fix dereference warnings (CS8602/CS8600/CS8603/CS8604), annotate declarations (CS8618/CS8625/CS8601), apply nullable attributes like [NotNullWhen] and [MemberNotNull], and clean up suppressions. - Framework-specific guidance: Reference docs cover EF Core schema inference, ASP.NET Core model validation, and library breaking-change tracking so annotations do not cause unintended runtime or consumer impact. - Use Case: A team maintaining a large .NET library wants to adopt NRTs without breaking consumers. The Skill migrates projects in dependency order, annotates the public API surface conservatively, documents breaking changes in nullable-breaking-changes.md, and adds <WarningsAsErrors>nullable</WarningsAsErrors> to prevent regressions. ## Quick Start Ask the AI to enable nullable reference types in your C# project and resolve all resulting nullable warnings using this migration workflow.