Lint dotnet
Skill ComeOnOliver/skillshub/skills/aiskillstore/marketplace/ancplua/lint-dotnet
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill lint-dotnetAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Run .NET architecture linter to check for MSBuild/CPM violations
SKILL.md
1.4 KB, 335 tokens by cl100k_base, as published. Nobody here has run it
/lint-dotnet
Run the .NET architecture linter on demand to check for violations.
Execution
bash "${CLAUDE_PLUGIN_ROOT}/scripts/lint-dotnet.sh" .
Output Format
RULE_X|file
line_number: violation details
Rules
| Rule | Catches | Fix |
|---|---|---|
| RULE_A | Hardcoded Version="1.2.3" in Directory.Packages.props | Use $(VariableName) and define in Version.props |
| RULE_B | Version.props imported outside allowed files | Remove import. Only DPP or eng/DBP allowed. |
| RULE_C | Version.props not a symlink (in consumer repos) | Recreate symlink, never copy the file |
| RULE_G | <PackageReference Version="..."> in .csproj | Remove Version attr, use CPM |
Allowed Version.props Import Owners
| File | Purpose |
|---|---|
Directory.Packages.props | CPM-enabled projects |
eng/Directory.Build.props | CPM-disabled projects |
src/Sdk/*/Sdk.props | SDK entry points (MSBuild auto-imports these) |
src/common/*.props | Shared SDK infrastructure |
All other files importing Version.props = violation.
Clean Output
CLEAN|All rules passed
No violations found. Safe to proceed.
Variable Naming Convention
For unknown packages, generate variable name:
Some.Package.Name->SomePackageNameVersion- Remove dots and dashes, append "Version"