[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QCQ8Z9W50HHTVDS9Z12F0":3,"skill-same:01M71QCQ8Z9W50HHTVDS9Z12F0":125},{"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":37,"publishedAt":58,"linkOnly":59,"markdownContent":60,"markdownBody":61,"frontMatter":62,"refName":68,"commitSha":69,"skillDirectory":70,"forksCount":14,"repositoryHtmlUrl":71,"repositoryHomepageUrl":72,"ownerHtmlUrl":73,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":74,"install":75,"resources":88},"01M71QCQ8Z9W50HHTVDS9Z12F0","vss-setup-video-analytics-api",null,"Use to deploy the vss-video-analytics-api REST service standalone (config-source, data-log bind, Elasticsearch, optional Kafka). Not for full warehouse deploy.","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\u002Fvss-setup-video-analytics-api\u002FSKILL.md",[18,23,26,29,34],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000033","数据分析师",[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],"vss setup video analytics api","api","analytics","setup","Video","REST","log","team","Blueprint","elasticsearch","use","search","deployment","for","NVIDIA","kafka","standalone","rest-api","bind","warehouse","2026-11-10 13:02:02",false,"---\nname: vss-setup-video-analytics-api\ndescription: Use to deploy the vss-video-analytics-api REST service standalone (config-source, data-log bind, Elasticsearch, optional Kafka). Not for full warehouse deploy.\nlicense: Apache-2.0\nmetadata:\n  author: \"NVIDIA Video Search and Summarization team\"\n  version: \"3.2.0\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization\"\n  tags: \"nvidia blueprint operational deployment video-analytics-api rest-api\"\n---\n## Purpose\n\nDeploy the video-analytics-api REST service standalone with the user's chosen config, data-log bind, and Elasticsearch \u002F Kafka connectivity.\n\n## Instructions\n\nFollow the routing tables and step-by-step workflows below. Each section that ends in *workflow*, *quick start*, or *flow* is intended to be executed top-to-bottom. Detailed reference material lives in `references\u002F`.\n\n## Examples\n\nWorked end-to-end examples are kept under `evals\u002F` (each `*.json` manifest\ncontains a runnable scenario). Run a Tier-3 evaluation to replay them:\n\n```bash\nnv-base validate skills\u002Fvss-setup-video-analytics-api --agent-eval\n```\n\nA minimal standalone bring-up looks like:\n\n```bash\ncd $REPO\u002Fdeploy\u002Fdocker\nexport VSS_APPS_DIR=$(pwd)\nexport VSS_DATA_DIR=${VSS_DATA_DIR:-\u002Ftmp\u002Fvss-data}\nmkdir -p \"$VSS_DATA_DIR\u002Fdata_log\u002Fvss_video_analytics_api\"\ndocker compose -f services\u002Fanalytics\u002Fvideo-analytics-api\u002Fcompose.yml up -d vss-video-analytics-api\ncurl -sf http:\u002F\u002Flocalhost:8081\u002Flivez\n```\n\nFollow [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) for the full\nworkflow (config source, data-log bind, infrastructure dependencies, REST endpoints).\nFor the field-by-field JSON config reference, see [`references\u002Fconfiguration.md`](references\u002Fconfiguration.md).\n\n## Limitations\n\n- Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.\n- NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.\n- Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.\n\n## Troubleshooting\n\n- **Error**: REST call returns connection refused. **Cause**: target microservice not running. **Solution**: probe `\u002Fdocs` or `\u002Fhealth`; redeploy via `vss-deploy-profile` or the matching `vss-deploy-*` skill.\n- **Error**: HTTP 401\u002F403 from NGC pulls. **Cause**: missing\u002Fexpired `NGC_CLI_API_KEY`. **Solution**: `docker login nvcr.io` and re-export the key before retrying.\n- **Error**: container OOM or model fails to load. **Cause**: insufficient GPU memory for the selected profile. **Solution**: switch to a smaller variant or free GPUs via `docker compose down`.\n\n# VSS Setup Video Analytics API — Standalone\n\nDeploy **just** the `vss-video-analytics-api` container (the Node.js REST API from the upstream `video-analytics-api` repo), not as part of the full warehouse blueprint stack.\n\nThe full operational walkthrough — config-source options, data-log volume behavior, infrastructure dependencies, REST API endpoints, deploy + verify, troubleshooting — lives in [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md). The field-by-field JSON config reference lives in [`references\u002Fconfiguration.md`](references\u002Fconfiguration.md). This SKILL.md only handles routing and prerequisites.\n\n## When to use\n\n- \"Deploy video analytics api\" \u002F \"run video-analytics-api standalone\"\n- \"I just want to run the REST API, not the full stack\"\n- \"Use my own video-analytics-api config\"\n- \"Point the API at a different Elasticsearch \u002F Kafka\"\n- \"Start the API without Kafka\" \u002F \"run the API broker-less\"\n- \"Check what REST endpoints are available\"\n\n## Prerequisites\n\n1. **Repo checkout** with `$VSS_APPS_DIR` pointing at `\u003Crepo>\u002Fdeploy\u002Fdocker\u002F`. Required by the service compose's volume binds.\n2. **NGC credentials** — `$NGC_CLI_API_KEY` set so docker can pull the image. See [`references\u002Fngc-api-key-registry-login.md`](references\u002Fngc-api-key-registry-login.md).\n\n   > **Secure-handling note for `NGC_CLI_API_KEY`**: this key is a\n   > long-lived credential that pulls all NVIDIA private images\n   > available to your NGC org. Never commit the key, never paste it\n   > into chat, never store it in `\u002Ftmp`. Read it interactively\n   > (`read -rs NGC_CLI_API_KEY`) or load it from your secret manager\n   > (Vault, AWS Secrets Manager, sealed-secrets) at deploy time.\n   > Write any derived `.env` files with `umask 077` + `chmod 600`,\n   > add them to `.gitignore`, and rotate the key on a defined\n   > cadence and after every host decommission. If it has ever been\n   > exposed (host snapshot, shared screen, ticket attachment),\n   > rotate immediately.\n3. **Docker runtime** — Docker Engine **28.3.3** with Docker Compose plugin **v2.39.1+**. Verify with `docker --version` and `docker compose version`.\n4. **Elasticsearch** — must be reachable at the URL configured in `elasticsearch.node`. The server pings ES on startup; if unreachable, it exits (and `restart: always` brings it back). If you need to bring up ES too, use the infra compose: `docker compose -f services\u002Finfra\u002Fcompose.yml up -d elasticsearch`.\n5. **Optional Kafka broker**. The API can run without Kafka. If you want a quiet broker-less deployment, use the image-baked config or a custom config with `kafka.brokers: []`; the service-shipped compose config points at `localhost:9092`, so Kafka-dependent features (dynamic config, dynamic calibration, RTLS\u002FAMR) will fail until a broker is reachable.\n6. **`$VSS_DATA_DIR` for the default compose.** The base compose bind-mounts `$VSS_DATA_DIR\u002Fdata_log\u002Fvss_video_analytics_api` for multipart upload handling and file-backed assets such as calibration images. Set the directory to a writable host path and pre-create it, or remove that mount if image uploads are not needed.\n\nIf any required prerequisite fails, surface the gap before going further.\n\n## Workflow\n\nHand the user [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) and walk them through its steps in order:\n\n1. Choose a config — image-baked default, service-shipped, or custom.\n2. Decide whether a data-log volume is needed for file uploads.\n3. Confirm infrastructure dependencies — Elasticsearch (required), Kafka (optional).\n4. Deploy + verify with `docker compose up` and health check.\n\nThe compose-file edits, config options, deploy + verify commands, REST API endpoint table, and troubleshooting table all live in that reference — don't duplicate them here.\n\n## Endpoint Reference\n\nUse [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) for the REST endpoint table and runtime dependency notes.\n\n## Kafka-dependent features (runtime, requires broker)\n\nOnce the container is up **and a Kafka broker is reachable**, three additional capabilities are available:\n\n### Dynamic config\n\nThe API acts as the **producer** for dynamic config updates. When an operator POSTs to `\u002Fconfig`, the API publishes an `upsert` message to the `mdx-notification` topic with Kafka key `behavior-analytics-config`. The downstream `behavior-analytics` container consumes this and ACKs back. The API also handles the bootstrap flow — when `behavior-analytics` starts, it publishes a `request-config` message, and the API replies with `upsert-all` containing the latest verified config from Elasticsearch.\n\nConsumer-side validation, ACK semantics, and the full wire contract are documented in the `vss-setup-behavior-analytics` dynamic-config reference.\n\n### Dynamic calibration\n\nThe API produces calibration update notifications on `mdx-notification` with Kafka key `calibration`. Supports `upsert-all` (full snapshot), `upsert` (per-sensor merge), and `delete` (per-sensor removal). The downstream `behavior-analytics` container consumes these and applies them to the live calibration.\n\nConsumer-side validation and per-action policy are documented in the `vss-setup-behavior-analytics` dynamic-calibration reference.\n\n### RTLS \u002F AMR\n\nThe API consumes real-time location (`mdx-rtls`) and AMR (`mdx-amr`) messages from Kafka and exposes them via REST endpoints.\n\n## Routing rules\n\n- If the user wants \"the full stack\" (UI \u002F agent \u002F perception): hand off to `vss-deploy-profile` with profile `warehouse` (or `alerts`). Don't run this skill in parallel.\n- If the user wants to deploy the analytics pipeline (behavior creation, incident detection): hand off to `vss-setup-behavior-analytics`.\n- If the user wants to publish a runtime config \u002F calibration update through the REST API: confirm Kafka is reachable, then use the `\u002Fconfig` or calibration endpoints and point them at the behavior-analytics dynamic-update references for the consumer wire contract.\n- If the user wants to understand the dynamic config \u002F dynamic calibration wire contract from the **consumer** (behavior-analytics) side: point them at the `vss-setup-behavior-analytics` dynamic-config and dynamic-calibration references.\n- If the user wants to query or interact with the REST API endpoints: the deploy reference endpoint table covers what's available. For the full OpenAPI spec, see `src\u002Fapp\u002Fspecification\u002Fopenapi.json` in the `video-analytics-api` repo.\n\n\nbump:1\n","## Purpose\n\nDeploy the video-analytics-api REST service standalone with the user's chosen config, data-log bind, and Elasticsearch \u002F Kafka connectivity.\n\n## Instructions\n\nFollow the routing tables and step-by-step workflows below. Each section that ends in *workflow*, *quick start*, or *flow* is intended to be executed top-to-bottom. Detailed reference material lives in `references\u002F`.\n\n## Examples\n\nWorked end-to-end examples are kept under `evals\u002F` (each `*.json` manifest\ncontains a runnable scenario). Run a Tier-3 evaluation to replay them:\n\n```bash\nnv-base validate skills\u002Fvss-setup-video-analytics-api --agent-eval\n```\n\nA minimal standalone bring-up looks like:\n\n```bash\ncd $REPO\u002Fdeploy\u002Fdocker\nexport VSS_APPS_DIR=$(pwd)\nexport VSS_DATA_DIR=${VSS_DATA_DIR:-\u002Ftmp\u002Fvss-data}\nmkdir -p \"$VSS_DATA_DIR\u002Fdata_log\u002Fvss_video_analytics_api\"\ndocker compose -f services\u002Fanalytics\u002Fvideo-analytics-api\u002Fcompose.yml up -d vss-video-analytics-api\ncurl -sf http:\u002F\u002Flocalhost:8081\u002Flivez\n```\n\nFollow [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) for the full\nworkflow (config source, data-log bind, infrastructure dependencies, REST endpoints).\nFor the field-by-field JSON config reference, see [`references\u002Fconfiguration.md`](references\u002Fconfiguration.md).\n\n## Limitations\n\n- Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.\n- NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.\n- Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.\n\n## Troubleshooting\n\n- **Error**: REST call returns connection refused. **Cause**: target microservice not running. **Solution**: probe `\u002Fdocs` or `\u002Fhealth`; redeploy via `vss-deploy-profile` or the matching `vss-deploy-*` skill.\n- **Error**: HTTP 401\u002F403 from NGC pulls. **Cause**: missing\u002Fexpired `NGC_CLI_API_KEY`. **Solution**: `docker login nvcr.io` and re-export the key before retrying.\n- **Error**: container OOM or model fails to load. **Cause**: insufficient GPU memory for the selected profile. **Solution**: switch to a smaller variant or free GPUs via `docker compose down`.\n\n# VSS Setup Video Analytics API — Standalone\n\nDeploy **just** the `vss-video-analytics-api` container (the Node.js REST API from the upstream `video-analytics-api` repo), not as part of the full warehouse blueprint stack.\n\nThe full operational walkthrough — config-source options, data-log volume behavior, infrastructure dependencies, REST API endpoints, deploy + verify, troubleshooting — lives in [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md). The field-by-field JSON config reference lives in [`references\u002Fconfiguration.md`](references\u002Fconfiguration.md). This SKILL.md only handles routing and prerequisites.\n\n## When to use\n\n- \"Deploy video analytics api\" \u002F \"run video-analytics-api standalone\"\n- \"I just want to run the REST API, not the full stack\"\n- \"Use my own video-analytics-api config\"\n- \"Point the API at a different Elasticsearch \u002F Kafka\"\n- \"Start the API without Kafka\" \u002F \"run the API broker-less\"\n- \"Check what REST endpoints are available\"\n\n## Prerequisites\n\n1. **Repo checkout** with `$VSS_APPS_DIR` pointing at `\u003Crepo>\u002Fdeploy\u002Fdocker\u002F`. Required by the service compose's volume binds.\n2. **NGC credentials** — `$NGC_CLI_API_KEY` set so docker can pull the image. See [`references\u002Fngc-api-key-registry-login.md`](references\u002Fngc-api-key-registry-login.md).\n\n   > **Secure-handling note for `NGC_CLI_API_KEY`**: this key is a\n   > long-lived credential that pulls all NVIDIA private images\n   > available to your NGC org. Never commit the key, never paste it\n   > into chat, never store it in `\u002Ftmp`. Read it interactively\n   > (`read -rs NGC_CLI_API_KEY`) or load it from your secret manager\n   > (Vault, AWS Secrets Manager, sealed-secrets) at deploy time.\n   > Write any derived `.env` files with `umask 077` + `chmod 600`,\n   > add them to `.gitignore`, and rotate the key on a defined\n   > cadence and after every host decommission. If it has ever been\n   > exposed (host snapshot, shared screen, ticket attachment),\n   > rotate immediately.\n3. **Docker runtime** — Docker Engine **28.3.3** with Docker Compose plugin **v2.39.1+**. Verify with `docker --version` and `docker compose version`.\n4. **Elasticsearch** — must be reachable at the URL configured in `elasticsearch.node`. The server pings ES on startup; if unreachable, it exits (and `restart: always` brings it back). If you need to bring up ES too, use the infra compose: `docker compose -f services\u002Finfra\u002Fcompose.yml up -d elasticsearch`.\n5. **Optional Kafka broker**. The API can run without Kafka. If you want a quiet broker-less deployment, use the image-baked config or a custom config with `kafka.brokers: []`; the service-shipped compose config points at `localhost:9092`, so Kafka-dependent features (dynamic config, dynamic calibration, RTLS\u002FAMR) will fail until a broker is reachable.\n6. **`$VSS_DATA_DIR` for the default compose.** The base compose bind-mounts `$VSS_DATA_DIR\u002Fdata_log\u002Fvss_video_analytics_api` for multipart upload handling and file-backed assets such as calibration images. Set the directory to a writable host path and pre-create it, or remove that mount if image uploads are not needed.\n\nIf any required prerequisite fails, surface the gap before going further.\n\n## Workflow\n\nHand the user [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) and walk them through its steps in order:\n\n1. Choose a config — image-baked default, service-shipped, or custom.\n2. Decide whether a data-log volume is needed for file uploads.\n3. Confirm infrastructure dependencies — Elasticsearch (required), Kafka (optional).\n4. Deploy + verify with `docker compose up` and health check.\n\nThe compose-file edits, config options, deploy + verify commands, REST API endpoint table, and troubleshooting table all live in that reference — don't duplicate them here.\n\n## Endpoint Reference\n\nUse [`references\u002Fdeploy-video-analytics-api-service.md`](references\u002Fdeploy-video-analytics-api-service.md) for the REST endpoint table and runtime dependency notes.\n\n## Kafka-dependent features (runtime, requires broker)\n\nOnce the container is up **and a Kafka broker is reachable**, three additional capabilities are available:\n\n### Dynamic config\n\nThe API acts as the **producer** for dynamic config updates. When an operator POSTs to `\u002Fconfig`, the API publishes an `upsert` message to the `mdx-notification` topic with Kafka key `behavior-analytics-config`. The downstream `behavior-analytics` container consumes this and ACKs back. The API also handles the bootstrap flow — when `behavior-analytics` starts, it publishes a `request-config` message, and the API replies with `upsert-all` containing the latest verified config from Elasticsearch.\n\nConsumer-side validation, ACK semantics, and the full wire contract are documented in the `vss-setup-behavior-analytics` dynamic-config reference.\n\n### Dynamic calibration\n\nThe API produces calibration update notifications on `mdx-notification` with Kafka key `calibration`. Supports `upsert-all` (full snapshot), `upsert` (per-sensor merge), and `delete` (per-sensor removal). The downstream `behavior-analytics` container consumes these and applies them to the live calibration.\n\nConsumer-side validation and per-action policy are documented in the `vss-setup-behavior-analytics` dynamic-calibration reference.\n\n### RTLS \u002F AMR\n\nThe API consumes real-time location (`mdx-rtls`) and AMR (`mdx-amr`) messages from Kafka and exposes them via REST endpoints.\n\n## Routing rules\n\n- If the user wants \"the full stack\" (UI \u002F agent \u002F perception): hand off to `vss-deploy-profile` with profile `warehouse` (or `alerts`). Don't run this skill in parallel.\n- If the user wants to deploy the analytics pipeline (behavior creation, incident detection): hand off to `vss-setup-behavior-analytics`.\n- If the user wants to publish a runtime config \u002F calibration update through the REST API: confirm Kafka is reachable, then use the `\u002Fconfig` or calibration endpoints and point them at the behavior-analytics dynamic-update references for the consumer wire contract.\n- If the user wants to understand the dynamic config \u002F dynamic calibration wire contract from the **consumer** (behavior-analytics) side: point them at the `vss-setup-behavior-analytics` dynamic-config and dynamic-calibration references.\n- If the user wants to query or interact with the REST API endpoints: the deploy reference endpoint table covers what's available. For the full OpenAPI spec, see `src\u002Fapp\u002Fspecification\u002Fopenapi.json` in the `video-analytics-api` repo.\n\n\nbump:1\n",{"name":5,"license":15,"metadata":63,"description":7},{"tags":64,"author":65,"version":66,"github-url":67},"nvidia blueprint operational deployment video-analytics-api rest-api","NVIDIA Video Search and Summarization team","3.2.0","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fvss-setup-video-analytics-api","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":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add pattanation\u002FNorvik --skill vss-setup-video-analytics-api",{"tool":81,"command":82},"bunx","bunx skills add pattanation\u002FNorvik --skill vss-setup-video-analytics-api",{"tool":84,"command":85},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill vss-setup-video-analytics-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002FSKILL.md",true,[89,95,99,103,107,111,115,119],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"BENCHMARK.md","REFERENCE","参考文档",3933,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002FBENCHMARK.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"evals\u002Fevals.json",697,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Fevals\u002Fevals.json",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"evals\u002Fstandalone_deploy.json",3932,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Fevals\u002Fstandalone_deploy.json",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fconfiguration.md",4078,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Freferences\u002Fconfiguration.md",{"path":108,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fdeploy-video-analytics-api-service.md",15349,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Freferences\u002Fdeploy-video-analytics-api-service.md",{"path":112,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fngc-api-key-registry-login.md",2018,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Freferences\u002Fngc-api-key-registry-login.md",{"path":116,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":117,"sourceHtmlUrl":118},"skill-card.md",3964,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Fskill-card.md",{"path":120,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":123,"sourceHtmlUrl":124},"skill.oms.sig","OTHER","其他",5613,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-setup-video-analytics-api\u002Fskill.oms.sig",[126,156,181,205,227,242],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":130,"sourceHtmlUrl":131,"categories":132,"keywords":139,"publishedAt":58},"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",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[140,141,142,51,143,144,145,146,147,148,149,150,151,152,153,154,155],"webapp","testing","webapp testing","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":58},"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",[163],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},[165,166,167,152,168,169,170,51,171,172,145,173,48,174,175,176,177,178,179,180],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","routing","state management",{"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":185,"licenseFileUrl":186,"sourceHtmlUrl":187,"categories":188,"keywords":190,"publishedAt":58},"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",[189],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},[191,192,193,194,195,196,197,198,199,200,201,202,203,204],"functions","vueuse","vueuse functions","project","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":185,"licenseFileUrl":209,"sourceHtmlUrl":210,"categories":211,"keywords":214,"publishedAt":58},"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",[212,213],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},[215,141,216,202,217,151,218,219,220,197,221,51,222,223,224,48,225,203,226],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":185,"licenseFileUrl":231,"sourceHtmlUrl":232,"categories":233,"keywords":235,"publishedAt":58},"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",[234],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},[236,202,237,217,238,220,239,197,225,240,241],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":243,"name":244,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":185,"licenseFileUrl":246,"sourceHtmlUrl":247,"categories":248,"keywords":250,"publishedAt":58},"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",[249],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},[251,202,217,252,194,253,254,39,236,255,256,257,258,259,260,51,261,48,262,263],"vue best practices","Composition","files","tasks","pinia","work","options","ssr","typescript","as","vite","load","standard"]