What problem does it solve? Custom MSBuild targets frequently break builds in subtle ways: Directory.Build.targets silently redefining SDK targets, CompileDependsOn chains overwritten instead of extended, query targets returning stale results due to Outputs vs Returns misuse, and missing Inputs/Outputs causing unnecessary rebuilds. This Skill provides canonical patterns from Microsoft.Common.CurrentVersion.targets to author and repair custom targets correctly. ## Core Features & Use Cases - Three-Level Target Chain: Implements the Build → CoreBuild pattern with DependsOnTargets property delegation, empty Before/After extensibility hooks, and OnError cleanup handlers. - Chain Extension Rules: Enforces appending to $(XxxDependsOn) properties instead of overwriting them, and guides correct choice between DependsOnTargets, BeforeTargets, and AfterTargets. - Returns vs Outputs Guidance: Distinguishes inter-project communication (Returns) from incremental build detection (Outputs) so query targets like GetTargetPath never return stale data. - Use Case: A team's Directory.Build.targets redefines CompileDependsOn without including the original value, silently dropping SDK code generation targets. This Skill identifies the overwrite anti-pattern and rewrites it as an append, restoring the full build chain. ## Quick Start Ask the assistant to review your custom .targets file for MSBuild authoring anti-patterns and rewrite it following the canonical target chain patterns.