Use before planning or performing work that requires tests, and when writing, editing, refactoring, or debugging tests anywhere under `tests/**` (unit, integration, or end-to-end); authoring NUnit 4 test classes (`*Test`, `*IntegrationTest`); using…
Use when writing, editing, or reviewing ASP.NET Core Minimal API endpoints, route handlers, route groups, endpoint filters, or API responses; configuring OpenAPI document generation or build-time spec export; implementing endpoint validation or problem…
Use when adding, editing, or reorganizing entries in `CHANGELOG.md`; drafting release notes for Recyclarr; deciding which Keep a Changelog section (Added, Changed, Deprecated, Removed, Fixed, Security) a change belongs under; wording user-facing entries for…
Use when creating, editing, superseding, or reviewing Architecture Decision Records (ADRs) or Product Decision Records (PDRs) under `docs/decisions/` (including `docs/decisions/architecture/` and `docs/decisions/product/`); writing MADR-formatted decision…
Use when weighing whether to extract a shared abstraction, base class, interface, or generic helper versus keeping code duplicated; evaluating DRY tradeoffs across parallel Sonarr and Radarr implementations, Refit or other code-generated API clients,…
Use when writing, editing, or reviewing Mapperly (`Riok.Mapperly`) mapper classes; adding or changing a `[Mapper]`-attributed partial class; configuring `RequiredMappingStrategy`, `[MapProperty]`, `[MapperIgnore]`, or other Mapperly attributes; mapping…
Use when writing, editing, or reviewing C# code that uses System.Reactive (Rx.NET); working with `IObservable`, `IObserver`, `Subject`, `BehaviorSubject`, `ReplaySubject`, or `AsyncSubject`; composing operators like `Select`, `Where`, `Merge`, `Switch`,…