This is a decision tree for .NET concurrency that starts with async/await and only escalates when you have a specific need it can't handle. You get a flowchart covering everything from I/O waits to producer/consumer patterns with Channels to entity management with Akka.NET actors. The philosophy is sound: most problems don't need locks or manual synchronization, and shared mutable state is usually a design smell. What makes this useful is the concrete guidance on when each tool fits. If you're reaching for a SemaphoreSlim or spinning up manual threads, this will probably show you a better abstraction. The anti-patterns section alone is worth reading.
npx skills add https://github.com/aaronontheweb/dotnet-skills --skill csharp-concurrency-patterns