[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NM3G8BASHW3C2D79HM327":3,"skill-same:01M71NM3G8BASHW3C2D79HM327":96},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":14,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M71NM3G8BASHW3C2D79HM327","jetson-init-image",null,"Extract Jetson Linux + sample-rootfs tarballs and run apply_binaries.sh for the active target, then record bsp_image in the profile. Use after jetson-init-target; not for source-tree setup.","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\u002Fjetson-init-image\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"image","jetson init image","init","extract","setup","source","public","run","active","sample","record","bootstrap","team","apply","use","linux","Meta","for","target","tree","2026-11-10 10:56:23",false,"---\nname: jetson-init-image\ndescription: >-\n  Extract Jetson Linux + sample-rootfs tarballs and run\n  apply_binaries.sh for the active target, then record bsp_image in\n  the profile. Use after jetson-init-target; not for source-tree\n  setup.\nversion: 0.0.1\nlicense: \"Apache-2.0\"\nmetadata:\n  data-classification: public\n  author: \"Jetson Team\"\n  tags:\n    - bsp\n    - image\n    - bootstrap\n  domain: meta\n---\n\n# Initialize BSP Image\n\nOutput is only `bsp_image:` in the active profile: derived `version`\nplus `root_path` only when overriding `\u003Cworkspace>\u002FImage`.\n\n## When to invoke\n\n- The user asks to extract, prepare, or initialize the BSP image.\n- A downstream skill reports missing\n  `\u003Cbsp_image.root_path>\u002FLinux_for_Tegra\u002F`.\n- The active profile has no `bsp_image:` block yet.\n\n## Procedure\n\n### Resolve target and image path\n\nResolve the active profile per\n[`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md).\nRefuse if there is no active profile or `reference_devkit:` is missing.\n\n`\u003Cworkspace>` is the parent of the active profile's `target-platform\u002F`\ndirectory. `\u003Cbsp_image.root_path>` defaults to `\u003Cworkspace>\u002FImage`.\n\n| Profile state | Action |\n|---|---|\n| `bsp_image.root_path` exists | Use it without prompting. |\n| `bsp_image:` exists without `root_path` | Use `\u003Cworkspace>\u002FImage`. |\n| No `bsp_image:` block | Ask once: Enter for default, or absolute override path. |\n\nFor an override, validate that the closest existing parent is writable.\nOmit `root_path` when the default is used.\n\n### Determine GPU stack\n\nUse the shared GPU-driver invariant from\n[`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md#derived-platform-facts).\nDerive the expected stack from `reference_devkit.module.id` and the\ncatalogue:\n\n| Chip family | Module IDs | Stack | `apply_binaries.sh` flag |\n|---|---|---|---|\n| T234 \u002F Orin | `p3701`, `p3767` | nvgpu | none |\n| T264 and later \u002F Thor+ | `p3834` | OpenRM | `--openrm` |\n\nRefuse unknown module IDs. The `--openrm` flag is only valid on BSP\nreleases that ship the OpenRM stack; if the active BSP doesn't expose\nthe flag, omit it regardless of what the target wants.\n\n### Reuse or extract\n\nIf `\u003Cbsp_image.root_path>\u002FLinux_for_Tegra\u002F` already exists:\n\n1. Do not extract over it unless the user explicitly requested\n   re-extraction and accepted the overwrite risk.\n2. Derive the on-disk version from `Linux_for_Tegra\u002Fnv_tegra_release`.\n   Ask before replacing a different recorded `bsp_image.version`.\n3. Verify the installed GPU stack against the platform-derived\n   expectation when possible. Detection precedence (first probe that\n   yields a definitive answer wins):\n\n   1. `Linux_for_Tegra\u002Frootfs\u002Fetc\u002Fnv_tegra_release` carries an\n      `INSTALL_TYPE=` token on BSP releases that expose it (newer\n      lines). Read and compare directly.\n   2. Otherwise, `find Linux_for_Tegra -name nvgpu.ko`: present →\n      nvgpu, absent → OpenRM.\n   3. If the chip family has only ever shipped one stack (e.g. T234 \u002F\n      Orin is always nvgpu in current BSPs), fall back to the\n      catalogue-derived expectation without disk probing.\n\nIf the installed stack conflicts with the active target, refuse and ask\nthe user to re-extract with the correct stack or fix the target profile.\nOtherwise skip extraction and update the profile.\n\n### Locate tarballs\n\nWhen extraction is needed, search:\n\n1. `\u003Cbsp_image.root_path>\u002F`\n2. `\u003Cworkspace>\u002F`\n3. current working directory\n\nPrompt for absolute paths for anything missing. Required filenames:\n\n- `Jetson_Linux_R\u003Cver>_aarch64.tbz2`\n- `Tegra_Linux_Sample-Root-Filesystem_R\u003Cver>_aarch64.tbz2`\n\nBoth filenames must contain the same `R\u003Cver>` token. Refuse mismatches\nand record `\u003Cver>` as `bsp_image.version`. Do not download tarballs.\n\n### Extract and apply binaries\n\nUse absolute tarball paths; they may live outside\n`\u003Cbsp_image.root_path>`.\n\n```bash\nROOT=\"\u003Cbsp_image.root_path>\"\nBSP_TARBALL=\"\u003Cabsolute path to Jetson_Linux_R\u003Cver>_aarch64.tbz2>\"\nROOTFS_TARBALL=\"\u003Cabsolute path to Tegra_Linux_Sample-Root-Filesystem_R\u003Cver>_aarch64.tbz2>\"\n\nmkdir -p \"$ROOT\"\ntar xjf \"$BSP_TARBALL\" -C \"$ROOT\"\nsudo tar xpjf \"$ROOTFS_TARBALL\" -C \"$ROOT\u002FLinux_for_Tegra\u002Frootfs\"\n\ncd \"$ROOT\u002FLinux_for_Tegra\"\nif [ \"$GPU_STACK\" = \"openrm\" ]; then\n  sudo .\u002Fapply_binaries.sh --openrm\nelse\n  sudo .\u002Fapply_binaries.sh\nfi\n```\n\nSet `GPU_STACK` from the \"Determine GPU stack\" step above. Abort on the first failing command and\nsurface the failed command.\n\n### Update the active profile\n\nPersist the resolved BSP image metadata in the active target profile so\nlater skills can find the BSP without re-prompting. Preserve existing\nblocks, comments, and quoted SKU values; use a round-tripping YAML\nwriter such as `ruamel.yaml`.\n\n```yaml\nbsp_image:\n  root_path: \u003Cabsolute override path>  # omit for \u003Cworkspace>\u002FImage\n  version: \"\u003Cderived version>\"\n```\n\nRules:\n\n- Same version and same root path: no rewrite.\n- Different version: ask before updating.\n- Different recorded `root_path`: refuse automatic rewrite.\n- Always quote `version`.\n\n## Finish\n\nReport the image path, extracted vs reused state, GPU stack, derived\nversion, and profile update status. Then suggest `\u002Fjetson-init-source`.\n\n## Purpose\n\nMaterialize `Linux_for_Tegra\u002F` on disk by extracting the right Jetson\nLinux + sample-rootfs tarballs and running `apply_binaries.sh` with\nthe GPU-stack flag derived from the active target (nvgpu for T234,\nOpenRM for T264+). Then commit the derived BSP version into the\nprofile's `bsp_image:` block.\n\n## Prerequisites\n\n- Active target profile resolved per\n  `..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`.\n- Jetson Linux BSP tarball and matching sample-rootfs tarball staged\n  on disk (e.g. by `\u002Fjetson-download-bsp` or hand-placed).\n- Write access to the workspace `Image\u002F` root (or the override\n  `bsp_image.root_path`).\n- `sudo` available for `apply_binaries.sh`.\n\n## Limitations\n\n- Writes only the `bsp_image:` block; source tree, documents, and\n  carrier profile are owned by sibling skills.\n- Refuses to overwrite an existing `Linux_for_Tegra\u002F` without explicit\n  user direction.\n- Does not download tarballs; rely on `\u002Fjetson-download-bsp` or\n  hand-stage the inputs.\n\n## Troubleshooting\n\n- **`apply_binaries.sh` exits non-zero** — re-read its console output;\n  most failures are missing `sudo`, missing rootfs tarball, or wrong\n  GPU stack flag for the SoC generation.\n- **`nv_tegra_release` absent after extract** — extraction stopped\n  early; verify tarball integrity and rerun.\n- **Recorded `version` disagrees with the tarball filename** — the\n  tarball was renamed; trust the value parsed from\n  `Linux_for_Tegra\u002Fnv_tegra_release` over filenames.\n- **Different recorded `root_path` already in profile** — refuse and\n  ask the user to confirm before overwriting.\n\n## References\n\n- [`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md)\n- [`..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md`](..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md)\n- [`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\n- [`..\u002Fjetson-init-target\u002FSKILL.md`](..\u002Fjetson-init-target\u002FSKILL.md)\n- [`..\u002Fjetson-init-source\u002FSKILL.md`](..\u002Fjetson-init-source\u002FSKILL.md)\n- [`..\u002Fjetson-flash-image\u002FSKILL.md`](..\u002Fjetson-flash-image\u002FSKILL.md)\n","# Initialize BSP Image\n\nOutput is only `bsp_image:` in the active profile: derived `version`\nplus `root_path` only when overriding `\u003Cworkspace>\u002FImage`.\n\n## When to invoke\n\n- The user asks to extract, prepare, or initialize the BSP image.\n- A downstream skill reports missing\n  `\u003Cbsp_image.root_path>\u002FLinux_for_Tegra\u002F`.\n- The active profile has no `bsp_image:` block yet.\n\n## Procedure\n\n### Resolve target and image path\n\nResolve the active profile per\n[`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md).\nRefuse if there is no active profile or `reference_devkit:` is missing.\n\n`\u003Cworkspace>` is the parent of the active profile's `target-platform\u002F`\ndirectory. `\u003Cbsp_image.root_path>` defaults to `\u003Cworkspace>\u002FImage`.\n\n| Profile state | Action |\n|---|---|\n| `bsp_image.root_path` exists | Use it without prompting. |\n| `bsp_image:` exists without `root_path` | Use `\u003Cworkspace>\u002FImage`. |\n| No `bsp_image:` block | Ask once: Enter for default, or absolute override path. |\n\nFor an override, validate that the closest existing parent is writable.\nOmit `root_path` when the default is used.\n\n### Determine GPU stack\n\nUse the shared GPU-driver invariant from\n[`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md#derived-platform-facts).\nDerive the expected stack from `reference_devkit.module.id` and the\ncatalogue:\n\n| Chip family | Module IDs | Stack | `apply_binaries.sh` flag |\n|---|---|---|---|\n| T234 \u002F Orin | `p3701`, `p3767` | nvgpu | none |\n| T264 and later \u002F Thor+ | `p3834` | OpenRM | `--openrm` |\n\nRefuse unknown module IDs. The `--openrm` flag is only valid on BSP\nreleases that ship the OpenRM stack; if the active BSP doesn't expose\nthe flag, omit it regardless of what the target wants.\n\n### Reuse or extract\n\nIf `\u003Cbsp_image.root_path>\u002FLinux_for_Tegra\u002F` already exists:\n\n1. Do not extract over it unless the user explicitly requested\n   re-extraction and accepted the overwrite risk.\n2. Derive the on-disk version from `Linux_for_Tegra\u002Fnv_tegra_release`.\n   Ask before replacing a different recorded `bsp_image.version`.\n3. Verify the installed GPU stack against the platform-derived\n   expectation when possible. Detection precedence (first probe that\n   yields a definitive answer wins):\n\n   1. `Linux_for_Tegra\u002Frootfs\u002Fetc\u002Fnv_tegra_release` carries an\n      `INSTALL_TYPE=` token on BSP releases that expose it (newer\n      lines). Read and compare directly.\n   2. Otherwise, `find Linux_for_Tegra -name nvgpu.ko`: present →\n      nvgpu, absent → OpenRM.\n   3. If the chip family has only ever shipped one stack (e.g. T234 \u002F\n      Orin is always nvgpu in current BSPs), fall back to the\n      catalogue-derived expectation without disk probing.\n\nIf the installed stack conflicts with the active target, refuse and ask\nthe user to re-extract with the correct stack or fix the target profile.\nOtherwise skip extraction and update the profile.\n\n### Locate tarballs\n\nWhen extraction is needed, search:\n\n1. `\u003Cbsp_image.root_path>\u002F`\n2. `\u003Cworkspace>\u002F`\n3. current working directory\n\nPrompt for absolute paths for anything missing. Required filenames:\n\n- `Jetson_Linux_R\u003Cver>_aarch64.tbz2`\n- `Tegra_Linux_Sample-Root-Filesystem_R\u003Cver>_aarch64.tbz2`\n\nBoth filenames must contain the same `R\u003Cver>` token. Refuse mismatches\nand record `\u003Cver>` as `bsp_image.version`. Do not download tarballs.\n\n### Extract and apply binaries\n\nUse absolute tarball paths; they may live outside\n`\u003Cbsp_image.root_path>`.\n\n```bash\nROOT=\"\u003Cbsp_image.root_path>\"\nBSP_TARBALL=\"\u003Cabsolute path to Jetson_Linux_R\u003Cver>_aarch64.tbz2>\"\nROOTFS_TARBALL=\"\u003Cabsolute path to Tegra_Linux_Sample-Root-Filesystem_R\u003Cver>_aarch64.tbz2>\"\n\nmkdir -p \"$ROOT\"\ntar xjf \"$BSP_TARBALL\" -C \"$ROOT\"\nsudo tar xpjf \"$ROOTFS_TARBALL\" -C \"$ROOT\u002FLinux_for_Tegra\u002Frootfs\"\n\ncd \"$ROOT\u002FLinux_for_Tegra\"\nif [ \"$GPU_STACK\" = \"openrm\" ]; then\n  sudo .\u002Fapply_binaries.sh --openrm\nelse\n  sudo .\u002Fapply_binaries.sh\nfi\n```\n\nSet `GPU_STACK` from the \"Determine GPU stack\" step above. Abort on the first failing command and\nsurface the failed command.\n\n### Update the active profile\n\nPersist the resolved BSP image metadata in the active target profile so\nlater skills can find the BSP without re-prompting. Preserve existing\nblocks, comments, and quoted SKU values; use a round-tripping YAML\nwriter such as `ruamel.yaml`.\n\n```yaml\nbsp_image:\n  root_path: \u003Cabsolute override path>  # omit for \u003Cworkspace>\u002FImage\n  version: \"\u003Cderived version>\"\n```\n\nRules:\n\n- Same version and same root path: no rewrite.\n- Different version: ask before updating.\n- Different recorded `root_path`: refuse automatic rewrite.\n- Always quote `version`.\n\n## Finish\n\nReport the image path, extracted vs reused state, GPU stack, derived\nversion, and profile update status. Then suggest `\u002Fjetson-init-source`.\n\n## Purpose\n\nMaterialize `Linux_for_Tegra\u002F` on disk by extracting the right Jetson\nLinux + sample-rootfs tarballs and running `apply_binaries.sh` with\nthe GPU-stack flag derived from the active target (nvgpu for T234,\nOpenRM for T264+). Then commit the derived BSP version into the\nprofile's `bsp_image:` block.\n\n## Prerequisites\n\n- Active target profile resolved per\n  `..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`.\n- Jetson Linux BSP tarball and matching sample-rootfs tarball staged\n  on disk (e.g. by `\u002Fjetson-download-bsp` or hand-placed).\n- Write access to the workspace `Image\u002F` root (or the override\n  `bsp_image.root_path`).\n- `sudo` available for `apply_binaries.sh`.\n\n## Limitations\n\n- Writes only the `bsp_image:` block; source tree, documents, and\n  carrier profile are owned by sibling skills.\n- Refuses to overwrite an existing `Linux_for_Tegra\u002F` without explicit\n  user direction.\n- Does not download tarballs; rely on `\u002Fjetson-download-bsp` or\n  hand-stage the inputs.\n\n## Troubleshooting\n\n- **`apply_binaries.sh` exits non-zero** — re-read its console output;\n  most failures are missing `sudo`, missing rootfs tarball, or wrong\n  GPU stack flag for the SoC generation.\n- **`nv_tegra_release` absent after extract** — extraction stopped\n  early; verify tarball integrity and rerun.\n- **Recorded `version` disagrees with the tarball filename** — the\n  tarball was renamed; trust the value parsed from\n  `Linux_for_Tegra\u002Fnv_tegra_release` over filenames.\n- **Different recorded `root_path` already in profile** — refuse and\n  ask the user to confirm before overwriting.\n\n## References\n\n- [`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md)\n- [`..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md`](..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md)\n- [`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\n- [`..\u002Fjetson-init-target\u002FSKILL.md`](..\u002Fjetson-init-target\u002FSKILL.md)\n- [`..\u002Fjetson-init-source\u002FSKILL.md`](..\u002Fjetson-init-source\u002FSKILL.md)\n- [`..\u002Fjetson-flash-image\u002FSKILL.md`](..\u002Fjetson-flash-image\u002FSKILL.md)\n",{"name":5,"license":15,"version":49,"metadata":50,"description":7},"0.0.1",{"tags":51,"author":53,"domain":54,"data-classification":30},[52,24,35],"bsp","Jetson Team","meta","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fjetson-init-image","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":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add pattanation\u002FNorvik --skill jetson-init-image",{"tool":68,"command":69},"bunx","bunx skills add pattanation\u002FNorvik --skill jetson-init-image",{"tool":71,"command":72},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill jetson-init-image","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fjetson-init-image\u002FSKILL.md",true,[76,82,86,90],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"BENCHMARK.md","REFERENCE","参考文档",3812,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fjetson-init-image\u002FBENCHMARK.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"evals\u002Fevals.json",3989,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fjetson-init-image\u002Fevals\u002Fevals.json",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"skill-card.md",4087,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fjetson-init-image\u002Fskill-card.md",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"skill.oms.sig","OTHER","其他",4589,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fjetson-init-image\u002Fskill.oms.sig",[97,128,153,176,198,213],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":101,"sourceHtmlUrl":102,"categories":103,"keywords":110,"publishedAt":127},"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",[104,107],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[111,112,113,41,114,115,116,117,118,119,120,121,122,123,124,125,126],"webapp","testing","webapp testing","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots","2026-11-10 13:02:02",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":132,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":127},"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",[135],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[137,138,139,123,140,141,142,41,143,144,116,145,38,146,147,148,149,150,151,152],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","routing","state management",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":157,"licenseFileUrl":158,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":127},"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",[161],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[163,164,165,166,167,37,168,169,170,171,172,173,174,175],"functions","vueuse","vueuse functions","project","nuxt","github","concise","build","https","features","vue","js","composables",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":157,"licenseFileUrl":180,"sourceHtmlUrl":181,"categories":182,"keywords":185,"publishedAt":127},"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",[183,184],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[186,112,187,173,188,122,189,190,191,168,192,41,193,194,195,38,196,174,197],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":157,"licenseFileUrl":202,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":127},"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",[205],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[207,173,208,188,209,191,210,168,196,211,212],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":157,"licenseFileUrl":217,"sourceHtmlUrl":218,"categories":219,"keywords":221,"publishedAt":127},"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",[220],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},[222,173,188,223,166,224,225,226,207,227,228,229,230,231,232,41,233,38,234,235],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]