[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XB4CYKSA3YYVRZAW4SDJ2C":3,"skill-same:01M6XB4CYKSA3YYVRZAW4SDJ2C":72},{"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":31,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6XB4CYKSA3YYVRZAW4SDJ2C","zustand-store-design",null,"Structure Zustand stores for predictable frontend state, derived selectors, and minimal rerenders.","su-yongjian\u002FSiming-Agent","su-yongjian","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F34278832?v=4","01M6XB1DS467062WEFANMWWDNZ","allan","01M6XB1DXXVA6F9PSVT9ATYQGJ",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Ffrontend\u002Fzustand-store-design\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41],"design","zustand","store","zustand store design","frontend","state","minimal","structure","frontend state","for","2026-11-10 10:12:30",false,"---\nname: zustand-store-design\ndescription: Structure Zustand stores for predictable frontend state, derived selectors, and minimal rerenders.\nversion: 1.0.0\nauthor: Siming\nlicense: MIT\nmetadata:\n  siming:\n    tags:\n      - frontend\n      - zustand\n      - state\n---\n\n# Zustand Store Design\n\nUse this skill when designing frontend state stores.\n\n## Workflow\n\n1. Keep server state in request\u002Fquery layers when possible.\n2. Use Zustand for UI state, auth session snapshots, theme state, and cross-page local state.\n3. Split large stores by responsibility.\n4. Expose selectors to avoid rerendering unrelated components.\n5. Keep actions small and named by user intent.\n\n## Checks\n\n- No derived state stored unless it avoids expensive recomputation.\n- No hidden mutation outside store actions.\n","# Zustand Store Design\n\nUse this skill when designing frontend state stores.\n\n## Workflow\n\n1. Keep server state in request\u002Fquery layers when possible.\n2. Use Zustand for UI state, auth session snapshots, theme state, and cross-page local state.\n3. Split large stores by responsibility.\n4. Expose selectors to avoid rerendering unrelated components.\n5. Keep actions small and named by user intent.\n\n## Checks\n\n- No derived state stored unless it avoids expensive recomputation.\n- No hidden mutation outside store actions.\n",{"name":5,"author":47,"license":15,"version":48,"metadata":49,"description":7},"Siming","1.0.0",{"siming":50},{"tags":51},[36,33,37],"main","b4db2a9f5faef96fc29f543d56235a5f1702d160","apps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Ffrontend\u002Fzustand-store-design","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent","https:\u002F\u002Fgithub.com\u002Fsu-yongjian","2026-05-28 21:54:51",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add su-yongjian\u002FSiming-Agent --skill zustand-store-design",{"tool":64,"command":65},"bunx","bunx skills add su-yongjian\u002FSiming-Agent --skill zustand-store-design",{"tool":67,"command":68},"pnpm","pnpm dlx skills add su-yongjian\u002FSiming-Agent --skill zustand-store-design","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Ffrontend\u002Fzustand-store-design\u002FSKILL.md",true,[],[73,101,127,144,163,184],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":83,"publishedAt":42},"01M6XB78GXMFJHZ2TJKSW1XASM","playwright-visual-check","Use Playwright to verify UI layout, screenshots, responsive behavior, and console\u002Fruntime errors.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Ftesting\u002Fplaywright-visual-check\u002FSKILL.md",[79,82],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,36,100],"playwright","check","playwright visual check","visual","verify","verify ui","errors","ui layout","runtime","layout","responsive","use","behavior","ui","console","screenshots","testing",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":113,"publishedAt":42},"01M6XB707EYMR6T375H3Q8GG00","api-smoke-tests","Create API smoke tests for auth, CRUD, pagination, empty states, and error paths.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Ftesting\u002Fapi-smoke-tests\u002FSKILL.md",[107,110],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":111,"categoryName":112,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师",[114,115,116,117,118,100,119,120,121,122,123,124,41,125,126],"tests","smoke","api smoke tests","api","smoke tests","crud","auth","pagination","create","empty","paths","states","error",{"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":42},"01M6XB6TRDFD9HQE8QZJ7TY5W8","secret-handling","Handle secrets, API keys, tokens, and credentials safely in code, logs, configs, and UI.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Fsecurity\u002Fsecret-handling\u002FSKILL.md",[],[134,135,136,137,138,139,140,141,97,142,143,117],"secret handling","api keys","keys","tokens","security","secrets","credentials","logs","code","config",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":42},"01M6XB6N18T1N82EQ5S66Z384M","dependency-risk-scan","Evaluate dependency risk, vulnerability scan results, package updates, and safe upgrade strategy.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Fsecurity\u002Fdependency-risk-scan\u002FSKILL.md",[],[151,152,153,154,155,156,157,158,159,160,161,138,162],"dependency risk scan","risk","dependency","scan","upgrade","evaluate","updates","results","strategy","vulnerability","package","safe",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":42},"01M6XB6FPVFZ5P2Q47T338NQGR","vector-search-quality","Improve vector retrieval quality with chunk strategy, metadata filters, thresholds, and reranking.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Frag\u002Fvector-search-quality\u002FSKILL.md",[],[170,171,172,173,174,175,176,159,177,178,179,180,181,182,183],"vector search quality","quality","Vector Search","vector","search","thresholds","filters","improve","metadata","chunk","rag","retrieval","reranking","with",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":42},"01M6XB6AH9VVY23MR7WST6XH2D","rag-ingestion-pipeline","Build RAG document ingestion flows with upload, parsing, chunking, embedding, queueing, and status tracking.","https:\u002F\u002Fgithub.com\u002Fsu-yongjian\u002FSiming-Agent\u002Fblob\u002Fmain\u002Fapps\u002Fserver\u002Fagent-server\u002Fbundled-skills\u002Frag\u002Frag-ingestion-pipeline\u002FSKILL.md",[],[191,180,192,193,194,195,183,196,197,198,199,200,201,202,203,204,205],"rag ingestion pipeline","pipeline","ingestion","rag ingestion","Document Ingestion","flows","embedding","chunking","upload","build","document","tracking","parsing","documents","status"]