Skill · vue/vue-3-5 · v1.0.0 · MIT
Vue 3.5 Composition and Reactivity
Current Vue 3.5 composition API, reactivity and component contracts, and the Vue 2 and early Vue 3 habits that silently break them.
Teaches an agent the Vue 3.5 APIs as they behave in vue 3.5.44: reactive props destructure and why a destructured prop passed to a function or composable loses reactivity, composables that take MaybeRefOrGetter and read it with toValue() inside an effect, watch semantics (shallow refs, numeric deep, once, pause/resume, onWatcherCleanup and its synchronous-only rule, cleanup when an effectScope stops), defineModel (local mode without v-model, modifiers and get/set transforms, factory defaults, never mutating an array or object model in place), declared emits and listener fallthrough, $attrs, useTemplateRef, defineExpose, useId with app.config.idPrefix for SSR-stable ids, data-allow-mismatch, provide/inject with typed keys, and how to test all of it with Vitest and @vue/test-utils. Every behaviour was run against vue 3.5.44.
- Frontend
- Migration
- Testing
- build
- maintain
- test
- vue
- typescript
- javascript
- vite
- vitest
uplift
No runs exist for this digest.
Not measured for this digest.
Untested is not the same as useless: nobody has measured it yet. Proof comes from A/B runs on hidden tests:
npx sigil prove catalog/skills/vue/vue-3-5 --suite <suite> --runs 6trust level · submitted
- in the catalog: met
- structure check: not met
- static scan, no high findings: not met
- canary sandbox passed: not met
- maintainer approved: not met
canary sandbox
Not run for this digest.
static scan
Not run for this digest.
compatibility · targeted, compiled and evaluated are separate claims
| agent | targeted by author | compiled | evaluated in the lab | notes |
|---|---|---|---|---|
| Claude Code | targeted: yes | no record for compiled | no record for evaluated | |
| Codex | targeted: yes | no record for compiled | no record for evaluated | |
| Cursor | targeted: yes | no record for compiled | no record for evaluated | |
| GitHub Copilot | targeted: yes | no record for compiled | no record for evaluated | |
| Gemini CLI | targeted: yes | no record for compiled | no record for evaluated | |
| OpenCode | targeted: yes | no record for compiled | no record for evaluated |
declared permissions
- network
- none
- shell
- npm ls, vitest, vue-tsc, rg
- filesystem
- write
- env
- none
Undeclared access is a finding in the scan and a tripwire in the canary.
source
- path
- catalog/skills/vue/vue-3-5
- authors
- dgesteves
- entry
- SKILL.md (agent-skill)
- registry
- 2026-11-02 · 5cb851d
install
$ npx sigil add vue/vue-3-5 --agent claude-codeNo compile record for Claude Code on this digest. Install never runs capability scripts, and refuses on any digest mismatch.
known limitations
- Written and verified against vue 3.5.44 (npm latest on 2026-11-01). Vue 3.6 (Vapor mode, alien-signals reactivity) is a release candidate and is not covered.
- Nuxt 4, Pinia and Vue Router are out of scope beyond using composables inside an effectScope; their data-fetching and store APIs have their own rules.
- The proof suite runs in jsdom with @vue/test-utils, so it measures behaviour, hydration warnings and SSR markup but not layout, transitions or real browser focus.
- The Vue 2 migration notes cover the behaviour changes that fail silently in components; the @vue/compat build and its per-feature flags are not taught.
- Type-level guidance (generic components, defineSlots typing) is brief; run vue-tsc for the final word on types.