[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71N9XHZJ16ZEPHMJTMATTYA":3,"skill-same:01M71N9XHZJ16ZEPHMJTMATTYA":109},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":14,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":76},"01M71N9XHZJ16ZEPHMJTMATTYA","golang-project-layout",null,"Provides a guide for setting up Golang project layouts and workspaces. Use when starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, deciding between cmd\u002Finternal\u002Fpkg directory conventions, or discussing package restructuring, package splits, or module splits.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"layout","golang project layout","golang","project","edit","write","read","directory","cli","packages","code","Bash","when","main","new","up","workspaces","monorepo","projects","ai coding agents","2026-11-10 10:56:23",false,"---\nname: golang-project-layout\ndescription: \"Provides a guide for setting up Golang project layouts and workspaces. Use when starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, deciding between cmd\u002Finternal\u002Fpkg directory conventions, or discussing package restructuring, package splits, or module splits.\"\nuser-invocable: true\nlicense: MIT\ncompatibility: Designed for Claude Code or similar AI coding agents, and for projects using Golang.\nmetadata:\n  author: samber\n  version: \"1.2.1\"\n  openclaw:\n    emoji: \"📁\"\n    homepage: https:\u002F\u002Fgithub.com\u002Fsamber\u002Fcc-skills-golang\n    requires:\n      bins:\n        - go\n    install: []\nallowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion\n---\n\n**Persona:** You are a Go project architect. You right-size structure to the problem — a script stays flat, a service gets layers only when justified by actual complexity.\n\n# Go Project Layout\n\n## Architecture Decision: Ask First\n\nWhen starting a new project, **ask the developer** what software architecture they prefer (clean architecture, hexagonal, DDD, flat structure, etc.). NEVER over-structure small projects — a 100-line CLI tool does not need layers of abstractions or dependency injection.\n\n→ See `samber\u002Fcc-skills-golang@golang-design-patterns` skill for detailed architecture guides with file trees and code examples.\n\n## Dependency Injection: Ask Next\n\nAfter settling on the architecture, **ask the developer** which dependency injection approach they want: manual constructor injection, or a DI library (samber\u002Fdo, google\u002Fwire, uber-go\u002Fdig+fx), or none at all. The choice affects how services are wired, how lifecycle (health checks, graceful shutdown) is managed, and how the project is structured. See the `samber\u002Fcc-skills-golang@golang-dependency-injection` skill for a full comparison and decision table.\n\n## 12-Factor App\n\nFor applications (services, APIs, workers), follow [12-Factor App](https:\u002F\u002F12factor.net\u002F) conventions: config via environment variables, logs to stdout, stateless processes, graceful shutdown, backing services as attached resources, and admin tasks as one-off commands (e.g., `cmd\u002Fmigrate\u002F`).\n\n## Quick Start: Choose Your Project Type\n\n| Project Type | Use When | Key Directories |\n| --- | --- | --- |\n| **CLI Tool** | Building a command-line application | `cmd\u002F{name}\u002F`, `internal\u002F`, optional `pkg\u002F` |\n| **Library** | Creating reusable code for others | `pkg\u002F{name}\u002F`, `internal\u002F` for private code |\n| **Service** | HTTP API, microservice, or web app | `cmd\u002F{service}\u002F`, `internal\u002F`, `api\u002F`, `web\u002F` |\n| **Monorepo** | Multiple related packages\u002Fmodules | `go.work`, separate modules per package |\n| **Workspace** | Developing multiple local modules | `go.work`, replace directives |\n\n## Module Naming Conventions\n\n### Module Name (go.mod)\n\nYour module path in `go.mod` should:\n\n- **MUST match your repository URL**: `github.com\u002Fusername\u002Fproject-name`\n- **Use lowercase only**: `github.com\u002Fyou\u002Fmy-app` (not `MyApp`)\n- **Use hyphens for multi-word**: `user-auth` not `user_auth` or `userAuth`\n- **Be semantic**: Name should clearly express purpose\n\n**Examples:**\n\n```go\n\u002F\u002F ✅ Good\nmodule github.com\u002Fjdoe\u002Fpayment-processor\nmodule github.com\u002Fcompany\u002Fcli-tool\n\n\u002F\u002F ❌ Bad\nmodule myproject\nmodule github.com\u002Fjdoe\u002FMyProject\nmodule utils\n```\n\n### Package Naming\n\nPackages MUST be lowercase, singular, and match their directory name. → See `samber\u002Fcc-skills-golang@golang-naming` skill for complete package naming conventions and examples.\n\n## Directory Layout\n\nAll `main` packages must reside in `cmd\u002F` with minimal logic — parse flags, wire dependencies, call `Run()`. Business logic belongs in `internal\u002F` or `pkg\u002F`. Use `internal\u002F` for non-exported packages, `pkg\u002F` only when code is useful to external consumers.\n\nSee [directory layout examples](references\u002Fdirectory-layouts.md) for universal, small project, and library layouts, plus common mistakes.\n\n## Essential Configuration Files\n\nEvery Go project should include at the root:\n\n- **Makefile** — build automation. See [Makefile template](assets\u002FMakefile)\n- **.gitignore** — git ignore patterns. See [.gitignore template](assets\u002F.gitignore)\n- **.golangci.yml** — linter config. See the `samber\u002Fcc-skills-golang@golang-lint` skill for the recommended configuration\n\nFor application configuration with Cobra + Viper, see [config reference](references\u002Fconfig.md).\n\n## Tests, Benchmarks, and Examples\n\nCo-locate `_test.go` files with the code they test. Use `testdata\u002F` for fixtures. See [testing layout](references\u002Ftesting-layout.md) for file naming, placement, and organization details.\n\n## Go Workspaces\n\nUse `go.work` when developing multiple related modules in a monorepo. See [workspaces](references\u002Fworkspaces.md) for setup, structure, and commands.\n\n## Initialization Checklist\n\nWhen starting a new Go project:\n\n- [ ] **Ask the developer** their preferred software architecture (clean, hexagonal, DDD, flat, etc.)\n- [ ] **Ask the developer** their preferred DI approach — see `samber\u002Fcc-skills-golang@golang-dependency-injection` skill\n- [ ] Decide project type (CLI, library, service, monorepo)\n- [ ] Right-size the structure to the project scope\n- [ ] Choose module name (matches repo URL, lowercase, hyphens)\n- [ ] Run `go version` to detect the current go version\n- [ ] Run `go mod init github.com\u002Fuser\u002Fproject-name`\n- [ ] Create `cmd\u002F{name}\u002Fmain.go` for entry point\n- [ ] Create `internal\u002F` for private code\n- [ ] Create `pkg\u002F` only if you have public libraries\n- [ ] For monorepos: Initialize `go work` and add modules\n- [ ] Run `gofmt -s -w .` to ensure formatting\n- [ ] Add `.gitignore` with `\u002Fvendor\u002F` and binary patterns\n\n## Related Skills\n\n→ See `samber\u002Fcc-skills-golang@golang-cli` skill for CLI tool structure and Cobra\u002FViper patterns. → See `samber\u002Fcc-skills-golang@golang-dependency-injection` skill for DI approach comparison and wiring. → See `samber\u002Fcc-skills-golang@golang-lint` skill for golangci-lint configuration. → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for CI\u002FCD pipeline setup. → See `samber\u002Fcc-skills-golang@golang-design-patterns` skill for architectural patterns. → See `samber\u002Fcc-skills-golang@golang-refactoring` skill for safely moving or splitting existing code into the layout above via type-alias gradual code repair and staged PRs, without a big-bang break.\n","**Persona:** You are a Go project architect. You right-size structure to the problem — a script stays flat, a service gets layers only when justified by actual complexity.\n\n# Go Project Layout\n\n## Architecture Decision: Ask First\n\nWhen starting a new project, **ask the developer** what software architecture they prefer (clean architecture, hexagonal, DDD, flat structure, etc.). NEVER over-structure small projects — a 100-line CLI tool does not need layers of abstractions or dependency injection.\n\n→ See `samber\u002Fcc-skills-golang@golang-design-patterns` skill for detailed architecture guides with file trees and code examples.\n\n## Dependency Injection: Ask Next\n\nAfter settling on the architecture, **ask the developer** which dependency injection approach they want: manual constructor injection, or a DI library (samber\u002Fdo, google\u002Fwire, uber-go\u002Fdig+fx), or none at all. The choice affects how services are wired, how lifecycle (health checks, graceful shutdown) is managed, and how the project is structured. See the `samber\u002Fcc-skills-golang@golang-dependency-injection` skill for a full comparison and decision table.\n\n## 12-Factor App\n\nFor applications (services, APIs, workers), follow [12-Factor App](https:\u002F\u002F12factor.net\u002F) conventions: config via environment variables, logs to stdout, stateless processes, graceful shutdown, backing services as attached resources, and admin tasks as one-off commands (e.g., `cmd\u002Fmigrate\u002F`).\n\n## Quick Start: Choose Your Project Type\n\n| Project Type | Use When | Key Directories |\n| --- | --- | --- |\n| **CLI Tool** | Building a command-line application | `cmd\u002F{name}\u002F`, `internal\u002F`, optional `pkg\u002F` |\n| **Library** | Creating reusable code for others | `pkg\u002F{name}\u002F`, `internal\u002F` for private code |\n| **Service** | HTTP API, microservice, or web app | `cmd\u002F{service}\u002F`, `internal\u002F`, `api\u002F`, `web\u002F` |\n| **Monorepo** | Multiple related packages\u002Fmodules | `go.work`, separate modules per package |\n| **Workspace** | Developing multiple local modules | `go.work`, replace directives |\n\n## Module Naming Conventions\n\n### Module Name (go.mod)\n\nYour module path in `go.mod` should:\n\n- **MUST match your repository URL**: `github.com\u002Fusername\u002Fproject-name`\n- **Use lowercase only**: `github.com\u002Fyou\u002Fmy-app` (not `MyApp`)\n- **Use hyphens for multi-word**: `user-auth` not `user_auth` or `userAuth`\n- **Be semantic**: Name should clearly express purpose\n\n**Examples:**\n\n```go\n\u002F\u002F ✅ Good\nmodule github.com\u002Fjdoe\u002Fpayment-processor\nmodule github.com\u002Fcompany\u002Fcli-tool\n\n\u002F\u002F ❌ Bad\nmodule myproject\nmodule github.com\u002Fjdoe\u002FMyProject\nmodule utils\n```\n\n### Package Naming\n\nPackages MUST be lowercase, singular, and match their directory name. → See `samber\u002Fcc-skills-golang@golang-naming` skill for complete package naming conventions and examples.\n\n## Directory Layout\n\nAll `main` packages must reside in `cmd\u002F` with minimal logic — parse flags, wire dependencies, call `Run()`. Business logic belongs in `internal\u002F` or `pkg\u002F`. Use `internal\u002F` for non-exported packages, `pkg\u002F` only when code is useful to external consumers.\n\nSee [directory layout examples](references\u002Fdirectory-layouts.md) for universal, small project, and library layouts, plus common mistakes.\n\n## Essential Configuration Files\n\nEvery Go project should include at the root:\n\n- **Makefile** — build automation. See [Makefile template](assets\u002FMakefile)\n- **.gitignore** — git ignore patterns. See [.gitignore template](assets\u002F.gitignore)\n- **.golangci.yml** — linter config. See the `samber\u002Fcc-skills-golang@golang-lint` skill for the recommended configuration\n\nFor application configuration with Cobra + Viper, see [config reference](references\u002Fconfig.md).\n\n## Tests, Benchmarks, and Examples\n\nCo-locate `_test.go` files with the code they test. Use `testdata\u002F` for fixtures. See [testing layout](references\u002Ftesting-layout.md) for file naming, placement, and organization details.\n\n## Go Workspaces\n\nUse `go.work` when developing multiple related modules in a monorepo. See [workspaces](references\u002Fworkspaces.md) for setup, structure, and commands.\n\n## Initialization Checklist\n\nWhen starting a new Go project:\n\n- [ ] **Ask the developer** their preferred software architecture (clean, hexagonal, DDD, flat, etc.)\n- [ ] **Ask the developer** their preferred DI approach — see `samber\u002Fcc-skills-golang@golang-dependency-injection` skill\n- [ ] Decide project type (CLI, library, service, monorepo)\n- [ ] Right-size the structure to the project scope\n- [ ] Choose module name (matches repo URL, lowercase, hyphens)\n- [ ] Run `go version` to detect the current go version\n- [ ] Run `go mod init github.com\u002Fuser\u002Fproject-name`\n- [ ] Create `cmd\u002F{name}\u002Fmain.go` for entry point\n- [ ] Create `internal\u002F` for private code\n- [ ] Create `pkg\u002F` only if you have public libraries\n- [ ] For monorepos: Initialize `go work` and add modules\n- [ ] Run `gofmt -s -w .` to ensure formatting\n- [ ] Add `.gitignore` with `\u002Fvendor\u002F` and binary patterns\n\n## Related Skills\n\n→ See `samber\u002Fcc-skills-golang@golang-cli` skill for CLI tool structure and Cobra\u002FViper patterns. → See `samber\u002Fcc-skills-golang@golang-dependency-injection` skill for DI approach comparison and wiring. → See `samber\u002Fcc-skills-golang@golang-lint` skill for golangci-lint configuration. → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for CI\u002FCD pipeline setup. → See `samber\u002Fcc-skills-golang@golang-design-patterns` skill for architectural patterns. → See `samber\u002Fcc-skills-golang@golang-refactoring` skill for safely moving or splitting existing code into the layout above via type-alias gradual code repair and staged PRs, without a big-bang break.\n",{"name":5,"license":15,"metadata":44,"description":7,"allowed-tools":54,"compatibility":55,"user-invocable":56},{"author":45,"version":46,"openclaw":47},"samber","1.2.1",{"emoji":48,"install":49,"homepage":50,"requires":51},"📁",[],"https:\u002F\u002Fgithub.com\u002Fsamber\u002Fcc-skills-golang",{"bins":52},[53],"go","Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion","Designed for Claude Code or similar AI coding agents, and for projects using Golang.",true,"claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fgolang-project-layout","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":65,"prompt":75,"zipAvailable":56},[66,69,72],{"tool":67,"command":68},"npx","npx skills add pattanation\u002FNorvik --skill golang-project-layout",{"tool":70,"command":71},"bunx","bunx skills add pattanation\u002FNorvik --skill golang-project-layout",{"tool":73,"command":74},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill golang-project-layout","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002FSKILL.md",[77,83,87,93,97,101,105],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"assets\u002F.gitignore","ASSET","资产文件",421,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Fassets\u002F.gitignore",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002FMakefile",2539,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Fassets\u002FMakefile",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"evals\u002Fevals.json","REFERENCE","参考文档",12008,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Fevals\u002Fevals.json",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fconfig.md",1444,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Freferences\u002Fconfig.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fdirectory-layouts.md",4678,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Freferences\u002Fdirectory-layouts.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Ftesting-layout.md",5227,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Freferences\u002Ftesting-layout.md",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fworkspaces.md",2544,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-project-layout\u002Freferences\u002Fworkspaces.md",[110,145,171,193,215,230],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":115,"sourceHtmlUrl":116,"categories":117,"keywords":126,"publishedAt":144},"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.","Apache-2.0","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",[118,123],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000009","前端开发",[127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"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":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":149,"sourceHtmlUrl":150,"categories":151,"keywords":153,"publishedAt":144},"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",[152],{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},[154,155,156,140,157,158,159,130,160,161,133,162,163,164,165,166,167,168,169,170],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","use","file","components","react","multi","state","routing","state management",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":175,"sourceHtmlUrl":176,"categories":177,"keywords":179,"publishedAt":144},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","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",[178],{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},[180,181,182,22,183,184,185,186,187,188,189,190,191,192],"functions","vueuse","vueuse functions","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":202,"publishedAt":144},"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",[200,201],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},[203,128,204,190,205,139,206,207,208,185,209,130,210,211,212,163,213,191,214],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":219,"sourceHtmlUrl":220,"categories":221,"keywords":223,"publishedAt":144},"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",[222],{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},[224,190,225,205,226,208,227,185,213,228,229],"router","vue router best practices","route","guards","navigation","lifecycle",{"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":15,"licenseFileUrl":234,"sourceHtmlUrl":235,"categories":236,"keywords":238,"publishedAt":144},"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",[237],{"categoryNo":124,"categoryName":125,"taxonomyType":121,"taxonomyTypeDesc":122},[239,190,205,240,22,241,242,243,224,244,245,246,247,248,249,130,250,163,251,252],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]