Apply when writing or editing C# (.cs) files. Behavioral corrections for error handling, resource management, async patterns, data modeling, type safety, nullability, security defaults, and common antipatterns. Project conventions always override these defaults.
Apply when writing or editing Dart (.dart) files. Behavioral corrections for null safety, async patterns, type system, error handling, and common antipatterns. Project conventions always override these defaults.
Apply when implementing Domain-Driven Design patterns in Python (.py) files. Covers tactical patterns (entities, value objects, aggregates, domain events, repositories), layered architecture with dependency inversion, persistence strategies, validation boundaries, and common DDD anti-patterns. Best suited for projects…
Apply when structuring or restructuring a Python backend by business capability (vertical slices) — laying out a new project, reorganizing a layered codebase, or drawing feature boundaries. Governs top-level layout; for the internals of a complex slice see ddd-architecture-python. Covers directory layout, feature…
Apply when writing or editing Flutter widgets in Dart (.dart) files. Behavioral corrections for widget composition, BuildContext, state management, performance, lifecycle, and common antipatterns. Pairs with dart-coding for language rules. Project conventions always override these defaults.
Forces the minimal working solution — least code, fewest files, no speculative abstraction. Channels a senior dev applying YAGNI: stdlib, native platform features, and existing dependencies over custom code. Three levels: lite (name the lazier option, user picks), full (enforce the ladder), ultra (deletion-first…
Apply when writing or editing PlantUML (.puml, .plantuml, .pu) files or when generating diagrams from text descriptions. Covers diagram type selection, syntax conventions, modern styling, preprocessing, audience-aware abstraction levels, and common anti-patterns. Project conventions always override these defaults.
Apply when writing or editing Python (.py) files. Behavioral corrections for error handling, resource management, async patterns, data modeling, type safety, security defaults, and common antipatterns. Project conventions always override these defaults.
Apply when writing or editing React (.tsx/.jsx) files. Behavioral corrections for hooks, state management, component structure, memoization, security, and common antipatterns. Project conventions always override these defaults.
Apply when designing or implementing REST API endpoints, routes, or controllers. Covers URL conventions, HTTP methods, status codes, error responses, pagination, versioning, authentication, security, caching, file uploads, health checks, and common API antipatterns. Framework-agnostic HTTP-level patterns. Project…
Apply when generating shadcn/ui code — signaled by components.json in the project root and components under components/ui/. Covers the copy-paste component model, Radix UI compound components, theming with CSS variables, Form/DataTable integrations, and CLI conventions. Does NOT cover general React or Tailwind CSS…
Apply when writing or editing Swift (.swift) files. Behavioral corrections for error handling, concurrency, memory management, type safety, protocol-oriented design, security defaults, and common antipatterns. Project conventions always override these defaults.
Apply when writing or editing Tailwind CSS classes in any template or component file. Behavioral corrections for dynamic styling, class composition, responsive design, dark mode, interaction states, accessibility, and common antipatterns. Project conventions always override these defaults.
Apply when writing or editing TypeScript (.ts and .tsx) files — language-level rules; React-specific patterns live in react-coding. Behavioral corrections for error handling, async patterns, type system, module system, security defaults, and common antipatterns. Project conventions always override these defaults.
At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: