Frameworki
Vue components
Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
fe-vuevue, nuxt12 regułładowane zawsze: 81 tokenów; przy użyciu: 1070 tokenów; w referencjach na żądanie: 1926 tokenów.
Instalacja
init instaluje ten skill, gdy projekt używa: vue, nuxt. Wybierz agenta, aby zobaczyć, gdzie trafią jego pliki.
npx github:dawidolko/frontend-skills init Ten sposób nie był jeszcze testowany. npx i pnpm dlx są przetestowane; jeśli ten zawiedzie, użyj jednego z nich.
Bez --agents polecenie init rozpoznaje agentów po tym, co projekt już ma, a gdy nie znajdzie żadnego, pyta:
Po czym init rozpoznaje każdego z agentów (17)
| Agent | Rozpoznawany po |
|---|---|
| Claude Code | CLAUDE.md .claude CLAUDE.local.md |
| OpenAI Codex | .codex AGENTS.override.md |
| Cursor | .cursor .cursorrules |
| GitHub Copilot | .github/copilot-instructions.md .github/instructions .github/skills .github/prompts |
| Gemini CLI | GEMINI.md .gemini |
| Antigravity CLI | .agents/rules .agent/rules |
| Devin / Windsurf | .devin .windsurf .windsurfrules |
| OpenCode | opencode.json opencode.jsonc .opencode |
| Cline | .clinerules .cline |
| Zed | .rules .zed |
| JetBrains Junie | .junie |
| Kiro | .kiro |
| Augment | .augment .augment-guidelines |
| Trae | .trae |
| Continue | .continue |
| Amazon Q Developer | .amazonq |
| Aider | .aider.conf.yml CONVENTIONS.md |
Gdzie trafia fe-vue dla: Claude Code
.claude/skills/fe-vue/SKILL.mdskill.claude/skills/fe-vue/references/vue.mdskill.claude/rules/fe-vue.mdplik regułCLAUDE.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
paths:
- "**/*.vue"
- "src/composables/**/*.ts"
- "src/composables/**/*.js"
---
# Vue components (frontend-skills)
Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.claude/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: OpenAI Codex
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
OpenAI Codex nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: Cursor
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskill.cursor/rules/fe-vue.mdcplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
description: Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
globs: **/*.vue, src/composables/**/*.ts, src/composables/**/*.js
alwaysApply: false
---
# Vue components (frontend-skills)
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.agents/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: GitHub Copilot
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskill.github/instructions/fe-vue.instructions.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
applyTo: "**/*.vue,src/composables/**/*.ts,src/composables/**/*.js"
description: "Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code."
---
# Vue components (frontend-skills)
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.agents/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Gemini CLI
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillGEMINI.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Gemini CLI: Gemini CLI was replaced by Antigravity CLI for unpaid tiers on 2026-06-18; choose "antigravity" too if you use it.
Gemini CLI nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: Antigravity CLI
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskill.agents/rules/fe-vue.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
trigger: glob
globs: "**/*.vue, src/composables/**/*.ts, src/composables/**/*.js"
description: "Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code."
---
# Vue components (frontend-skills)
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.agents/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Devin / Windsurf
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskill.devin/rules/fe-vue.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Devin / Windsurf: Devin CLI also reads .cursor/rules; with Cursor chosen too, the CLI sees both rule files of a skill.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
trigger: glob
globs: "**/*.vue,src/composables/**/*.ts,src/composables/**/*.js"
---
# Vue components (frontend-skills)
Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.agents/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: OpenCode
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
OpenCode nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: Cline
.claude/skills/fe-vue/SKILL.mdskill.claude/skills/fe-vue/references/vue.mdskill.clinerules/fe-vue.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Cline: If .clinerules is a single file rather than a folder, Cline rule files are not written; skills still are.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
paths:
- "**/*.vue"
- "src/composables/**/*.ts"
- "src/composables/**/*.js"
---
# Vue components (frontend-skills)
Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.claude/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Zed
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillCLAUDE.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zed: Zed reads only the first instruction file of its list; the block is placed in that file.
Zed nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: JetBrains Junie
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
JetBrains Junie: Junie reads .agents/skills only in a trusted project.
JetBrains Junie nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: Kiro
.kiro/skills/fe-vue/SKILL.mdskill.kiro/skills/fe-vue/references/vue.mdskill.kiro/steering/fe-vue.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
inclusion: fileMatch
fileMatchPattern: ["**/*.vue", "src/composables/**/*.ts", "src/composables/**/*.js"]
---
# Vue components (frontend-skills)
Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code.
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.kiro/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Augment
.agents/skills/fe-vue/SKILL.mdskill.agents/skills/fe-vue/references/vue.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Augment nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-vue dla: Trae
.trae/skills/fe-vue/SKILL.mdskill.trae/skills/fe-vue/references/vue.mdskill.trae/rules/fe-vue.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Trae: Trae reads AGENTS.md only after it is enabled in its settings.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
description: "Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code."
globs: **/*.vue,src/composables/**/*.ts,src/composables/**/*.js
alwaysApply: false
---
# Vue components (frontend-skills)
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.trae/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Continue
.frontend-skills/skills/fe-vue/SKILL.mdskill.frontend-skills/skills/fe-vue/references/vue.mdskill.continue/rules/fe-vue.mdplik reguł
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
name: "Vue components"
description: "Writes and reviews Vue 3.5 single-file components with script setup and the Composition API - keyed lists, props and emits, refs and reactive, pure computeds, watchers with cleanup, navigation links - so they stay reactive, correct and accessible. Use when creating or editing a .vue file or a composable, fixing a value that does not update, or when asked to review Vue code."
globs: ["**/*.vue", "src/composables/**/*.ts", "src/composables/**/*.js"]
alwaysApply: false
---
# Vue components (frontend-skills)
- Key every `v-for` with an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key).
- Never put `v-if` and `v-for` on one element; loop over a computed list (vue/no-v-if-with-v-for).
- Never change a prop; emit, use `defineModel()`, or copy to local state (vue/no-mutating-props).
- In script code read refs and computeds through `.value` (vue/ref-value-in-script).
- Never destructure or reassign a `reactive()` object; use `ref`, `toRefs` or `Object.assign` (vue/no-reactivity-loss).
- Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (`defineProps<{...}>()` or objects with `type`), never a bare name array (vue/detailed-props).
- Name components with two or more words (vue/multi-word-names).
- Navigate with `RouterLink`/`NuxtLink`, not a button that calls `router.push` (vue/link-for-navigation).
- Clicks go on `<button>` or links (a11y/no-click-on-static); every field has a label (a11y/input-label).
- Register composables, `watch` and lifecycle hooks synchronously in setup; clean up what a watcher or `onMounted` starts.
Before larger changes, read the full skill: `.frontend-skills/skills/fe-vue/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-vue dla: Amazon Q Developer
.frontend-skills/skills/fe-vue/SKILL.mdskill.frontend-skills/skills/fe-vue/references/vue.mdskill.amazonq/rules/frontend-skills.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Amazon Q Developer: Amazon Q Developer IDE plugins reach end of support on 2027-04-30; AWS points to Kiro.
Amazon Q Developer nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
### Skills
- `fe-vue` (Vue components): when editing `**/*.vue`, `src/composables/**/*.ts`, `src/composables/**/*.js`, first read `.frontend-skills/skills/fe-vue/SKILL.md`.Gdzie trafia fe-vue dla: Aider
.frontend-skills/skills/fe-vue/SKILL.mdskill.frontend-skills/skills/fe-vue/references/vue.mdskillCONVENTIONS.mdblok instrukcji.aider.conf.ymlkonfiguracja
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Aider nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
### Skills
- `fe-vue` (Vue components): when editing `**/*.vue`, `src/composables/**/*.ts`, `src/composables/**/*.js`, first read `.frontend-skills/skills/fe-vue/SKILL.md`.Jak go używać
Po instalacji agent sam ładuje skill, gdy zadanie pasuje do jego opisu. Możesz też poprosić o niego własnymi słowami, na przykład:
A żeby sprawdzić i poprawić pracę:
- Użyj skilla fe-vue na tym pliku.
- Uruchom audyt front-endu na moich zmianach i popraw wszystko, co poważne.
- Wyjaśnij vue/require-v-for-key i popraw to tutaj.
Reguły, których uczy
vue/require-v-for-keyEvery v-for gives its items a :key from the data; on a template v-for the key goes on the template tag.
vue/no-index-keyA v-for key comes from the item's data, not from the loop index, when the list can change.
vue/no-v-if-with-v-forNever put v-if and v-for on the same element; filter in a computed list or move v-if to a wrapper.
vue/no-mutating-propsA component never changes its props (or objects and arrays inside them); it emits an event or keeps a local copy.
vue/ref-value-in-scriptIn script code, read and compare a ref or computed through .value; the ref object itself is always truthy.
vue/no-reactivity-lossNever destructure or reassign a reactive() object; use toRefs, a ref, or change its properties.
vue/computed-pureA computed getter only derives a value - no async work, no requests and no changes to other state.
vue/detailed-propsDeclare props with their types (an object with type, or a TypeScript type), not as a bare array of names.
vue/multi-word-namesName components with two or more words (TodoItem, not Item); App, pages and layouts are exempt.
vue/link-for-navigationNavigate with RouterLink or NuxtLink, not a button whose click handler only calls router.push or navigateTo.
a11y/no-click-on-staticA click handler belongs on a button or link; a static element with one also needs a role, tabindex and a key handler.
a11y/input-labelEvery form field has a programmatic label (label element, aria-label or aria-labelledby); a placeholder is not a label.
Skrót reguł
Ta część jest kopiowana do zawężonego pliku reguł każdego agenta, więc musi być zrozumiała sama w sobie:
- Key every
v-forwith an id from the item (vue/require-v-for-key), never the loop index for a list that changes (vue/no-index-key). - Never put
v-ifandv-foron one element; loop over a computed list (vue/no-v-if-with-v-for). - Never change a prop; emit, use
defineModel(), or copy to local state (vue/no-mutating-props). - In script code read refs and computeds through
.value(vue/ref-value-in-script). - Never destructure or reassign a
reactive()object; useref,toRefsorObject.assign(vue/no-reactivity-loss). - Computed getters only derive: no async, requests or writes (vue/computed-pure).
- Type props (
defineProps<{...}>()or objects withtype), never a bare name array (vue/detailed-props). - Name components with two or more words (vue/multi-word-names).
- Navigate with
RouterLink/NuxtLink, not a button that callsrouter.push(vue/link-for-navigation). - Clicks go on
<button>or links (a11y/no-click-on-static); every field has a label (a11y/input-label). - Register composables,
watchand lifecycle hooks synchronously in setup; clean up what a watcher oronMountedstarts.
Kroki, które wykonuje agent
- Check the profile: Vue 3.5 (
useId,useTemplateRef,onWatcherCleanup, reactive props destructure, lazy hydration); Nuxt addsfe-nuxt; stores followfe-state. - Write
<script setup lang="ts">; declaredefineProps,defineEmits(typed) anddefineModelfor two-way bindings. Options API code stays Options API unless the task is a migration. - Use
reffor state,computedfor derived values,watchwithonWatcherCleanupor anAbortControllerfor side effects;shallowReffor large data you replace. - Extract reusable logic into
useX()composables incomposables/that take refs or getters and return plain objects of refs. - Use
useId()forid/for/aria-describedby; move focus to the page heading after a route change; bind text with{{ }};v-htmlonly for sanitized HTML (seefe-security). - Images and media: import them or use
@/assetspaths (js/asset-import); icons from the project set (html/project-icons, html/icon-from-set). - Split routes and heavy widgets with
() => import(...)anddefineAsyncComponent.
Jak agent sprawdza swoją pracę
npx github:dawidolko/frontend-skills audit --changedreports missing and index keys,v-ifwithv-for, prop mutation, refs without.value, lost reactivity, impure computeds, untyped props and single-word names.- Run ESLint with
eslint-plugin-vueflat/recommendedandvue-tsc --noEmit; never silence a rule to pass. - Vue DevTools: watch the component tree and the timeline for components that re-render on unrelated changes.
Sprawdzane audytem
Testy statyczne tych reguł działają w audit; to prawdziwa sesja na przykładowym projekcie:
audit: liczby według wagi, każda reguła z pierwszym miejscem, kod wyjścia.Pliki referencyjne
references/vue.md1926 tokenów