AI Skill StudioAI Skill Studio
Skills
Presets:

Target Standard & File Format

AI Agent Rules & Skills
Context Shields & Privacy (Ignore Files)
Integrations & Machine Documentation
AI Governance & Multi-Agent Planning Suite

Cursor Rule Scope

.cursor/rules/*.mdc

Scopes rule to matching files. Use **/* for global workspace scope.

When ON, Cursor injects this rule in every generation context.

Identity & Activation Rules

3 chips
Scoped domain keywords evaluated in real time
api-routescode-auditsrefactoring
Suggested Chips:

Technology Stack Context

Engineering Philosophy

Flexible & Adaptable

Architectural & Code Quality Conventions

Less rigid & configurable

Agent Behavioral Guardrails

Select active rules
Security & Trust Boundaries
Always included
  • Untrusted Content Is Data
  • Encoded Payloads
  • Least-Privilege File Access
  • Confirm Irreversible Actions
  • Secret Handling
  • Validation Failures
  • Conflicting Requests

Step-by-Step Workflow Procedures

.NET 8 & C# 12 Cursor Rules (.mdc) | Clean Architecture & Minimal APIs

Generate .NET 8 and C# 12 Cursor rules enforcing Minimal APIs, primary constructors, file-scoped namespaces, and EF Core 8 query optimizations. C# 12 and .NET 8 introduce primary constructors, collection expressions ([1, 2, 3]), frozen collections, and lightweight Minimal APIs. Outdated LLMs continually generate verbose 2018-era boilerplate with nested namespaces, Startup.cs classes, and unindexed EF Core queries.

Target Path
.cursor/rules/csharp-dotnet-8.mdc
Execution Scope
Glob pattern match
Specification Format
Frontmatter MDC (.mdc)
AI Tool Support
Cursor
02 / WHY IT HELPS

What this file changes for .NET 8 & C# 12 Minimal APIs

Without it

C# 12 and .NET 8 introduce primary constructors, collection expressions ([1, 2, 3]), frozen collections, and lightweight Minimal APIs. Outdated LLMs continually generate verbose 2018-era boilerplate with nested namespaces, Startup.cs classes, and unindexed EF Core queries.

What the file tells the agent
Use modern C# 12 features: primary constructors, collection expressions, file-scoped namespaces, and nullable reference types (#nullable enable).
Structure lightweight microservices with ASP.NET Core Minimal APIs using typed route groups and TypedResults return values.
Enforce AsNoTracking() on read-only EF Core queries to eliminate memory overhead from change trackers.
Validate request payloads using FluentValidation or MiniValidation before executing business logic.
Use IHttpClientFactory with typed resilience pipelines (Polly) for outbound HTTP calls.
03 / CODE PATTERNS

.NET 8 & C# 12 Minimal APIs: code to avoid and code to write instead

Avoid
// Discouraged: Nested namespaces, missing AsNoTracking, untyped object returns
namespace App.Controllers
{
    public class UsersController : Controller
    {
        [HttpGet]
        public IActionResult GetUser(Guid id)
        {
            var user = _context.Users.Find(id); // Untracked query tracking all state!
            return Ok(user);
        }
    }
}
Write instead
namespace App.Features.Users;

using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.EntityFrameworkCore;

public record CreateUserRequest(string Email, string FullName);
public record UserDto(Guid Id, string Email, string FullName);

public static class UserEndpoints
{
    public static RouteGroupBuilder MapUserEndpoints(this RouteGroupBuilder group)
    {
        group.MapGet("/{id:guid}", async Task<Results<Ok<UserDto>, NotFound>> (Guid id, AppDbContext db) =>
        {
            var user = await db.Users
                .AsNoTracking()
                .Where(u => u.Id == id)
                .Select(u => new UserDto(u.Id, u.Email, u.FullName))
                .FirstOrDefaultAsync();

            return user is not null ? TypedResults.Ok(user) : TypedResults.NotFound();
        });

        return group;
    }
}
04 / REPOSITORY PLACEMENT & 3-STEP TERMINAL INSTALLATION

How to Install .NET 8 & C# 12 Minimal APIs Cursor Rules (.mdc) via Terminal

1

Step 1: Open Project Directory & Verify Target Placement

Open your terminal and navigate to your project root folder where the .cursor/rules/csharp-dotnet-8.mdc file will reside. Ensure the file is placed at the exact path below relative to your project root so the AI engine automatically loads it:

.cursor/rules/csharp-dotnet-8.mdc
2

Step 2: Fetch Rule File via Terminal Command

Run curl, PowerShell, or wget to stream the rule directly from the DevScratchpad raw API endpoint and write it to .cursor/rules/csharp-dotnet-8.mdc:

Terminal One-Liner Install

Run directly in your project root to stream and write this rule file with one command.

Raw API Stream
$mkdir -p ".cursor/rules" && curl -fsSL "https://www.devscratchpad.tech/api/raw/cursor-rules/csharp-dotnet-8" -o ".cursor/rules/csharp-dotnet-8.mdc"
3

Step 3: Check that Cursor uses it

Cursor picks up rules in .cursor/rules/ automatically. This one attaches when files matching its globs are in the request, or when you @-mention it.

05 / ROUTE DIRECTORY & CROSS-TOOLING
Format Pillar Hub

Cursor rules generator: .cursor/rules/*.mdc for your stack

Cursor Rules (.mdc): how it works, where the file goes, and every Cursor Rules preset.

/cursor-rules Directory
06 / RELATED DEVELOPER TOOLS

Tools for .NET 8 & C# 12 Minimal APIs work

Browser-based utilities to test, format and inspect the code your AI tool writes. Nothing you paste is uploaded.

View all 28 tools

Live Repository & Schema Ingestion

Inspect any public or private GitHub repository, or paste SQL DDL and Prisma models directly in AI Skill Studio to auto-generate authentic rules. Zero server transmission.

Launch AI Skill Studio

Migrating from Legacy .cursorrules or CLAUDE.md?

Use the free, in-browser converter to turn one long rules file into Cursor .mdc, Claude SKILL.md or Windsurf rules.

Convert Rules Free
07 / FREQUENTLY ASKED QUESTIONS

Technical FAQ: .NET 8 & C# 12 Minimal APIs AI Rulebooks

Does this rulebook support both Minimal APIs and traditional Controllers?

Yes, though it prioritizes modern .NET 8 Minimal APIs with typed results for reduced overhead and cleaner unit testing.

Why is AsNoTracking required for EF Core reads?

AsNoTracking prevents EF Core from allocating memory for entity snapshot tracking on queries that do not modify state.