What problem does it solve? MSBuild project files often suffer from subtle item group bugs: duplicate file warnings from SDK globbing, targets running more times than expected due to cross-product batching, and misuse of Include versus Update on SDK-globbed items. This Skill provides canonical patterns from Microsoft.Common.CurrentVersion.targets to diagnose and correct these issues. ## Core Features & Use Cases - Include/Remove/Update Semantics: Explains when to add items, subtract items via set operations, or modify metadata on existing items without re-adding them. - Batching and Transforms: Covers %(Metadata) batching at target and task level, per-item filtering with Condition, and @(Item->'expression') transforms for path mapping. - Pitfall Diagnosis: Identifies cross-product batching (O(N×M) executions), generated files polluting the source tree, and missing FileWrites registration that breaks dotnet clean. - Use Case: A developer sees CS2002 duplicate file warnings after adding generated .cs files. The Skill explains that SDK globbing already includes the files and shows how to write generated output to $(IntermediateOutputPath) and register it in @(FileWrites). ## Quick Start Review my .csproj file and fix the duplicate Compile item warnings and the target that runs once per configuration instead of once total.