What problem does it solve? Custom MSBuild targets often break silently: Directory.Build.targets files redefine SDK targets, CompileDependsOn chains get overwritten instead of extended, query targets return stale results from Outputs misuse, and missing Inputs/Outputs or FileWrites registration cause unnecessary rebuilds and broken incremental builds. ## Core Features & Use Cases - Chain Extension Patterns: Apply the Build→CoreBuild three-level pattern and extend $(XxxDependsOn) properties by appending rather than overwriting, preserving SDK targets. - Injection Mechanism Selection: Choose correctly between DependsOnTargets, BeforeTargets, and AfterTargets based on whether you own the target being hooked. - Returns vs Outputs Guidance: Use Returns for inter-project query targets like GetTargetPath and Outputs only for incrementality, avoiding stale query results. - Use Case: Your Directory.Build.targets silently drops SDK compile steps because it redefines CompileDependsOn. Use this Skill to rewrite it as an append to $(CompileDependsOn) and add proper Inputs/Outputs plus FileWrites registration. ## Quick Start Review my custom MSBuild target in Directory.Build.targets and fix any chain-overwriting or Returns/Outputs anti-patterns.