[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J4S141DMN2QV0DCCYGSBBE":3,"skill-same:01M6J4S141DMN2QV0DCCYGSBBE":126},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6J4S141DMN2QV0DCCYGSBBE","mk-vue",null,"Vue 3 authoring\u002Freview: components, composables, reactivity, Pinia, Pinia Colada, file routing, forms. Composition API + script setup. Auto-activates on .vue files. Deep review: mk:vue-best-practices.","ngocsangyem\u002FMeowKit","ngocsangyem","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F33769536?v=4","01M6J3FSMJAG9PVQEGRT7AQ9J2","Sang Nguyen","01M6J3FSRTJG0MNP6NV71639RM",16,"MIT","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"mk vue","vue","auto","mk:vue","pinia colada","script","authoring","deep","forms","best-practices","files","review","pinia","Composition","api","file","deep review","routing","setup","components","2026-11-10 10:12:30",false,"---\nname: \"mk-vue\"\ndescription: \"Vue 3 authoring\u002Freview: components, composables, reactivity, Pinia, Pinia Colada, file routing, forms. Composition API + script setup. Auto-activates on .vue files. Deep review: mk:vue-best-practices.\"\n---\n\n# Vue 3\n\nVue 3 patterns — Composition API + `\u003Cscript setup lang=\"ts\">`, Pinia, Pinia\nColada, file-based routing, and performance. Single entrypoint routing to focused references.\n\n> Use `npx chub search vue` for relevant documentation packages within the Context Hub.\n\n## When to Use\n\n**Auto-activate on:** `.vue` files, Vue 3 Composition API, `\u003Cscript setup>`, Pinia stores,\nPinia Colada queries\u002Fmutations, Vue Router file-based routes, composables.\n\n**Explicit:** `the vue skill [concern]`\n\n**Deep best practices:** for a thorough best-practices **review\u002Frecommendations** pass or the\nfull ordered workflow — built-in components (Teleport\u002FSuspense\u002FKeepAlive\u002FTransition),\nanimation techniques, optional features, and the performance pass — use `mk:vue-best-practices`.\nThis skill stays the everyday quick-reference.\n\n**Do NOT invoke for:** deep best-practices review\u002Fworkflow (use `mk:vue-best-practices`),\nTypeScript fundamentals (use `mk:typescript`), React (use `mk:react-patterns`), Angular (use\n`mk:angular`), visual design (use `mk:frontend-design`), testing (use `mk:testing` \u002F `mk:qa`;\nVue test design\u002Freview → `mk:vue-testing-best-practices`).\n\n## Core Rules (always apply)\n\nFollow the repository's established conventions first. When it has no convention, use\nthese defaults; project requirements may override them. Everything else is in the references.\n\n- **`\u003Cscript setup lang=\"ts\">` only** — never Options API, never `defineComponent()` wrapper.\n- **`type` over `interface`** for defining object\u002Fprop shapes; keep types alongside the code.\n- **Arrow functions for methods and callbacks.**\n- **Named exports over default exports — except composables, which use `export default`.**\n- **PascalCase component names, kebab-case file names** (`UserProfile` in\n  `user-profile.vue`); composables are `camelCase` with `use` prefix (`useAuth`).\n- **Name general → specific:** `SearchButtonClear.vue`, not `ClearSearchButton.vue`.\n- **TailwindCSS classes, not manual CSS;** never hard-code colors — use the Tailwind color system.\n- **Comments explain _why_, not _what_.**\n- **`ref()` for primitives, `reactive()` only for complex objects;** `computed()` for derived state.\n- **Never `v-html` with user-provided content** — XSS vector (see `mk:` security rules).\n\n## Data Layer (conditional default)\n\nWhen the project depends on `@pinia\u002Fcolada`, it is the **preferred async\u002Fdata-fetching layer**\n— see `references\u002Fpinia-colada.md`. Otherwise use plain Pinia stores + composables for state.\nPinia stores hold global UI\u002Fapp state; data fetching belongs in Pinia Colada when present.\n\n## When to Read Each Reference\n\nRead one level deep from this file. Read multiple when a task spans topics.\n\n| Task involves                                                          | Read                                   |\n| ---------------------------------------------------------------------- | -------------------------------------- |\n| Components, props\u002Femits, slots, `defineModel`, naming, templates       | `references\u002Fcomponents.md`             |\n| Composables (`use*`), shared reactive logic                            | `references\u002Fcomposables.md`            |\n| `ref`\u002F`reactive`\u002F`computed`\u002F`watch`, `toRefs`, performance             | `references\u002Freactivity-performance.md` |\n| Global state with Pinia setup stores, `storeToRefs`                    | `references\u002Fstate-pinia.md`            |\n| Pinia Colada core: keys, `defineQueryOptions`, `useQuery`, mutations   | `references\u002Fpinia-colada.md`           |\n| Optimistic updates, infinite\u002Fpaginated queries, SSR, cancellation      | `references\u002Fpinia-colada-advanced.md`  |\n| Pinia Colada plugins (retry, delay, auto-refetch, persister, hooks)    | `references\u002Fpinia-colada-plugins.md`   |\n| Direct cache access: `getQueryData`\u002F`setQueryData`\u002F`invalidateQueries` | `references\u002Fpinia-colada-cache.md`     |\n| File-based routing, route groups, params, `definePage`, typed router   | `references\u002Frouting-pages.md`          |\n| Project stack, structure, commands, conventions, docs research         | `references\u002Fproject-standards.md`      |\n| 3.4\u002F3.5 core APIs: `useId`, `nextTick`, flush timing, `watch` once\u002Fdeep, `onWatcherCleanup` | `references\u002Fcore-new-apis.md`          |\n| `\u003Cscript setup>` compiler macros — `defineOptions`, `withDefaults`, generic components       | `references\u002Fscript-setup-macros.md`    |\n| Advanced reactivity: `effectScope`, `customRef`, `triggerRef`, `markRaw`, `shallowReadonly`  | `references\u002Fadvanced-patterns.md`      |\n\n## Gotchas\n\n- **Destructuring `reactive()` loses reactivity** — `const { count } = reactive({ count: 0 })`\n  makes `count` a plain number; keep the reactive object intact, or use `toRefs()`, or `ref()`.\n- **`storeToRefs()` required when destructuring Pinia state** — `const { user } = useAuthStore()`\n  gives a non-reactive snapshot; use `const { user } = storeToRefs(useAuthStore())`. Methods\n  are destructured directly from the store (not through `storeToRefs`).\n- **Parent `ref` access needs `defineExpose()`** — `childRef.value.method()` returns `undefined`\n  unless the child `\u003Cscript setup>` explicitly `defineExpose({ method })`.\n- **Use `:slotted()` not `:deep()` for slotted content** — slot content comes from the parent\n  scope, so `:deep(.child-class)` in a scoped style block does not match it; use `:slotted(.child-class)`.\n- **`watchEffect` cleanup race on fast re-renders** — register cleanup to cancel async work:\n  `watchEffect((onCleanup) => { onCleanup(() => controller.abort()) })`, or a fast prop change\n  starts a second effect before the first resolves and writes stale state.\n- **Pinia store not hydrated in SSR** — calling `useMyStore()` outside a component setup context\n  (e.g. a top-level module) creates an instance disconnected from the SSR app; call stores inside\n  `setup()` or pass the `pinia` instance explicitly: `useMyStore(pinia)`.\n- **Query keys must depend on ALL variables used in the query function** — a key that omits a\n  variable serves stale cached data when that variable changes (Pinia Colada).\n- **Dynamic query keys need a getter, not a plain value** — pass `key: () => [...]` so the key\n  re-evaluates reactively; a plain array snapshot never updates.\n- **Prefer `refresh()` over `refetch()`** — `refresh()` reuses in-flight requests and respects\n  `staleTime`; `refetch()` always forces a new fetch.\n- **Avoid `index.vue` route files** — use a named group like `pages\u002F(home).vue` for a meaningful\n  route name.\n- **Use explicit route param names** — `userId` not `id`, `postSlug` not `slug`, for type-safe,\n  self-documenting routes.\n- **Watching a destructured prop needs a getter** — `const { count } = defineProps()` stays reactive\n  in templates, but `watch(count, ...)` watches a snapshot; use `watch(() => count, ...)`\n  (`references\u002Fcore-new-apis.md`).\n- **`onWatcherCleanup()` must be called synchronously** — invoking it after an `await` throws, since\n  the active-watcher context is gone; use the `onCleanup` callback param for post-await cancellation\n  (`references\u002Fcore-new-apis.md`).\n\n## Anti-Patterns\n\n| Don't                              | Do Instead                       |\n| ---------------------------------- | -------------------------------- |\n| Options API (`data()`, `methods:`) | Composition API `\u003Cscript setup>` |\n| `this.$store` \u002F Vuex               | Pinia with setup store syntax    |\n| Direct store state destructuring   | `storeToRefs(useMyStore())`      |\n| `v-html` with dynamic content      | `v-text` or sanitized rendering  |\n| `reactive()` for primitives        | `ref()` for primitives           |\n| Watchers when computed works       | `computed()` for derived state   |\n| Global event bus                   | `provide\u002Finject` or Pinia        |\n| `defineComponent()` wrapper        | `\u003Cscript setup>` directly        |\n\n## Workflow Integration\n\nAuto-activates during Build when a Vue project is detected (`.vue` files, `vue` in\n`package.json`). Loaded by the `developer` agent alongside `mk:typescript`.","# Vue 3\n\nVue 3 patterns — Composition API + `\u003Cscript setup lang=\"ts\">`, Pinia, Pinia\nColada, file-based routing, and performance. Single entrypoint routing to focused references.\n\n> Use `npx chub search vue` for relevant documentation packages within the Context Hub.\n\n## When to Use\n\n**Auto-activate on:** `.vue` files, Vue 3 Composition API, `\u003Cscript setup>`, Pinia stores,\nPinia Colada queries\u002Fmutations, Vue Router file-based routes, composables.\n\n**Explicit:** `the vue skill [concern]`\n\n**Deep best practices:** for a thorough best-practices **review\u002Frecommendations** pass or the\nfull ordered workflow — built-in components (Teleport\u002FSuspense\u002FKeepAlive\u002FTransition),\nanimation techniques, optional features, and the performance pass — use `mk:vue-best-practices`.\nThis skill stays the everyday quick-reference.\n\n**Do NOT invoke for:** deep best-practices review\u002Fworkflow (use `mk:vue-best-practices`),\nTypeScript fundamentals (use `mk:typescript`), React (use `mk:react-patterns`), Angular (use\n`mk:angular`), visual design (use `mk:frontend-design`), testing (use `mk:testing` \u002F `mk:qa`;\nVue test design\u002Freview → `mk:vue-testing-best-practices`).\n\n## Core Rules (always apply)\n\nFollow the repository's established conventions first. When it has no convention, use\nthese defaults; project requirements may override them. Everything else is in the references.\n\n- **`\u003Cscript setup lang=\"ts\">` only** — never Options API, never `defineComponent()` wrapper.\n- **`type` over `interface`** for defining object\u002Fprop shapes; keep types alongside the code.\n- **Arrow functions for methods and callbacks.**\n- **Named exports over default exports — except composables, which use `export default`.**\n- **PascalCase component names, kebab-case file names** (`UserProfile` in\n  `user-profile.vue`); composables are `camelCase` with `use` prefix (`useAuth`).\n- **Name general → specific:** `SearchButtonClear.vue`, not `ClearSearchButton.vue`.\n- **TailwindCSS classes, not manual CSS;** never hard-code colors — use the Tailwind color system.\n- **Comments explain _why_, not _what_.**\n- **`ref()` for primitives, `reactive()` only for complex objects;** `computed()` for derived state.\n- **Never `v-html` with user-provided content** — XSS vector (see `mk:` security rules).\n\n## Data Layer (conditional default)\n\nWhen the project depends on `@pinia\u002Fcolada`, it is the **preferred async\u002Fdata-fetching layer**\n— see `references\u002Fpinia-colada.md`. Otherwise use plain Pinia stores + composables for state.\nPinia stores hold global UI\u002Fapp state; data fetching belongs in Pinia Colada when present.\n\n## When to Read Each Reference\n\nRead one level deep from this file. Read multiple when a task spans topics.\n\n| Task involves                                                          | Read                                   |\n| ---------------------------------------------------------------------- | -------------------------------------- |\n| Components, props\u002Femits, slots, `defineModel`, naming, templates       | `references\u002Fcomponents.md`             |\n| Composables (`use*`), shared reactive logic                            | `references\u002Fcomposables.md`            |\n| `ref`\u002F`reactive`\u002F`computed`\u002F`watch`, `toRefs`, performance             | `references\u002Freactivity-performance.md` |\n| Global state with Pinia setup stores, `storeToRefs`                    | `references\u002Fstate-pinia.md`            |\n| Pinia Colada core: keys, `defineQueryOptions`, `useQuery`, mutations   | `references\u002Fpinia-colada.md`           |\n| Optimistic updates, infinite\u002Fpaginated queries, SSR, cancellation      | `references\u002Fpinia-colada-advanced.md`  |\n| Pinia Colada plugins (retry, delay, auto-refetch, persister, hooks)    | `references\u002Fpinia-colada-plugins.md`   |\n| Direct cache access: `getQueryData`\u002F`setQueryData`\u002F`invalidateQueries` | `references\u002Fpinia-colada-cache.md`     |\n| File-based routing, route groups, params, `definePage`, typed router   | `references\u002Frouting-pages.md`          |\n| Project stack, structure, commands, conventions, docs research         | `references\u002Fproject-standards.md`      |\n| 3.4\u002F3.5 core APIs: `useId`, `nextTick`, flush timing, `watch` once\u002Fdeep, `onWatcherCleanup` | `references\u002Fcore-new-apis.md`          |\n| `\u003Cscript setup>` compiler macros — `defineOptions`, `withDefaults`, generic components       | `references\u002Fscript-setup-macros.md`    |\n| Advanced reactivity: `effectScope`, `customRef`, `triggerRef`, `markRaw`, `shallowReadonly`  | `references\u002Fadvanced-patterns.md`      |\n\n## Gotchas\n\n- **Destructuring `reactive()` loses reactivity** — `const { count } = reactive({ count: 0 })`\n  makes `count` a plain number; keep the reactive object intact, or use `toRefs()`, or `ref()`.\n- **`storeToRefs()` required when destructuring Pinia state** — `const { user } = useAuthStore()`\n  gives a non-reactive snapshot; use `const { user } = storeToRefs(useAuthStore())`. Methods\n  are destructured directly from the store (not through `storeToRefs`).\n- **Parent `ref` access needs `defineExpose()`** — `childRef.value.method()` returns `undefined`\n  unless the child `\u003Cscript setup>` explicitly `defineExpose({ method })`.\n- **Use `:slotted()` not `:deep()` for slotted content** — slot content comes from the parent\n  scope, so `:deep(.child-class)` in a scoped style block does not match it; use `:slotted(.child-class)`.\n- **`watchEffect` cleanup race on fast re-renders** — register cleanup to cancel async work:\n  `watchEffect((onCleanup) => { onCleanup(() => controller.abort()) })`, or a fast prop change\n  starts a second effect before the first resolves and writes stale state.\n- **Pinia store not hydrated in SSR** — calling `useMyStore()` outside a component setup context\n  (e.g. a top-level module) creates an instance disconnected from the SSR app; call stores inside\n  `setup()` or pass the `pinia` instance explicitly: `useMyStore(pinia)`.\n- **Query keys must depend on ALL variables used in the query function** — a key that omits a\n  variable serves stale cached data when that variable changes (Pinia Colada).\n- **Dynamic query keys need a getter, not a plain value** — pass `key: () => [...]` so the key\n  re-evaluates reactively; a plain array snapshot never updates.\n- **Prefer `refresh()` over `refetch()`** — `refresh()` reuses in-flight requests and respects\n  `staleTime`; `refetch()` always forces a new fetch.\n- **Avoid `index.vue` route files** — use a named group like `pages\u002F(home).vue` for a meaningful\n  route name.\n- **Use explicit route param names** — `userId` not `id`, `postSlug` not `slug`, for type-safe,\n  self-documenting routes.\n- **Watching a destructured prop needs a getter** — `const { count } = defineProps()` stays reactive\n  in templates, but `watch(count, ...)` watches a snapshot; use `watch(() => count, ...)`\n  (`references\u002Fcore-new-apis.md`).\n- **`onWatcherCleanup()` must be called synchronously** — invoking it after an `await` throws, since\n  the active-watcher context is gone; use the `onCleanup` callback param for post-await cancellation\n  (`references\u002Fcore-new-apis.md`).\n\n## Anti-Patterns\n\n| Don't                              | Do Instead                       |\n| ---------------------------------- | -------------------------------- |\n| Options API (`data()`, `methods:`) | Composition API `\u003Cscript setup>` |\n| `this.$store` \u002F Vuex               | Pinia with setup store syntax    |\n| Direct store state destructuring   | `storeToRefs(useMyStore())`      |\n| `v-html` with dynamic content      | `v-text` or sanitized rendering  |\n| `reactive()` for primitives        | `ref()` for primitives           |\n| Watchers when computed works       | `computed()` for derived state   |\n| Global event bus                   | `provide\u002Finject` or Pinia        |\n| `defineComponent()` wrapper        | `\u003Cscript setup>` directly        |\n\n## Workflow Integration\n\nAuto-activates during Build when a Vue project is detected (`.vue` files, `vue` in\n`package.json`). Loaded by the `developer` agent alongside `mk:typescript`.",{"name":5,"description":7},"main","0b5569142101a45a6dc48d1b01bfae8801383fb7","packages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue",3,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit","https:\u002F\u002Fdocs.meowkit.dev\u002F","https:\u002F\u002Fgithub.com\u002Fngocsangyem","Keep moving forward","2026-11-12 01:14:29",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add ngocsangyem\u002FMeowKit --skill mk-vue",{"tool":64,"command":65},"bunx","bunx skills add ngocsangyem\u002FMeowKit --skill mk-vue",{"tool":67,"command":68},"pnpm","pnpm dlx skills add ngocsangyem\u002FMeowKit --skill mk-vue","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,106,110,114,118,122],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fadvanced-patterns.md","REFERENCE","参考文档",5169,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fadvanced-patterns.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fcomponents.md",4606,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fcomponents.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fcomposables.md",1913,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fcomposables.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fcore-new-apis.md",5047,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fcore-new-apis.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fpinia-colada-advanced.md",6845,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fpinia-colada-advanced.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fpinia-colada-cache.md",2426,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fpinia-colada-cache.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fpinia-colada-plugins.md",5634,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fpinia-colada-plugins.md",{"path":103,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fpinia-colada.md",7069,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fpinia-colada.md",{"path":107,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fproject-standards.md",3209,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fproject-standards.md",{"path":111,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Freactivity-performance.md",2780,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Freactivity-performance.md",{"path":115,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Frouting-pages.md",2833,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Frouting-pages.md",{"path":119,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fscript-setup-macros.md",4205,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fscript-setup-macros.md",{"path":123,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fstate-pinia.md",2347,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-vue\u002Freferences\u002Fstate-pinia.md",[127,146,162,168,180,205],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":44},"01M6J4NFDY0KY3XXJ6E5WBASAF","mk-sequential-thinking","Structured step-by-step reasoning before acting, to avoid guessing. For complex debugging, multi-step analysis, hypothesis checks. NOT for being stuck on approach (mk:problem-solving).","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcodex\u002Froot\u002F.agents\u002Fskills\u002Fmk-sequential-thinking\u002FSKILL.md",[],[134,135,136,137,138,139,140,141,142,143,144,145],"mk sequential thinking","sequential thinking","thinking","structured","problem","problem-solving","analysis","hypothesis","reasoning","for","debugging","multi",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":155,"publishedAt":44},"01M6J5D3G7C0V3BZ97Y61WB172","mk:fixture-valid","A valid fixture used to verify the skill structure validator.","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-creator\u002Fvalid\u002FSKILL.md",[152],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[156,157,158,159,160,161],"mk:fixture valid","fixture","valid","verify","structure","validator",{"skillNo":163,"name":164,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":44},"01M6J5CZRVSN8T4BZM0Y42CXJY","invalid","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-creator\u002Finvalid\u002FSKILL.md",[],[164],{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":44},"01M6J5CVN0N8KP9JFAWCV2PC2T","mk:sample-skill","Sample skill for fixture purposes — small enough to land below noise floor.","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Ftests\u002Ffixtures\u002Fcontext-audit\u002F.claude\u002Fskills\u002Fsample-skill\u002FSKILL.md",[174],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[176,177,178,179,157,143],"mk:sample skill","sample","sample skill","land",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":187,"publishedAt":44},"01M6J5CP99X9S0B7XCSBX6H5P2","mk-worktree","Manages git worktrees for parallel agent isolation: creates parallel\u002F{name}-{timestamp} branches, merges with conflict detection. NOT for user feature branches (use git worktree directly).","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-worktree\u002FSKILL.md",[186],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[188,189,190,191,192,193,194,195,196,197,198,199,143,200,201,202,203,204],"mk worktree","worktree","user","git worktrees","use","worktrees","branches","conflict","feature","isolation","name","with","parallel","timestamp","git","detection","git worktree",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":212,"publishedAt":44},"01M6J5CJT8ZGXH9YYJ7GV3R2B4","mk-workflow-orchestrator","Auto-invoked 7-phase workflow for complex-feature intent; fasttrack mode for pre-approved specs. NOT for explicit single tasks (mk:cook), green-field builds (mk:autobuild), or simple fixes (mk:fix).","https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-workflow-orchestrator\u002FSKILL.md",[211],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[213,214,215,216,217,218,219,26,220,221,222,196,223,224,143,225,226,227,228,229,230,231],"mk workflow orchestrator","workflow orchestrator","orchestrator","workflow","green-field","tasks","fix","simple","intent","green","autobuild","mode","fixes","mk:autobuild","mk:cook","mk:fix","fasttrack","complex-feature","phase"]