[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PGHAHC7NWS55F3G4SQJ9AM":3,"skill-same:01M6PGHAHC7NWS55F3G4SQJ9AM":93},{"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":29,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":14,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":6,"updatedAt":68,"install":69,"resources":82},"01M6PGHAHC7NWS55F3G4SQJ9AM","jest-skill",null,"Generates Jest unit and integration tests in JavaScript or TypeScript. Covers mocking, snapshots, async testing, and React component testing. Use when user mentions \"Jest\", \"describe\u002Fit\u002Fexpect\", \"jest.mock\", \"toMatchSnapshot\". Triggers on: \"Jest\", \"expect().toBe()\", \"jest.mock\", \"snapshot test\", \"JS test\", \"React test\".","headmktlucca-ui\u002Fneuroads-lp","headmktlucca-ui","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F247379838?v=4","01M6PDVAV6M1W96D1SR1PDF8CS","NeuroAds","01M6PDVAZ4P281GNDKD45CYTF5",0,"MIT","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fjest-skill\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"jest skill","jest","snapshot test","testing","unit-testing","react component","mocking","unit","mock","triggers","tests","async","snapshots","use","integration","integration tests","component","react","test","javascript","2026-11-10 10:12:30",false,"---\nname: jest-skill\ndescription: >\n  Generates Jest unit and integration tests in JavaScript or TypeScript.\n  Covers mocking, snapshots, async testing, and React component testing.\n  Use when user mentions \"Jest\", \"describe\u002Fit\u002Fexpect\", \"jest.mock\",\n  \"toMatchSnapshot\". Triggers on: \"Jest\", \"expect().toBe()\", \"jest.mock\",\n  \"snapshot test\", \"JS test\", \"React test\".\nlanguages:\n  - JavaScript\n  - TypeScript\ncategory: unit-testing\nlicense: MIT\nmetadata:\n  author: TestMu AI\n  version: \"1.0\"\n---\n\n# Jest Testing Skill\n\n## Core Patterns\n\n### Basic Test\n\n```javascript\ndescribe('Calculator', () => {\n  let calc;\n  beforeEach(() => { calc = new Calculator(); });\n\n  test('adds two numbers', () => {\n    expect(calc.add(2, 3)).toBe(5);\n  });\n\n  test('throws on division by zero', () => {\n    expect(() => calc.divide(10, 0)).toThrow('Division by zero');\n  });\n});\n```\n\n### Matchers\n\n```javascript\nexpect(value).toBe(exact);                 \u002F\u002F === strict\nexpect(value).toEqual(object);             \u002F\u002F deep equality\nexpect(value).toBeTruthy();\nexpect(value).toBeNull();\nexpect(value).toBeGreaterThan(3);\nexpect(value).toBeCloseTo(0.3, 5);\nexpect(str).toMatch(\u002Fregex\u002F);\nexpect(arr).toContain(item);\nexpect(arr).toHaveLength(3);\nexpect(obj).toHaveProperty('name');\nexpect(obj).toMatchObject({ name: 'Alice' });\nexpect(() => fn()).toThrow(CustomError);\n```\n\n### Mocking\n\n```javascript\n\u002F\u002F Mock function\nconst mockFn = jest.fn();\nmockFn.mockReturnValue(42);\nmockFn.mockResolvedValue({ data: 'test' });\nexpect(mockFn).toHaveBeenCalledWith('arg1');\nexpect(mockFn).toHaveBeenCalledTimes(1);\n\n\u002F\u002F Mock module\njest.mock('.\u002Fdatabase');\nconst db = require('.\u002Fdatabase');\ndb.getUser.mockResolvedValue({ name: 'Alice' });\n\n\u002F\u002F Mock with implementation\njest.mock('.\u002Fapi', () => ({\n  fetchUsers: jest.fn().mockResolvedValue([{ name: 'Alice' }]),\n}));\n\n\u002F\u002F Spy\nconst spy = jest.spyOn(console, 'log').mockImplementation();\nexpect(spy).toHaveBeenCalledWith('expected');\nspy.mockRestore();\n\n\u002F\u002F Fake timers\njest.useFakeTimers();\njest.advanceTimersByTime(1000);\njest.useRealTimers();\n```\n\n### Async Testing\n\n```javascript\ntest('fetches users', async () => {\n  const users = await fetchUsers();\n  expect(users).toHaveLength(3);\n});\n\ntest('resolves with data', () => {\n  return expect(fetchData()).resolves.toEqual({ data: 'value' });\n});\n\ntest('rejects with error', () => {\n  return expect(fetchBadData()).rejects.toThrow('not found');\n});\n```\n\n### React Component Testing (Testing Library)\n\n```javascript\nimport { render, screen, fireEvent, waitFor } from '@testing-library\u002Freact';\nimport '@testing-library\u002Fjest-dom';\nimport LoginForm from '.\u002FLoginForm';\n\ntest('submits login form', async () => {\n  const onSubmit = jest.fn();\n  render(\u003CLoginForm onSubmit={onSubmit} \u002F>);\n\n  fireEvent.change(screen.getByLabelText('Email'), {\n    target: { value: 'user@test.com' },\n  });\n  fireEvent.change(screen.getByLabelText('Password'), {\n    target: { value: 'password123' },\n  });\n  fireEvent.click(screen.getByRole('button', { name: \u002Flogin\u002Fi }));\n\n  await waitFor(() => {\n    expect(onSubmit).toHaveBeenCalledWith({\n      email: 'user@test.com', password: 'password123',\n    });\n  });\n});\n```\n\n### Snapshot Testing\n\n```javascript\ntest('renders correctly', () => {\n  const tree = renderer.create(\u003CButton label=\"Click\" \u002F>).toJSON();\n  expect(tree).toMatchSnapshot();\n});\n\u002F\u002F Update: jest --updateSnapshot\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| `expect(x === y).toBe(true)` | `expect(x).toBe(y)` | Better errors |\n| No `await` on async | Always `await` | Swallows failures |\n| Snapshot everything | Snapshot UI, assert logic | Snapshot fatigue |\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all | `npx jest` |\n| Watch | `npx jest --watch` |\n| Coverage | `npx jest --coverage` |\n| Update snapshots | `npx jest --updateSnapshot` |\n| Run file | `npx jest tests\u002Fcalc.test.js` |\n| Single test | `test.only('name', () => {})` |\n\n## Deep Patterns\n\nFor production-grade patterns, see `reference\u002Fplaybook.md`:\n\n| Section | What's Inside |\n|---------|--------------|\n| §1 Production Config | Node + React configs, path aliases, coverage thresholds |\n| §2 Mocking Deep Dive | Module\u002Fpartial\u002Fmanual mocks, spies, timers, env vars |\n| §3 Async Patterns | Promises, rejections, event emitters, streams |\n| §4 test.each | Array, tagged template, describe.each for table-driven tests |\n| §5 Custom Matchers | toBeWithinRange, toBeValidEmail, TypeScript declarations |\n| §6 React Testing Library | userEvent, hooks, context providers |\n| §7 Snapshot Testing | Component, inline, property matchers |\n| §8 API Service Testing | Mocked axios, CRUD patterns, error handling |\n| §9 Global Setup | Multi-project config, DB setup\u002Fteardown |\n| §10 CI\u002FCD | GitHub Actions with coverage gates |\n| §11 Debugging Table | 10 common problems with fixes |\n| §12 Best Practices | 15-item production checklist |\n","# Jest Testing Skill\n\n## Core Patterns\n\n### Basic Test\n\n```javascript\ndescribe('Calculator', () => {\n  let calc;\n  beforeEach(() => { calc = new Calculator(); });\n\n  test('adds two numbers', () => {\n    expect(calc.add(2, 3)).toBe(5);\n  });\n\n  test('throws on division by zero', () => {\n    expect(() => calc.divide(10, 0)).toThrow('Division by zero');\n  });\n});\n```\n\n### Matchers\n\n```javascript\nexpect(value).toBe(exact);                 \u002F\u002F === strict\nexpect(value).toEqual(object);             \u002F\u002F deep equality\nexpect(value).toBeTruthy();\nexpect(value).toBeNull();\nexpect(value).toBeGreaterThan(3);\nexpect(value).toBeCloseTo(0.3, 5);\nexpect(str).toMatch(\u002Fregex\u002F);\nexpect(arr).toContain(item);\nexpect(arr).toHaveLength(3);\nexpect(obj).toHaveProperty('name');\nexpect(obj).toMatchObject({ name: 'Alice' });\nexpect(() => fn()).toThrow(CustomError);\n```\n\n### Mocking\n\n```javascript\n\u002F\u002F Mock function\nconst mockFn = jest.fn();\nmockFn.mockReturnValue(42);\nmockFn.mockResolvedValue({ data: 'test' });\nexpect(mockFn).toHaveBeenCalledWith('arg1');\nexpect(mockFn).toHaveBeenCalledTimes(1);\n\n\u002F\u002F Mock module\njest.mock('.\u002Fdatabase');\nconst db = require('.\u002Fdatabase');\ndb.getUser.mockResolvedValue({ name: 'Alice' });\n\n\u002F\u002F Mock with implementation\njest.mock('.\u002Fapi', () => ({\n  fetchUsers: jest.fn().mockResolvedValue([{ name: 'Alice' }]),\n}));\n\n\u002F\u002F Spy\nconst spy = jest.spyOn(console, 'log').mockImplementation();\nexpect(spy).toHaveBeenCalledWith('expected');\nspy.mockRestore();\n\n\u002F\u002F Fake timers\njest.useFakeTimers();\njest.advanceTimersByTime(1000);\njest.useRealTimers();\n```\n\n### Async Testing\n\n```javascript\ntest('fetches users', async () => {\n  const users = await fetchUsers();\n  expect(users).toHaveLength(3);\n});\n\ntest('resolves with data', () => {\n  return expect(fetchData()).resolves.toEqual({ data: 'value' });\n});\n\ntest('rejects with error', () => {\n  return expect(fetchBadData()).rejects.toThrow('not found');\n});\n```\n\n### React Component Testing (Testing Library)\n\n```javascript\nimport { render, screen, fireEvent, waitFor } from '@testing-library\u002Freact';\nimport '@testing-library\u002Fjest-dom';\nimport LoginForm from '.\u002FLoginForm';\n\ntest('submits login form', async () => {\n  const onSubmit = jest.fn();\n  render(\u003CLoginForm onSubmit={onSubmit} \u002F>);\n\n  fireEvent.change(screen.getByLabelText('Email'), {\n    target: { value: 'user@test.com' },\n  });\n  fireEvent.change(screen.getByLabelText('Password'), {\n    target: { value: 'password123' },\n  });\n  fireEvent.click(screen.getByRole('button', { name: \u002Flogin\u002Fi }));\n\n  await waitFor(() => {\n    expect(onSubmit).toHaveBeenCalledWith({\n      email: 'user@test.com', password: 'password123',\n    });\n  });\n});\n```\n\n### Snapshot Testing\n\n```javascript\ntest('renders correctly', () => {\n  const tree = renderer.create(\u003CButton label=\"Click\" \u002F>).toJSON();\n  expect(tree).toMatchSnapshot();\n});\n\u002F\u002F Update: jest --updateSnapshot\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| `expect(x === y).toBe(true)` | `expect(x).toBe(y)` | Better errors |\n| No `await` on async | Always `await` | Swallows failures |\n| Snapshot everything | Snapshot UI, assert logic | Snapshot fatigue |\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all | `npx jest` |\n| Watch | `npx jest --watch` |\n| Coverage | `npx jest --coverage` |\n| Update snapshots | `npx jest --updateSnapshot` |\n| Run file | `npx jest tests\u002Fcalc.test.js` |\n| Single test | `test.only('name', () => {})` |\n\n## Deep Patterns\n\nFor production-grade patterns, see `reference\u002Fplaybook.md`:\n\n| Section | What's Inside |\n|---------|--------------|\n| §1 Production Config | Node + React configs, path aliases, coverage thresholds |\n| §2 Mocking Deep Dive | Module\u002Fpartial\u002Fmanual mocks, spies, timers, env vars |\n| §3 Async Patterns | Promises, rejections, event emitters, streams |\n| §4 test.each | Array, tagged template, describe.each for table-driven tests |\n| §5 Custom Matchers | toBeWithinRange, toBeValidEmail, TypeScript declarations |\n| §6 React Testing Library | userEvent, hooks, context providers |\n| §7 Snapshot Testing | Component, inline, property matchers |\n| §8 API Service Testing | Mocked axios, CRUD patterns, error handling |\n| §9 Global Setup | Multi-project config, DB setup\u002Fteardown |\n| §10 CI\u002FCD | GitHub Actions with coverage gates |\n| §11 Debugging Table | 10 common problems with fixes |\n| §12 Best Practices | 15-item production checklist |\n",{"name":5,"license":15,"category":34,"metadata":55,"languages":58,"description":61},{"author":56,"version":57},"TestMu AI","1.0",[59,60],"JavaScript","TypeScript","Generates Jest unit and integration tests in JavaScript or TypeScript. Covers mocking, snapshots, async testing, and React component testing. Use when user mentions \"Jest\", \"describe\u002Fit\u002Fexpect\", \"jest.mock\", \"toMatchSnapshot\". Triggers on: \"Jest\", \"expect().toBe()\", \"jest.mock\", \"snapshot test\", \"JS test\", \"React test\".\n","main","7a940b8e5af16c95e5c190a524421d32fc7445a9",".agent\u002Fskills\u002Fjest-skill","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui","https:\u002F\u002Fneuroads.com.br","2026-08-12 00:42:44",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add headmktlucca-ui\u002Fneuroads-lp --skill jest-skill",{"tool":75,"command":76},"bunx","bunx skills add headmktlucca-ui\u002Fneuroads-lp --skill jest-skill",{"tool":78,"command":79},"pnpm","pnpm dlx skills add headmktlucca-ui\u002Fneuroads-lp --skill jest-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fjest-skill\u002FSKILL.md",true,[83,89],{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"reference\u002Fadvanced-patterns.md","REFERENCE","参考文档",7256,"https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fjest-skill\u002Freference\u002Fadvanced-patterns.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"reference\u002Fplaybook.md",13245,"https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fjest-skill\u002Freference\u002Fplaybook.md",[94,108,132,158,175,208],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":102,"publishedAt":50},"01M6PTDCZTXTGSTX4RFK901YSZ","xunit-skill","Generates xUnit.net tests in C#. Covers Fact\u002FTheory, constructor injection, IClassFixture, and FluentAssertions. Use when user mentions \"xUnit\", \"[Fact]\", \"[Theory]\", \"Assert.Equal\", \"C# xUnit\". Triggers on: \"xUnit\", \"[Fact]\", \"[Theory]\", \"Assert.Equal C#\", \"xUnit.net\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxunit-skill\u002FSKILL.md",[100,101],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,33,105,106,43,40,39,37,34,107],"xunit","xunit skill","injection","user","C#",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":116,"publishedAt":50},"01M6PTCB59ZTG5FTMWGPYEMMBP","xcuitest-skill","Generates XCUITest UI tests for iOS\u002FiPadOS apps in Swift. Apple's native testing framework for reliable, fast UI automation. Supports local simulators and TestMu AI cloud real devices. Use when user mentions \"XCUITest\", \"XCTest\", \"iOS UI test\", \"Swift test\", \"XCUIApplication\". Triggers on: \"XCUITest\", \"XCTest UI\", \"iOS UI test\", \"Swift UI test\", \"XCUIApplication\", \"TestMu\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxcuitest-skill\u002FSKILL.md",[114,115],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[117,118,33,119,48,120,121,122,43,123,124,125,126,127,40,39,128,129,130,131],"xcuitest","xcuitest skill","automation","testing framework","ios","devices","mobile","mobile-testing","ui test","local","apple","apps","native","for","objective",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":142,"publishedAt":50},"01M6PTATMNTY9NF4J7KSR76YK6","world-builder","Create and manage generative game zones for Dorothy's Pokemon-style world. Use this skill when creating, updating, or designing game worlds via MCP tools.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fworld-builder\u002FSKILL.md",[138,141],{"categoryNo":139,"categoryName":140,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[143,144,145,146,147,148,149,150,43,151,152,153,154,155,156,130,157],"builder","world","world builder","MCP","create","mcp tools","Tools","game","pokemon","manage","style","via","theme","zone","generative",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":166,"publishedAt":50},"01M6PT9Z92JTSQEHE1QR0NNW5F","webdriverio-skill","Generates WebdriverIO (WDIO) automation tests in JavaScript or TypeScript. Supports local and TestMu AI cloud. Use when user mentions \"WebdriverIO\", \"WDIO\", \"wdio.conf\", \"browser.url\", \"$\", \"$$\". Triggers on: \"WebdriverIO\", \"WDIO\", \"wdio\", \"browser.$\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwebdriverio-skill\u002FSKILL.md",[164,165],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[167,33,168,119,49,169,170,171,106,43,172,126,40,39,173,174],"webdriverio skill","typescript","browser","cloud","e2e","e2e-testing","URL","conf",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":188,"publishedAt":50},"01M6PT9NVK36ZWCQ69YXK3FR4K","web-design-guidelines","Web platform design and accessibility guidelines. Use when building web interfaces, auditing accessibility, implementing responsive layouts, or reviewing web UI code. Triggers on tasks involving HTML, CSS, web components, WCAG compliance, responsive design, or web performance.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb\u002FSKILL.md",[181,182,183],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":139,"categoryName":140,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":184,"categoryName":185,"taxonomyType":186,"taxonomyTypeDesc":187},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,39,207],"design","web","guidelines","web design guidelines","web design","css","performance","components","web components","tasks","code","web performance","ui","platform design","html","responsive design","responsive","platform","implementing",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":216,"publishedAt":50},"01M6PT9A3JKRE3X34276F2FW5R","watchos-design-guidelines","Apple Human Interface Guidelines for Apple Watch. Use when building watchOS apps, complications, or workout features. Triggers on tasks involving Watch UI, Digital Crown, glanceable interfaces, or wrist-based interactions.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwatchos\u002FSKILL.md",[214,215],{"categoryNo":139,"categoryName":140,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":184,"categoryName":185,"taxonomyType":186,"taxonomyTypeDesc":187},[189,191,217,198,201,43,218,219,127,206,220,39,128,221,130,222,223],"watchos design guidelines","workout","human","watch","interface","platform-design","features"]