Every weekday a single, opinionated rule for senior C#/.NET engineers using Cursor. Here's the full week in one read — canonical posts live on the Agentic Architect blog.
7 daily senior rules
Rule 20: Source-Generated JSON Serialisation
Sun 16 Aug
Reflection-based System.Text.Json is fine for prototypes. For hot paths and AOT, use JsonSerializable source generation. Cursor never thinks of this on its own — add a rule that flags new DTO classes and asks whether they should be source-generated.
Rule 19: NetArchTest for Boundaries
Sat 15 Aug
Architectural rules belong in tests, not in code review. Encode them as NetArchTest assertions ("no class in Domain references EntityFrameworkCore") and they fail your build instead of your standup. Add the corresponding test whenever a new layer or project is introduced.
Rule 18: WebApplicationFactory for Integration Tests
Fri 14 Aug
In-memory EF Core providers lie. Use WebApplicationFactory with Testcontainers (SQL Server, Postgres) for real integration coverage. Cursor defaults to UseInMemoryDatabase — it passes locally and ships the bug to production. Flag the in-memory provider in test projects.
Rule 17: ConfigureAwait false in Libraries
Thu 13 Aug
Library code (non-ASP.NET) should ConfigureAwait false on every awaited Task. ASP.NET Core code should not. Cursor mixes the two contexts in the same solution. Detect the project type and enforce the right default.
Rule 16: async void Outside Event Handlers
Wed 12 Aug
async void is a deadlock and unhandled-exception trap everywhere except UI event handlers. The AI uses it routinely for "fire and forget" — wrong answer every time. Flag it on sight.
Rule 15: Records for Value Objects, Classes for Entities
Tue 11 Aug
Value objects (Money, Address, Coordinates) should be records. Entities with identity (Order, Customer) should be classes with an Id. Cursor mixes these constantly. A rule that classifies based on the presence or absence of an identity property keeps the distinction honest.
Rule 14: Sealed By Default
Mon 10 Aug
Mark every class sealed unless inheritance is explicitly planned. Stops Cursor inventing accidental inheritance hierarchies "for flexibility." Small but measurable virtual-call perf wins too.
Try one rule before you trust the whole kit
The free arch-core-lite.mdc is one drop-in Cursor rule that ends the morning re-explanation ritual. Install in 60 seconds, see whether Cursor actually remembers your DI lifetimes, and decide for yourself whether the full kit is worth £9.00.
-
Free sample:
arch-core-lite.mdcon GitHub - Full kit (£9.00, one-time): Agentic Architect Kit
- Daily rules feed: https://agentic-architect.dev/blog/
Canonical home for everything in this digest: https://agentic-architect.dev/blog/.
Top comments (0)