[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RTT1JBDTP9F3ZXVXN5CJ2A":3,"skill-same:01M6RTT1JBDTP9F3ZXVXN5CJ2A":71},{"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":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":13,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6RTT1JBDTP9F3ZXVXN5CJ2A","cost-aware-llm-pipeline",null,"Cost optimization patterns for LLM API usage — model routing by task complexity, budget tracking, retry logic, and prompt caching.","sakamoto-family-smile\u002Fagent_monorepo","sakamoto-family-smile","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132812403?v=4","01M6RTAT3H8PMWX5SJ65KP3VYF","01M6RTAV321WB5RAHCWTZMX5CV",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fcost-aware-llm-pipeline\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"pipeline","cost aware llm pipeline","cost","complexity","llm api","for","usage","retry","logic","caching","task","cost optimization","tracking","prompt","model","api","Budget","prompt caching","Optimization","routing","2026-11-10 10:12:30",false,"---\nname: zustand-store-ts\ndescription: Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.\n---\n\n# Zustand Store\n\nCreate Zustand stores following established patterns with proper TypeScript types and middleware.\n\n## Quick Start\n\nCopy the template from [assets\u002Ftemplate.ts](assets\u002Ftemplate.ts) and replace placeholders:\n- `{{StoreName}}` → PascalCase store name (e.g., `Project`)\n- `{{description}}` → Brief description for JSDoc\n\n## Always Use subscribeWithSelector\n\n```typescript\nimport { create } from 'zustand';\nimport { subscribeWithSelector } from 'zustand\u002Fmiddleware';\n\nexport const useMyStore = create\u003CMyStore>()(\n  subscribeWithSelector((set, get) => ({\n    \u002F\u002F state and actions\n  }))\n);\n```\n\n## Separate State and Actions\n\n```typescript\nexport interface MyState {\n  items: Item[];\n  isLoading: boolean;\n}\n\nexport interface MyActions {\n  addItem: (item: Item) => void;\n  loadItems: () => Promise\u003Cvoid>;\n}\n\nexport type MyStore = MyState & MyActions;\n```\n\n## Use Individual Selectors\n\n```typescript\n\u002F\u002F Good - only re-renders when `items` changes\nconst items = useMyStore((state) => state.items);\n\n\u002F\u002F Avoid - re-renders on any state change\nconst { items, isLoading } = useMyStore();\n```\n\n## Subscribe Outside React\n\n```typescript\nuseMyStore.subscribe(\n  (state) => state.selectedId,\n  (selectedId) => console.log('Selected:', selectedId)\n);\n```\n\n## Integration Steps\n\n1. Create store in `src\u002Ffrontend\u002Fsrc\u002Fstore\u002F`\n2. Export from `src\u002Ffrontend\u002Fsrc\u002Fstore\u002Findex.ts`\n3. Add tests in `src\u002Ffrontend\u002Fsrc\u002Fstore\u002F*.test.ts`\n","# Zustand Store\n\nCreate Zustand stores following established patterns with proper TypeScript types and middleware.\n\n## Quick Start\n\nCopy the template from [assets\u002Ftemplate.ts](assets\u002Ftemplate.ts) and replace placeholders:\n- `{{StoreName}}` → PascalCase store name (e.g., `Project`)\n- `{{description}}` → Brief description for JSDoc\n\n## Always Use subscribeWithSelector\n\n```typescript\nimport { create } from 'zustand';\nimport { subscribeWithSelector } from 'zustand\u002Fmiddleware';\n\nexport const useMyStore = create\u003CMyStore>()(\n  subscribeWithSelector((set, get) => ({\n    \u002F\u002F state and actions\n  }))\n);\n```\n\n## Separate State and Actions\n\n```typescript\nexport interface MyState {\n  items: Item[];\n  isLoading: boolean;\n}\n\nexport interface MyActions {\n  addItem: (item: Item) => void;\n  loadItems: () => Promise\u003Cvoid>;\n}\n\nexport type MyStore = MyState & MyActions;\n```\n\n## Use Individual Selectors\n\n```typescript\n\u002F\u002F Good - only re-renders when `items` changes\nconst items = useMyStore((state) => state.items);\n\n\u002F\u002F Avoid - re-renders on any state change\nconst { items, isLoading } = useMyStore();\n```\n\n## Subscribe Outside React\n\n```typescript\nuseMyStore.subscribe(\n  (state) => state.selectedId,\n  (selectedId) => console.log('Selected:', selectedId)\n);\n```\n\n## Integration Steps\n\n1. Create store in `src\u002Ffrontend\u002Fsrc\u002Fstore\u002F`\n2. Export from `src\u002Ffrontend\u002Fsrc\u002Fstore\u002Findex.ts`\n3. Add tests in `src\u002Ffrontend\u002Fsrc\u002Fstore\u002F*.test.ts`\n",{"name":43,"description":44},"zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","main","efc7fb813cc2515f17c324642c83ac027cc02aee",".claude\u002Fskills\u002Fecc\u002Fcost-aware-llm-pipeline","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile","2026-11-08 20:29:14",{"source":8,"skillName":43,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add sakamoto-family-smile\u002Fagent_monorepo --skill zustand-store-ts",{"tool":57,"command":58},"bunx","bunx skills add sakamoto-family-smile\u002Fagent_monorepo --skill zustand-store-ts",{"tool":60,"command":61},"pnpm","pnpm dlx skills add sakamoto-family-smile\u002Fagent_monorepo --skill zustand-store-ts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fcost-aware-llm-pipeline\u002FSKILL.md",true,[65],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},".openskills.json","REFERENCE","参考文档",230,"https:\u002F\u002Fgithub.com\u002FAristidesAI\u002FVisionEmoji\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fzustand-store-ts\u002F.openskills.json",[72,106,114,134,157,185],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":86,"publishedAt":38},"01M6RW50THEFSKK42YNR8XFZA1","remotion-video-creation","Best practices for Remotion - Video creation in React. 29 domain-specific rules covering 3D, animations, audio, captions, charts, transitions, and more.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fremotion-video-creation\u002FSKILL.md",[78,83],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":84,"categoryName":85,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000016","图像与多媒体",[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,23],"Video","remotion video","remotion video creation","creation","Remotion","Charts","Captions","Audio","3D","Composition","Animation","best practices","more","animations","domain-specific","domain","three","Rules","Lottie",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":38},"01M6VCJ23NPECPSZJKGY691F75","hotcook-recipes","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fhotcook-agent\u002Fdata\u002Fskills\u002Fhotcook-recipes\u002FSKILL.md",[],[112,113],"hotcook recipes","recipes",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":128,"publishedAt":38},"01M6VCHHE00X5XHSDRD1KH1BW2","code-helper","Code review and assistance skill","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-2\u002Fskills\u002Fcode-helper\u002Fskill.md",[120,123],{"categoryNo":121,"categoryName":122,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[129,130,131,132,133],"code helper","helper","code","code review","review",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":146,"publishedAt":38},"01M6VCH3Q31A20H6SQ1H0J7JB2","research-assistant","Web research assistant skill using Brave Search MCP","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-1\u002Fskills\u002Fresearch-assistant\u002Fskill.md",[140,143],{"categoryNo":141,"categoryName":142,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":144,"categoryName":145,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000023","Skill与智能体开发",[147,148,149,150,151,152,153,154,155,156],"research assistant","research","assistant","MCP","web","search","brave search","web research","brave","web research assistant",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":167,"publishedAt":38},"01M6VCGZZGPNVJSCZ1JTMNZAHY","x-api","X\u002FTwitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fx-api\u002FSKILL.md",[163,166],{"categoryNo":164,"categoryName":165,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},[168,33,169,170,171,172,23,173,174,175,176,177,178,179,180,181,182,183,152,184],"x api","with","when","limits","rate","threads","reading","native","posting","platform","patterns","api integration","twitter","use","auth","analytics","OAuth",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":192,"publishedAt":38},"01M6VCGVX6DGB1FKTA53QBBCQB","workspace-surface-audit","Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fworkspace-surface-audit\u002FSKILL.md",[191],{"categoryNo":144,"categoryName":145,"taxonomyType":81,"taxonomyTypeDesc":82},[193,194,195,196,150,197,198,131,199,200,201,202,181,203,204,205,206,175,207,170],"workspace surface audit","workspace","audit","hooks","workflows","connectors","capabilities","harness","repo","environment","up","harness setup","active","env","value"]