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

Astro 6

v1.0.0

Astro 6 with Server Islands, the Content Layer, Actions, Sessions and astro:env. Catches the Astro 4/5 leftovers that pre-Oct-2024 LLMs still emit into a v6 project.

  • 48 anti-patterns with BAD/CORRECT pairs, 10 rules, 5 skills, reviewer agent
  • /astro-migrate-to-content-layer -- legacy collections to the Content Layer API
  • /astro-validate -- Astro 4/5 pattern detector

Expo SDK 55

v1.0.0

Expo SDK 55 on React Native 0.83 and React 19.2: New Architecture only, Expo Router 55, Reanimated 4 with react-native-worklets, FlashList 2.

  • 45 anti-patterns. Catches the Camera legacy export, NavigationContainer inside Router, useAnimatedGestureHandler, AsyncStorage for tokens, expo-permissions, expo-av
  • /expo-migrate-from-rn-cli -- bare React Native CLI project to Expo
  • /expo-validate -- SDK 51-54 leftover detector

Hono v4

v1.0.0

Hono 4.x for TypeScript edge runtimes, pinned to hono ^4.12.19. Leads with the v4 APIs pre-2025 LLMs miss, such as c.json() always returning TypedResponse.

  • 50+ regressions. Catches Express leakage (res.json, req.params, bodyParser), removed v3 APIs (c.req.cookie, app.fire, c.stream), and the missing import type on hc<AppType> that bloats RPC bundles
  • /hono-rpc-setup -- typed client without the inference traps
  • /hono-validate -- v3-era and Express-pattern detector

React Router 7

v1.0.0

React Router 7 Framework Mode, formerly Remix. Catches the Remix v2 and RR v6 leftovers that pre-Oct-2024 LLMs still produce in a v7 project.

  • 45 anti-patterns with BAD/CORRECT pairs, 10 rules, 5 skills, reviewer agent
  • /rr7-migrate-from-remix -- Remix v2 project to RR7 Framework Mode
  • /rr7-validate -- Remix v2 and RR v6 pattern detector

SvelteKit 2 / Svelte 5

v1.0.0

SvelteKit 2 with Svelte 5 Runes. Leads with the runes an LLM trained on Svelte 4 does not know, the snippets-replace-slots model, and the SvelteKit 2 no-throw error and redirect API.

  • 40 anti-patterns. Catches export let, on:click directives, createEventDispatcher, <slot>, throw redirect, cookies.set without path, $app/stores after 2.12
  • /sveltekit-migrate-to-runes -- Svelte 4 components to runes
  • /sveltekit-validate -- Svelte 4 and SvelteKit 1 pattern detector