review-code
Perform comprehensive csharp/dotnet code reviews focusing on clean code, security, testing, performance, and documentation
Best use case
review-code is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Perform comprehensive csharp/dotnet code reviews focusing on clean code, security, testing, performance, and documentation
Teams using review-code should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/review-code/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How review-code Compares
| Feature / Agent | review-code | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Perform comprehensive csharp/dotnet code reviews focusing on clean code, security, testing, performance, and documentation
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.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
SKILL.md Source
# Code Review - C# and .NET
## Overview
This skill provides comprehensive code review guidelines for GitHub Copilot focused on C# and .NET development. It follows industry best practices and provides a structured approach to evaluating code quality, security, testing, performance, and architecture.
**What This Skill Does**:
- Performs systematic code reviews using priority-based checklists
- Identifies critical security vulnerabilities and correctness issues
- Evaluates test coverage and quality
- Checks for performance bottlenecks and anti-patterns
- Validates documentation and code clarity
- Ensures compliance with project `.editorconfig` standards
**When to Apply**: Use this skill when reviewing pull requests, conducting code audits, or validating code quality before merge. This skill is **on-demand** (not automatic) - invoke it explicitly when performing code reviews.
## Review Priorities
When performing a code review, prioritize issues in the following order:
### 🔴 CRITICAL (Block merge)
Issues that **must** be fixed before merging. These represent serious risks to security, correctness, or system stability.
- **Security Vulnerabilities**:
- Exposed secrets (API keys, passwords, connection strings hardcoded in code)
- Authentication/authorization bypasses or weaknesses
- Injection vulnerabilities (SQL injection, command injection)
- Insecure cryptography or weak random number generation
- Missing input validation on external data
- **Correctness Issues**:
- Logic errors that cause incorrect behavior
- Data corruption risks (improper transaction handling, race conditions)
- Null reference exceptions (missing null checks on nullable types)
- Off-by-one errors, incorrect loop bounds
- Type conversion errors that lose data
- **Breaking Changes**:
- Public API contract changes without versioning
- Breaking interface modifications without migration path
- Removal of public members still in use
- **Data Loss Risks**:
- Operations that can permanently delete data without confirmation
- Missing database transactions for multi-step operations
- Improper error handling that could corrupt state
- **Resource Management**:
- Undisposed `IDisposable` objects (DbContext, streams, HttpClient)
- Memory leaks in long-running processes (event handler leaks, static references)
- Connection pool exhaustion (improper connection management)
- **.editorconfig Violations (ERROR level)**:
- File-scoped namespace violations (`csharp_style_namespace_declarations = file_scoped:error`)
- `var` usage violations (`csharp_style_var_*:error`)
- Using directive placement violations (`csharp_using_directive_placement = inside_namespace:error`)
### 🟡 IMPORTANT (Requires discussion)
Issues that **should** be addressed but may not block merge if there's a valid reason to defer.
- **Code Quality**:
- Severe SOLID principle violations (God classes, tight coupling)
- Excessive code duplication (copy-paste code in multiple locations)
- Overly complex methods (cyclomatic complexity > 10, nesting > 3 levels)
- Anemic domain models (classes with only properties, no behavior)
- **Test Coverage**:
- Missing tests for critical business logic paths
- No tests for new functionality being added
- Tests that don't actually verify behavior (assertion-free tests)
- Brittle tests with tight coupling to implementation details
- **Performance Issues**:
- Obvious bottlenecks (N+1 queries, synchronous I/O in loops)
- Inefficient algorithms (O(n²) when O(n) is possible)
- Boxing/unboxing in hot paths
- Excessive allocations (string concatenation in loops)
- **Architecture Violations**:
- Cross-layer dependencies (breaking Clean Architecture boundaries)
- Circular dependencies between components
- Improper separation of concerns
- **Async/Await Issues**:
- Blocking on async code (`.Result`, `.Wait()`) - can cause deadlocks
- Missing async propagation (sync wrapper around async code)
- Async void methods (except event handlers)
- Missing `CancellationToken` parameters in async methods
### 🟢 SUGGESTION (Non-blocking improvements)
Improvements that enhance code quality but don't require immediate action.
- **Readability**:
- Poor naming (unclear variable/method names)
- Complex expressions that could be simplified
- Missing intermediate variables for clarity
- Long parameter lists (> 4 parameters)
- **Optimization Opportunities**:
- Places where `Span<T>` could improve performance
- Opportunities for `ValueTask<T>` over `Task<T>`
- Collection expressions (C# 12+) for cleaner syntax
- `ReadOnlySpan<T>` for string operations
- **Best Practices**:
- Minor deviations from C# conventions
- Opportunities for readonly fields
- Missing const for compile-time constants
- Inconsistent code style (handled by formatters)
- **Documentation**:
- Missing XML documentation comments for public APIs
- Inadequate `<summary>` descriptions
- Missing `<param>` or `<returns>` tags
- No examples for complex APIs
- **Modern C# Features**:
- Opportunities to use pattern matching
- Record types for immutable data
- File-scoped namespaces (if not already enforced)
- Collection expressions
- Primary constructors
## General Review Principles
Follow these principles when conducting code reviews:
### 1. Be Specific
- **Reference exact locations**: File names, line numbers, method names
- **Quote the code**: Include the problematic code snippet in your comment
- **Avoid vague statements**: Instead of "this could be better", say "this method has cyclomatic complexity of 15, consider extracting the validation logic into separate methods"
### 2. Provide Context
- **Explain WHY**: Don't just say what's wrong, explain the impact
- **Describe consequences**: "This can cause a deadlock in ASP.NET contexts"
- **Link to resources**: Reference documentation, ADRs, or best practice articles
- **Consider the bigger picture**: How does this fit into the overall architecture?
### 3. Suggest Solutions
- **Show corrected code**: Provide a "CORRECT" example alongside the "WRONG" code
- **Offer alternatives**: "Consider using Pattern A or Pattern B"
- **Explain trade-offs**: "This approach is faster but uses more memory"
- **Make it actionable**: Give clear steps to fix the issue
### 4. Be Constructive
- **Focus on the code, not the person**: "This method could be simplified" not "You wrote this poorly"
- **Assume positive intent**: The author likely has reasons for their approach
- **Ask questions**: "Have you considered...?" rather than "You should..."
- **Acknowledge constraints**: Time, knowledge, or requirements may limit options
### 5. Recognize Good Practices
- **Highlight excellent code**: "Great use of the specification pattern here!"
- **Acknowledge improvements**: "This is much cleaner than the previous version"
- **Learn from others**: Good code reviews benefit both reviewer and author
- **Build team knowledge**: Share interesting patterns you discover
### 6. Be Pragmatic
- **Not everything needs immediate fixing**: Distinguish between must-fix and nice-to-have
- **Consider the PR scope**: Don't demand unrelated refactoring
- **Balance perfection and progress**: "This could be optimized further, but it's acceptable for now"
- **Technical debt is okay**: Sometimes it's appropriate to defer improvements
### 7. Group Related Comments
- **Avoid scattered feedback**: Group all comments about the same issue
- **Provide a summary**: "There are 5 places with similar error handling issues"
- **Use checklists**: Link to relevant checklists for systematic issues
- **Offer to pair program**: For complex issues, offer to work together
## Quick Reference to Checklists
Use these checklists for systematic code review:
### Code Quality Checklist
**File**: `checklists/01-code-quality.md`
**Focus Areas**:
- ✅ Naming conventions (PascalCase, camelCase, interfaces with `I` prefix)
- ✅ **File-scoped namespaces** (🔴 MANDATORY - enforced by `.editorconfig`)
- ✅ **`var` usage** (🔴 MANDATORY - enforced by `.editorconfig`)
- ✅ **Using directive placement** (🔴 MANDATORY - inside namespace)
- ✅ Method size and complexity (< 20 lines, < 3 nesting levels)
- ✅ DRY principle (no code duplication)
- ✅ Magic numbers/strings (extract to constants)
- ✅ Modern C# features (pattern matching, records, collection expressions)
**When to Use**: Every code review should check these fundamentals.
### Security Checklist
**File**: `checklists/02-security.md`
**Focus Areas**:
- ✅ No hardcoded secrets (🔴 CRITICAL - connection strings, API keys, passwords)
- ✅ Configuration usage (IConfiguration, IOptions<T>)
- ✅ Input validation (validate all external inputs)
- ✅ SQL injection prevention (🔴 CRITICAL - parameterized queries only)
- ✅ Cryptography best practices (use BCL classes, no custom crypto)
- ✅ Dependency vulnerabilities (keep packages updated)
**When to Use**: Always check when code handles sensitive data, external inputs, or database operations.
### Testing Checklist
**File**: `checklists/03-testing.md`
**Focus Areas**:
- ✅ Test coverage (> 80% for critical paths)
- ✅ Test naming (`Should_ExpectedBehavior_When_Condition`)
- ✅ AAA pattern (Arrange-Act-Assert with clear separation)
- ✅ Test independence (no shared state)
- ✅ Edge cases (null, empty, boundary conditions)
- ✅ Mocking strategies (NSubstitute for dependencies)
- ✅ xUnit patterns (Fact vs Theory, Shouldly assertions)
**When to Use**: When reviewing test code or checking if new features have adequate tests.
### Performance Checklist
**File**: `checklists/04-performance.md`
**Focus Areas**:
- ✅ Async/await usage (for I/O-bound operations)
- ✅ No blocking calls (🔴 CRITICAL - avoid `.Result`, `.Wait()`)
- ✅ CancellationToken propagation (include in async methods)
- ✅ Resource disposal (🔴 CRITICAL - using statements for IDisposable)
- ✅ String operations (StringBuilder in loops)
- ✅ Collection choices (List, Dictionary, HashSet)
- ✅ Span<T> opportunities (high-performance scenarios)
**When to Use**: When reviewing performance-critical code, async code, or long-running operations.
### Documentation Checklist
**File**: `checklists/05-documentation.md`
**Focus Areas**:
- ✅ XML documentation on public APIs (🔴 MANDATORY - `<summary>`, `<param>`, `<returns>`)
- ✅ Exception documentation (`<exception>` tags) only for public methods and methods that throw and do not return a Result<T> or Result
- ✅ Complex logic comments (explain WHY, not WHAT)
- ✅ README updates (document new features)
- ✅ API documentation (OpenAPI/Swagger summaries)
**When to Use**: When reviewing public APIs or complex domain logic.
## .editorconfig Integration
This project enforces code style through `.editorconfig` rules. The following rules are **MANDATORY** (error level) and violations are 🔴 CRITICAL:
### File-Scoped Namespaces (🔴 CRITICAL)
**Rule**: `csharp_style_namespace_declarations = file_scoped:error`
**What it means**: All C# files **must** use file-scoped namespace syntax (not block-scoped).
**Example**:
```csharp
// 🔴 WRONG: Block-scoped namespace (CRITICAL VIOLATION)
namespace MyApp.Services {
public class PaymentService { }
}
// ✅ CORRECT: File-scoped namespace (MANDATORY)
namespace MyApp.Services;
public class PaymentService { }
```
**Why it matters**: File-scoped namespaces reduce indentation, improve readability, and are the modern C# convention (C# 10+).
**How to fix**: Convert all block-scoped namespaces to file-scoped. Run `dotnet format` to auto-fix.
### Var Usage (🔴 CRITICAL)
**Rules**:
- `csharp_style_var_elsewhere = true:error`
- `csharp_style_var_for_built_in_types = true:error`
- `csharp_style_var_when_type_is_apparent = true:error`
**What it means**: **Always** use `var` for local variables (unless there's a specific reason not to).
**Example**:
```csharp
// 🔴 WRONG: Explicit type when obvious (CRITICAL VIOLATION)
Customer customer = new Customer();
int count = 42;
List<string> names = new List<string>();
// ✅ CORRECT: Use var (MANDATORY)
var customer = new Customer();
var count = 42;
var names = new List<string>();
```
**Why it matters**: `var` reduces verbosity, improves maintainability (when types change), and is the modern C# convention.
**How to fix**: Replace explicit types with `var`. Run `dotnet format` to auto-fix.
### Using Directive Placement (🔴 CRITICAL)
**Rule**: `csharp_using_directive_placement = inside_namespace:error`
**What it means**: `using` directives **must** be placed inside the namespace (after the namespace declaration).
**Example**:
```csharp
// 🔴 WRONG: Using directives outside namespace (CRITICAL VIOLATION)
using System;
using System.Collections.Generic;
namespace MyApp.Services;
public class PaymentService { }
// ✅ CORRECT: Using directives inside namespace (MANDATORY)
namespace MyApp.Services;
using System;
using System.Collections.Generic;
public class PaymentService { }
```
**Why it matters**: Placement inside namespace prevents naming conflicts and follows project conventions.
**How to fix**: Move `using` directives after the namespace declaration. Run `dotnet format` to auto-fix.
### How to Verify Compliance
**Run formatter**:
```bash
dotnet format
```
This will automatically fix most `.editorconfig` violations including the three CRITICAL rules above.
**Check for violations** (dry run):
```bash
dotnet format --verify-no-changes
```
This reports violations without modifying files. Use in CI/CD pipelines to block PRs with violations.
### Common .editorconfig Violations
See `examples/editorconfig-compliance.md` for detailed examples of:
- File-scoped namespace violations and fixes
- Var usage violations and fixes
- Using directive placement violations and fixes
- Other common style violations
## Quick Reference to Examples
Use these example files for code patterns:
### Clean Code Examples
**File**: `examples/clean-code-examples.md`
**Contains**:
- File-scoped namespace patterns (WRONG vs CORRECT)
- `var` usage patterns
- Expression-bodied members
- Pattern matching
- Guard clauses
- Private setters (encapsulation)
- Null-conditional operators
- String interpolation
- Collection expressions
**When to Use**: Reference when reviewing code style, naming, or C# idioms.
### Security Examples
**File**: `examples/security-examples.md`
**Contains**:
- Hardcoded secrets (WRONG vs CORRECT)
- SQL injection prevention
- Configuration patterns (IConfiguration, IOptions<T>)
- Input validation (FluentValidation)
- API key management
**When to Use**: Reference when reviewing security-sensitive code.
### Testing Examples
**File**: `examples/testing-examples.md`
**Contains**:
- Test naming patterns (WRONG vs CORRECT)
- AAA pattern examples
- Fact vs Theory usage
- Shouldly assertions
- NSubstitute mocking patterns
**When to Use**: Reference when reviewing test code or suggesting test improvements.
### .editorconfig Compliance Examples
**File**: `examples/editorconfig-compliance.md`
**Contains**:
- Detailed .editorconfig rule explanations
- File-scoped namespace violations and fixes
- Var usage violations and fixes
- Using directive placement violations and fixes
- How to verify compliance with `dotnet format`
**When to Use**: Reference when identifying or fixing .editorconfig violations.
## Review Templates
Use these templates for consistent, actionable review comments.
### Comment Template
**File**: `templates/review-comment-template.md`
**Provides**:
- 🔴 CRITICAL comment format (Issue, Why This Matters, Suggested Fix, Reference)
- 🟡 IMPORTANT comment format
- 🟢 SUGGESTION comment format
- Examples for each priority level
**When to Use**: When writing review comments to ensure they're specific, contextual, and actionable.
### Summary Template
**File**: `templates/review-summary-template.md`
**Provides**:
- Issues Found (count by priority: 🔴🟡🟢)
- Top 3 Priorities
- Overall Assessment
- Next Steps checklist
**When to Use**: At the end of a review to summarize findings and provide clear next steps.
## Example Workflow
Here's a step-by-step workflow for conducting a comprehensive code review:
### Step 1: Start with Critical Issues (🔴)
**Focus**: Security, correctness, resource management, .editorconfig ERROR violations
**Process**:
1. Scan for hardcoded secrets (search for "password", "apikey", "connectionstring")
2. Check for SQL injection risks (look for string concatenation in queries)
3. Verify resource disposal (IDisposable objects have `using` statements)
4. Check for blocking async calls (search for `.Result`, `.Wait()`)
5. Verify .editorconfig compliance (file-scoped namespaces, var usage, using placement)
**Action**: Flag any CRITICAL issues immediately. These **must** be fixed before merge.
### Step 2: Review Code Quality (🟡)
**Focus**: SOLID principles, test coverage, architecture, async patterns
**Process**:
1. Check method complexity (are methods < 20 lines, < 3 nesting levels?)
2. Look for code duplication (is the same logic repeated in multiple places?)
3. Verify test coverage (are new features tested? Are critical paths covered?)
4. Check async/await usage (is CancellationToken propagated? Is async used for I/O?)
5. Review architecture boundaries (are layer dependencies correct?)
**Action**: Discuss IMPORTANT issues with the author. Decide if they block merge or can be deferred.
### Step 3: Suggest Improvements (🟢)
**Focus**: Readability, modern C# features, documentation, optimizations
**Process**:
1. Check naming (are variables/methods clearly named?)
2. Look for modern C# opportunities (pattern matching, records, collection expressions)
3. Verify documentation (do public APIs have XML comments?)
4. Identify optimization opportunities (Span<T>, ValueTask<T>)
5. Check for readability improvements (complex expressions that could be simplified)
**Action**: Provide SUGGESTIONS for improvements. Mark as non-blocking.
### Step 4: Use Checklists
Reference the appropriate checklists based on the code being reviewed:
- **All reviews**: Code Quality Checklist
- **Sensitive data/external inputs**: Security Checklist
- **Test code**: Testing Checklist
- **Async code/performance-critical**: Performance Checklist
- **Public APIs**: Documentation Checklist
### Step 5: Provide Examples
When suggesting changes, reference the example files:
- **Style issues**: Reference `examples/clean-code-examples.md`
- **Security issues**: Reference `examples/security-examples.md`
- **Test issues**: Reference `examples/testing-examples.md`
- **.editorconfig violations**: Reference `examples/editorconfig-compliance.md`
### Step 6: Write Comments Using Templates
Use the comment template (`templates/review-comment-template.md`) to structure feedback:
- Start with priority emoji (🔴🟡🟢)
- Include: Issue, Why This Matters, Suggested Fix, Reference
- Provide corrected code examples
- Link to documentation or examples
### Step 7: Summarize Findings
Use the summary template (`templates/review-summary-template.md`) to wrap up:
- List issues found by priority
- Highlight top 3 priorities
- Provide overall assessment
- List actionable next steps
### Example Review Comment
```markdown
🔴 CRITICAL - Security: Hardcoded Database Password
**Issue**: Line 42 contains a hardcoded database password in the connection string.
**Why This Matters**: Hardcoded secrets in source code are a critical security vulnerability. They are visible in version control, can be accidentally exposed, and cannot be rotated without code changes.
**Suggested Fix**:
```csharp
// Current (WRONG):
var connectionString = "Server=myserver;Database=mydb;User Id=admin;Password=secret123;";
// Corrected (CORRECT):
var connectionString = this.configuration.GetConnectionString("MyDatabase");
```
Then store the actual connection string in:
- `appsettings.json` (for local dev, not committed)
- Azure Key Vault (for production)
- Environment variables (for containers)
**Reference**: See `examples/security-examples.md` for more secure configuration patterns.
```
## Integration with Other Skills
This skill works well with other repository skills:
### domain-add-aggregate
When reviewing new domain aggregates, use both skills:
- **review-code**: Check code quality, security, testing
- **domain-add-aggregate**: Verify DDD patterns, layer boundaries, aggregate structure
### review-architecture
For architectural reviews, use both skills:
- **review-code**: Focus on implementation details, security, performance
- **review-architecture**: Focus on DDD patterns, Clean Architecture boundaries, CQRS
### adr-writer
When identifying architectural issues, reference ADRs or create new ones:
- Use **review-code** to identify patterns that should be documented
- Use **adr-writer** to document architectural decisions
## Core Rules
1. **ALWAYS start with CRITICAL issues** (🔴): Security and correctness come first
2. **ALWAYS check .editorconfig compliance**: File-scoped namespaces, var usage, using placement are MANDATORY
3. **ALWAYS provide context**: Explain WHY something is an issue, not just WHAT
4. **ALWAYS suggest solutions**: Show corrected code, don't just point out problems
5. **ALWAYS be specific**: Reference exact locations, methods, line numbers
6. **ALWAYS use priority indicators**: 🔴🟡🟢 to clearly communicate severity
7. **ALWAYS be constructive**: Focus on improving code, not criticizing the author
8. **NEVER demand unrelated refactoring**: Keep feedback scoped to the PR
9. **NEVER block on style issues**: Use formatters (`dotnet format`) for style consistency
10. **NEVER forget to recognize good code**: Acknowledge excellent practices when you see them
## When to Use This Skill
**Use this skill when**:
- Reviewing pull requests before merge
- Conducting code quality audits
- Onboarding new team members (teach review standards)
- Preparing for production releases (final quality check)
- Identifying technical debt (catalog issues for future work)
**DO NOT use this skill when**:
- Code is generated (migrations, scaffolding)
- Code is third-party/vendored (not under your control)
- Review is purely architectural (use `review-architecture` instead)
- Quick bug fix in emergency (defer review to post-fix PR)
## Success Criteria
A successful code review includes:
✅ **All CRITICAL issues identified and fixed** (🔴)
✅ **IMPORTANT issues discussed with author** (🟡)
✅ **Suggestions provided for future improvements** (🟢)
✅ **.editorconfig compliance verified** (file-scoped namespaces, var usage, using placement)
✅ **Security vulnerabilities caught** (hardcoded secrets, SQL injection, input validation)
✅ **Test coverage adequate** (critical paths tested, new features have tests)
✅ **Performance bottlenecks identified** (no blocking async, proper resource disposal)
✅ **Documentation complete** (public APIs have XML comments)
✅ **Feedback is specific and actionable** (includes corrected code examples)
✅ **Review summary provided** (using template, with prioritized next steps)
## Additional Resources
- **Checklists**: See `checklists/` for systematic review guides
- **Examples**: See `examples/` for WRONG vs CORRECT code patterns
- **Templates**: See `templates/` for structured comment and summary formats
- **Project .editorconfig**: See root `.editorconfig` for complete style rules
- **C# Coding Conventions**: [Microsoft Docs](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)
- **.NET Best Practices**: [Microsoft Docs](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/)Related Skills
xunit
Writes unit tests with xUnit framework across 30 test projects. Use when: writing new tests, adding test coverage, creating integration tests, setting up test fixtures, or debugging test failures.
visual-explainer
Generate beautiful, self-contained HTML pages that visually explain systems, code changes, plans, and data. Use when the user asks for a diagram, architecture overview, diff review, plan review, project recap, comparison table, or any visual explanation of technical concepts. Also use proactively when you are about to render a complex ASCII table (4+ rows or 3+ columns) — present it as a styled HTML page instead.
skill-creator
Guide for creating high-quality Agent Skills following the open standard (agentskills.io). Use this when asked to create or update a skill, write a SKILL.md file, convert custom instructions or chatmodes into portable skills, or design specialized AI agent capabilities.
requirements-engineering
Transform vague feature ideas into lightweight, testable requirements using user stories and short acceptance criteria. Use when clarifying scope, defining expected behavior, capturing edge cases, and producing decision-ready requirements with Definition of Ready checks.
playwright-skill
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /.tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
mermaid-diagrams
Comprehensive guide for creating software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams (domain modeling, object-oriented design), sequence diagrams (application flows, API interactions, code execution), flowcharts (processes, algorithms, user journeys), entity relationship diagrams (database schemas), C4 architecture diagrams (system context, containers, components), state diagrams, git graphs, pie charts, gantt charts, or any other diagram type. Triggers include requests to "diagram", "visualize", "model", "map out", "show the flow", or when explaining system architecture, database design, code structure, or user/application flows.
grill-me
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
git-commit
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entity-framework-core
Entity Framework Core with DbContext, migrations, LINQ queries, relationships, and performance optimization. Covers EF Core 8+ patterns. USE WHEN: user mentions "Entity Framework", "EF Core", "DbContext", "migrations", "LINQ", "EF relationships", "database first", "code first" DO NOT USE FOR: Prisma - use `prisma`, Drizzle - use `drizzle`, Spring Data JPA - use `spring-data-jpa`, Dapper (raw SQL)
dotnet-testing-nsubstitute-mocking
Specialized skill for creating test doubles (Mock, Stub, Spy) using NSubstitute. Use when isolating external dependencies, simulating interface behavior, and verifying method calls. Covers complete guidance on Substitute.For, Returns, Received, Throws, etc.