project-setup

A technology-choice guide for .NET projects covering databases, authentication, caching, messaging, monitoring, and resilience. It recommends default options and explains the trade-offs behind them.

In plain words
What is it for?
Use it when selecting or reviewing a .NET project’s database, authentication, cache, messaging, monitoring, or resilience tools.
Why use it?
It helps teams choose a starting technology stack consistently instead of making each decision from scratch. The recommendations favor built-in .NET features and account for dependencies and licensing.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/codewithmukesh/dotnet-claude-kit/project-setup
Any agent
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup
Clone the repo
git clone --depth 1 https://github.com/codewithmukesh/dotnet-claude-kit

Made for: Claude Code, Codex.

Per session 101 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,088 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00101 $0.01088
Opus 5 $0.00051 $0.00544
Sonnet 5 $0.00020 $0.00218
Haiku 4.5 $0.00010 $0.00109

Measured 2d ago against content hash fd6603979410, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

project-setup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/project-setup/SKILL.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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.mddotnet-init (interactive flow, architecture questionnaire, CLAUDE.md generation)
  • Assessing an existing codebasehealth-check (the canonical 8-dimension graded assessment)
  • EF Core schema, NuGet, or .NET version migrationsmigrate
  • Choosing an architecturearchitecture-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-partyHybridCache 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.
  4. Add messaging later, not never — Most projects don't need a message bus on day one. Default to "None (add later)" and reach for Wolverine when async workflows actually appear.

Patterns

Tech-Stack Dimensions and Defaults

Dimension Options Default Why
Database PostgreSQL, SQL Server, SQLite PostgreSQL Open source, best EF Core provider outside SQL Server, first-class Testcontainers support
Auth JWT Bearer, OIDC (Keycloak/Auth0), None JWT Bearer Simplest secure default for APIs; move to OIDC when an external IdP exists
Caching HybridCache, Redis, None HybridCache Built-in, stampede protection, L1+L2 — add Redis only as its L2 backend
Messaging Wolverine (RabbitMQ), MassTransit, None None (add later) Premature messaging adds ops burden; Wolverine (MIT) when needed
Observability Serilog + OpenTelemetry, Basic logging Serilog + OTEL Structured logs + traces from day one are cheap; retrofitting is not
Resilience Polly v8 pipelines, Basic retry Polly v8 AddStandardResilienceHandler() is one line for production-grade defaults
API docs Built-in OpenAPI + Scalar OpenAPI + Scalar Framework-maintained spec generation; Scalar replaces Swagger UI
Testing xUnit v3 + Testcontainers xUnit v3 + Testcontainers Real databases in tests; in-memory providers hide real bugs

Read the full file on GitHub · 82 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 82 lines · 101 tokens per session scan A fd6603979410

Subscribe to this mod's changes

project-setup is a skill published in the GitHub repository codewithmukesh/dotnet-claude-kit (689 stars, last pushed 26d ago), licensed MIT. It adds 101 tokens to every session and 1,088 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens