angularRules for Angular 22 and 21 code in an existing app with an ASP.NET Core backend, as a companion to the official angular-developer skill. Covers the version gate, zone.js and NgModule apps, outdated APIs, service scope, httpResource reads and HttpClient writes, subscription cleanup and double submit
aspnetcore-openapiOpenAPI documents and API versions for ASP.NET Core 10 APIs. Covers the built-in generator (Microsoft.AspNetCore.OpenApi), response metadata for client generators, Scalar and Swagger UI, transformers on Microsoft.OpenApi 2.x, the build-time document in the repository, versioning with Asp.Versioning
aspnetcoreHost-level .NET code for ASP.NET Core 10 and worker services. Covers the Generic Host, DI lifetimes, options, middleware order, minimal API endpoints, ProblemDetails, typed HTTP clients with resilience, health checks, background services, and the wiring of CORS, rate limits, and authentication. Use
csharpC# code and project conventions for .NET 10 and C# 14, with a reference for .NET 11 and C# 15. Covers nullability, records, pattern matching, async and cancellation, disposal, exceptions, TimeProvider, collections and LINQ, naming, Directory.Build.props, Central Package Management, and global.json.
dotnet-analyzersCode quality tools for .NET and the agent loop that uses them. Covers SDK analyzers (AnalysisLevel), EnforceCodeStyleInBuild, warnings as errors, Roslynator, Meziantou, VS Threading analyzers, BannedApiAnalyzers, .editorconfig, Directory.Build.props, dotnet format, and SARIF. Use when C# code must b
dotnet-observabilityLogs, traces, and metrics in .NET code with ILogger, LoggerMessage, OpenTelemetry, and Azure Monitor (Application Insights). Use when code or a review touches ILogger, log levels, message templates, LoggerMessage, BeginScope, personal data or secrets in logs, log redaction, ActivitySource and spans,
dotnet-testing.NET test code and test project setup with MSTest 4 (MSTest.Sdk, Microsoft.Testing.Platform), FluentAssertions 7.2.2 or AwesomeAssertions 9, NSubstitute, hand-written fakes, FakeTimeProvider, WebApplicationFactory, Testcontainers 4, and Respawn. Covers what to test, test names, data rows, equivalenc
efcoreData access code with Entity Framework Core 10 on SQL Server or PostgreSQL. Use when code or a review touches DbContext, DbSet, LINQ queries, Include, SaveChanges, ExecuteUpdate, raw SQL through EF, transactions, concurrency tokens, value objects, query filters, interceptors, migrations (dotnet ef,
elasticsearchSearch code with Elasticsearch 9 and the .NET client Elastic.Clients.Elasticsearch 9. Use when code or a review touches ElasticsearchClient, an index mapping, aliases, a reindex, bulk indexing, the sync from the database to a search index, search queries, filters, paging, point in time, search_after
fluentvalidationValidators with FluentValidation 12 in .NET code. Covers rules, cascade mode, error codes, child and collection validators, async rules, DI registration, the call from a minimal API endpoint filter, a controller, or a worker, the error response with stable codes, and validator tests. Use when code o
mailkitOutgoing mail code with MailKit 4 and MimeKit 4 in .NET. Use when code or a review sends email over SMTP, for example MailKit SmtpClient, MimeMessage, BodyBuilder, SecureSocketOptions, SMTP settings and the SMTP password, a mail outbox or a background mail sender, retries after a relay failure, mail
migrate-fluentassertionsMigration of a .NET test project from FluentAssertions (version 5, 6, or 7) to AwesomeAssertions 9, step by step, with a build, a test run, and an assertion count after each step. A person starts it, because it changes packages. Use when the user asks to replace FluentAssertions with AwesomeAssertio
postgresqlPostgreSQL engine rules and SQL text for .NET services. Use when code or a review touches SQL for PostgreSQL (a .sql script, FromSql, SqlQuery, ExecuteSql, migrationBuilder.Sql, Dapper, or plain Npgsql), column types, keys, indexes, EXPLAIN, isolation levels, row locks, a queue table with SKIP LOCKE
puppeteersharpHTML to PDF and page screenshots in .NET with PuppeteerSharp and headless Chrome. Use when code or a review renders an invoice, a report, or another HTML page to PDF, or touches PuppeteerSharp, Puppeteer.LaunchAsync, BrowserFetcher, chrome-headless-shell, PdfDataAsync, SetContentAsync, GoToAsync, --
rabbitmqMessaging code on RabbitMQ 4.3 and 4.4 with RabbitMQ.Client 7, and the messaging principles that all message flows share (at-least-once delivery, idempotent consumers, outbox, contracts, names, dead letters). Use when code or a review touches a broker, an exchange, a queue, a routing key, a publishe
redisCaching and Redis or Valkey code in .NET with HybridCache and StackExchange.Redis 3. Use when code or a review touches a cache (HybridCache, IDistributedCache, IMemoryCache, GetOrCreateAsync, cache keys, TTLs, invalidation, tags), AddStackExchangeRedisCache, IConnectionMultiplexer, Redis or Valkey k
secure-codingSecurity rules for writing and reviewing code in the .NET 10, ASP.NET Core, EF Core, Angular and AngularJS stack, with its integrations, supply chain, containers and Kubernetes config. Covers authentication, authorization and tenant isolation, injection, deserialization, SSRF, file upload, secrets,
sqlserverSQL Server and Azure SQL engine rules and T-SQL for .NET services. Use when code or a review touches T-SQL (a .sql script, a stored procedure, FromSql, SqlQuery, ExecuteSql, migrationBuilder.Sql, Dapper, or SqlClient code), column types, keys, indexes, isolation levels, RCSI, optimized locking, lock
wolverineMessaging code with Wolverine 6 (WolverineFx) in .NET 9 and 10 services. Use when code or a review touches UseWolverine, message handlers, IMessageBus, InvokeAsync, SendAsync, PublishAsync, cascading messages, the durable outbox and inbox on EF Core with PostgreSQL or SQL Server, AutoApplyTransactio