What problem does it solve? MSBuild properties are easy to get wrong: unconditional assignments block overrides, DefineConstants get overwritten instead of appended, unquoted conditions fail on empty values, and hardcoded paths break cross-platform builds. This Skill provides canonical patterns from the MSBuild repository to diagnose and fix these property definition issues. ## Core Features & Use Cases - Conditional Defaults: Set overridable defaults with Condition="'$(Prop)' == ''" so callers can override values from the command line or project files. - Composition and Concatenation: Append to list properties like DefineConstants and NoWarn using semicolon concatenation instead of overwriting prior values. - Path Normalization and TFM Detection: Normalize paths cross-platform, handle trailing slashes, and detect target frameworks with GetTargetFrameworkIdentifier and IsTargetFrameworkCompatible. - Use Case: A team's Directory.Build.props sets <DefineConstants>MY_FLAG</DefineConstants> unconditionally, silently dropping constants defined elsewhere. Use this Skill to rewrite it as an append pattern and add proper quoting to all conditions. ## Quick Start Review my Directory.Build.props and csproj files for property definition anti-patterns and fix any overwritten DefineConstants or missing conditional defaults.