[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71MQXDTYQB74BEX2E1CM13F":3,"skill-same:01M71MQXDTYQB74BEX2E1CM13F":148},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":14,"repositoryHtmlUrl":62,"repositoryHomepageUrl":63,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":65,"install":66,"resources":79},"01M71MQXDTYQB74BEX2E1CM13F","cuopt-server-api-python",null,"cuOpt REST server — start server, endpoints, Python\u002Fcurl client examples. Use when the user is deploying or calling the REST API.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"cuopt server api python","server","api","python","start server","when","client","rest api","calling","endpoints","use","user","curl","team","rest-api","REST","NVIDIA","start","examples","deployment","2026-11-10 10:56:23",false,"---\nname: cuopt-server-api-python\nversion: \"26.08.00\"\ndescription: cuOpt REST server — start server, endpoints, Python\u002Fcurl client examples. Use when the user is deploying or calling the REST API.\nlicense: Apache-2.0\nmetadata:\n  author: NVIDIA cuOpt Team\n  tags:\n    - cuopt\n    - server\n    - rest-api\n    - python\n    - deployment\n---\n\n\n\n# cuOpt Server — Deploy and client (Python\u002Fcurl)\n\nThis skill covers **starting the server** and **client examples** (curl, Python). Server has no separate C API (clients can be any language).\n\n## Problem types supported\n\n| Problem type | Supported |\n|--------------|:---------:|\n| Routing      | ✓         |\n| LP           | ✓         |\n| MILP         | ✓         |\n| QP           | ✗         |\n\n## Required questions\n\nAsk these if not already clear:\n\n1. **Problem type** — Routing or LP\u002FMILP? (QP not available via REST.)\n2. **Deployment** — Local, Docker, Kubernetes, or cloud?\n3. **Client** — Which language or tool will call the API (e.g. Python, curl, another service)?\n\n## Start server\n\n```bash\n# Development\npython -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000\n\n# Docker\ndocker run --gpus all -d -p 8000:8000 -e CUOPT_SERVER_PORT=8000 \\\n  nvidia\u002Fcuopt:latest-cuda12.9-py3.13\n```\n\n## Verify\n\n```bash\ncurl http:\u002F\u002Flocalhost:8000\u002Fcuopt\u002Fhealth\n```\n\n## Workflow\n\n1. POST to `\u002Fcuopt\u002Frequest` → get `reqId`\n2. Poll `\u002Fcuopt\u002Fsolution\u002F{reqId}` until solution ready\n3. Parse response\n\n## Python client (routing)\n\n```python\nimport requests, time\nSERVER = \"http:\u002F\u002Flocalhost:8000\"\nHEADERS = {\"Content-Type\": \"application\u002Fjson\", \"CLIENT-VERSION\": \"custom\"}\npayload = {\n    \"cost_matrix_data\": {\"data\": {\"0\": [[0,10,15],[10,0,12],[15,12,0]]}},\n    \"travel_time_matrix_data\": {\"data\": {\"0\": [[0,10,15],[10,0,12],[15,12,0]]}},\n    \"task_data\": {\"task_locations\": [1, 2], \"demand\": [[10, 20]], \"task_time_windows\": [[0,100],[0,100]], \"service_times\": [5, 5]},\n    \"fleet_data\": {\"vehicle_locations\": [[0, 0]], \"capacities\": [[50]], \"vehicle_time_windows\": [[0, 200]]},\n    \"solver_config\": {\"time_limit\": 5}\n}\nr = requests.post(f\"{SERVER}\u002Fcuopt\u002Frequest\", json=payload, headers=HEADERS)\nreq_id = r.json()[\"reqId\"]\n# Poll: GET \u002Fcuopt\u002Fsolution\u002F{req_id}\n```\n\n## Terminology: REST vs Python API\n\n| Python API | REST |\n|------------|------|\n| order_locations | task_locations |\n| set_order_time_windows() | task_time_windows |\n| service_times | service_times |\n\nUse `travel_time_matrix_data` (not transit_time_matrix_data). Capacities: `[[50, 50]]` not `[[50], [50]]`.\n\n## Debugging (422 \u002F payload)\n\n**Validation errors:** Check field names against OpenAPI (`\u002Fcuopt.yaml`). Common mistakes: `transit_time_matrix_data` → `travel_time_matrix_data`; capacities per dimension `[[50, 50]]` not per vehicle `[[50], [50]]`. Capture `reqId` and response body for failed requests.\n\n## Runnable assets\n\nRun from each asset directory (server must be running; scripts exit 0 if server unreachable). All use Python `requests`:\n\n- [assets\u002Fvrp_simple\u002F](assets\u002Fvrp_simple\u002F) — Basic VRP (no time windows)\n- [assets\u002Fvrp_basic\u002F](assets\u002Fvrp_basic\u002F) — VRP with time windows\n- [assets\u002Fpdp_basic\u002F](assets\u002Fpdp_basic\u002F) — Pickup and delivery\n- [assets\u002Flp_basic\u002F](assets\u002Flp_basic\u002F) — LP via REST (CSR format)\n- [assets\u002Fmilp_basic\u002F](assets\u002Fmilp_basic\u002F) — MILP via REST\n\nSee [assets\u002FREADME.md](assets\u002FREADME.md) for overview.\n\n## Escalate\n\nFor contribution or build-from-source, see the developer skill.\n","# cuOpt Server — Deploy and client (Python\u002Fcurl)\n\nThis skill covers **starting the server** and **client examples** (curl, Python). Server has no separate C API (clients can be any language).\n\n## Problem types supported\n\n| Problem type | Supported |\n|--------------|:---------:|\n| Routing      | ✓         |\n| LP           | ✓         |\n| MILP         | ✓         |\n| QP           | ✗         |\n\n## Required questions\n\nAsk these if not already clear:\n\n1. **Problem type** — Routing or LP\u002FMILP? (QP not available via REST.)\n2. **Deployment** — Local, Docker, Kubernetes, or cloud?\n3. **Client** — Which language or tool will call the API (e.g. Python, curl, another service)?\n\n## Start server\n\n```bash\n# Development\npython -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000\n\n# Docker\ndocker run --gpus all -d -p 8000:8000 -e CUOPT_SERVER_PORT=8000 \\\n  nvidia\u002Fcuopt:latest-cuda12.9-py3.13\n```\n\n## Verify\n\n```bash\ncurl http:\u002F\u002Flocalhost:8000\u002Fcuopt\u002Fhealth\n```\n\n## Workflow\n\n1. POST to `\u002Fcuopt\u002Frequest` → get `reqId`\n2. Poll `\u002Fcuopt\u002Fsolution\u002F{reqId}` until solution ready\n3. Parse response\n\n## Python client (routing)\n\n```python\nimport requests, time\nSERVER = \"http:\u002F\u002Flocalhost:8000\"\nHEADERS = {\"Content-Type\": \"application\u002Fjson\", \"CLIENT-VERSION\": \"custom\"}\npayload = {\n    \"cost_matrix_data\": {\"data\": {\"0\": [[0,10,15],[10,0,12],[15,12,0]]}},\n    \"travel_time_matrix_data\": {\"data\": {\"0\": [[0,10,15],[10,0,12],[15,12,0]]}},\n    \"task_data\": {\"task_locations\": [1, 2], \"demand\": [[10, 20]], \"task_time_windows\": [[0,100],[0,100]], \"service_times\": [5, 5]},\n    \"fleet_data\": {\"vehicle_locations\": [[0, 0]], \"capacities\": [[50]], \"vehicle_time_windows\": [[0, 200]]},\n    \"solver_config\": {\"time_limit\": 5}\n}\nr = requests.post(f\"{SERVER}\u002Fcuopt\u002Frequest\", json=payload, headers=HEADERS)\nreq_id = r.json()[\"reqId\"]\n# Poll: GET \u002Fcuopt\u002Fsolution\u002F{req_id}\n```\n\n## Terminology: REST vs Python API\n\n| Python API | REST |\n|------------|------|\n| order_locations | task_locations |\n| set_order_time_windows() | task_time_windows |\n| service_times | service_times |\n\nUse `travel_time_matrix_data` (not transit_time_matrix_data). Capacities: `[[50, 50]]` not `[[50], [50]]`.\n\n## Debugging (422 \u002F payload)\n\n**Validation errors:** Check field names against OpenAPI (`\u002Fcuopt.yaml`). Common mistakes: `transit_time_matrix_data` → `travel_time_matrix_data`; capacities per dimension `[[50, 50]]` not per vehicle `[[50], [50]]`. Capture `reqId` and response body for failed requests.\n\n## Runnable assets\n\nRun from each asset directory (server must be running; scripts exit 0 if server unreachable). All use Python `requests`:\n\n- [assets\u002Fvrp_simple\u002F](assets\u002Fvrp_simple\u002F) — Basic VRP (no time windows)\n- [assets\u002Fvrp_basic\u002F](assets\u002Fvrp_basic\u002F) — VRP with time windows\n- [assets\u002Fpdp_basic\u002F](assets\u002Fpdp_basic\u002F) — Pickup and delivery\n- [assets\u002Flp_basic\u002F](assets\u002Flp_basic\u002F) — LP via REST (CSR format)\n- [assets\u002Fmilp_basic\u002F](assets\u002Fmilp_basic\u002F) — MILP via REST\n\nSee [assets\u002FREADME.md](assets\u002FREADME.md) for overview.\n\n## Escalate\n\nFor contribution or build-from-source, see the developer skill.\n",{"name":5,"license":15,"version":54,"metadata":55,"description":7},"26.08.00",{"tags":56,"author":58},[57,30,43,32,48],"cuopt","NVIDIA cuOpt Team","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fcuopt-server-api-python","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik","https:\u002F\u002Fnorvik-orpin.vercel.app","https:\u002F\u002Fgithub.com\u002Fpattanation","2026-07-17 11:17:04",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":78},[68,71,74],{"tool":69,"command":70},"npx","npx skills add pattanation\u002FNorvik --skill cuopt-server-api-python",{"tool":72,"command":73},"bunx","bunx skills add pattanation\u002FNorvik --skill cuopt-server-api-python",{"tool":75,"command":76},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill cuopt-server-api-python","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002FSKILL.md",true,[80,86,92,96,100,104,108,112,116,120,124,128,134,138,142],{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"assets\u002Flp_basic\u002Fclient.py","SCRIPT","脚本",2337,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Flp_basic\u002Fclient.py",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"assets\u002Flp_basic\u002FREADME.md","ASSET","资产文件",369,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Flp_basic\u002FREADME.md",{"path":93,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":94,"sourceHtmlUrl":95},"assets\u002Fmilp_basic\u002Fclient.py",2323,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fmilp_basic\u002Fclient.py",{"path":97,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":98,"sourceHtmlUrl":99},"assets\u002Fmilp_basic\u002FREADME.md",361,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fmilp_basic\u002FREADME.md",{"path":101,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":102,"sourceHtmlUrl":103},"assets\u002Fpdp_basic\u002Fclient.py",2747,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fpdp_basic\u002Fclient.py",{"path":105,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":106,"sourceHtmlUrl":107},"assets\u002Fpdp_basic\u002FREADME.md",288,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fpdp_basic\u002FREADME.md",{"path":109,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":110,"sourceHtmlUrl":111},"assets\u002FREADME.md",609,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002FREADME.md",{"path":113,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":114,"sourceHtmlUrl":115},"assets\u002Fvrp_basic\u002Fclient.py",3003,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fvrp_basic\u002Fclient.py",{"path":117,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":118,"sourceHtmlUrl":119},"assets\u002Fvrp_basic\u002FREADME.md",377,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fvrp_basic\u002FREADME.md",{"path":121,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":122,"sourceHtmlUrl":123},"assets\u002Fvrp_simple\u002Fclient.py",2680,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fvrp_simple\u002Fclient.py",{"path":125,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":126,"sourceHtmlUrl":127},"assets\u002Fvrp_simple\u002FREADME.md",255,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fassets\u002Fvrp_simple\u002FREADME.md",{"path":129,"resourceType":130,"resourceTypeDesc":131,"sizeBytes":132,"sourceHtmlUrl":133},"BENCHMARK.md","REFERENCE","参考文档",3847,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002FBENCHMARK.md",{"path":135,"resourceType":130,"resourceTypeDesc":131,"sizeBytes":136,"sourceHtmlUrl":137},"evals\u002Fevals.json",1224,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fevals\u002Fevals.json",{"path":139,"resourceType":130,"resourceTypeDesc":131,"sizeBytes":140,"sourceHtmlUrl":141},"skill-card.md",4116,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fskill-card.md",{"path":143,"resourceType":144,"resourceTypeDesc":145,"sizeBytes":146,"sourceHtmlUrl":147},"skill.oms.sig","OTHER","其他",7213,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fcuopt-server-api-python\u002Fskill.oms.sig",[149,181,206,230,252,267],{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":153,"sourceHtmlUrl":154,"categories":155,"keywords":162,"publishedAt":180},"01M71QDV4DM8T19HEHWATEF1K4","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[156,159],{"categoryNo":157,"categoryName":158,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],"webapp","testing","webapp testing","for","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots","2026-11-10 13:02:02",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":180},"01M71QDH2GGMXGA9105C9W1N7B","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FSKILL.md",[188],{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},[190,191,192,176,193,194,195,166,196,197,169,198,39,199,200,201,202,203,204,205],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","routing","state management",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":210,"licenseFileUrl":211,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":180},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FSKILL.md",[214],{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},[216,217,218,219,220,221,222,223,224,225,226,227,228,229],"functions","vueuse","vueuse functions","project","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":231,"name":232,"nameZh":6,"description":233,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":210,"licenseFileUrl":234,"sourceHtmlUrl":235,"categories":236,"keywords":239,"publishedAt":180},"01M71QD51HWSGYMCMB7RW7PGK8","vue-testing-best-practices","Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",[237,238],{"categoryNo":157,"categoryName":158,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},[240,164,241,227,242,175,243,244,245,222,246,166,247,248,249,39,250,228,251],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":253,"name":254,"nameZh":6,"description":255,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":210,"licenseFileUrl":256,"sourceHtmlUrl":257,"categories":258,"keywords":260,"publishedAt":180},"01M71QD358H2DJ9THJRBP77T3T","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",[259],{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},[261,227,262,242,263,245,264,222,250,265,266],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":268,"name":269,"nameZh":6,"description":270,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":210,"licenseFileUrl":271,"sourceHtmlUrl":272,"categories":273,"keywords":275,"publishedAt":180},"01M71QCYPNWDE2MQZ1TF3ED5S4","vue-best-practices","MUST be used for Vue.js tasks. Strongly recommends Composition API with `\u003Cscript setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FSKILL.md",[274],{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},[276,227,242,277,219,278,279,31,261,280,281,282,283,284,285,166,286,39,287,288],"vue best practices","Composition","files","tasks","pinia","work","options","ssr","typescript","as","vite","load","standard"]