
Use when building minimal API endpoints with route groups, filters, or TypedResults.
Use when adopting C# 12/13/14 features — primary constructors, collection expressions, or field keyword.
Use when synchronizing filter models with URL query strings in Blazor data grids.
Use when configuring EF Core event store with discriminator mapping for event sourcing.
Use when registering gRPC client factories and service URLs in the gateway.
Use when designing proto files or implementing gRPC service classes with MediatR.
Use when adding FluentValidation to gRPC requests with Calzolari integration.
Use when building Service Bus session-based listeners as IHostedService.
Use when designing query-side entities with private setters and event-based state updates.
Use when integrating OpenTelemetry for distributed tracing, metrics, or OTLP exporters.
Use when configuring Roslyn analyzers, StyleCop, or EditorConfig for static analysis.
Use when setting up JWT authentication, token generation, or refresh token flows.
Use when implementing retry logic with exponential backoff and jitter.
Use when writing async code, propagating CancellationTokens, or fixing async/await pitfalls.
Use when benchmarking with BenchmarkDotNet or running load/throughput tests.
Use when writing integration tests with WebApplicationFactory, TestContainers, or test fixtures.
Use when preventing XSS, adding CSP headers, or validating file uploads.
Use when writing unit tests with xUnit, NSubstitute/Moq, or FluentAssertions.
Use when performing code review on completed implementation, before merge.
Use when starting feature work that needs isolation from the current workspace, or before executing implementation plans with multiple tasks.
Use when generating supporting artifacts (briefs, service maps) during implementation planning.
Use when creating implementation plans that need mode-specific templates.
Use when applying functional patterns in C# — Result types, railway-oriented programming, or immutability.
Use when implementing error handling with domain exceptions, ProblemDetails, or RpcException mapping.
Use when applying or enforcing C# coding style — namespaces, sealed classes, var usage, XML docs.
Use when choosing partition keys or handling cross-partition queries in Cosmos DB.
Use when implementing batch event processing with BackgroundService and concurrency control.
Use when designing Cosmos DB document entities with partition keys and discriminators.
Use when performing atomic multi-document operations with Cosmos DB TransactionalBatch.
Use when handling API responses with ResponseResult<T> and Switch pattern in the UI.
Use when building REST gateway controllers that delegate to gRPC backend services.
Use when implementing Cosmos DB repository with LINQ queries and FeedIterator pagination.
Use when documenting cross-service event schemas or generating an event registry.
Use when routing Service Bus events by subject to typed MediatR handlers.
Use when implementing IHostedService with ServiceBusSessionProcessor and DLQ handling.
Use when setting up Serilog structured logging with enrichers and Seq sink.
Use when adding gRPC interceptors for exception mapping, culture switching, or claims extraction.
Use when adding NetArchTest architecture tests to enforce dependency rules.
Use when adding health check endpoints, Kubernetes probes, or health check UI.
Use when adding inline sequence validation for idempotent event processing.
Use when performing code review with standards-based checklists and severity ratings.
Use when implementing policy-based authorization with custom requirements or permissions.
Use when encountering any bug, test failure, build error, or unexpected behavior — before proposing fixes or making changes.
Use when implementing query-side event handlers with sequence checking and idempotency.
Use when building Polly v8 resilience pipelines with retry, timeout, or fallback.
Use when implementing MediatR query handlers with pagination, filtering, and DTO mapping.
Use when configuring CORS policies for .NET APIs.
Use when encrypting data at rest with ASP.NET Core Data Protection API.
Use when coordinating changes across multiple microservice repositories.
Use when adding circuit breaker protection against cascading failures.
Use when calling external gRPC services from a processor with retry and client factory.
Use when tracking feature status, managing feature directories, or coordinating multi-service features.
Use when following the Specification-Driven Development lifecycle from plan through ship.
Use when about to claim work is complete, fixed, passing, or ready — before committing, creating PRs, or moving to the next task. Requires running verification commands and confirming output before making any success claims.
Use when receiving code review feedback from CodeRabbit, PR reviewers, or human reviewers — before implementing any suggested changes.
Use when setting up Scalar API documentation for gateway endpoints.
Use when evaluating code against SOLID principles or deciding when to apply or skip them.
Use when configuring JWT auth, authorization policies, or role-based access on gateway endpoints.
Use when checkpointing, wrapping up, or handing off an AI-assisted development session.
Use when generating test data with Bogus fakers, assertion extensions, or test helpers.
Use when implementing or enforcing Clean Architecture with 4-layer separation and dependency inversion.
Use when setting up IConfiguration, Options pattern, appsettings layering, or user secrets.
Use when adding automatic audit trail (CreatedAt, UpdatedBy) via EF Core interceptors.
Use when building composable query criteria with the specification pattern.
Use when managing database transactions, isolation levels, or cross-context coordination.
Use when writing or optimizing Dockerfiles for .NET applications.
Use when creating GitHub Actions CI/CD workflows for .NET build, test, and deployment.
Use when generating changelogs from git history or preparing release notes.
Use when creating Mermaid diagrams for architecture, event flows, or sequence diagrams.
Use when generating developer onboarding documentation or setup guides.
Use when adding background jobs, recurring tasks, or Hangfire scheduled work.
Use when designing or implementing event-sourced aggregate roots for a command microservice.
Use when designing domain events with Event<TData> hierarchy for event sourcing.
Use when configuring API response formats, custom formatters, or Accept header handling.
Use when building controller-based REST APIs with action results, model binding, or MediatR integration.
Use when adding API versioning or managing multiple API versions in a .NET project.
Use when structuring a modular monolith with module isolation and inter-module communication.
Use when setting up OpenAPI spec generation or Scalar API documentation UI.
Use when adding caching to .NET APIs or optimizing response times with distributed cache, output cache, or ETags.
Use when adding real-time communication with SignalR hubs, WebSocket connections, or push notifications.
Use when configuring Scalar API documentation UI for a .NET project.
Use when adding rate limiting or throttling to .NET API endpoints.
Use when adding multi-tenant support with tenant isolation, per-tenant databases, or query filters.
Use when implementing Vertical Slice Architecture with feature folders and co-located code.
Use when modeling domain logic with aggregates, value objects, domain events, or bounded contexts.
Use when applying modern C# idioms — records, pattern matching, primary constructors, collection expressions.
Use when implementing CQRS with separate read/write models and MediatR pipeline behaviors.
Use when designing gRPC services, proto files, or adding gRPC-Web or JSON transcoding.
Use when registering services, choosing lifetimes, or implementing DI patterns like decorator or keyed services.
Use when designing CQRS request/response contracts with FluentValidation and Result types.
Use when selecting or implementing design patterns in C# — factory, builder, strategy, decorator, or mediator.
Use when choosing between architecture patterns (VSA, Clean Architecture, DDD, Modular Monolith, Microservices) for a new project.
Use when dispatching domain events via MediatR notifications with multiple handlers.
Use when creating a new CQRS query with handler, response DTO, and pagination support.
Use when adding cross-cutting MediatR pipeline behaviors for validation, logging, or transactions.
Use when configuring EF Core DbContext, entity configuration, or connection resiliency.
Use when creating a new CQRS command with handler and FluentValidation validator.
Use when creating, applying, or managing EF Core database migrations.
Use when implementing MediatR request handlers, notification handlers, or command/query dispatch.
Use when writing EF Core queries — LINQ, raw SQL, compiled queries, or fixing N+1 patterns.
Use when implementing the repository pattern with Unit of Work or specification pattern.
Use when setting up .NET Aspire for local development orchestration and service discovery.
Use when adding FluentValidation validators, custom rules, or async validation to a .NET project.
Use when documenting system architecture with Mermaid diagrams and service topology.
Use when detecting .NET project type, architecture pattern, or solution structure.
Use when provisioning Azure resources — Service Bus, Cosmos DB, SQL Server — for microservices.
Use when writing tests for event-sourced aggregates with fakers and assertion extensions.
Use when generating or enriching API documentation from OpenAPI specs.
Use when mapping between DTOs and domain objects — manual mapping, LINQ projections, or AutoMapper.
Use when writing Architecture Decision Records to document technical decisions.
Use when implementing file upload/download with Azure Blob Storage or local file system.
Use when writing Kubernetes manifests for .NET microservice deployment.
Use when generating README files from project analysis.
Use when adding feature flags, percentage rollouts, or toggling features at runtime.
Use when implementing email sending with templates, SendGrid, or SES integration.
Use when implementing MediatR command handlers in event-sourced microservices.
Use when creating deployment runbooks, troubleshooting guides, or rollback procedures.
Use when applying MudBlazor theming, dialog patterns, or snackbar integration.
Use when building MudBlazor data grids, dialogs, or forms for the control panel.
Use when evolving event schemas, adding fields, or migrating event data versions.
Use when implementing reliable event publishing with the outbox pattern and Service Bus.
Use when creating typed HttpClient wrappers for control panel API calls.
Use when writing read-optimized queries with Dapper alongside EF Core.
Use when creating RESTful API controllers with MediatR dispatch and ProblemDetails error responses.