[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DRQGA7VG75ZMCTWF5CY5MS":3,"skill-same:01M6DRQGA7VG75ZMCTWF5CY5MS":103},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":66,"install":67,"resources":80},"01M6DRQGA7VG75ZMCTWF5CY5MS","vue-expert-js",null,"Creates Vue 3 components, builds vanilla JS composables, configures Vite projects, and sets up routing and state management using JavaScript only — no TypeScript. Generates JSDoc-typed code with @typedef, @param, and @returns annotations for full type coverage without a TS compiler. Use when building Vue 3 applications with JavaScript only (no TypeScript), when projects require JSDoc-based type hints, when migrating from Vue 2 Options API to Composition API in JS, or when teams prefer vanilla JavaScript, .mjs modules, or need quick prototypes without TypeScript setup.","AntifragileTech\u002Fantifragile-claude-code","AntifragileTech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F174357194?v=4","01M6DQCYMK4CDSQQAN0ZC72NTV","01M6DQCYS9YPW1WKMQ5TJMPQ43",9,"MIT","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"vue expert","vue expert js","vue","js","expert","coverage","jsdoc","full","options","modules","up","only","frontend","annotations","projects","Composition","api","code","components","typescript","2026-11-10 10:12:30",false,"---\nname: vue-expert-js\ndescription: Creates Vue 3 components, builds vanilla JS composables, configures Vite projects, and sets up routing and state management using JavaScript only — no TypeScript. Generates JSDoc-typed code with @typedef, @param, and @returns annotations for full type coverage without a TS compiler. Use when building Vue 3 applications with JavaScript only (no TypeScript), when projects require JSDoc-based type hints, when migrating from Vue 2 Options API to Composition API in JS, or when teams prefer vanilla JavaScript, .mjs modules, or need quick prototypes without TypeScript setup.\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002FJeffallan\n  version: \"1.1.0\"\n  domain: frontend\n  triggers: Vue JavaScript, Vue without TypeScript, Vue JSDoc, Vue JS only, Vue vanilla JavaScript, .mjs Vue, Vue no TS\n  role: specialist\n  scope: implementation\n  output-format: code\n  related-skills: vue-expert, javascript-pro\n---\n\n# Vue Expert (JavaScript)\n\nSenior Vue specialist building Vue 3 applications with JavaScript and JSDoc typing instead of TypeScript.\n\n## Core Workflow\n\n1. **Design architecture** — Plan component structure and composables with JSDoc type annotations\n2. **Implement** — Build with `\u003Cscript setup>` (no `lang=\"ts\"`), `.mjs` modules where needed\n3. **Annotate** — Add comprehensive JSDoc comments (`@typedef`, `@param`, `@returns`, `@type`) for full type coverage; then run ESLint with the JSDoc plugin (`eslint-plugin-jsdoc`) to verify coverage — fix any missing or malformed annotations before proceeding\n4. **Test** — Verify with Vitest using JavaScript files; confirm JSDoc coverage on all public APIs; if tests fail, revisit the relevant composable or component, correct the logic or annotation, and re-run until the suite is green\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| JSDoc Typing | `references\u002Fjsdoc-typing.md` | JSDoc types, @typedef, @param, type hints |\n| Composables | `references\u002Fcomposables-patterns.md` | custom composables, ref, reactive, lifecycle hooks |\n| Components | `references\u002Fcomponent-architecture.md` | props, emits, slots, provide\u002Finject |\n| State | `references\u002Fstate-management.md` | Pinia, stores, reactive state |\n| Testing | `references\u002Ftesting-patterns.md` | Vitest, component testing, mocking |\n\n**For shared Vue concepts, defer to vue-expert:**\n- `vue-expert\u002Freferences\u002Fcomposition-api.md` - Core reactivity patterns\n- `vue-expert\u002Freferences\u002Fcomponents.md` - Props, emits, slots\n- `vue-expert\u002Freferences\u002Fstate-management.md` - Pinia stores\n\n## Code Patterns\n\n### Component with JSDoc-typed props and emits\n\n```vue\n\u003Cscript setup>\n\u002F**\n * @typedef {Object} UserCardProps\n * @property {string} name - Display name of the user\n * @property {number} age - User's age\n * @property {boolean} [isAdmin=false] - Whether the user has admin rights\n *\u002F\n\n\u002F** @type {UserCardProps} *\u002F\nconst props = defineProps({\n  name:    { type: String,  required: true },\n  age:     { type: Number,  required: true },\n  isAdmin: { type: Boolean, default: false },\n})\n\n\u002F**\n * @typedef {Object} UserCardEmits\n * @property {(id: string) => void} select - Emitted when the card is selected\n *\u002F\nconst emit = defineEmits(['select'])\n\n\u002F** @param {string} id *\u002F\nfunction handleSelect(id) {\n  emit('select', id)\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv @click=\"handleSelect(props.name)\">\n    {{ props.name }} ({{ props.age }})\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\n### Composable with @typedef, @param, and @returns\n\n```js\n\u002F\u002F composables\u002FuseCounter.mjs\nimport { ref, computed } from 'vue'\n\n\u002F**\n * @typedef {Object} CounterState\n * @property {import('vue').Ref\u003Cnumber>} count - Reactive count value\n * @property {import('vue').ComputedRef\u003Cboolean>} isPositive - True when count > 0\n * @property {() => void} increment - Increases count by step\n * @property {() => void} reset - Resets count to initial value\n *\u002F\n\n\u002F**\n * Composable for a simple counter with configurable step.\n * @param {number} [initial=0] - Starting value\n * @param {number} [step=1]    - Amount to increment per call\n * @returns {CounterState}\n *\u002F\nexport function useCounter(initial = 0, step = 1) {\n  \u002F** @type {import('vue').Ref\u003Cnumber>} *\u002F\n  const count = ref(initial)\n\n  const isPositive = computed(() => count.value > 0)\n\n  function increment() {\n    count.value += step\n  }\n\n  function reset() {\n    count.value = initial\n  }\n\n  return { count, isPositive, increment, reset }\n}\n```\n\n### @typedef for a complex object used across files\n\n```js\n\u002F\u002F types\u002Fuser.mjs\n\n\u002F**\n * @typedef {Object} User\n * @property {string}   id       - UUID\n * @property {string}   name     - Full display name\n * @property {string}   email    - Contact email\n * @property {'admin'|'viewer'} role - Access level\n *\u002F\n\n\u002F\u002F Import in other files with:\n\u002F\u002F \u002F** @type {import('.\u002Ftypes\u002Fuser.mjs').User} *\u002F\n```\n\n## Constraints\n\n### MUST DO\n- Use Composition API with `\u003Cscript setup>`\n- Use JSDoc comments for type documentation\n- Use `.mjs` extension for ES modules when needed\n- Annotate every public function with `@param` and `@returns`\n- Use `@typedef` for complex object shapes shared across files\n- Use `@type` annotations for reactive variables\n- Follow vue-expert patterns adapted for JavaScript\n\n### MUST NOT DO\n- Use TypeScript syntax (no `\u003Cscript setup lang=\"ts\">`)\n- Use `.ts` file extensions\n- Skip JSDoc types for public APIs\n- Use CommonJS `require()` in Vue files\n- Ignore type safety entirely\n- Mix TypeScript files with JavaScript in the same component\n\n## Output Templates\n\nWhen implementing Vue features in JavaScript:\n1. Component file with `\u003Cscript setup>` (no lang attribute) and JSDoc-typed props\u002Femits\n2. `@typedef` definitions for complex prop or state shapes\n3. Composable with `@param` and `@returns` annotations\n4. Brief note on type coverage\n\n## Knowledge Reference\n\nVue 3 Composition API, JSDoc, ESM modules, Pinia, Vue Router 4, Vite, VueUse, Vitest, Vue Test Utils, JavaScript ES2022+\n","# Vue Expert (JavaScript)\n\nSenior Vue specialist building Vue 3 applications with JavaScript and JSDoc typing instead of TypeScript.\n\n## Core Workflow\n\n1. **Design architecture** — Plan component structure and composables with JSDoc type annotations\n2. **Implement** — Build with `\u003Cscript setup>` (no `lang=\"ts\"`), `.mjs` modules where needed\n3. **Annotate** — Add comprehensive JSDoc comments (`@typedef`, `@param`, `@returns`, `@type`) for full type coverage; then run ESLint with the JSDoc plugin (`eslint-plugin-jsdoc`) to verify coverage — fix any missing or malformed annotations before proceeding\n4. **Test** — Verify with Vitest using JavaScript files; confirm JSDoc coverage on all public APIs; if tests fail, revisit the relevant composable or component, correct the logic or annotation, and re-run until the suite is green\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| JSDoc Typing | `references\u002Fjsdoc-typing.md` | JSDoc types, @typedef, @param, type hints |\n| Composables | `references\u002Fcomposables-patterns.md` | custom composables, ref, reactive, lifecycle hooks |\n| Components | `references\u002Fcomponent-architecture.md` | props, emits, slots, provide\u002Finject |\n| State | `references\u002Fstate-management.md` | Pinia, stores, reactive state |\n| Testing | `references\u002Ftesting-patterns.md` | Vitest, component testing, mocking |\n\n**For shared Vue concepts, defer to vue-expert:**\n- `vue-expert\u002Freferences\u002Fcomposition-api.md` - Core reactivity patterns\n- `vue-expert\u002Freferences\u002Fcomponents.md` - Props, emits, slots\n- `vue-expert\u002Freferences\u002Fstate-management.md` - Pinia stores\n\n## Code Patterns\n\n### Component with JSDoc-typed props and emits\n\n```vue\n\u003Cscript setup>\n\u002F**\n * @typedef {Object} UserCardProps\n * @property {string} name - Display name of the user\n * @property {number} age - User's age\n * @property {boolean} [isAdmin=false] - Whether the user has admin rights\n *\u002F\n\n\u002F** @type {UserCardProps} *\u002F\nconst props = defineProps({\n  name:    { type: String,  required: true },\n  age:     { type: Number,  required: true },\n  isAdmin: { type: Boolean, default: false },\n})\n\n\u002F**\n * @typedef {Object} UserCardEmits\n * @property {(id: string) => void} select - Emitted when the card is selected\n *\u002F\nconst emit = defineEmits(['select'])\n\n\u002F** @param {string} id *\u002F\nfunction handleSelect(id) {\n  emit('select', id)\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv @click=\"handleSelect(props.name)\">\n    {{ props.name }} ({{ props.age }})\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\n### Composable with @typedef, @param, and @returns\n\n```js\n\u002F\u002F composables\u002FuseCounter.mjs\nimport { ref, computed } from 'vue'\n\n\u002F**\n * @typedef {Object} CounterState\n * @property {import('vue').Ref\u003Cnumber>} count - Reactive count value\n * @property {import('vue').ComputedRef\u003Cboolean>} isPositive - True when count > 0\n * @property {() => void} increment - Increases count by step\n * @property {() => void} reset - Resets count to initial value\n *\u002F\n\n\u002F**\n * Composable for a simple counter with configurable step.\n * @param {number} [initial=0] - Starting value\n * @param {number} [step=1]    - Amount to increment per call\n * @returns {CounterState}\n *\u002F\nexport function useCounter(initial = 0, step = 1) {\n  \u002F** @type {import('vue').Ref\u003Cnumber>} *\u002F\n  const count = ref(initial)\n\n  const isPositive = computed(() => count.value > 0)\n\n  function increment() {\n    count.value += step\n  }\n\n  function reset() {\n    count.value = initial\n  }\n\n  return { count, isPositive, increment, reset }\n}\n```\n\n### @typedef for a complex object used across files\n\n```js\n\u002F\u002F types\u002Fuser.mjs\n\n\u002F**\n * @typedef {Object} User\n * @property {string}   id       - UUID\n * @property {string}   name     - Full display name\n * @property {string}   email    - Contact email\n * @property {'admin'|'viewer'} role - Access level\n *\u002F\n\n\u002F\u002F Import in other files with:\n\u002F\u002F \u002F** @type {import('.\u002Ftypes\u002Fuser.mjs').User} *\u002F\n```\n\n## Constraints\n\n### MUST DO\n- Use Composition API with `\u003Cscript setup>`\n- Use JSDoc comments for type documentation\n- Use `.mjs` extension for ES modules when needed\n- Annotate every public function with `@param` and `@returns`\n- Use `@typedef` for complex object shapes shared across files\n- Use `@type` annotations for reactive variables\n- Follow vue-expert patterns adapted for JavaScript\n\n### MUST NOT DO\n- Use TypeScript syntax (no `\u003Cscript setup lang=\"ts\">`)\n- Use `.ts` file extensions\n- Skip JSDoc types for public APIs\n- Use CommonJS `require()` in Vue files\n- Ignore type safety entirely\n- Mix TypeScript files with JavaScript in the same component\n\n## Output Templates\n\nWhen implementing Vue features in JavaScript:\n1. Component file with `\u003Cscript setup>` (no lang attribute) and JSDoc-typed props\u002Femits\n2. `@typedef` definitions for complex prop or state shapes\n3. Composable with `@param` and `@returns` annotations\n4. Brief note on type coverage\n\n## Knowledge Reference\n\nVue 3 Composition API, JSDoc, ESM modules, Pinia, Vue Router 4, Vite, VueUse, Vitest, Vue Test Utils, JavaScript ES2022+\n",{"name":5,"license":14,"metadata":53,"description":7},{"role":54,"scope":55,"author":56,"domain":40,"version":57,"triggers":58,"output-format":45,"related-skills":59},"specialist","implementation","https:\u002F\u002Fgithub.com\u002FJeffallan","1.1.0","Vue JavaScript, Vue without TypeScript, Vue JSDoc, Vue JS only, Vue vanilla JavaScript, .mjs Vue, Vue no TS","vue-expert, javascript-pro","master","c73386b305dec167db7654e0e6feacb462d4f9dc","assets\u002Fskills\u002Fdev\u002Fvue-expert-js",1,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code","https:\u002F\u002Fgithub.com\u002FAntifragileTech","2026-10-02 14:22:14",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add AntifragileTech\u002Fantifragile-claude-code --skill vue-expert-js",{"tool":73,"command":74},"bunx","bunx skills add AntifragileTech\u002Fantifragile-claude-code --skill vue-expert-js",{"tool":76,"command":77},"pnpm","pnpm dlx skills add AntifragileTech\u002Fantifragile-claude-code --skill vue-expert-js","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002FSKILL.md",true,[81,87,91,95,99],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fcomponent-architecture.md","REFERENCE","参考文档",4724,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002Freferences\u002Fcomponent-architecture.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fcomposables-patterns.md",4268,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002Freferences\u002Fcomposables-patterns.md",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fjsdoc-typing.md",11062,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002Freferences\u002Fjsdoc-typing.md",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fstate-management.md",5543,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002Freferences\u002Fstate-management.md",{"path":100,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Ftesting-patterns.md",5777,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fvue-expert-js\u002Freferences\u002Ftesting-patterns.md",[104,126,140,155,168,181],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":119,"publishedAt":48},"01M6DT9Q6VYA615SCXR757TZZ7","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-skills\u002FSKILL.md",[110,113,116],{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":117,"categoryName":118,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者",[120,121,122,123,124,125],"writing skills","writing","use","editing","work","deployment",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":134,"publishedAt":48},"01M6DT9GFHDNY90P41WGAE1TV0","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-plans\u002FSKILL.md",[132,133],{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":117,"categoryName":118,"taxonomyType":25,"taxonomyTypeDesc":26},[135,136,121,137,138,122,45,139],"plans","writing plans","requirements","task","spec",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":148,"publishedAt":48},"01M6DT9C6PFGD86WS3HY7YE3XG","docs:write-concisely","Apply writing rules to any documentation that humans will read. Makes your writing clearer, stronger, and more professional.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwrite-concisely\u002FSKILL.md",[146,147],{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":117,"categoryName":118,"taxonomyType":25,"taxonomyTypeDesc":26},[149,150,151,152,153,154,121],"docs:write concisely","write","docs","read","Rules","documentation",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":48},"01M6DT98AWQ27P0N1CG97WAG66","kaizen:why","Iterative Five Whys root cause analysis drilling from symptoms to fundamentals","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwhy\u002FSKILL.md",[],[157,162,163,164,165,166,167],"why","kaizen","issue","five whys","analysis","root cause analysis",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":48},"01M6DT93EH25NAX19R3WGE1P53","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-loop\u002FSKILL.md",[],[175,176,177,178,45,179,180],"verification loop","verification","loop","sessions","claude code sessions","system",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":48},"01M6DT90GW7Z7VCN98P9DVYSNC","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-before-completion\u002FSKILL.md",[],[188,176,189,124,122,190,191,192],"verification before completion","commands","evidence","claim","complete"]