project-setup · codewithmukesh — Claude Code skill: what it does, how to install
Recommends .NET tech stack defaults for databases, auth, caching, and messaging. Helps pick stack defaults or review dependencies before writing code.
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a claude-codeWhat project-setup does
The skill acts as an architectural advisor for .NET backend defaults. It suggests PostgreSQL for EF Core, JWT Bearer for API auth, native HybridCache, Serilog with OpenTelemetry, Polly v8 resilience pipelines, native OpenAPI with Scalar, and xUnit v3 with Testcontainers. For messaging, it deliberately recommends none on day one, reaching for Wolverine only when async workflows appear. The kit strictly avoids commercial licenses, replacing paid versions of MediatR or MassTransit with MIT alternatives.
This skill handles only recommendations and trade-off rationales. It does not scaffold code or evaluate existing repositories. It routes CLAUDE.md generation to dotnet-init, codebase assessment to health-check, and database or package upgrades to migrate.
What it helps with
- choose database, auth, and cache defaults for a .NET project
- replace commercialized .NET libraries with MIT alternatives
- configure observability via Serilog and OpenTelemetry from start
- defer messaging infrastructure until async workflows appear
Example prompts for the agent
- Which database and caching solution should I use for a new .NET API?
- Help me pick a tech stack for a .NET project
- What should I use for messaging and resilience in .NET?
How to install project-setup
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a claude-code2Manually: put the files in place
~/.claude/skills/project-setup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/project-setup/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a codex2Manually: put the files in place
.agents/skills/project-setup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a cursor2Manually: put the files in place
.cursor/skills/project-setup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install codewithmukesh/dotnet-claude-kit project-setup2Manually: put the files in place
.github/skills/project-setup/SKILL.md1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a gemini-cli2Platform CLI
gemini skills install https://github.com/codewithmukesh/dotnet-claude-kit --path skills/project-setupManually: put the files in place
.devin/skills/project-setup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about project-setup
How to install project-setup in Claude Code?
Run npx skills add codewithmukesh/dotnet-claude-kit --skill project-setup -a claude-code in your terminal.
What does project-setup do?
It advises on .NET technology choices, providing ready defaults for databases, authentication, caching, resilience, and logging along with the trade-offs behind each pick.
Which MIT alternatives does project-setup recommend?
The skill avoids commercialized releases like MediatR v13+, MassTransit v9+, and FluentAssertions v8+. It recommends MIT alternatives: Mediator, Wolverine, and standard xUnit assertions.
Source text
SKILL.md · MIT
--- name: project-setup description: > 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. --- # 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. 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 | Once dimensions are chosen, `dotnet-init` bakes them into the generated CLAUDE.md, and each choice maps to a skill to load when working in that area (`ef-core`, `authentication`, `caching`, `messaging`, `serilog`, `opentelemetry`, `resilience`, `openapi`, `scalar`, `testing`). ## Anti-patterns ### Prescribing a Stack Without Asking ``` # BAD — assuming the kit defaults apply everywhere "You should use PostgreSQL and Wolverine." # The team runs SQL Server enterprise-wide and has zero async workflows. # GOOD — default + trade-off + question "Kit default is PostgreSQL (best OSS EF provider). Any organizational constraint — existing SQL Server licenses, DBA support — that should override it?" ``` ### Re-Running Workflows This Skill Doesn't Own ``` # BAD — improvising a health grading or init flow from this skill "Let me grade your codebase across 5 categories..." # That grading conflicts with the canonical one. # GOOD — route to the owner Init/CLAUDE.md → dotnet-init | Assessment → health-check | Upgrades → migrate ``` ## Decision Guide | Scenario | Route to | |----------|----------| | "Set up this project for Claude Code" | `dotnet-init` | | "Which database/auth/caching should I use?" | This skill — table above | | "How healthy is this codebase?" | `health-check` | | "Upgrade to .NET 10" / "update packages" | `migrate` | | "Which architecture fits?" | `architecture-advisor` | | Stack chosen, ready to build | `scaffold` for the first feature |
© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit
Similar skills
Everything for Backend and APIs →project-setup by other authors comes first.