RoninForge / Cursor plugins

Cursor plugins

Framework-specific plugins for Cursor: verified rule packs, migration skills, and anti-pattern detection, so the model generates code that works with current framework versions instead of the version it was trained on.

Status: stable, fixes only. These plugins are maintained but no new ones are planned. They are kept here so their install instructions and repository links keep resolving. Active work is on the Claude Code tools and free web tools.

Tailwind v4

v1.0.2

Prevents v3 hallucinations. 5 rule files, migration skill, validation skill, and a review subagent.

  • Anti-pattern detection for 12 common AI mistakes
  • /tw-migrate -- v3 to v4 project migration
  • /tw-validate -- version mixing detector

Django

v1.0.2

Django 5.x + DRF patterns. N+1 query prevention, model scaffolding, settings management, and 14 anti-pattern rules.

  • N+1 query detection as a first-class rule
  • /django-model -- full vertical slice scaffold
  • /django-validate -- project anti-pattern audit

Rails 8

v1.0.2

Solid Stack, Hotwire, params.expect, built-in auth, Kamal 2. Stops Cursor from generating Rails 7 patterns.

  • Hotwire decision tree: Frames vs Streams vs Stimulus
  • /rails-auth -- built-in auth, no Devise
  • /rails-validate -- Rails 7 pattern detector

FastAPI

v1.0.2

Pydantic v2 migration, async event loop safety, SQLAlchemy patterns, and 13 anti-pattern rules for FastAPI.

  • Complete Pydantic v1-to-v2 migration rules
  • /fastapi-endpoint -- async CRUD scaffold
  • /fastapi-validate -- v1 + async audit

Next.js 16

v2.0.0

Cache Components, proxy.ts (renamed from middleware), async-only request APIs, the Data Access Layer pattern, Server Actions with Zod + ownership re-check, three-layer auth. React 19.2.

  • 34 anti-patterns with BAD/CORRECT pairs (10 finely-globbed rules)
  • /nextjs-dal -- scaffold the Data Access Layer
  • /nextjs-migrate-v15-to-v16 -- codemod sequence

Go 1.22-1.24

v1.0.0

log/slog, errors.Is/As + %w wrapping, context-first APIs, http.ServeMux method routing (1.22+), range-over-func iterators (1.23).

  • Catches io/ioutil, interface{}, panic(err), time.After leaks
  • /go-modernize -- older Go to 1.24 migration
  • /go-error-wrap -- %v to %w + errors.Is conversion

Spring Boot 3.x

v1.0.0

jakarta.* imports, constructor injection, SecurityFilterChain, RestClient, records as DTOs, virtual threads, Testcontainers @ServiceConnection.

  • Catches 20 Boot 2-era patterns LLMs still produce
  • /spring-boot-migrate-to-3 -- 2.x to 3.x in 10 steps
  • /spring-boot-testcontainers -- @ServiceConnection wiring

ASP.NET Core 9

v1.0.0

Top-level Program.cs, Minimal APIs with TypedResults, IHttpClientFactory, EF Core AsNoTracking + projection, HybridCache, built-in OpenAPI.

  • Catches Startup.cs, sync-over-async, new HttpClient, Newtonsoft
  • /aspnet-migrate-to-9 -- older .NET to .NET 9
  • /aspnet-testing-setup -- WebApplicationFactory + Testcontainers

Kotlin + Compose

v1.0.0

Kotlin 2.x with the kotlin-compose plugin, StateFlow + collectAsStateWithLifecycle, Hilt, type-safe Navigation, Material 3, Version Catalogs.

  • Catches findViewById, GlobalScope, LiveData, Material 2, !!
  • /compose-migrate-views-to-compose -- per-screen migration
  • /compose-modernize-build -- libs.versions.toml + KSP + BOM

Terraform / OpenTofu

v1.0.0

for_each over count, remote backend + locking, moved/import/removed blocks, ephemeral resources, OpenTofu state encryption, OIDC for CI.

  • Catches 0.0.0.0/0 ingress, unpinned providers, plaintext secrets
  • /terraform-refactor-with-moved -- safe rename + restructure
  • /terraform-migrate-secrets -- HCL to Secrets Manager

Drizzle ORM

v1.0.0

Schema-first design, sql template tag for parameter binding, drizzle-zod pairing, Postgres RLS, Testcontainers transaction-rollback tests. Covers 0.45.x stable + 1.0-rc next.

  • Catches Prisma include/select leakage, removed casing API, SQL injection via execute
  • /drizzle-migrate-to-v1 -- 0.x to 1.0-rc with codemods
  • /drizzle-rls -- Postgres RLS scaffold + isolation tests

Playwright

v1.0.0

Semantic locators (getByRole over CSS), web-first assertions, test.extend fixtures, setup-project + storageState auth, sharded CI with merge-reports.

  • Catches text= selectors, page.$ ElementHandles, waitForTimeout, missing await on assertions
  • /playwright-setup-auth -- per-worker, multi-role, JWT bypass
  • /playwright-visual-regression -- macOS-vs-Linux baseline trap

Laravel 13

v1.0.0

Laravel 13.x on PHP 8.3+. The L11 skeleton (bootstrap/app.php, deleted Kernel.php), L12/L13 deltas (Carbon 3, casts() method, #[Scope], Cache::flexible, automatic eager loading, UUIDv7), Livewire 4 SFC without Volt, Inertia 3.1 deferred props, Pest 4 browser testing.

  • 37 anti-patterns with BAD/CORRECT pairs. Catches Repository pattern, $casts array, scopeXxx, wire:model.lazy, Carbon 2 calls, Volt-for-Livewire-4
  • Anti-Repository wedge with Otwell, Freek, Spatie citations
  • /laravel-migrate-v10-to-v13 -- Kernel.php to bootstrap, $casts to casts()

Vue 3.5 / Nuxt 4

v1.0.0

Vue 3.5.34 + Nuxt 4.4.5. Leads with the Vue 3.5 trio LLMs miss (useTemplateRef, useId, reactive props destructure) and the Nuxt 4 app/ srcDir layout. Pinia 3 setup stores, Vue Router 5, useAsyncData singleton-by-key + shallowRef defaults, server/api with method-suffixed handlers, VueUse 14, Vitest 4.

  • 38 anti-patterns with BAD/CORRECT pairs. Catches Options API in new code, ref(null) template refs, toRefs/withDefaults boilerplate, Vuex, module-scope ref SSR leaks, readBody in GET, store/ vs app/stores/
  • Pinned to Vue 3.5 + Nuxt 4. Canonical Cursor entries pre-date both releases.
  • /vue-nuxt-migrate-to-3-5-and-4 -- pages/components to app/, store/ to stores/, Vuex to Pinia 3