lint-dotnet

Run .NET architecture linter to check for MSBuild/CPM violations

242 stars

Best use case

lint-dotnet is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Run .NET architecture linter to check for MSBuild/CPM violations

Run .NET architecture linter to check for MSBuild/CPM violations

Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.

Practical example

Example input

Use the "lint-dotnet" skill to help with this workflow task. Context: Run .NET architecture linter to check for MSBuild/CPM violations

Example output

A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.

When to use this skill

  • Use this skill when you want a reusable workflow rather than writing the same prompt again and again.

When not to use this skill

  • Do not use this when you only need a one-off answer and do not need a reusable workflow.
  • Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/lint-dotnet/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/ancplua/lint-dotnet/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/lint-dotnet/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How lint-dotnet Compares

Feature / Agentlint-dotnetStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Run .NET architecture linter to check for MSBuild/CPM violations

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# /lint-dotnet

Run the .NET architecture linter on demand to check for violations.

## Execution

```bash
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"

Related Skills

lint-fixer

242
from aiskillstore/marketplace

Use this skill to run npm run lint and fix linting issues. Triggers on fixing lint errors after code changes or validating code against project style guidelines.

microsoft-azure-webjobs-extensions-authentication-events-dotnet

242
from aiskillstore/marketplace

Microsoft Entra Authentication Events SDK for .NET. Azure Functions triggers for custom authentication extensions. Use for token enrichment, custom claims, attribute collection, and OTP customization in Entra ID. Triggers: "Authentication Events", "WebJobsAuthenticationEventsTrigger", "OnTokenIssuanceStart", "OnAttributeCollectionStart", "custom claims", "token enrichment", "Entra custom extension", "authentication extension".

m365-agents-dotnet

242
from aiskillstore/marketplace

Microsoft 365 Agents SDK for .NET. Build multichannel agents for Teams/M365/Copilot Studio with ASP.NET Core hosting, AgentApplication routing, and MSAL-based auth. Triggers: "Microsoft 365 Agents SDK", "Microsoft.Agents", "AddAgentApplicationOptions", "AgentApplication", "AddAgentAspNetAuthentication", "Copilot Studio client", "IAgentHttpAdapter".

lint-and-validate

242
from aiskillstore/marketplace

Automatic quality control, linting, and static analysis procedures. Use after every code modification to ensure syntax correctness and project standards. Triggers onKeywords: lint, format, check, validate, types, static analysis.

dotnet-backend

242
from aiskillstore/marketplace

Build ASP.NET Core 8+ backend services with EF Core, auth, background jobs, and production API patterns.

dotnet-backend-patterns

242
from aiskillstore/marketplace

Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.

dotnet-architect

242
from aiskillstore/marketplace

Expert .NET backend architect specializing in C#, ASP.NET Core, Entity Framework, Dapper, and enterprise application patterns. Masters async/await, dependency injection, caching strategies, and performance optimization. Use PROACTIVELY for .NET API development, code review, or architecture decisions.

azure-servicebus-dotnet

242
from aiskillstore/marketplace

Azure Service Bus SDK for .NET. Enterprise messaging with queues, topics, subscriptions, and sessions. Use for reliable message delivery, pub/sub patterns, dead letter handling, and background processing. Triggers: "Service Bus", "ServiceBusClient", "ServiceBusSender", "ServiceBusReceiver", "ServiceBusProcessor", "message queue", "pub/sub .NET", "dead letter queue".

azure-security-keyvault-keys-dotnet

242
from aiskillstore/marketplace

Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification. Triggers: "Key Vault keys", "KeyClient", "CryptographyClient", "RSA key", "EC key", "encrypt decrypt .NET", "key rotation", "HSM".

azure-search-documents-dotnet

242
from aiskillstore/marketplace

Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search. Covers SearchClient (queries, document CRUD), SearchIndexClient (index management), and SearchIndexerClient (indexers, skillsets). Triggers: "Azure Search .NET", "SearchClient", "SearchIndexClient", "vector search C#", "semantic search .NET", "hybrid search", "Azure.Search.Documents".

azure-resource-manager-sql-dotnet

242
from aiskillstore/marketplace

Azure Resource Manager SDK for Azure SQL in .NET. Use for MANAGEMENT PLANE operations: creating/managing SQL servers, databases, elastic pools, firewall rules, and failover groups via Azure Resource Manager. NOT for data plane operations (executing queries) - use Microsoft.Data.SqlClient for that. Triggers: "SQL server", "create SQL database", "manage SQL resources", "ARM SQL", "SqlServerResource", "provision Azure SQL", "elastic pool", "firewall rule".

azure-resource-manager-redis-dotnet

242
from aiskillstore/marketplace

Azure Resource Manager SDK for Redis in .NET. Use for MANAGEMENT PLANE operations: creating/managing Azure Cache for Redis instances, firewall rules, access keys, patch schedules, linked servers (geo-replication), and private endpoints via Azure Resource Manager. NOT for data plane operations (get/set keys, pub/sub) - use StackExchange.Redis for that. Triggers: "Redis cache", "create Redis", "manage Redis", "ARM Redis", "RedisResource", "provision Redis", "Azure Cache for Redis".