[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NEZX1F1VBJVB2ZT0DFJ0F":3,"skill-same:01M71NEZX1F1VBJVB2ZT0DFJ0F":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":23,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M71NEZX1F1VBJVB2ZT0DFJ0F","holoscan-install-container",null,"Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt\u002Fpip\u002FConda installs.","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\u002Fholoscan-install-container\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"container","holoscan install container","install","NVIDIA","apt","for","docker","use","team","pip","conda","github","native","via","sdk","https","2026-11-10 10:56:23",false,"---\nname: holoscan-install-container\nversion: \"1.0.0\"\ndescription: \"Install Holoscan SDK via the NGC Docker container. Use for container-based installs; not for native apt\u002Fpip\u002FConda installs.\"\nlicense: Apache-2.0\nmetadata:\n  author: \"Holoscan Team \u003Choloscan-team@nvidia.com>\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002Fnvidia-holoscan\u002Fholoscan-sdk\"\n  tags:\n    - holoscan\n    - install\n    - container\n    - docker\n    - ngc\n---\n\n# Holoscan NGC Container Installation\n\n## Purpose\n\nPull and verify the official Holoscan SDK container from NGC (`nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan`), selecting the right CUDA\u002Farch tag for the host GPU and validating with the bundled Python and C++ examples.\n\n## Prerequisites\n\n- Linux host with an NVIDIA GPU and a working driver (`nvidia-smi`).\n- Docker installed and the user in the `docker` group (or `sudo`).\n- NVIDIA Container Toolkit installed (`docker run --gpus all` works).\n- ~10–20 GB free disk for the image pull.\n- Network access to `nvcr.io` and `docs.nvidia.com`.\n\n## Limitations\n\n- Container images cover only the tag matrix below — no Conda\u002Fpip env inside.\n- GUI examples require X11 forwarding; this skill runs Holoviz headless to avoid that.\n- Tag suffix must match the host GPU\u002Fdriver (cuda13 \u002F cuda12-dgpu \u002F cuda12-igpu) — wrong suffix → CUDA init failures.\n\n## Instructions\n\n- Container repo: `nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan`.\n- The doc page at https:\u002F\u002Fdocs.nvidia.com\u002Fholoscan\u002Fsdk-user-guide\u002Fsdk_installation.html is canonical — fetch it if anything below disagrees.\n- Work through the steps below in order: pick the tag, verify GPU passthrough and pull, verify with the six examples, then hand off the launch command.\n\n## Step 1: Pick the tag\n\nTag = `\u003Cversion>-\u003Csuffix>`, e.g. `v4.1.0-cuda13`. Get the current SDK version from the doc page above; pick the suffix from `nvidia-smi` (the \"CUDA Version\" field, top-right of the table header):\n\n| `nvidia-smi` CUDA Version | Suffix |\n|---|---|\n| 13.x+ | `cuda13` |\n| 12.x, Ampere\u002FAda dGPU | `cuda12-dgpu` |\n| 12.x, ARM64 iGPU (nvgpu) | `cuda12-igpu` |\n\nThe \"CUDA Forward Compatibility mode ENABLED\" banner is expected — not an error — when the container ships a newer CUDA minor version than the host driver supports. The forward-compat shim lets the container's CUDA runtime work against the older host driver within the same major version.\n\n## Step 2: Verify GPU passthrough, then pull\n\n```bash\ndocker run --rm --gpus all ubuntu:22.04 nvidia-smi 2>&1 | tail -5\n```\n\nIf Docker is missing → install from https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F. If GPU passthrough fails → install the NVIDIA Container Toolkit per https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html, then retry.\n\nPull (~10–20 GB — warn the user before starting):\n\n```bash\ndocker pull nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\n```\n\n## Step 3: Verify with six examples\n\nTests cover: bare Python binding (1a), bare C++ runtime (1b, 2a), Python + Holoviz\u002FVulkan (2b, 3a), and C++ + Holoviz\u002FVulkan (3b). Holoviz examples always run headless (inject `headless: true` into the YAML) — this works whether or not a display is attached and avoids GUI failure modes over SSH.\n\n```bash\nIMG=nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\nRUN=(docker run --rm --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE --ipc=host --ulimit memlock=-1 --ulimit stack=67108864)\n\n# 1a. hello_world (Python) — expect \"Hello World!\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && python3 \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fhello_world\u002Fpython\u002Fhello_world.py\"\n\n# 1b. hello_world (C++) — expect \"Hello World!\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fhello_world\u002Fcpp\u002Fhello_world\"\n\n# 2a. tensor_interop (C++) — expect tensors doubling each pass, \"Graph execution finished.\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fcpp\u002Ftensor_interop\"\n\n# 2b. tensor_interop (Python, 10 frames) — Holoviz, headless. The YAML has no\n#     headless field by default, so inject one under `holoviz:`. Expect\n#     \"message received (count: 10)\".\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^holoviz:\u002Fholoviz:\\n  headless: true\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fpython\u002Ftensor_interop.yaml > \u002Ftmp\u002Fti.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fpython\n  python3 tensor_interop.py --config \u002Ftmp\u002Fti.yaml\n\"\n\n# 3a. video_replayer (Python, 10 frames) — Holoviz, headless. Inject `headless: true`\n#     under `holoviz:` (above `width: 854`). Same sed works for the C++ YAML in 3b —\n#     both files share the same `holoviz:` section shape.\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^  width: 854\u002F  headless: true\\n  width: 854\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fpython\u002Fvideo_replayer.yaml > \u002Ftmp\u002Fvr.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fpython\n  HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata python3 video_replayer.py --config \u002Ftmp\u002Fvr.yaml\n\"\n\n# 3b. video_replayer (C++, 10 frames) — same headless injection as 3a. The C++\n#     YAML hard-codes `directory: \"..\u002Fdata\u002Fracerx\"`, but HOLOSCAN_INPUT_PATH\n#     overrides it, so we don't need to patch that field.\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^  width: 854\u002F  headless: true\\n  width: 854\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fcpp\u002Fvideo_replayer.yaml > \u002Ftmp\u002Fvr_cpp.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fcpp\n  HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata .\u002Fvideo_replayer --config \u002Ftmp\u002Fvr_cpp.yaml\n\"\n```\n\n## Step 4: Launch command\n\n- Read https:\u002F\u002Fcatalog.ngc.nvidia.com\u002Forgs\u002Fnvidia\u002Fteams\u002Fclara-holoscan\u002Fcontainers\u002Fholoscan.\n- Explain the docker flags below to the user.\n- Refer the user to that link for additional flags (e.g., how to mount V4L2 video devices).\n\n```bash\ndocker run -it --rm \\\n  --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE \\\n  --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \\\n  nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\n# Examples: \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002F\n# Mount files: -v \u002Fhost\u002Fpath:\u002Fcontainer\u002Fpath\n# GUI examples: add -v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix -e DISPLAY=$DISPLAY\n```\n\nNext:\n- Explore: `ls \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002F`\n- Walk through one: `\u002Fholoscan-explain-example`\n\n## Troubleshooting\n\n- **`docker: Error response from daemon: could not select device driver \"nvidia\"`.** NVIDIA Container Toolkit is missing or not configured. Install per the link in Step 2 and restart Docker.\n- **CUDA init failure inside the container.** Tag suffix doesn't match the host. Re-check `nvidia-smi` CUDA Version and the table in Step 1.\n- **Segmentation fault when launching an example.** `ulimit -s 32768` wasn't applied inside the container. Use the `bash -c \"ulimit -s 32768 && ...\"` pattern shown in Step 3.\n- **Holoviz example hangs \u002F no window over SSH.** YAML wasn't patched to `headless: true`. Use the `sed` injection shown in Step 3.\n- **`video_replayer` can't find data.** Set `HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata` — overrides the YAML's hard-coded path.\n","# Holoscan NGC Container Installation\n\n## Purpose\n\nPull and verify the official Holoscan SDK container from NGC (`nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan`), selecting the right CUDA\u002Farch tag for the host GPU and validating with the bundled Python and C++ examples.\n\n## Prerequisites\n\n- Linux host with an NVIDIA GPU and a working driver (`nvidia-smi`).\n- Docker installed and the user in the `docker` group (or `sudo`).\n- NVIDIA Container Toolkit installed (`docker run --gpus all` works).\n- ~10–20 GB free disk for the image pull.\n- Network access to `nvcr.io` and `docs.nvidia.com`.\n\n## Limitations\n\n- Container images cover only the tag matrix below — no Conda\u002Fpip env inside.\n- GUI examples require X11 forwarding; this skill runs Holoviz headless to avoid that.\n- Tag suffix must match the host GPU\u002Fdriver (cuda13 \u002F cuda12-dgpu \u002F cuda12-igpu) — wrong suffix → CUDA init failures.\n\n## Instructions\n\n- Container repo: `nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan`.\n- The doc page at https:\u002F\u002Fdocs.nvidia.com\u002Fholoscan\u002Fsdk-user-guide\u002Fsdk_installation.html is canonical — fetch it if anything below disagrees.\n- Work through the steps below in order: pick the tag, verify GPU passthrough and pull, verify with the six examples, then hand off the launch command.\n\n## Step 1: Pick the tag\n\nTag = `\u003Cversion>-\u003Csuffix>`, e.g. `v4.1.0-cuda13`. Get the current SDK version from the doc page above; pick the suffix from `nvidia-smi` (the \"CUDA Version\" field, top-right of the table header):\n\n| `nvidia-smi` CUDA Version | Suffix |\n|---|---|\n| 13.x+ | `cuda13` |\n| 12.x, Ampere\u002FAda dGPU | `cuda12-dgpu` |\n| 12.x, ARM64 iGPU (nvgpu) | `cuda12-igpu` |\n\nThe \"CUDA Forward Compatibility mode ENABLED\" banner is expected — not an error — when the container ships a newer CUDA minor version than the host driver supports. The forward-compat shim lets the container's CUDA runtime work against the older host driver within the same major version.\n\n## Step 2: Verify GPU passthrough, then pull\n\n```bash\ndocker run --rm --gpus all ubuntu:22.04 nvidia-smi 2>&1 | tail -5\n```\n\nIf Docker is missing → install from https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F. If GPU passthrough fails → install the NVIDIA Container Toolkit per https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html, then retry.\n\nPull (~10–20 GB — warn the user before starting):\n\n```bash\ndocker pull nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\n```\n\n## Step 3: Verify with six examples\n\nTests cover: bare Python binding (1a), bare C++ runtime (1b, 2a), Python + Holoviz\u002FVulkan (2b, 3a), and C++ + Holoviz\u002FVulkan (3b). Holoviz examples always run headless (inject `headless: true` into the YAML) — this works whether or not a display is attached and avoids GUI failure modes over SSH.\n\n```bash\nIMG=nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\nRUN=(docker run --rm --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE --ipc=host --ulimit memlock=-1 --ulimit stack=67108864)\n\n# 1a. hello_world (Python) — expect \"Hello World!\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && python3 \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fhello_world\u002Fpython\u002Fhello_world.py\"\n\n# 1b. hello_world (C++) — expect \"Hello World!\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fhello_world\u002Fcpp\u002Fhello_world\"\n\n# 2a. tensor_interop (C++) — expect tensors doubling each pass, \"Graph execution finished.\"\n\"${RUN[@]}\" \"$IMG\" bash -c \\\n  \"ulimit -s 32768 && \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fcpp\u002Ftensor_interop\"\n\n# 2b. tensor_interop (Python, 10 frames) — Holoviz, headless. The YAML has no\n#     headless field by default, so inject one under `holoviz:`. Expect\n#     \"message received (count: 10)\".\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^holoviz:\u002Fholoviz:\\n  headless: true\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fpython\u002Ftensor_interop.yaml > \u002Ftmp\u002Fti.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Ftensor_interop\u002Fpython\n  python3 tensor_interop.py --config \u002Ftmp\u002Fti.yaml\n\"\n\n# 3a. video_replayer (Python, 10 frames) — Holoviz, headless. Inject `headless: true`\n#     under `holoviz:` (above `width: 854`). Same sed works for the C++ YAML in 3b —\n#     both files share the same `holoviz:` section shape.\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^  width: 854\u002F  headless: true\\n  width: 854\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fpython\u002Fvideo_replayer.yaml > \u002Ftmp\u002Fvr.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fpython\n  HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata python3 video_replayer.py --config \u002Ftmp\u002Fvr.yaml\n\"\n\n# 3b. video_replayer (C++, 10 frames) — same headless injection as 3a. The C++\n#     YAML hard-codes `directory: \"..\u002Fdata\u002Fracerx\"`, but HOLOSCAN_INPUT_PATH\n#     overrides it, so we don't need to patch that field.\n\"${RUN[@]}\" \"$IMG\" bash -c \"\n  ulimit -s 32768\n  sed -e 's\u002Fcount: 0\u002Fcount: 10\u002F' \\\n      -e 's\u002Frepeat: true\u002Frepeat: false\u002F' \\\n      -e 's\u002Frealtime: true\u002Frealtime: false\u002F' \\\n      -e 's\u002F^  width: 854\u002F  headless: true\\n  width: 854\u002F' \\\n      \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fcpp\u002Fvideo_replayer.yaml > \u002Ftmp\u002Fvr_cpp.yaml\n  cd \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002Fvideo_replayer\u002Fcpp\n  HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata .\u002Fvideo_replayer --config \u002Ftmp\u002Fvr_cpp.yaml\n\"\n```\n\n## Step 4: Launch command\n\n- Read https:\u002F\u002Fcatalog.ngc.nvidia.com\u002Forgs\u002Fnvidia\u002Fteams\u002Fclara-holoscan\u002Fcontainers\u002Fholoscan.\n- Explain the docker flags below to the user.\n- Refer the user to that link for additional flags (e.g., how to mount V4L2 video devices).\n\n```bash\ndocker run -it --rm \\\n  --runtime=nvidia --gpus all --cap-add CAP_SYS_PTRACE \\\n  --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \\\n  nvcr.io\u002Fnvidia\u002Fclara-holoscan\u002Fholoscan:\u003CTAG>\n# Examples: \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002F\n# Mount files: -v \u002Fhost\u002Fpath:\u002Fcontainer\u002Fpath\n# GUI examples: add -v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix -e DISPLAY=$DISPLAY\n```\n\nNext:\n- Explore: `ls \u002Fopt\u002Fnvidia\u002Fholoscan\u002Fexamples\u002F`\n- Walk through one: `\u002Fholoscan-explain-example`\n\n## Troubleshooting\n\n- **`docker: Error response from daemon: could not select device driver \"nvidia\"`.** NVIDIA Container Toolkit is missing or not configured. Install per the link in Step 2 and restart Docker.\n- **CUDA init failure inside the container.** Tag suffix doesn't match the host. Re-check `nvidia-smi` CUDA Version and the table in Step 1.\n- **Segmentation fault when launching an example.** `ulimit -s 32768` wasn't applied inside the container. Use the `bash -c \"ulimit -s 32768 && ...\"` pattern shown in Step 3.\n- **Holoviz example hangs \u002F no window over SSH.** YAML wasn't patched to `headless: true`. Use the `sed` injection shown in Step 3.\n- **`video_replayer` can't find data.** Set `HOLOSCAN_INPUT_PATH=\u002Fopt\u002Fnvidia\u002Fholoscan\u002Fdata` — overrides the YAML's hard-coded path.\n",{"name":5,"license":15,"version":45,"metadata":46,"description":7},"1.0.0",{"tags":47,"author":50,"github-url":51},[48,26,24,30,49],"holoscan","ngc","Holoscan Team \u003Choloscan-team@nvidia.com>","https:\u002F\u002Fgithub.com\u002Fnvidia-holoscan\u002Fholoscan-sdk","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fholoscan-install-container","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":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add pattanation\u002FNorvik --skill holoscan-install-container",{"tool":65,"command":66},"bunx","bunx skills add pattanation\u002FNorvik --skill holoscan-install-container",{"tool":68,"command":69},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill holoscan-install-container","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fholoscan-install-container\u002FSKILL.md",true,[73,79,83,87],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"BENCHMARK.md","REFERENCE","参考文档",3792,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fholoscan-install-container\u002FBENCHMARK.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"evals\u002Fevals.json",4469,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fholoscan-install-container\u002Fevals\u002Fevals.json",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"skill-card.md",3893,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fholoscan-install-container\u002Fskill-card.md",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"skill.oms.sig","OTHER","其他",4601,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fholoscan-install-container\u002Fskill.oms.sig",[94,125,150,172,194,209],{"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":98,"sourceHtmlUrl":99,"categories":100,"keywords":107,"publishedAt":124},"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",[101,104],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[108,109,110,29,111,112,113,114,115,116,117,118,119,120,121,122,123],"webapp","testing","webapp testing","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots","2026-11-10 13:02:02",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":129,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":124},"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",[132],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,120,137,138,139,29,140,141,113,142,31,143,144,145,146,147,148,149],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","routing","state management",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":154,"licenseFileUrl":155,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":124},"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",[158],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[160,161,162,163,164,165,35,166,167,39,168,169,170,171],"functions","vueuse","vueuse functions","project","nuxt","apply","concise","build","features","vue","js","composables",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":154,"licenseFileUrl":176,"sourceHtmlUrl":177,"categories":178,"keywords":181,"publishedAt":124},"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",[179,180],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[182,109,183,169,184,119,185,186,187,35,188,29,189,190,191,31,192,170,193],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":154,"licenseFileUrl":198,"sourceHtmlUrl":199,"categories":200,"keywords":202,"publishedAt":124},"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",[201],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[203,169,204,184,205,187,206,35,192,207,208],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":154,"licenseFileUrl":213,"sourceHtmlUrl":214,"categories":215,"keywords":217,"publishedAt":124},"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",[216],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[218,169,184,219,163,220,221,222,203,223,224,225,226,227,228,29,229,31,230,231],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]