Not in the top 1,000 by GitHub stars
codewithmukesh/dotnet-claude-kit
Make Claude Code a .NET 10 Expert
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/api-versioning/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/arch-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/architecture-advisor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/aspire/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/authentication/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/build-fix/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/caching/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/checkpoint/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/ci-cd/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/clean-architecture/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/code-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/configuration/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/container-publish/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/convention-learner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/ddd/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/de-sloppify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/dependency-injection/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/docker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/dotnet-init/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/ef-core/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/error-handling/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/health-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/httpclient-factory/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/instinct-system/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/logging/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/messaging/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/migrate/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/minimal-api/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/modern-csharp/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/openapi/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/opentelemetry/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/outdated/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/project-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/project-structure/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/resilience/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/scaffold/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/scalar/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/security-scan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/serilog/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/spec/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/tdd/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/testing/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/verify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/vertical-slice/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/workflow-mastery/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 23300897f4d1
No earlier version was observed for comparison.
skills/wrap-up/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
23300897f4d1 → 23300897f4d1
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 23300897f4d1
No earlier version was observed for comparison.
Verified commit 23300897f4d1a276bc475e373ecfe886e43dd7c5
git clone --filter=blob:none --no-checkout https://github.com/codewithmukesh/dotnet-claude-kit.git .hotskills/codewithmukesh-dotnet-claude-kit && git -C .hotskills/codewithmukesh-dotnet-claude-kit checkout --detach 23300897f4d1a276bc475e373ecfe886e43dd7c5
# Copy each selected skill directory from .hotskills/codewithmukesh-dotnet-claude-kit into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/codewithmukesh/dotnet-claude-kit.git .hotskills/codewithmukesh-dotnet-claude-kit && git -C .hotskills/codewithmukesh-dotnet-claude-kit checkout --detach 23300897f4d1a276bc475e373ecfe886e43dd7c5
# Copy each selected skill directory from .hotskills/codewithmukesh-dotnet-claude-kit into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/codewithmukesh/dotnet-claude-kit.git .hotskills/codewithmukesh-dotnet-claude-kit && git -C .hotskills/codewithmukesh-dotnet-claude-kit checkout --detach 23300897f4d1a276bc475e373ecfe886e43dd7c5
# Copy each selected skill directory from .hotskills/codewithmukesh-dotnet-claude-kit into .cursor/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/codewithmukesh/dotnet-claude-kit.git .hotskills/codewithmukesh-dotnet-claude-kit && git -C .hotskills/codewithmukesh-dotnet-claude-kit checkout --detach 23300897f4d1a276bc475e373ecfe886e43dd7c5
# Copy each selected skill directory from .hotskills/codewithmukesh-dotnet-claude-kit into .opencode/skills/<skill-name>/Heat
7.0- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- api-versioning
skills/api-versioning - arch-check
skills/arch-check - architecture-advisor
skills/architecture-advisor - aspire
skills/aspire - authentication
skills/authentication - build-fix
skills/build-fix - caching
skills/caching - checkpoint
skills/checkpoint - ci-cd
skills/ci-cd - clean-architecture
skills/clean-architecture - code-review
skills/code-review - configuration
skills/configuration - container-publish
skills/container-publish - convention-learner
skills/convention-learner - ddd
skills/ddd - de-sloppify
skills/de-sloppify - dependency-injection
skills/dependency-injection - docker
skills/docker - dotnet-init
skills/dotnet-init - ef-core
skills/ef-core - error-handling
skills/error-handling - health-check
skills/health-check - httpclient-factory
skills/httpclient-factory - instinct-system
skills/instinct-system - logging
skills/logging - messaging
skills/messaging - migrate
skills/migrate - minimal-api
skills/minimal-api - modern-csharp
skills/modern-csharp - openapi
skills/openapi - opentelemetry
skills/opentelemetry - outdated
skills/outdated - plan
skills/plan - project-setup
skills/project-setup - project-structure
skills/project-structure - resilience
skills/resilience - scaffold
skills/scaffold - scalar
skills/scalar - security-scan
skills/security-scan - serilog
skills/serilog - spec
skills/spec - tdd
skills/tdd - testing
skills/testing - verify
skills/verify - vertical-slice
skills/vertical-slice - workflow-mastery
skills/workflow-mastery - wrap-up
skills/wrap-up
How it works
api-versioning
When your agent uses it
API versioning strategies for ASP.NET Core. Covers Asp.Versioning library, URL segment, header, and query string strategies, version deprecation, and OpenAPI integration. Load this skill when adding versioning to an API, evolving an API with breaking changes, or when the user mentions "API version", "versioning", "v1/v2", "Asp.Versioning", "deprecation", "breaking change", or "backward compatibility".
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
1,150 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
../../.claude-plugin/marketplace.jsonasset653 bytes../../.claude-plugin/plugin.jsonasset762 bytes../../hooks/hooks.jsonasset640 bytes../../hooks/hooks.jsonasset640 bytes../../hooks/hooks.jsonasset640 bytes../../hooks/hooks.jsonasset640 bytesSKILL.mdcore4,706 bytes
Read SKILL.md
# API Versioning
## Core Principles
1. **Version from day one** — Adding versioning later is painful. Start with a version in the URL even if you only have v1.
2. **URL segment versioning is the default** — `/api/v1/orders` is the most discoverable and cache-friendly strategy.
3. **Never break existing versions** — Add a new version for breaking changes. Deprecate the old version with a timeline.
4. **Version the API, not individual endpoints** — All endpoints in a version group share the same version number.
## Patterns
### Setup with Asp.Versioning
```csharpView the complete source on GitHubarch-check
When your agent uses it
Architecture conformance check: verifies an existing codebase against its declared architecture (VSA, Clean Architecture, DDD, Modular Monolith) — dependency direction, layer violations, module boundary leaks, and cycles — using token-cheap Roslyn MCP analysis. Invoke when: "check architecture", "architecture violations", "layer violations", "dependency direction", "module boundaries", "arch check", "is my architecture clean", "enforce architecture", "conformance check". For CHOOSING an architecture, use architecture-advisor instead.
What it loads into context
Frontmatter
127 tokensAlways available to the agent
SKILL.md
1,286 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore5,944 bytes
Read SKILL.md
# /arch-check
## What
Verifies that the code still matches the architecture it claims to have.
Architectures rot through small, individually-reasonable changes — a Domain
project that gains an EF Core reference, a module that reaches into a sibling's
internals, an endpoint defined outside the host. This workflow catches the rot
using project-graph and dependency analysis, not file-by-file reading.
Output: a violation report with severity, file:line evidence, and the concrete
fix — or a clean conformance pass.
## WhenView the complete source on GitHubarchitecture-advisor
When your agent uses it
Architecture selection advisor for .NET applications. Asks structured questions about domain complexity, team size, system lifetime, compliance, and integration needs, then recommends the best-fit architecture: Vertical Slice, Clean Architecture, DDD + Clean Architecture, or Modular Monolith. Load this skill when the user asks "which architecture", "choose architecture", "set up project", "new project", "architecture decision", "restructure", or "how should I organize". Always load BEFORE any architecture-specific skill.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
2,477 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- The Architecture Questionnaire
- Decision Matrix
- Patterns
- Evolution Paths
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore11,595 bytes
Read SKILL.md
# Architecture Advisor
## Core Principles
1. **Ask before recommending** — Never prescribe an architecture without understanding the project. Run the questionnaire first to gather context about domain, team, lifetime, and constraints.
2. **Right-size the architecture** — The best architecture is the simplest one that handles the project's actual complexity. CRUD apps do not need DDD. Startups do not need Clean Architecture. Match complexity to real requirements, not aspirations.
3. **Architecture is not permanent** — Every architecture has an evolution path. Start simple and add structure when complexity demands it. Document the decision so the team knows when to evolve.
4. **Four supported architectures** — dotnet-claude-kit provides first-class patterns for Vertical Slice Architecture (VSA), Clean Architecture (CA), DDD + Clean Architecture, and Modular Monolith. Each has specific strengths and trade-offs.
## The Architecture Questionnaire
Before recommending an architecture, ask questions across these 6 categories. Not every question applies to every project — skip irrelevant ones.
### Category 1: Domain ComplexityView the complete source on GitHubaspire
When your agent uses it
.NET Aspire for cloud-native orchestration. Covers AppHost configuration, service defaults, resource configuration, service discovery, and the Aspire dashboard. Load this skill when setting up local development orchestration, service discovery, or Aspire-managed infrastructure, or when the user mentions "Aspire", "AppHost", "service defaults", "service discovery", "orchestration", "Aspire dashboard", "AddProject", "WithReference", or "cloud-native .NET".
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
1,298 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,047 bytes
Read SKILL.md
# .NET Aspire
## Core Principles
1. **AppHost orchestrates; it is never deployed itself** — Aspire's core job is the local development experience: starting services, databases, and message brokers together. Modern Aspire also generates deployment assets (`aspire publish` for docker-compose/Kubernetes manifests, `aspire deploy` for Azure Container Apps) — but the AppHost process itself stays a dev/build-time tool, not a production runtime.
2. **Service defaults are your baseline** — The `ServiceDefaults` project configures OpenTelemetry, health checks, and resilience for all services in one place.
3. **Use Aspire integrations** — Aspire has built-in integrations for PostgreSQL, Redis, RabbitMQ, SQL Server, and more. They handle connection strings, health checks, and tracing automatically.
4. **The dashboard is your observability tool** — Use the Aspire dashboard for local development tracing, logging, and metrics instead of setting up Seq/Grafana locally.
## Patterns
### AppHost Configuration
```csharpView the complete source on GitHubauthentication
When your agent uses it
Authentication and authorization for ASP.NET Core. Covers JWT bearer tokens, OpenID Connect, ASP.NET Identity, authorization policies, role and claim-based authorization, and API key authentication. Load this skill when implementing login, protecting endpoints, designing authorization rules, or when the user mentions "auth", "JWT", "bearer token", "OIDC", "OpenID Connect", "Identity", "claims", "roles", "authorize", "RequireAuthorization", "API key", or "cookie auth".
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
1,621 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore7,663 bytesSKILL.mdcore7,663 bytesSKILL.mdcore7,663 bytes
Read SKILL.md
# Authentication & Authorization
## Core Principles
1. **Use ASP.NET Identity for user management** — Don't build your own user store. Identity handles password hashing, lockout, two-factor, email confirmation, and (since .NET 10) built-in passkey/WebAuthn support for passwordless login.
2. **JWT for APIs, cookies for web apps** — APIs use Bearer token authentication; Blazor/MVC apps use cookie authentication.
3. **Policy-based authorization over roles** — Policies are testable, composable, and more expressive than `[Authorize(Roles = "Admin")]`.
4. **Never store secrets in code** — Use user secrets in development, Azure Key Vault / environment variables in production.
## Patterns
### JWT Bearer Authentication
```csharpView the complete source on GitHubbuild-fix
When your agent uses it
Autonomous iteration loops for .NET: drive a broken build or failing test suite to green with bounded iterations, progress detection, and fail-safe guards that prevent infinite retries and wasted tokens. The build-fix loop (dotnet build, parse, categorize, fix, rebuild) is the primary flow; the test-fix loop is a first-class variant. Invoke when the build is broken, after a major refactor or dependency update, or when the user says "fix the build", "build is broken", "make it compile", "make the tests pass", "fix failing tests", "keep going until it works", "autonomous", "loop", "auto-fix", or "keep fixing".
What it loads into context
Frontmatter
165 tokensAlways available to the agent
SKILL.md
1,782 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Invokes
- Example
- Related
Files
SKILL.mdcore7,294 bytes
Read SKILL.md
# /build-fix
## What
The kit's autonomous iteration-loop skill. It drives a broken `dotnet build`
(or failing `dotnet test`) to green by looping: run, parse failures,
categorize by root cause, apply targeted fixes, re-run. It repeats until
green or a guard fires — the same way an experienced developer works through
a wall of red, but with hard limits that stop it from thrashing.
This is not a single-pass fix. It handles cascading errors where fixing one
issue reveals the next.
## WhenView the complete source on GitHubcaching
When your agent uses it
Caching strategies for .NET 10 applications. Covers HybridCache (the default), output caching, response caching, and distributed cache patterns. Load this skill when implementing caching, optimizing read performance, reducing database load, or when the user mentions "cache", "HybridCache", "Redis", "output cache", "response cache", "distributed cache", "IMemoryCache", "cache invalidation", "stampede protection", or "cache-aside".
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
1,257 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore5,767 bytes
Read SKILL.md
# Caching
## Core Principles
1. **HybridCache is the default** — .NET 9+ introduced `HybridCache` as the unified caching abstraction. It combines in-memory (L1) and distributed (L2) caching with stampede protection. See ADR-004.
2. **Cache reads, not writes** — Cache GET operations. Invalidate on mutations. Never cache POST/PUT/DELETE responses.
3. **Output caching for entire responses** — When the full HTTP response can be cached (public APIs, static data), use output caching middleware.
4. **Set explicit TTLs** — Every cached item needs an expiration. No unbounded caches.
## Patterns
### HybridCache (Recommended Default)
```csharpView the complete source on GitHubcheckpoint
When your agent uses it
Mid-session save point: create a descriptive git commit and a brief handoff note, then keep working. Use before a risky change or refactor, when switching tasks, or to bank progress without ending the session. Triggers on: /checkpoint, "checkpoint", "save progress", "commit and handoff", "save state", "pause here", "before a risky change". For the full end-of-session ritual with learning extraction, use /wrap-up instead.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
812 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore3,295 bytes
Read SKILL.md
# /checkpoint
## What
A quick mid-session save that banks the known-good state in two moves:
1. **Descriptive git commit** — stage relevant changes and commit with a
message that summarizes the work.
2. **Brief handoff note** — write `.claude/handoff.md` so a resumed session
(or you, after a botched refactor) knows exactly where things stand.
Checkpoint is the mid-session save; `/wrap-up` is the end-of-session ritual.
Checkpoint commits and jots a note, then keeps working. Wrap-up does the full
handoff plus learning extraction into `MEMORY.md`.View the complete source on GitHubci-cd
When your agent uses it
CI/CD pipelines for .NET applications. Covers GitHub Actions and Azure DevOps YAML pipelines with build, test, publish, and deploy stages. Load this skill when setting up continuous integration, automated testing, deployment workflows, or when the user mentions "CI/CD", "pipeline", "GitHub Actions", "Azure DevOps", "workflow", "deploy", "build pipeline", "publish", "NuGet push", "release", or "continuous integration".
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
1,431 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore5,615 bytesSKILL.mdcore5,615 bytesSKILL.mdcore5,615 bytes
Read SKILL.md
# CI/CD
## Core Principles
1. **Pipeline as code** — YAML pipelines committed to the repo. No click-ops in the UI.
2. **Fast feedback** — Build and test on every push. Cache NuGet packages. Fail fast.
3. **Build once, deploy many** — Build the artifact once, promote it through environments (dev → staging → production).
4. **Never skip tests** — Tests gate the pipeline. No deployment without passing tests.
## Patterns
### GitHub Actions — Build + Test
```yamlView the complete source on GitHubclean-architecture
When your agent uses it
Clean Architecture for .NET applications. Covers the 4-project layout (Domain, Application, Infrastructure, Api), dependency inversion, use case handlers, domain entities with behavior, and infrastructure as a plugin. Load this skill when building a project with Clean Architecture, discussing layered architecture, dependency inversion, use cases, or when the architecture-advisor recommends Clean Architecture.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
2,761 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore13,023 bytes
Read SKILL.md
# Clean Architecture
## Core Principles
1. **Dependency inversion is the foundation** — All dependencies point inward. Domain has zero project references. Application references only Domain. Infrastructure references Application and Domain. Api references all but depends on abstractions. The compiler enforces this via project references.
2. **Domain owns the rules** — Business logic lives in the Domain layer as entity methods, domain services, or specifications. The Domain layer has no knowledge of databases, HTTP, or any framework — only pure C# and .NET primitives.
3. **Use cases are the unit of work** — Each use case (command or query) is a single class in the Application layer. It orchestrates domain objects, persists through abstractions, and returns a result. No "service" classes with 20 methods.
4. **Infrastructure is a plugin** — EF Core, external APIs, email senders, file storage — all live in Infrastructure and implement interfaces defined in Application or Domain. Swap implementations without touching business logic.
5. **The API layer is thin** — Endpoints map HTTP to use cases and use cases to HTTP responses. No business logic in endpoints.
## Patterns
### Project Layout
View the complete source on GitHubcode-review
When your agent uses it
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".
What it loads into context
Frontmatter
140 tokensAlways available to the agent
SKILL.md
1,548 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore6,824 bytes
Read SKILL.md
# /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).View the complete source on GitHubconfiguration
When your agent uses it
Configuration patterns for .NET 10 applications. Covers the Options pattern, IOptionsSnapshot vs IOptions, secrets management, and environment-based configuration. Load this skill when setting up application configuration, managing secrets, binding configuration sections, or when the user mentions "configuration", "appsettings", "Options pattern", "IOptions", "IOptionsSnapshot", "secrets", "user secrets", "environment variables", "connection string", or "config binding".
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
1,278 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore5,792 bytesSKILL.mdcore5,792 bytesSKILL.mdcore5,792 bytes
Read SKILL.md
# Configuration
## Core Principles
1. **Options pattern always** — Never read `IConfiguration` directly in services. Bind configuration sections to strongly-typed classes with validation.
2. **Validate on startup** — Use `ValidateDataAnnotations()` and `ValidateOnStart()` to catch misconfiguration before the first request.
3. **Secrets never in source** — Use user secrets in development, Azure Key Vault or environment variables in production. Never commit secrets to git.
4. **Configuration layering** — `appsettings.json` → `appsettings.{Environment}.json` → environment variables → user secrets. Later sources override earlier ones.
## Patterns
### Options Pattern
```csharpView the complete source on GitHubcontainer-publish
When your agent uses it
Dockerfile-less containerization using the .NET 10 SDK container publishing feature. Covers MSBuild properties, chiseled images, multi-arch builds, and registry publishing — all without writing a Dockerfile. Load this skill when the user wants to containerize without a Dockerfile, or mentions "dotnet publish container", "PublishContainer", "ContainerRepository", "ContainerFamily", "chiseled", "distroless", "container publish", "SDK container", "no Dockerfile", or "containerize without Docker".
What it loads into context
Frontmatter
127 tokensAlways available to the agent
SKILL.md
1,804 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytesSKILL.mdcore7,408 bytes
Read SKILL.md
# Container Publishing (No Dockerfile)
## Core Principles
1. **No Dockerfile needed** — The .NET 10 SDK builds OCI-compliant container images directly from `dotnet publish /t:PublishContainer`. No Dockerfile to write or maintain.
2. **Chiseled images for production** — Use `noble-chiseled` base images: no shell, no package manager, 7 Linux components vs 100+. Smallest attack surface.
3. **Non-root by default** — .NET 10 container images run as the `app` user automatically. Never override to root in production.
4. **Configuration in the .csproj** — All container settings are MSBuild properties, versioned with your project. No separate files to drift.
## Patterns
### Minimal Container Publish
No project file changes needed. Just publish:View the complete source on GitHubconvention-learner
When your agent uses it
Detects and enforces project-specific coding conventions by analyzing existing codebase patterns. Learns naming conventions, folder structure, test organization, and coding style from the existing code. Load when: "conventions", "coding standards", "project patterns", "enforce style", "detect patterns", "learn conventions", "code consistency".
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
2,064 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,352 bytes
Read SKILL.md
# Convention Learner
## Core Principles
1. **Observe before enforcing** — Never impose conventions without first analyzing the existing codebase. A project with 200 `internal sealed class` handlers should not get a new `public class` handler. Detect first, then match.
2. **Project conventions override generic rules** — If the project uses `*Service` instead of `*Handler`, follow the project's convention even if the kit default is different. Explicit `.editorconfig` and `Directory.Build.props` rules always win.
3. **Use MCP tools for analysis** — `get_public_api` reveals naming patterns, `get_project_graph` shows structure conventions, `detect_antipatterns` tracks quality trends. Tools provide objective data; file reads provide confirmation.
4. **Document findings** — After detecting conventions, suggest adding them to the project's CLAUDE.md. Undocumented conventions are lost when the original developers leave.
5. **Consistency over perfection** — A project with consistent `snake_case` database columns is better than a project with half `snake_case` and half `PascalCase`. Match the existing pattern, even if another convention is theoretically superior.
## Patterns
### Convention Detection Flow
View the complete source on GitHubddd
When your agent uses it
Domain-Driven Design tactical patterns for .NET applications. Covers aggregates, aggregate roots, value objects, domain events, domain services, strongly-typed IDs, and repository patterns for aggregate persistence. Load this skill when implementing DDD, working with aggregates, value objects, domain events, bounded contexts, or when the architecture-advisor recommends DDD + Clean Architecture. Pair with the clean-architecture skill.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
2,577 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore12,232 bytes
Read SKILL.md
# Domain-Driven Design (DDD)
## Core Principles
1. **Aggregates define consistency boundaries** — An aggregate is a cluster of entities and value objects treated as a single unit for data changes. All invariants within an aggregate are enforced in a single transaction. Cross-aggregate consistency is eventual.
2. **Value objects over primitives** — Replace primitive obsession with value objects. `Money`, `EmailAddress`, `OrderNumber` are not strings — they carry validation, equality, and behavior. Use C# records for immutable value objects.
3. **Domain events decouple side effects** — When something meaningful happens in the domain (OrderPlaced, PaymentReceived), raise a domain event. Side effects (send email, update read model, notify another aggregate) subscribe to these events. The aggregate stays focused on its own rules.
4. **Aggregate root is the sole entry point** — External code accesses an aggregate only through its root entity. Child entities are never loaded or modified independently. The root enforces all invariants for the entire aggregate.
5. **Repositories persist aggregates, not entities** — One repository per aggregate root. The repository loads and saves the entire aggregate as a unit. No repository for child entities. The Infrastructure implementation uses `DbContext` internally — this is a DDD tactical pattern for aggregate boundaries, not a generic CRUD wrapper.
## Patterns
### Aggregate Root
View the complete source on GitHubde-sloppify
When your agent uses it
Systematic code cleanup pipeline for .NET projects. Runs 7 ordered steps: formatting, unused usings, analyzer warnings, dead code removal, TODO resolution, sealed class audit, and CancellationToken propagation. Each step is verified independently with tests between phases. Load this skill when: "clean up", "de-sloppify", "tidy up", "remove dead code", "code cleanup", "housekeeping", "tech debt", "fix warnings", "seal classes", "add CancellationToken", "unused usings", "format code".
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
1,376 tokensWhen the skill is activated
Reference documents
1,198 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore5,213 bytesreferences/cleanup-steps.mddoc4,767 bytes
Read SKILL.md
# /de-sloppify — 7-Step Cleanup Pipeline
## What
Runs an ordered, verified cleanup pipeline over a .NET codebase. Order matters:
formatting first (it touches every file — get the churn out of the way before
anything else), dead code late (earlier steps reveal it). Random cleanup misses
things and creates merge conflicts; the pipeline doesn't.
Three rules make it safe:
1. **Verify after each step** — `dotnet build` + `dotnet test` between steps. A
cleanup that breaks something is worse than the mess it was fixing.
2. **Commit per step** — each step is its own commit, so a bad Step 4 revertsView the complete source on GitHubdependency-injection
When your agent uses it
Dependency injection patterns for .NET 10. Covers service lifetimes, keyed services, the decorator pattern, factory pattern, and common DI pitfalls. Load this skill when registering services, resolving lifetime issues, designing service composition, or when the user mentions "DI", "dependency injection", "service registration", "AddScoped", "AddTransient", "AddSingleton", "keyed services", "decorator", "Scrutor", "IServiceCollection", or "captive dependency".
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
1,275 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,213 bytes
Read SKILL.md
# Dependency Injection
## Core Principles
1. **Constructor injection is the default** — Inject dependencies through the constructor (primary constructors make this clean). No service locator, no property injection.
2. **Match lifetimes carefully** — A singleton must never depend on a scoped or transient service. This is the most common DI bug.
3. **Register interfaces, resolve interfaces** — Register `services.AddScoped<IOrderService, OrderService>()`, not the concrete type.
4. **Keyed services for strategy pattern** — .NET 8+ keyed services replace manual factory patterns for selecting between implementations.
## Patterns
### Keyed Services (.NET 8+)
Use keyed services to register and resolve multiple implementations of the same interface.View the complete source on GitHubdocker
When your agent uses it
Docker containerization for .NET 10 applications. Covers multi-stage builds, .NET container images, non-root user configuration, health checks, and .dockerignore. Load this skill when containerizing an application with a Dockerfile, optimizing image size, setting up Docker Compose for local development, or when the user mentions "Docker", "Dockerfile", "container", "docker-compose", "image", "multi-stage", "non-root", ".dockerignore", or "container health check". For Dockerfile-less SDK publishing (`dotnet publish /t:PublishContainer`), load the container-publish skill instead.
What it loads into context
Frontmatter
142 tokensAlways available to the agent
SKILL.md
1,581 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,192 bytesSKILL.mdcore6,192 bytesSKILL.mdcore6,192 bytes
Read SKILL.md
# Docker
## Core Principles
1. **Multi-stage builds always** — Separate build and runtime stages. Build in the SDK image, run in the ASP.NET runtime image.
2. **Non-root by default** — .NET container images support `USER app` by default since .NET 8. Never run as root in production.
3. **Layer caching matters** — Copy `.csproj` files and restore before copying source code. This caches NuGet dependencies across builds.
4. **Health probes at the orchestrator level** — Expose a `/health/live` endpoint and let Kubernetes/Compose probe it. Chiseled and default aspnet images have no shell or curl, so in-image `HEALTHCHECK` commands have nothing to run with.
## Patterns
### Multi-Stage Dockerfile for Web API
```dockerfileView the complete source on GitHubdotnet-init
When your agent uses it
Interactive project initialization. Detects project type, asks architecture questions, and generates a customized CLAUDE.md — no manual template copying. Use when: "init project", "setup project", "initialize", "new project setup", "generate CLAUDE.md", "configure for dotnet-claude-kit", or starting Claude Code on a fresh or existing .NET codebase.
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
1,668 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example — Existing Project
- Example — Greenfield Project
- Example — Existing Project With a CLAUDE.md
- Related
Files
SKILL.mdcore6,713 bytes
Read SKILL.md
# /dotnet-init
## What
Interactively initializes a .NET project for use with dotnet-claude-kit. Detects the project type, asks targeted questions about architecture and tech stack, then generates a fully customized `CLAUDE.md` in the project root.
**No manual template copying required.**
## When
- Starting a new .NET project with Claude Code
- Adding dotnet-claude-kit to an existing project
- "init project", "setup project", "generate CLAUDE.md", "configure for dotnet-claude-kit"
View the complete source on GitHubef-core
When your agent uses it
Entity Framework Core patterns for .NET 10. Covers DbContext configuration, migrations workflow, interceptors, compiled queries, ExecuteUpdateAsync, ExecuteDeleteAsync, value converters, and query optimization. Load this skill when working with databases, writing queries, managing schema changes, or when the user mentions "EF Core", "Entity Framework", "DbContext", "migration", "LINQ query", "database", "SQL", "N+1", "Include", "split query", "value converter", "interceptor", or "compiled query".
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
2,047 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,113 bytesSKILL.mdcore9,113 bytesSKILL.mdcore9,113 bytes
Read SKILL.md
# EF Core (.NET 10)
## Core Principles
1. **EF Core is the default ORM** — Use it unless you have a specific reason not to (extreme perf, legacy DB without FK constraints). See ADR-003.
2. **DbContext is a unit of work** — Don't wrap it in another UoW abstraction. EF Core already implements Unit of Work and Repository patterns internally.
3. **Queries should be projections** — Use `.Select()` to project into DTOs instead of loading full entities. This avoids over-fetching and N+1 issues.
4. **Migrations are code** — Treat them like any other source code. Review them, test them, never auto-apply in production.
## Patterns
### DbContext Configuration
Use `IEntityTypeConfiguration<T>` to keep entity configs separate and discoverable.View the complete source on GitHuberror-handling
When your agent uses it
Error handling strategy for .NET 10 applications. Covers the Result pattern, ProblemDetails (RFC 9457), global exception handling, FluentValidation, and structured error responses. Load this skill when implementing error handling, validation, or designing API error contracts, or when the user mentions "error handling", "Result pattern", "ProblemDetails", "exception", "validation", "FluentValidation", "error response", "global exception handler", or "RFC 9457".
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
1,735 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore8,296 bytes
Read SKILL.md
# Error Handling
## Core Principles
1. **Use the Result pattern for expected failures** — Don't throw exceptions for things like "order not found" or "validation failed". These are expected outcomes, not exceptional conditions. See ADR-002.
2. **Reserve exceptions for unexpected failures** — Database connection lost, null reference bugs, network timeouts — these are truly exceptional and should propagate to the global handler.
3. **Every API error returns ProblemDetails** — RFC 9457 is the standard. Every error response has `type`, `title`, `status`, `detail`, and optionally `errors`.
4. **Validate at the boundary** — Validate incoming requests at the API layer, not deep inside business logic.
## Patterns
### Result Pattern
A simple, generic result type that carries either a value or errors.View the complete source on GitHubhealth-check
When your agent uses it
Multi-dimensional health assessment for .NET projects with letter grades (A-F) using Roslyn MCP tools. Evaluates 8 dimensions: build health, code quality, architecture, test coverage, dead code, API surface, security posture, and documentation. Produces a structured report card with actionable recommendations. Load this skill when: "health check", "how healthy is this", "project health", "code quality report", "grade this project", "assess codebase", "quality audit", "technical assessment", "codebase review", "report card".
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
1,568 tokensWhen the skill is activated
Reference documents
2,555 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore6,421 bytesreferences/grading-rubric.mddoc10,002 bytes
Read SKILL.md
# /health-check — 8-Dimension Project Assessment
## What
Runs a data-driven health assessment across 8 dimensions, each graded A-F with
the specific data points that produced the grade, and rolls them into a GPA.
Gut feeling is not a grade: every dimension uses MCP tools or CLI commands, and
every grade below A comes with specific, prioritized, effort-estimated fixes —
"add test classes for OrderService, PaymentProcessor, ShippingCalculator" is
actionable; "improve test coverage" is not.
This skill owns the **canonical grading system** for the kit. The full rubrics,
GPA scale, and report template live in `references/grading-rubric.md` — load
that file when running an assessment.View the complete source on GitHubhttpclient-factory
When your agent uses it
IHttpClientFactory and typed HTTP clients for .NET 10 applications. Covers named/typed/keyed clients, DelegatingHandlers, resilience with Microsoft.Extensions.Http.Resilience, and testing patterns. Load this skill when configuring HTTP clients, adding retry/circuit breaker policies, or when the user mentions "HttpClient", "IHttpClientFactory", "AddHttpClient", "typed client", "named client", "DelegatingHandler", "resilience", "retry", "circuit breaker", "hedging", "Polly", "AddStandardResilienceHandler", "socket exhaustion", or "Refit".
What it loads into context
Frontmatter
143 tokensAlways available to the agent
SKILL.md
1,946 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,059 bytes
Read SKILL.md
# HttpClient Factory
## Core Principles
1. **Never `new HttpClient()` per request** — Raw `HttpClient` creation causes socket exhaustion under load and ignores DNS changes. Use `IHttpClientFactory` to manage handler lifetimes.
2. **Keyed clients over typed clients** — Keyed DI (`.AddAsKeyed()`) is the recommended pattern in .NET 10. Typed clients captured in singletons silently break handler rotation.
3. **Resilience is not optional** — Every external HTTP call needs retry, circuit breaker, and timeout. `AddStandardResilienceHandler()` provides sensible defaults in one line.
4. **DelegatingHandlers for cross-cutting concerns** — Auth tokens, correlation IDs, and logging belong in the handler pipeline, not scattered across service methods.
## Patterns
### Named Client with Resilience
```csharpView the complete source on GitHubinstinct-system
When your agent uses it
Unified learning-and-memory system: confidence-scored instincts (observe-hypothesize-confirm, stored in .claude/instincts.md), user corrections captured as permanent rules in MEMORY.md, and organic discoveries logged to .claude/learning-log.md. Includes status, export, and import modes. Load this skill when you notice a recurring pattern, a user corrects your output, or you discover something non-obvious. Triggers: "show instincts", "what have you learned", "list instincts", "export instincts", "share instincts", "import instincts", "load instincts from", "learn this", "I think they always", "notice a pattern", "instinct", "hypothesis", "confidence", "learn from mistakes", "remember this", "don't do that again", "log this", "document this finding", "gotcha", "what did we learn", "learnings", "discoveries", or at session start (to load existing knowledge).
What it loads into context
Frontmatter
222 tokensAlways available to the agent
SKILL.md
3,272 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Modes
- Anti-patterns
- Decision Guide
- Related
Files
SKILL.mdcore13,647 bytes
Read SKILL.md
# Instinct System
One learning system, three tiers. Every signal Claude receives during work — an observed pattern, a user correction, a surprising discovery — routes to exactly one store.
## Core Principles
1. **Three tiers, one routing decision** — *Instincts* are unconfirmed hypotheses (`.claude/instincts.md`). *Corrections* are user-confirmed rules (`MEMORY.md`). *Discoveries* are insights that explain the world (`.claude/learning-log.md`). Rules prescribe behavior; insights describe it; instincts are rules-in-waiting. Never mix the tiers — a hypothesis in MEMORY.md pollutes permanent knowledge, and a confirmed rule left as an instinct gets forgotten.
2. **Instincts are hypotheses, not rules** — An instinct starts as a guess from a single observation and has no authority until confirmed. "One handler uses `sealed`" is an instinct at 0.3; "all 12 handlers use `sealed`" is a rule at 0.9. Confidence (0.3–0.9) drives behavior: note at 0.3, mention at 0.5, follow at 0.7, promote at 0.9.
3. **A user correction is a confirmed instinct at full confidence** — When the user corrects you, skip the confirmation cycle entirely. Generalize the lesson, capture it immediately in MEMORY.md with the "why", and confirm what was captured. A correction costs the user 30 seconds today and saves hours across all future sessions — losing one is the most expensive mistake this system can make.
4. **Project-scoped, never global** — What holds in one codebase may be wrong in another. Instincts live per-project; transfers between projects go through export/import with confidence decay, never at full confidence.
View the complete source on GitHublogging
When your agent uses it
Observability overview and glue for .NET 10: how the pieces fit together, plus the cross-cutting parts owned here — ASP.NET health check endpoints (/health), correlation IDs, and log-level strategy. For deep Serilog setup load `serilog`; for traces and metrics load `opentelemetry`. Load this skill when setting up observability from scratch, wiring health check endpoints or correlation IDs, or when the user says "logging", "observability", "monitoring setup", "liveness", "readiness", or "ILogger".
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
1,406 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,418 bytes
Read SKILL.md
# Logging & Observability
## Core Principles
1. **Structured logging with Serilog** — Every log entry is a structured event with named properties, not a formatted string. This enables searching, filtering, and alerting. All setup (two-stage bootstrap, `AddSerilog()`, sinks, enrichers) lives in the **serilog** skill — that skill's `AddSerilog()`-over-`UseSerilog()` guidance is canonical.
2. **OpenTelemetry for distributed tracing** — Traces connect requests across services; metrics track system health over time. Full setup lives in the **opentelemetry** skill.
3. **Health checks for operational readiness** — Every service exposes `/health` endpoints for load balancers and orchestrators. Liveness and readiness are separate questions and separate endpoints.
4. **Correlation IDs for request tracing** — Every request gets a unique ID that flows through all log entries and downstream service calls, so one user complaint maps to one filtered log stream.
## Patterns
### How the Pieces Fit Together
| Concern | Owner | Skill |View the complete source on GitHubmessaging
When your agent uses it
Asynchronous messaging patterns for .NET applications. Covers Wolverine and MassTransit, outbox pattern, saga and choreography, and broker configuration for RabbitMQ and Azure Service Bus. Load this skill when implementing event-driven communication, background processing, module-to-module messaging, or when the user mentions "Wolverine", "MassTransit", "message bus", "RabbitMQ", "Azure Service Bus", "event", "publish", "consumer", "outbox", "saga", "integration event", "queue", or "pub/sub".
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
2,255 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore10,696 bytes
Read SKILL.md
# Messaging
## Core Principles
1. **Wolverine is the recommended default** — MIT licensed, combines mediator + messaging in one library with built-in outbox, saga support, and convention-based handlers. MassTransit is an alternative but requires a commercial license from v9.
2. **Outbox pattern for reliability** — Always use the transactional outbox to ensure messages are published only when the database transaction succeeds.
3. **Choreography for simple flows, saga for complex** — If a workflow has 2-3 steps, use event choreography. If it has compensating actions or complex state, use a saga.
4. **Messages are contracts** — Put message types in a shared contracts project. Keep them as simple records with primitive types.
## Patterns
### Wolverine Setup
```csharpView the complete source on GitHubmigrate
When your agent uses it
Guided, safe migration workflow covering EF Core schema migrations, .NET version upgrades, and NuGet dependency updates — each with rollback strategies and verification steps. Invoke when: "add migration", "update database", "create migration", "schema change", "new table", "rename column", "upgrade nuget", "update packages", "dependency update", "version upgrade", ".NET upgrade".
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
1,611 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytesSKILL.mdcore6,905 bytes
Read SKILL.md
# /migrate
## What
The single migration workflow for three change types, with EF Core schema
migrations as the primary flow:
1. **EF Core schema** — review pending model changes, generate a descriptively
named migration, review the SQL for data loss and locking risks, apply with
a documented rollback path.
2. **.NET version upgrade** — phased TFM/SDK/package upgrade with verification
at each phase.
3. **NuGet updates** — incremental, one-package-at-a-time updates so breakage
is always attributable.View the complete source on GitHubminimal-api
When your agent uses it
.NET 10 minimal APIs — the default for building HTTP endpoints. Covers MapGroup, endpoint filters, TypedResults, OpenAPI metadata, parameter binding, and route conventions. Load this skill when creating API endpoints, configuring routing, setting up OpenAPI documentation, or when the user mentions "endpoint", "MapGet", "MapPost", "MapGroup", "TypedResults", "route", "minimal API", "OpenAPI", "swagger", "rate limiting", or "output caching".
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
2,352 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore10,479 bytes
Read SKILL.md
# Minimal APIs (.NET 10)
## Core Principles
1. **Minimal APIs are the default** — Use controllers only when migrating legacy code. Minimal APIs are lighter, faster, and compose well with any architecture style.
2. **Group endpoints with `MapGroup`** — Never scatter individual `MapGet`/`MapPost` calls in `Program.cs`. Group related endpoints together.
3. **Use `TypedResults` for OpenAPI** — `TypedResults.Ok(value)` gives you compile-time type safety AND correct OpenAPI documentation. `Results.Ok(value)` does not.
4. **Metadata over comments** — Use `.WithName()`, `.WithTags()`, `.WithSummary()` to document endpoints. The metadata feeds into OpenAPI specs.
## Patterns
### Endpoint Group Auto-Discovery (Required Pattern)
Every endpoint group lives in its own file and implements `IEndpointGroup`. A single `app.MapEndpoints()` call in `Program.cs` discovers and registers all groups automatically. **Program.cs never changes when you add new endpoint groups.**View the complete source on GitHubmodern-csharp
When your agent uses it
Modern C# language features for .NET 10 and C# 14. Covers primary constructors, collection expressions, the field keyword, extension members, records, pattern matching, spans, and raw string literals. Load this skill when writing any new C# code, reviewing existing code for modernization, using "modern C#", "C# 14", "primary constructor", "collection expression", "records", "pattern matching", "span", "field keyword", or "extension members". Always loaded as the baseline for all agents.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
1,620 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,937 bytes
Read SKILL.md
# Modern C# (C# 14 / .NET 10)
## Core Principles
1. **Use the newest stable features** — C# 14 is the target. Prefer language-level constructs over library workarounds.
2. **Readability over cleverness** — Pattern matching and expression-bodied members improve readability when used appropriately; deeply nested patterns do not.
3. **Value types where possible** — Prefer `record struct`, `Span<T>`, and stack allocation to reduce GC pressure.
4. **Immutability by default** — Use `record`, `readonly`, `init`, and `required` to make illegal states unrepresentable.
## Patterns
### Well-Known Features Quick Reference
| Feature | Usage | Example |View the complete source on GitHubopenapi
When your agent uses it
Built-in OpenAPI support for .NET 10 applications. Covers document generation, transformers, TypedResults metadata, security schemes, XML comments, build-time generation, and multiple document support. No Swashbuckle needed. Load this skill when setting up API documentation, customizing OpenAPI output, adding security schemes to docs, or when the user mentions "OpenAPI", "AddOpenApi", "MapOpenApi", "document transformer", "operation transformer", "schema transformer", "OpenAPI 3.1", "API documentation", "Swashbuckle replacement", "Produces", "WithSummary", "WithDescription", "ProblemDetails", "Kiota", or "client generation".
What it loads into context
Frontmatter
157 tokensAlways available to the agent
SKILL.md
2,031 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,069 bytesSKILL.mdcore9,069 bytes
Read SKILL.md
# OpenAPI
## Core Principles
1. **Built-in, not Swashbuckle** — .NET 10 ships `Microsoft.AspNetCore.OpenApi` as the official, framework-maintained OpenAPI solution. Swashbuckle was removed from templates in .NET 9 and is no longer recommended.
2. **TypedResults drive the schema** — `TypedResults.Ok<T>()` automatically generates correct OpenAPI response schemas. `Results.Ok()` does not. Always use `TypedResults`.
3. **Transformers over workarounds** — Document, operation, and schema transformers compose cleanly. Use them for security schemes, global responses, and schema customization.
4. **Metadata on every endpoint** — Use `.WithName()`, `.WithSummary()`, `.WithTags()` on every endpoint. This metadata feeds directly into the OpenAPI spec and client generators.
## Patterns
### Basic Setup
```csharpView the complete source on GitHubopentelemetry
When your agent uses it
OpenTelemetry observability for .NET 10 applications. Covers traces, metrics, and logs using the OpenTelemetry SDK with OTLP export. Includes custom ActivitySource, IMeterFactory metrics, resource configuration, and Aspire Dashboard integration. Load this skill when setting up distributed tracing, custom metrics, OTLP export, or when the user mentions "OpenTelemetry", "OTLP", "traces", "spans", "Activity", "ActivitySource", "metrics", "IMeterFactory", "Meter", "Counter", "Histogram", "Gauge", "telemetry", "observability", "distributed tracing", "OTEL", or "Aspire Dashboard".
What it loads into context
Frontmatter
154 tokensAlways available to the agent
SKILL.md
2,125 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,337 bytesSKILL.mdcore9,337 bytesSKILL.mdcore9,337 bytesSKILL.mdcore9,337 bytes
Read SKILL.md
# OpenTelemetry
## Core Principles
1. **Three pillars, one setup** — Configure traces, metrics, and logs through a single `AddOpenTelemetry()` call. Use `UseOtlpExporter()` for cross-cutting export to any OTLP-compatible backend.
2. **Use `IMeterFactory` for metrics** — Never create `Meter` instances with `new`. The factory manages lifetime through DI and prevents leaks.
3. **Null-safe activities** — `StartActivity()` returns `null` when no listener is attached. Always use `?.` when setting tags or events.
4. **Environment variables over code** — Use `OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_SERVICE_NAME` so deployments control telemetry routing without code changes.
5. **Low-cardinality metric tags** — Keep metric tag combinations under ~1000 per instrument. Use span attributes or logs for high-cardinality data like user IDs or request IDs.
## Patterns
### Full Setup with All Three Signals
View the complete source on GitHuboutdated
When your agent uses it
Dependency health report for .NET solutions: outdated NuGet packages, vulnerable versions, and commercial-license traps (MediatR, MassTransit, FluentAssertions, AutoMapper) — powered by the get_nuget_packages MCP tool. Invoke when: "outdated packages", "check dependencies", "stale packages", "package audit", "dependency health", "are my packages up to date", "license check", "vulnerable packages", "nuget audit".
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
1,259 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore4,981 bytesSKILL.mdcore4,981 bytes
Read SKILL.md
# /outdated
## What
A three-layer dependency health report:
1. **Inventory** — every `PackageReference` per project, with TFMs and central
package management awareness, via the `get_nuget_packages` MCP tool (no
network, token-cheap).
2. **Staleness + vulnerabilities** — current vs latest stable, and known CVEs,
via the `dotnet` CLI.
3. **License screen** — flags packages that moved to commercial licenses so an
innocent `dotnet outdated --upgrade` doesn't silently change your legal
position.View the complete source on GitHubplan
When your agent uses it
Enter plan mode for .NET projects with architecture awareness. Analyzes tasks through the lens of supported architectures (VSA, Clean Architecture, DDD, Modular Monolith) and produces structured implementation plans before any code is written. Use when: "plan", "let's plan", "think through", "design this", "how should I implement", or any non-trivial task requiring 3+ steps.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
973 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore4,563 bytesSKILL.mdcore4,563 bytes
Read SKILL.md
# /plan -- Architecture-Aware Planning
## What
Enters a structured planning mode that considers the project's architecture pattern
before producing an implementation plan. Instead of jumping straight to code, this
command forces a deliberate pause to:
- Identify the project's current architecture (or recommend one)
- Map the task to affected layers, modules, and boundaries
- Produce a numbered implementation plan with clear steps
- Iterate on the plan until it is solid before writing any code
Plans are living documents -- if something goes sideways during implementation,View the complete source on GitHubproject-setup
When your agent uses it
Tech-stack selection advisor for .NET projects: recommended defaults for database, auth, caching, messaging, observability, and resilience, with the rationale behind each default. Load when choosing or reviewing a project's tech stack, or when the user says "tech stack", "which database", "pick a stack", "recommended defaults", or "what should I use for". For project initialization use dotnet-init, for codebase assessment use health-check, for upgrades and schema changes use migrate.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
1,088 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore4,688 bytes
Read SKILL.md
# Project Setup — Tech-Stack Advisor
This skill owns one thing: the kit's recommended tech-stack defaults and why. The workflows that consume it live elsewhere:
- **Initializing a project / generating CLAUDE.md** → `dotnet-init` (interactive flow, architecture questionnaire, CLAUDE.md generation)
- **Assessing an existing codebase** → `health-check` (the canonical 8-dimension graded assessment)
- **EF Core schema, NuGet, or .NET version migrations** → `migrate`
- **Choosing an architecture** → `architecture-advisor` (always ask before recommending)
## Core Principles
1. **Recommend a default, explain the why, let the user choose** — Every dimension has a kit default, but defaults are starting points, not mandates. State the trade-off in one line so the choice is informed.
2. **Prefer built-in .NET over third-party** — `HybridCache` over Redis-client wrappers, built-in rate limiting over packages, built-in OpenAPI over Swashbuckle. Fewer dependencies means fewer licensing surprises and upgrade breaks.
3. **License-aware picks** — MediatR (v13+), MassTransit (v9+), and FluentAssertions (v8+) went commercial. The kit defaults to MIT alternatives: Mediator, Wolverine, plain xUnit asserts.View the complete source on GitHubproject-structure
When your agent uses it
.NET solution and project structure conventions. Covers .slnx format, Directory.Build.props, Directory.Packages.props for central package management, global usings, and naming conventions. Load this skill when setting up a new solution, adding projects, configuring build properties, or when the user mentions "solution structure", ".slnx", "Directory.Build.props", "central package management", "Directory.Packages.props", "global usings", ".editorconfig", "project layout", or "naming conventions".
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
1,749 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore7,164 bytesSKILL.mdcore7,164 bytes
Read SKILL.md
# Project Structure
## Core Principles
1. **Central package management** — Use `Directory.Packages.props` to manage NuGet package versions in one place. No version numbers in individual `.csproj` files.
2. **Shared build properties** — Use `Directory.Build.props` for common settings (target framework, nullable, implicit usings). Don't repeat in every project.
3. **.slnx for solutions** — The new XML-based solution format is cleaner and more merge-friendly than the legacy `.sln` format.
4. **src/tests separation** — Source projects in `src/`, test projects in `tests/`. Clear boundary.
## Patterns
### Solution Layout
```View the complete source on GitHubresilience
When your agent uses it
Resilience patterns for .NET 10 applications using Polly v8. Covers retry, circuit breaker, timeout, fallback, rate limiter, hedging, and composing resilience pipelines. Load this skill when implementing retry logic, circuit breakers, handling transient failures, or when the user mentions "Polly", "resilience", "retry", "circuit breaker", "timeout", "fallback", "rate limit", "hedging", "transient fault", "HttpClient resilience", or "resilience pipeline".
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
2,779 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore12,736 bytes
Read SKILL.md
# Resilience
## Core Principles
1. **Polly v8 resilience pipelines, not v7 policies** — Polly v8 replaced `Policy` with `ResiliencePipeline`. Never use `PolicyBuilder`, `Policy.Handle<>()`, or `ISyncPolicy`. The new API is composable, type-safe, and integrates natively with `IHttpClientFactory`.
2. **Configure via `AddResilienceHandler`, not manual wrapping** — For HTTP calls, use `Microsoft.Extensions.Http.Resilience` which adds pipelines directly to `HttpClient` via DI. No manual `ExecuteAsync` wrapping.
3. **Compose strategies, don't nest them** — A single `ResiliencePipeline` can chain retry + circuit breaker + timeout. Strategies execute outer-to-inner (first added = outermost). No need for nested try/catch or manual orchestration.
4. **Always set timeouts** — Every external call needs a timeout. Use Polly's `AddTimeout()` as the innermost strategy so it applies per-attempt, and optionally an outer timeout for total elapsed time.
5. **Instrument everything** — Polly v8 emits `Metering` events and supports `TelemetryOptions` for OpenTelemetry. Use them to monitor retry rates, circuit breaker state, and timeout frequency.
## Patterns
### HTTP Client Resilience (Recommended Default)
View the complete source on GitHubscaffold
When your agent uses it
Architecture-aware feature scaffolding for .NET 10 projects. Detects the project's architecture (VSA, Clean Architecture, DDD, Modular Monolith) and generates complete feature slices with all required layers: endpoint, handler, validator, DTOs, EF configuration, and integration tests — with the completeness checklist and per-architecture code templates every generated feature must satisfy. Use when: "scaffold", "create feature", "add feature", "new endpoint", "generate", "add entity", "scaffold a module", "add module", or when customizing generation templates or defining what a complete feature slice includes.
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
1,504 tokensWhen the skill is activated
Reference documents
3,598 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore6,749 bytesSKILL.mdcore6,749 bytesreferences/architecture-patterns.mddoc16,431 bytes
Read SKILL.md
# /scaffold — Architecture-Aware Feature Scaffolding
## What
Generates a complete feature with all required files based on the project's
architecture. Never generates half a feature — every scaffold includes the
endpoint, handler, validation, DTOs, EF configuration, and at least one
integration test as a single unit, written in modern C# 14 (primary
constructors, collection expressions, records, sealed handlers, TypedResults).
Supported architectures (file placement maps and code shape templates live in
`references/architecture-patterns.md`):
- **Vertical Slice Architecture (VSA)** — single-file features in `Features/`View the complete source on GitHubscalar
When your agent uses it
Scalar API documentation UI for .NET 10 applications. Covers setup, themes, authentication prefill, multiple documents, layout options, and security. A modern replacement for Swagger UI. Load this skill when setting up API documentation UI, or when the user mentions "Scalar", "MapScalarApiReference", "API reference", "Swagger UI replacement", "API documentation UI", "Scalar theme", "interactive API docs", or "Try It".
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
1,449 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore6,556 bytes
Read SKILL.md
# Scalar
## Core Principles
1. **Scalar replaces Swagger UI** — Scalar is the recommended API documentation UI for .NET 10. Faster rendering, built-in dark mode, code generation for dozens of languages, and full OpenAPI 3.1 support.
2. **Development only by default** — Wrap `MapScalarApiReference()` in an `IsDevelopment()` check. API documentation exposes internal structure. If needed in production, add authorization.
3. **Disable the proxy for sensitive APIs** — Scalar's "Try It" feature routes through `proxy.scalar.com` by default. Disable it with `.WithProxy(null)` to keep auth headers local.
4. **Security schemes come from OpenAPI** — Scalar reads security schemes from the OpenAPI document. Configure them via document transformers, not in Scalar directly.
## Patterns
### Basic Setup
```csharpView the complete source on GitHubsecurity-scan
When your agent uses it
Deep security scanning for .NET applications across 6 layers: vulnerable packages, secrets detection, OWASP code patterns, auth configuration, CORS policy, and data protection. Produces severity-rated findings with specific remediation steps. Load this skill when: "security scan", "security audit", "check for vulnerabilities", "find secrets", "OWASP", "auth review", "CORS check", "security review", "penetration test prep", "CVE check", "vulnerability scan", "hardcoded password", "data protection", "security posture".
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
1,319 tokensWhen the skill is activated
Reference documents
1,998 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore5,369 bytesreferences/scan-layers.mddoc8,255 bytes
Read SKILL.md
# /security-scan — 6-Layer Security Pipeline
## What
Runs a defense-in-depth static scan across 6 layers. A project with zero CVEs
can still have hardcoded secrets, SQL injection, and missing auth — each layer
catches a different vulnerability class. Findings map to the **OWASP Top
10:2025** taxonomy and are rated Critical/High/Medium/Low by exploitability,
impact, and exposure — a Critical SQL injection on a public endpoint outranks a
Low info-disclosure on an admin page.
Detection patterns, OWASP mappings, remediation code, and the report template
live in `references/scan-layers.md` — read it before executing.
View the complete source on GitHubserilog
When your agent uses it
Structured logging with Serilog for .NET 10 applications. Covers two-stage bootstrap, appsettings configuration, enrichers, sinks, request logging, destructuring, and Serilog.Expressions. Load this skill when setting up Serilog, configuring log sinks, enrichers, or structured logging, or when the user mentions "Serilog", "structured logging", "log enrichment", "Seq", "LogContext", "UseSerilog", "WriteTo", "message template", "Serilog.Expressions", "request logging", "log sink", "rolling file", or "audit log".
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
2,222 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore9,786 bytesSKILL.mdcore9,786 bytes
Read SKILL.md
# Serilog
## Core Principles
1. **Two-stage initialization** — Create a bootstrap logger for startup, then replace it with the full logger after DI is ready. This captures startup errors that would otherwise be lost.
2. **`AddSerilog()` over `UseSerilog()`** — Use `builder.Services.AddSerilog()` (the modern API) instead of `builder.Host.UseSerilog()`. It integrates with DI services via `ReadFrom.Services(services)`.
3. **Message templates, not interpolation** — `{PropertyName}` syntax creates structured data that can be queried. String interpolation (`$"..."`) breaks structure and allocates even when the log level is disabled.
4. **Configure via appsettings.json** — Keep log levels, sinks, and overrides in configuration so they can change per environment without redeployment.
## Patterns
### Two-Stage Bootstrap Setup
```csharpView the complete source on GitHubspec
When your agent uses it
Turn a vague feature or product idea into an agreed, persisted specification through relentless structured questioning. Never assumes — every gap, ambiguity, or "probably" becomes a question to the developer, and the spec cannot be approved while open questions remain. Produces docs/specs/<NNN>-<slug>.md with acceptance criteria that /plan, /scaffold, and /tdd consume. Use when: "spec", "write a spec", "spec this out", "requirements", "PRD", "acceptance criteria", "define the feature", "user stories", "what should we build", or before planning any feature too big to describe in one sentence.
What it loads into context
Frontmatter
154 tokensAlways available to the agent
SKILL.md
1,879 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore8,040 bytes
Read SKILL.md
# /spec — Relentless Specification Workflow
## What
Converts an idea into a written, versioned specification that both the developer
and Claude explicitly agree on — before any planning or code. The contract:
- **Never assume.** Every gap in the idea becomes a question. If Claude catches
itself thinking "probably", "presumably", or "the usual way" — that thought is
a question to ask, not a decision to make.
- **Relentless, but structured.** Questions come in focused rounds (3–5 at a
time) across nine dimensions — not one overwhelming dump, and not a single
polite round that stops early.
- **Agreement is explicit.** Specs have a status lifecycle: Draft → In Review →View the complete source on GitHubtdd
When your agent uses it
Guided test-driven development workflow for .NET 10 using xUnit v3, WebApplicationFactory, Testcontainers, and Verify snapshots. Follows the strict red-green-refactor cycle. Use when: "TDD", "test-driven", "let's TDD this", "red green refactor", "write the test first", or when building a feature with clear acceptance criteria.
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
1,271 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore5,526 bytesSKILL.mdcore5,526 bytesSKILL.mdcore5,526 bytesSKILL.mdcore5,526 bytes
Read SKILL.md
# /tdd -- Red-Green-Refactor for .NET
## What
Guides a strict test-driven development cycle for .NET features. Instead of
writing implementation first and bolting on tests after, this command flips the
order: write a failing test that defines the desired behavior, implement the
minimum code to make it pass, then refactor with confidence.
Every cycle uses the .NET testing stack:
- **xUnit v3** -- Test framework with `[Fact]` and `[Theory]`
- **WebApplicationFactory** -- Integration tests against the real HTTP pipeline
- **Testcontainers** -- Real databases (PostgreSQL, SQL Server) in tests
- **Verify** -- Snapshot testing for complex response structuresView the complete source on GitHubtesting
When your agent uses it
Testing strategy for .NET 10 applications. Covers xUnit v3, WebApplicationFactory for integration tests, Testcontainers for real database testing, Verify for snapshot testing, and the AAA pattern. Load this skill when writing tests, setting up test infrastructure, reviewing test coverage, or when the user mentions "test", "xUnit", "WebApplicationFactory", "Testcontainers", "integration test", "unit test", "bUnit", "snapshot test", "Verify", "test coverage", "AAA pattern", "WireMock", or "FakeTimeProvider".
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
2,332 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore10,418 bytes
Read SKILL.md
# Testing (.NET 10)
## Core Principles
1. **Integration tests are the highest-value tests** — A single `WebApplicationFactory` test covers routing, binding, validation, business logic, and persistence in one shot. Start here before writing unit tests.
2. **Real databases in tests** — Use Testcontainers to spin up real PostgreSQL/SQL Server instances. In-memory providers hide real bugs (transactions, constraints, SQL generation).
3. **AAA pattern is mandatory** — Every test has three clearly separated sections: Arrange, Act, Assert. No mixing.
4. **Test behavior, not implementation** — Tests should survive refactoring. Test what the system does, not how it does it.
## Patterns
### xUnit v3 Basics
```csharpView the complete source on GitHubverify
When your agent uses it
Run a comprehensive 7-phase verification pipeline for .NET projects: build, analyzers, antipattern detection, tests, security, formatting, and diff review. Each phase produces PASS/FAIL with actionable output and the pipeline short-circuits on critical failures. Also the authority on verification strategy: which phases to run for a given change, quality gates, and fix-and-retry loops. Use when: "verify", "check everything", "is this ready", "pre-PR check", "run all checks", "quality gate", "verification strategy", "which checks should run", or after completing a feature or refactor.
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
1,966 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore7,820 bytesSKILL.mdcore7,820 bytesSKILL.mdcore7,820 bytesSKILL.mdcore7,820 bytesSKILL.mdcore7,820 bytes
Read SKILL.md
# /verify -- 7-Phase Verification Pipeline
## What
Runs a sequential, 7-phase verification pipeline that catches issues at every level --
from compiler errors to subtle antipatterns to formatting drift. Each phase produces
an explicit PASS, WARN, or FAIL with details. "It looks fine" is not a verification
result; a table of statuses is. Critical failures (Phase 1 build, Phase 4 tests)
short-circuit the pipeline because later phases cannot produce meaningful results
on broken code.
The pipeline answers one question: **"Is this code ready for review?"**
| Phase | Tool | What It Catches | Critical |View the complete source on GitHubvertical-slice
When your agent uses it
Vertical Slice Architecture (VSA) for .NET applications — one of several supported architectures in dotnet-claude-kit. Covers feature folders, endpoint grouping, and handler patterns for Mediator, Wolverine, and raw handler classes. Load this skill when the architecture-advisor recommends VSA, when working in an existing VSA codebase, when adding features to a feature-folder project, or when discussing vertical slice patterns, feature folders, or handler patterns.
What it loads into context
Frontmatter
109 tokensAlways available to the agent
SKILL.md
2,176 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore10,457 bytes
Read SKILL.md
# Vertical Slice Architecture (VSA)
## Core Principles
1. **Organize by feature, not by layer** — Each feature is a self-contained vertical slice containing its endpoint, handler, request/response types, and validation. No more jumping between Controllers/, Services/, Repositories/ folders.
2. **Minimize cross-feature coupling** — Features should not reference each other directly. Shared concerns go in a `Common/` or `Shared/` directory.
3. **One file per feature is fine** — A simple CRUD endpoint doesn't need 5 files spread across layers. Start with everything in one file, extract only when complexity demands it.
4. **The handler is the unit of work** — Each handler does one thing. No god-services with 20 methods.
## Patterns
### Feature Folder Structure
```View the complete source on GitHubworkflow-mastery
When your agent uses it
Claude Code workflow mastery for .NET developers. Covers parallel execution with git worktrees, plan mode strategy, verification loops, auto-formatting hooks, permission setup for dotnet CLI, prompting techniques, subagent patterns, and context discipline — token budget management, MCP-first navigation, lazy loading, and subagent isolation — all adapted for the .NET ecosystem. Load this skill when setting up Claude Code for a .NET project, optimizing workflows, running parallel sessions, when context is running low or sessions feel sluggish, when exploring a large codebase efficiently, or when the user mentions "productivity", "workflow", "parallel", "worktree", "plan mode", "permissions", "hooks", "10x", "setup Claude Code", "speed up development", "context", "tokens", "budget", "running out of context", "too many files", or "large codebase". Inspired by tips from Boris Cherny (creator of Claude Code) and the Anthropic team.
What it loads into context
Frontmatter
229 tokensAlways available to the agent
SKILL.md
3,309 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Patterns
- Context Discipline
- Anti-patterns
- Decision Guide
Files
SKILL.mdcore14,040 bytesSKILL.mdcore14,040 bytes
Read SKILL.md
# Workflow Mastery for .NET
## Core Principles
1. **Parallel over sequential** — Run 3-5 Claude sessions simultaneously using git worktrees. Build a feature in one, fix a bug in another, run tests in a third. The single biggest productivity unlock.
2. **Plan then execute** — For any non-trivial task, start in plan mode, iterate until the plan is bulletproof, then switch to auto-accept. A good plan means Claude 1-shots the implementation.
3. **Verification closes the loop** — Give Claude a way to prove its work: `dotnet build`, `dotnet test`, `get_diagnostics` via MCP. This single practice 2-3x the quality of the output.
4. **Context is a budget, not a dumping ground** — The context window fills fast: a typical .cs file is 500-2000 tokens, and 50 file reads can burn a large share of the budget. Spend tokens like sprint capacity — deliberately.
5. **Automate the repetitive** — If you do it more than once a day, make it a hook, a slash command, or a subagent. Pre-allow safe permissions. Eliminate friction.
6. **Compound your knowledge** — Every correction becomes a rule in `MEMORY.md` (see `instinct-system` skill). Every PR review adds a learning. Over time, Claude's mistake rate drops because your project's knowledge base grows.
## Patterns
### Parallel Sessions with Git WorktreesView the complete source on GitHubwrap-up
When your agent uses it
Owns the session handoff lifecycle: the end-of-session ritual that captures completed work, pending tasks, and learnings into .claude/handoff.md, and the session-start protocol that loads it back. Triggers on: /wrap-up, "wrap up", "done for today", "that's all", "end session", "signing off", "handoff" — and at session start: "start session", "session start", "load handoff", "pick up where we left off", "what were we working on".
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
1,275 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What
- When
- How
- Example
- Related
Files
SKILL.mdcore5,203 bytes
Read SKILL.md
# /wrap-up
## What
The session continuity ritual. Sessions are ephemeral; knowledge is permanent.
Wrap-up bridges sessions in both directions:
- **Session END** — capture exactly three things: what was DONE, what is
PENDING, and what was LEARNED. Write them to `.claude/handoff.md` and flow
durable learnings into `MEMORY.md`.
- **Session START** — load the handoff, memory, and instincts, then present a
resume summary so no session starts blind.
## WhenView the complete source on GitHubSkills included
- api-versioning
- arch-check
- architecture-advisor
- aspire
- authentication
- build-fix
- caching
- checkpoint
- ci-cd
- clean-architecture
- code-review
- configuration
- container-publish
- convention-learner
- ddd
- de-sloppify
- dependency-injection
- docker
- dotnet-init
- ef-core
- error-handling
- health-check
- httpclient-factory
- instinct-system
- logging
- messaging
- migrate
- minimal-api
- modern-csharp
- openapi
- opentelemetry
- outdated
- plan
- project-setup
- project-structure
- resilience
- scaffold
- scalar
- security-scan
- serilog
- spec
- tdd
- testing
- verify
- vertical-slice
- workflow-mastery
- wrap-up
Repository facts
- License
- MIT
- Created
- Feb 20, 2026
- Last pushed
- Nov 4, 2026
- Forks
- 181
- Open issues
- 1
- Project activity
- Active
Rank over the last 12 weeks
Now #986 · best #711 · down 234 in 30 days
- #858 on Oct 19
- #869 on Oct 20
- #882 on Oct 21
- #854 on Oct 22
- #863 on Oct 23
- #986 since Oct 25
67 earlier periods
- #727 on Aug 2
- #716 on Aug 7
- #717 on Aug 8
- #723 on Aug 9
- #751 on Aug 10
- #754 on Aug 11
- #755 on Aug 12
- #756 on Aug 13
- #718 on Aug 15
- #738 on Aug 16
- #749 on Aug 17
- #766 on Aug 18
- #750 on Aug 19
- #746 from Aug 20 to Aug 21
- #711 on Aug 22
- #756 on Aug 23
- #779 on Aug 24
- #795 on Aug 25
- #774 on Aug 26
- #783 on Aug 27
- #808 on Aug 28
- #742 on Aug 29
- #750 on Aug 30
- #784 on Aug 31
- #802 on Sep 1
- #780 on Sep 2
- #791 on Sep 3
- #767 on Sep 4
- #751 on Sep 5
- #779 on Sep 6
- #814 on Sep 8
- #795 on Sep 9
- #807 on Sep 10
- #781 on Sep 11
- #778 on Sep 12
- #774 on Sep 13
- #802 on Sep 14
- #792 on Sep 15
- #804 on Sep 16
- #791 on Sep 18
- #769 on Sep 19
- #784 on Sep 20
- #803 on Sep 21
- #825 on Sep 22
- #812 on Sep 23
- #779 on Sep 24
- #752 on Sep 25
- #759 on Sep 26
- #788 on Sep 27
- #811 on Sep 28
- #835 on Sep 29
- #818 on Sep 30
- #768 on Oct 1
- #782 on Oct 2
- #764 on Oct 3
- #795 on Oct 4
- #805 on Oct 5
- #868 on Oct 8
- #835 on Oct 9
- #815 on Oct 10
- #817 on Oct 11
- #849 on Oct 13
- #860 on Oct 14
- #846 on Oct 15
- #853 on Oct 16
- #831 on Oct 17
- #814 on Oct 18
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 72 notes
hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Plugin-wide analysis incomplete; see repository noteshooks/hooks.json:1Plugin-wide analysis incomplete; see repository noteshooks/hooks.json:1Plugin-wide analysis incomplete; see repository notesskills/authentication/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/authentication/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Plugin-wide analysis incomplete; see repository noteshooks/hooks.json:1Plugin-wide analysis incomplete; see repository noteshooks/hooks.json:1Plugin-wide analysis incomplete; see repository notesskills/ci-cd/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ci-cd/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Plugin-wide analysis incomplete; see repository noteshooks/hooks.json:1Plugin-wide analysis incomplete; see repository notesskills/configuration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/configuration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/container-publish/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/container-publish/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/container-publish/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 59 network referencesin 10 files: httpclient-factory/SKILL.md:28 serilog/SKILL.md:107 .claude-plugin/plugin.json:6 and 7 more
- 1 obfuscation signalin 1 file: security-scan/references/scan-layers.md:133
- No instruction overrides
- No executable scripts
- 1 reference to secretsin 1 file: ci-cd/SKILL.md:163
- No requests to vote in Hot
Show all 61 signals by file
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
- Network accessline 6
"author": { "name": "Mukesh Murugan", "url": "https://codewithmukesh.com" - Network accessline 7
"name": "Mukesh Murugan", "url": "https://codewithmukesh.com" }, - Network accessline 8
"url": "https://codewithmukesh.com" - Network accessline 9
}, "homepage": "https://github.com/codewithmukesh/dotnet-claude-kit", "repository": "https://github.com/codewithmukesh/dotnet-claude-kit", - Network accessline 10
"homepage": "https://github.com/codewithmukesh/dotnet-claude-kit", - Network accessline 11
"repository": "https://github.com/codewithmukesh/dotnet-claude-kit",
skills/aspire/SKILL.md
skills/ci-cd/SKILL.md
skills/docker/SKILL.md
- Network accessline 71
api: healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8080/health/live || exit 1"] - Network accessline 72
healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8080/health/live || exit 1"] interval: 30s - Network accessline 73
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/health/live || exit 1"] - Network accessline 75
timeout: 3s retries: 3 # Note: CMD-SHELL requires a shell + wget in the image. Use a non-chiseled - Network accessline 76
retries: 3 # Note: CMD-SHELL requires a shell + wget in the image. Use a non-chiseled # variant for this, or better: let Kubernetes httpGet probes do it — - Network accessline 77
# Note: CMD-SHELL requires a shell + wget in the image. Use a non-chiseled
skills/error-handling/SKILL.md
- Network accessline 101
Title = "An unexpected error occurred", Status = StatusCodes.Status500InternalServerError, Type = "https://tools.ietf.org/html/rfc9110#section-15.6.1" - Network accessline 102
Status = StatusCodes.Status500InternalServerError, Type = "https://tools.ietf.org/html/rfc9110#section-15.6.1" }; - Network accessline 103
Type = "https://tools.ietf.org/html/rfc9110#section-15.6.1"
skills/httpclient-factory/SKILL.md
- Network accessline 28
builder.Services.AddHttpClient("github", client => { client.BaseAddress = new Uri("https://api.github.com/"); - Network accessline 29
{ client.BaseAddress = new Uri("https://api.github.com/"); client.DefaultRequestHeaders.UserAgent.ParseAdd("MyApp/1.0"); - Network accessline 30
client.BaseAddress = new Uri("https://api.github.com/"); - Network accessline 53
builder.Services.AddHttpClient("payments", client => { client.BaseAddress = new Uri("https://api.payments.example.com/"); - Network accessline 54
{ client.BaseAddress = new Uri("https://api.payments.example.com/"); }) - Network accessline 55
client.BaseAddress = new Uri("https://api.payments.example.com/"); - Network accessline 173
// In test var handler = new MockHttpHandler(HttpStatusCode.OK, """{"id":1}"""); var client = new HttpClient(handler) { BaseAddress = new Uri("https://api.test/") }; - Network accessline 174
var handler = new MockHttpHandler(HttpStatusCode.OK, """{"id":1}"""); var client = new HttpClient(handler) { BaseAddress = new Uri("https://api.test/") }; var service = new MyService(client); - Network accessline 175
var client = new HttpClient(handler) { BaseAddress = new Uri("https://api.test/") }; - Network accessline 186
{ using var client = new HttpClient(); return await client.GetStringAsync("https://api.example.com/data"); - Network accessline 187
using var client = new HttpClient(); return await client.GetStringAsync("https://api.example.com/data"); } - Network accessline 188
return await client.GetStringAsync("https://api.example.com/data"); - Network accessline 193
{ var client = factory.CreateClient("api"); return await client.GetStringAsync("https://api.example.com/data", ct); - Network accessline 194
var client = factory.CreateClient("api"); return await client.GetStringAsync("https://api.example.com/data", ct); } - Network accessline 195
return await client.GetStringAsync("https://api.example.com/data", ct);
skills/opentelemetry/SKILL.md
- Network accessline 55
The OTLP endpoint defaults to `http://localhost:4317` (gRPC). Override via: - Network accessline 57
OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317 - Network accessline 171
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 - Network accessline 174
Dashboard UI is at `http://localhost:18888`.
skills/resilience/SKILL.md
- Network accessline 29
builder.Services.AddHttpClient<IPaymentGateway, PaymentGatewayClient>(client => { client.BaseAddress = new Uri("https://api.payments.example.com"); - Network accessline 30
{ client.BaseAddress = new Uri("https://api.payments.example.com"); }) - Network accessline 31
client.BaseAddress = new Uri("https://api.payments.example.com"); - Network accessline 47
builder.Services.AddHttpClient<ICatalogService, CatalogServiceClient>(client => { client.BaseAddress = new Uri("https://api.catalog.example.com"); - Network accessline 48
{ client.BaseAddress = new Uri("https://api.catalog.example.com"); }) - Network accessline 49
client.BaseAddress = new Uri("https://api.catalog.example.com");
skills/security-scan/references/scan-layers.md
- Possible obfuscationline 133
[Credential-related source omitted]
skills/serilog/SKILL.md
- Network accessline 107
{ "Name": "Seq", "Args": { "serverUrl": "http://localhost:5341" } - Network accessline 108
"Name": "Seq", "Args": { "serverUrl": "http://localhost:5341" } } - Network accessline 109
"Args": { "serverUrl": "http://localhost:5341" } - Network accessline 182
.WriteTo.OpenTelemetry(options => { options.Endpoint = "http://localhost:4317"; - Network accessline 183
{ options.Endpoint = "http://localhost:4317"; options.Protocol = OtlpProtocol.Grpc; - Network accessline 184
options.Endpoint = "http://localhost:4317"; - Network accessline 275
// BAD — the Serilog.Sinks.Elasticsearch PACKAGE is deprecated // <PackageReference Include="Serilog.Sinks.Elasticsearch" /> .WriteTo.Elasticsearch("http://localhost:9200") - Network accessline 277
.WriteTo.Elasticsearch("http://localhost:9200") - Network accessline 280
// package, which writes ECS-formatted documents to data streams // <PackageReference Include="Elastic.Serilog.Sinks" /> .WriteTo.Elasticsearch([new Uri("https://elastic.example.com:9200")], opts => - Network accessline 281
// <PackageReference Include="Elastic.Serilog.Sinks" /> .WriteTo.Elasticsearch([new Uri("https://elastic.example.com:9200")], opts => opts.DataStream = new DataStreamName("logs", "myapp")) - Network accessline 282
.WriteTo.Elasticsearch([new Uri("https://elastic.example.com:9200")], opts =>
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest .codex/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Native | Path .cursor/rules/dotnet-rules.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/api-versioning/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/api-versioning/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Native | Manifest opencode.json | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.