code-review
codewithmukesh/dotnet-claude-kit
MCP-powered multi-dimensional code review for .NET projects with blast-radius prioritization
What is code-review?
Performs structured code review combining Roslyn analysis with manual inspection, prioritizing high-risk areas (data access, security, concurrency, integration) before style. Use when reviewing pull requests, refactors, or assessing code quality in .NET projects.
- Scores blast radius of changes to determine review depth and effort allocation
- Detects antipatterns and diagnostics via Roslyn MCP analysis before manual review
- Analyzes reference counts and dependency graphs to identify ripple effects
- Verifies architecture compliance and layer boundaries
- Prioritizes findings by severity: Critical (must fix), Warnings (tech debt), Suggestions (nice-to-have)
- Produces actionable findings with what's wrong, why it matters, and how to fix it
How to install code-review
npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill code-review- Access to a .NET project with git history
- Roslyn MCP tools available in the environment
How to use code-review
- 1.Identify changed files using git diff or specify files/modules to review
- 2.Run MCP analysis (detect_antipatterns, get_diagnostics) on affected projects
- 3.Score blast radius of each change (Critical/High/Medium/Low) to set review depth
- 4.Verify architecture compliance using get_project_graph and detect_circular_dependencies
- 5.Manually review highest-risk areas in priority order: data access, security, concurrency, integration, correctness, tests
- 6.Produce findings report with severity categories, actionable fixes, and what's good about the code
Use cases
- Review pull requests before merging to catch correctness, security, and performance issues
- Assess blast radius of major refactors to verify no regressions or design drift
- Decide where to focus review effort on large changes across multiple files
- Onboard to unfamiliar codebases with a quality assessment and risk analysis
- Verify architecture compliance after changes to shared kernel or public APIs
- Backend engineers reviewing .NET code changes
- Tech leads assessing pull request risk before approval
- Developers onboarding to unfamiliar .NET projects
- Teams practicing code review with structured prioritization
code-review FAQ
Changes are scored by risk impact, not line count. Middleware, auth, DB migrations, and shared kernel changes get thorough review (Critical). Public API changes and new modules get focused review (High). Bug fixes and new features following patterns get standard review (Medium). Docs and renames get a glance (Low).
Critical findings must be fixed before merge (security, correctness, concurrency bugs). Warnings should be fixed to avoid tech debt (N+1 queries, missing tokens). Suggestions are nice-to-have improvements (sealing classes, naming).
Blast radius scoring focuses effort on the 20% of code causing 80% of incidents. Tools identify antipatterns and diagnostics automatically; manual review targets only high-risk areas, not every line.
No. This skill focuses on logic, security, performance, and architecture—areas tools can't catch. Style and formatting are left to linters and formatters.
detect_antipatterns (async void, DateTime.Now, broad catch), get_diagnostics (warnings, nullability), find_references (consumer count), get_dependency_graph (ripple effects), get_project_graph (architecture), and detect_circular_dependencies.
Full instructions (SKILL.md)
Source of truth, from codewithmukesh/dotnet-claude-kit.
name: code-review description: > MCP-powered multi-dimensional code review for .NET projects. Uses Roslyn analysis tools for antipatterns, diagnostics, references, and dependency graphs combined with structured manual review. Prioritizes effort with blast-radius scoring — data access, security, concurrency, and integration boundaries before style — and produces severity-categorized findings with actionable fixes. Use when: "review", "code review", "PR review", "review this", "review my code", "check code quality", "review changes", "what should I review", "review priorities", "blast radius", "critical path".
/code-review — MCP-Powered Code Review
What
Performs a multi-dimensional code review combining Roslyn MCP analysis with structured manual review. Effort follows the 80/20 rule: the 20% of code that causes 80% of incidents (data access, security, concurrency, integration boundaries) gets thorough review; style and formatting are left to tooling.
Review dimensions: Correctness (logic, edge cases, null handling, async pitfalls), Security (auth gaps, injection, secrets, CORS), Performance (N+1, allocations, missing cancellation), Architecture compliance (layer violations, boundary breaches), Test coverage (behavior tests for changed types).
When
- "Review this", "code review", "PR review", before merging a pull request
- After a major refactor to verify no regressions or design drift
- "What should I review?" — deciding where review effort goes on a large change
- Onboarding to unfamiliar code and wanting a quality assessment
How
Step 1: Scope and Score Blast Radius
Identify changed files (git diff main...HEAD, specified files, or module).
Score each change to set review depth — blast radius determines depth, not
line count. A one-line middleware change outranks a 300-line rename.
| Blast Radius | Examples | Depth |
|---|---|---|
| Critical | Middleware, auth, DB migrations, shared kernel, CI/CD | Thorough — every code path |
| High | Public API changes, message consumers, EF configuration, new module | Focused — consumers + behavior |
| Medium | New feature following existing patterns, bug fix, new endpoint | Standard — checklist pass |
| Low | Docs, formatting, renames, logging statements | Glance — build + tests pass |
Step 2: MCP Analysis (before reading any file)
detect_antipatterns(projectFilter: "affected-project") → async void, DateTime.Now, new HttpClient(), broad catch
get_diagnostics(scope: "project", path: "affected-project") → new warnings, nullability issues
Distinguish newly introduced findings from pre-existing ones — focus on new.
Step 3: Blast Radius Verification
For each modified public API:
find_references(symbolName: "ModifiedType") → count consumers; high count = high risk
get_dependency_graph(symbolName: "ModifiedMethod", depth: 2) → ripple effects
Check whether callers handle changed return types and new error cases.
Step 4: Architecture Compliance
Verify dependency direction (Domain → nothing; Infrastructure → Application →
Domain) via get_project_graph and detect_circular_dependencies. Per
architecture: VSA features don't cross-reference; Clean Architecture domain has
zero project references; Modular Monolith modules communicate only via
integration events — find_references on a module's DbContext should resolve
only inside that module.
Step 5: Manual Review — Priority Order
Review what tools can't catch, highest-risk areas first:
| Priority | Area | Check |
|---|---|---|
| 1 | Data access | N+1 (missing Include/projection), raw SQL with user input, missing CancellationToken |
| 2 | Security | Every endpoint has explicit [Authorize]/[AllowAnonymous], input validated, no secrets in code, no PII in logs |
| 3 | Concurrency | Token propagated end-to-end, no .Result/.Wait(), thread-safe shared state |
| 4 | Integration | Retry/timeout on external calls, consumer idempotency, no swallowed exceptions |
| 5 | Correctness | Business logic, edge cases (empty/null/concurrent), entities mapped to DTOs at the boundary |
| 6 | Tests | Behavior tested (not implementation); happy path + main error case covered |
| — | Style/naming | Mention only after the above; formatters and analyzers own this |
Step 6: Produce the Review
Every finding states what's wrong, why it matters, and how to fix it. Never bury a security bug under naming nits.
## Code Review: [Scope]
### Summary
[1-3 sentences: scope, risk level, recommendation]
### Critical (must fix before merge)
- **[Title]** — [file:line] [What's wrong. Why it matters. How to fix.]
### Warnings (should fix, creates tech debt)
- **[Title]** — [file:line] [...]
### Suggestions (nice to have)
- **[Title]** — [file:line] [...]
### Architecture Compliance
[PASS/WARN with boundary-violation notes]
### Test Coverage
[Which changed types have tests; specific scenarios to add]
### What's Good
- [Always include — reinforce good patterns]
Quick review (1-2 files, low blast radius): run detect_antipatterns +
get_diagnostics, read for correctness, output Summary + Issues + What's Good.
Example
User: /code-review the changes in this PR
Claude: 7 changed files across 3 projects. CreateOrder touches data access
and a public endpoint — High blast radius. Running MCP analysis...
## Code Review: Order Processing Feature
### Summary
Adds CreateOrder/GetOrder endpoints with EF Core persistence. Well-structured
VSA feature. Two issues need attention before merge.
### Critical (must fix before merge)
- **Missing CancellationToken propagation** — CreateOrder.cs:38
SaveChangesAsync() called without the token. Client disconnects keep
burning server resources. Pass `ct` from the handler parameter.
### Warnings (should fix, creates tech debt)
- **N+1 query in GetOrder** — GetOrder.cs:25
Order loaded without `.Include(o => o.Items)`; one lazy load per item
during serialization. Eager-load or use a projection.
### Suggestions (nice to have)
- **Seal the handler** — CreateOrderHandler.cs:10
Not designed for inheritance; `sealed` enables devirtualization.
### Architecture Compliance
PASS — all changes within Features/Orders/, no layer violations.
### Test Coverage
Happy path covered. Add tests for validation failure and not-found.
### What's Good
- Clean command/query separation; FluentValidation covers edge cases
- Response DTOs are records, no entity leaks
Related
/de-sloppify— Cleanup pass for the style/formatting issues review skips/verify— Automated verification pipeline (complements manual review)/health-check— Broader project health assessment beyond a single PR
Related skills
More from codewithmukesh/dotnet-claude-kit and the wider catalog.

configuration
Options pattern, secrets management, and environment-based configuration for .NET 10 applications.

container-publish
Containerize .NET 10 apps without writing a Dockerfile using SDK-native publishing.

convention-learner
Detect and enforce project-specific coding conventions by analyzing existing codebase patterns.

ddd
Domain-Driven Design tactical patterns for .NET: aggregates, value objects, domain events, and repositories.

de-sloppify
Systematic 7-step .NET code cleanup pipeline with verification between each phase.

dependency-injection
Dependency injection patterns for .NET 10: service lifetimes, keyed services, decorators, and common pitfalls.