vue-claude-stack — правило для Cursor: настройка и установка
Правило задаёт стиль генерации кода для Vue 3 и Nuxt 3: Composition API, TypeScript и Pinia. Пригодится, чтобы направлять агента по единым правилам проекта.
.cursor/rules/vue-claude-stack.mdcЧто делает vue-claude-stack
Правило для файлов с шаблоном **/* задаёт требования к Vue и Nuxt: использовать Composition API с <script setup lang="ts">, типизированные props и events, а для реактивной логики предпочитать composables. Код на Options API, any и v-html с пользовательским вводом запрещён. Это влияет на весь подход агента к новым компонентам и правкам.
Для Pinia предписаны setup stores и storeToRefs() при деструктуризации состояния. В Nuxt правило направляет на useFetch или useAsyncData, файловую маршрутизацию и серверные обработчики в server/api/. Для тестов указаны Vitest и @vue/test-utils; тесты должны лежать рядом с исходным кодом. Проверьте версию Vue: defineModel() в правиле рассчитан на Vue 3.4+.
В метаданных заданы globs: **/* и alwaysApply: false. Для Cursor файл правила размещают по пути .cursor/rules/vue-claude-stack.mdc.
Какие задачи решает
- направить генерацию компонентов на Composition API
- типизировать props, события и состояние Pinia
- организовать Nuxt-запросы через SSR-совместимые функции
- задать правила для тестов Vue-компонентов
- избегать
v-htmlс пользовательским вводом
Примеры запросов агенту
- Создай компонент Vue с
<script setup lang="ts">и типизированными props. - Добавь setup store Pinia и используй
storeToRefs()для состояния. - Напиши тест рядом с компонентом через Vitest и
@vue/test-utils.
Как установить vue-claude-stack
Вручную: положить файлы
.cursor/rules/vue-claude-stack.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/vue-claude-stack.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/vue-claude-stack.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/vue-claude-stack.mdВручную: положить файлы
.clinerules/vue-claude-stack.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о vue-claude-stack
Как установить vue-claude-stack в Cursor?
Добавьте файл правила по пути .cursor/rules/vue-claude-stack.mdc.
Что делает vue-claude-stack?
Задаёт правила для кода Vue 3 и Nuxt 3: от Composition API и TypeScript до Pinia, маршрутизации и тестов.
Какая версия Vue нужна для defineModel()?
Правило указывает defineModel() для Vue 3.4 и новее.
Исходный текст
vue-claude-stack.mdc · CC0-1.0
---
description: "Complete AI coding setup for Vue 3 & Nuxt 3 — .cursorrules + CLAUDE.md + Copilot instructions + generation skills."
globs: **/*
alwaysApply: false
---
You are an expert Vue 3 and Nuxt 3 developer with deep knowledge of TypeScript, Pinia, VueUse, Tailwind CSS, and the Vue ecosystem.
## Core Principles
- Always use Vue 3 Composition API with `<script setup lang="ts">`
- Never use Options API, mixins, or `this` keyword in setup
- Write TypeScript with strict mode — no `any`
- Follow Vue style guide priority A and B rules
- Prefer composables over utility functions for reactive logic
## Component Rules
- Use `defineProps<T>()` with TypeScript generics for props
- Use `defineEmits<T>()` with typed events
- Use `defineModel()` for v-model bindings (Vue 3.4+)
- Keep templates clean — extract complex logic to computed or composables
- One component per file, filename matches component name in PascalCase
## State Management (Pinia)
- Use setup stores with `defineStore('name', () => { ... })`
- Use `storeToRefs()` when destructuring store state
- Keep stores small and focused — one domain per store
- Never access store state directly in templates, use computed
## Composables
- Prefix with `use` (useAuth, useCart, useSearch)
- Accept `MaybeRef<T>` for flexible inputs
- Return `{ data, error, loading }` pattern for async composables
- Place in `composables/` directory for Nuxt auto-import
## Nuxt Specifics
- Use `useFetch` / `useAsyncData` for data fetching (SSR-compatible)
- Use file-based routing in `pages/`
- Use `definePageMeta()` for route metadata
- Server routes go in `server/api/`
- Use `createError()` for error handling
## TypeScript
- Define interfaces in `types/` directory
- Use `type` over `interface` unless extending
- Use `satisfies` operator for type checking
- No type assertions (`as`) unless absolutely necessary
## Testing
- Vitest + @vue/test-utils
- Test files next to source: `*.test.ts`
- Test behavior, not implementation
- Use `mount()` over `shallowMount()`
## Tailwind CSS
- Use utility classes directly in templates
- Extract repeated patterns to components, not CSS classes
- Use `@apply` sparingly — only in base styles
- Dark mode: use `dark:` variant
## Do NOT
- Generate Options API code
- Use `any` type — use `unknown` and narrow
- Put business logic in components
- Skip TypeScript on any file
- Use `v-html` with user input
- Mutate props
- Use `var` — always `const` or `let`
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules