[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71N8TP02H0GJBAAF3VB31MM":3,"skill-same:01M71N8TP02H0GJBAAF3VB31MM":104},{"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":64,"commitSha":65,"skillDirectory":66,"forksCount":14,"repositoryHtmlUrl":67,"repositoryHomepageUrl":68,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":70,"install":71,"resources":83},"01M71N8TP02H0GJBAAF3VB31MM","golang-lint",null,"Linting best practices and golangci-lint configuration for Golang projects — running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and selecting linters. Use when configuring golangci-lint, asking about lint warnings or nolint suppressions, setting up code quality tooling, or choosing linters. Also use when the user mentions golangci-lint, go vet, staticcheck, or revive.","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-lint\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"lint","golang","golang lint","running","brew","coding","go","git","cc","edit","write","read","linting","code","Bash","when","up","directives","projects","ai coding agents","2026-11-10 10:56:23",false,"---\nname: golang-lint\ndescription: \"Linting best practices and golangci-lint configuration for Golang projects — running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and selecting linters. Use when configuring golangci-lint, asking about lint warnings or nolint suppressions, setting up code quality tooling, or choosing linters. Also use when the user mentions golangci-lint, go vet, staticcheck, or revive.\"\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.3\"\n  openclaw:\n    emoji: \"🧹\"\n    homepage: https:\u002F\u002Fgithub.com\u002Fsamber\u002Fcc-skills-golang\n    requires:\n      bins:\n        - go\n        - golangci-lint\n    install:\n      - kind: brew\n        formula: golangci-lint\n        bins: [golangci-lint]\nallowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent\n---\n\n**Persona:** You are a Go code quality engineer. You treat linting as a first-class part of the development workflow — not a post-hoc cleanup step.\n\n**Orchestration mode:** Use `ultracode` when adopting linting on a legacy codebase — orchestrate the five sub-agents described in the \"Parallelizing Legacy Codebase Cleanup\" section (auto-fix, security linters, error handling, style\u002Fformatting, code quality) so independent linter categories are fixed concurrently.\n\n**Modes:**\n\n- **Setup mode** — configuring `.golangci.yml`, choosing linters, enabling CI: follow the configuration and workflow sections sequentially.\n- **Coding mode** — writing new Go code: launch a background agent running `golangci-lint run --fix` on the modified files only while the main agent continues implementing the feature; surface results when it completes.\n- **Interpret\u002Ffix mode** — reading lint output, suppressing warnings, fixing issues on existing code: start from \"Interpreting Output\" and \"Suppressing Lint Warnings\"; use parallel sub-agents for large-scale legacy cleanup.\n\n**Dependencies:**\n\n- golangci-lint: `go install github.com\u002Fgolangci\u002Fgolangci-lint\u002Fcmd\u002Fgolangci-lint@latest`\n\n# Go Linting\n\n## Overview\n\n`golangci-lint` is the standard Go linting tool. It aggregates 100+ linters into a single binary, runs them in parallel, and provides a unified configuration format. Run it frequently during development and always in CI.\n\nEvery Go project MUST have a `.golangci.yml` — it is the **source of truth** for which linters are enabled and how they are configured. See the [recommended configuration](.\u002Fassets\u002F.golangci.yml) for a production-ready setup with 48 linters enabled.\n\n## Quick Reference\n\n```bash\n# Run all configured linters\ngolangci-lint run .\u002F...\n\n# Auto-fix issues where possible\ngolangci-lint run --fix .\u002F...\n\n# Format code (golangci-lint v2+)\ngolangci-lint fmt .\u002F...\n\n# Run a single linter only\ngolangci-lint run --enable-only govet .\u002F...\n\n# List all available linters\ngolangci-lint linters\n\n# Verbose output with timing info\ngolangci-lint run --verbose .\u002F...\n```\n\n## Configuration\n\nThe [recommended .golangci.yml](.\u002Fassets\u002F.golangci.yml) provides a production-ready setup with 33 linters. For configuration details, linter categories, and per-linter descriptions, see the **[linter reference](.\u002Freferences\u002Flinter-reference.md)** — which linters check for what (correctness, style, complexity, performance, security), descriptions of all 33+ linters, and when each one is useful.\n\n## Suppressing Lint Warnings\n\nUse `\u002F\u002Fnolint` directives sparingly — fix the root cause first.\n\n```go\n\u002F\u002F Good: specific linter + justification\n\u002F\u002Fnolint:errcheck \u002F\u002F fire-and-forget logging, error is not actionable\n_ = logger.Sync()\n\n\u002F\u002F Bad: blanket suppression without reason\n\u002F\u002Fnolint\n_ = logger.Sync()\n```\n\nRules:\n\n1. **\u002F\u002Fnolint directives MUST specify the linter name**: `\u002F\u002Fnolint:errcheck` not `\u002F\u002Fnolint`\n2. **\u002F\u002Fnolint directives MUST include a justification comment**: `\u002F\u002Fnolint:errcheck \u002F\u002F reason`\n3. **The `nolintlint` linter enforces both rules above** — it flags bare `\u002F\u002Fnolint` and missing reasons\n4. **NEVER suppress security linters** (gosec, bodyclose, sqlclosecheck) without a very strong reason\n\nFor comprehensive patterns and examples, see **[nolint directives](.\u002Freferences\u002Fnolint-directives.md)** — when to suppress, how to write justifications, patterns for per-line vs per-function suppression, and anti-patterns.\n\n## Development Workflow\n\n1. **Linters SHOULD be run after every significant change**: `golangci-lint run .\u002F...`\n2. **Auto-fix what you can**: `golangci-lint run --fix .\u002F...`\n3. **Format before committing**: `golangci-lint fmt .\u002F...`\n4. **Incremental adoption on legacy code**: set `issues.new-from-rev` in `.golangci.yml` to only lint new\u002Fchanged code, then gradually clean up old code\n\nMakefile targets (recommended):\n\n```makefile\nlint:\n\tgolangci-lint run .\u002F...\n\nlint-fix:\n\tgolangci-lint run --fix .\u002F...\n\nfmt:\n\tgolangci-lint fmt .\u002F...\n```\n\nFor CI pipeline setup (GitHub Actions with `golangci-lint-action`), see the `samber\u002Fcc-skills-golang@golang-continuous-integration` skill.\n\n## Interpreting Output\n\nEach issue follows this format:\n\n```\npath\u002Fto\u002Ffile.go:42:10: message describing the issue (linter-name)\n```\n\nThe linter name in parentheses tells you which linter flagged it. Use this to:\n\n- Look up the linter in the [reference](.\u002Freferences\u002Flinter-reference.md) to understand what it checks\n- Suppress with `\u002F\u002Fnolint:linter-name \u002F\u002F reason` if it's a false positive\n- Use `golangci-lint run --verbose` for additional context and timing\n\n## Common Issues\n\n| Problem | Solution |\n| --- | --- |\n| \"deadline exceeded\" | Set or increase `run.timeout` in `.golangci.yml`; golangci-lint v2 defaults to no timeout (`0`) |\n| Too many issues on legacy code | Set `issues.new-from-rev: HEAD~1` to lint only new code |\n| Linter not found | Check `golangci-lint linters` — linter may need a newer version |\n| Conflicts between linters | Disable the less useful one with a comment explaining why |\n| v1 config errors after upgrade | Run `golangci-lint migrate` to convert config format |\n| Slow on large repos | Reduce `run.concurrency` or exclude paths with `linters.exclusions.paths` \u002F `formatters.exclusions.paths` |\n\n## Parallelizing Legacy Codebase Cleanup\n\nWhen adopting linting on a legacy codebase, use up to 5 parallel sub-agents (via the Agent tool) to fix independent linter categories simultaneously:\n\n- Sub-agent 1: Run `golangci-lint run --fix .\u002F...` for auto-fixable issues\n- Sub-agent 2: Fix security linter findings (bodyclose, sqlclosecheck, gosec)\n- Sub-agent 3: Fix error handling issues (errcheck, nilerr, wrapcheck)\n- Sub-agent 4: Fix style and formatting (gofumpt, goimports, revive)\n- Sub-agent 5: Fix code quality (gocritic, unused, ineffassign)\n\n## Cross-References\n\n- → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for CI pipeline with golangci-lint-action\n- → See `samber\u002Fcc-skills-golang@golang-code-style` skill for style rules that linters enforce\n- → See `samber\u002Fcc-skills-golang@golang-security` skill for SAST tools beyond linting (gosec, govulncheck)\n- → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for automated AI-driven code review in CI using these guidelines\n","**Persona:** You are a Go code quality engineer. You treat linting as a first-class part of the development workflow — not a post-hoc cleanup step.\n\n**Orchestration mode:** Use `ultracode` when adopting linting on a legacy codebase — orchestrate the five sub-agents described in the \"Parallelizing Legacy Codebase Cleanup\" section (auto-fix, security linters, error handling, style\u002Fformatting, code quality) so independent linter categories are fixed concurrently.\n\n**Modes:**\n\n- **Setup mode** — configuring `.golangci.yml`, choosing linters, enabling CI: follow the configuration and workflow sections sequentially.\n- **Coding mode** — writing new Go code: launch a background agent running `golangci-lint run --fix` on the modified files only while the main agent continues implementing the feature; surface results when it completes.\n- **Interpret\u002Ffix mode** — reading lint output, suppressing warnings, fixing issues on existing code: start from \"Interpreting Output\" and \"Suppressing Lint Warnings\"; use parallel sub-agents for large-scale legacy cleanup.\n\n**Dependencies:**\n\n- golangci-lint: `go install github.com\u002Fgolangci\u002Fgolangci-lint\u002Fcmd\u002Fgolangci-lint@latest`\n\n# Go Linting\n\n## Overview\n\n`golangci-lint` is the standard Go linting tool. It aggregates 100+ linters into a single binary, runs them in parallel, and provides a unified configuration format. Run it frequently during development and always in CI.\n\nEvery Go project MUST have a `.golangci.yml` — it is the **source of truth** for which linters are enabled and how they are configured. See the [recommended configuration](.\u002Fassets\u002F.golangci.yml) for a production-ready setup with 48 linters enabled.\n\n## Quick Reference\n\n```bash\n# Run all configured linters\ngolangci-lint run .\u002F...\n\n# Auto-fix issues where possible\ngolangci-lint run --fix .\u002F...\n\n# Format code (golangci-lint v2+)\ngolangci-lint fmt .\u002F...\n\n# Run a single linter only\ngolangci-lint run --enable-only govet .\u002F...\n\n# List all available linters\ngolangci-lint linters\n\n# Verbose output with timing info\ngolangci-lint run --verbose .\u002F...\n```\n\n## Configuration\n\nThe [recommended .golangci.yml](.\u002Fassets\u002F.golangci.yml) provides a production-ready setup with 33 linters. For configuration details, linter categories, and per-linter descriptions, see the **[linter reference](.\u002Freferences\u002Flinter-reference.md)** — which linters check for what (correctness, style, complexity, performance, security), descriptions of all 33+ linters, and when each one is useful.\n\n## Suppressing Lint Warnings\n\nUse `\u002F\u002Fnolint` directives sparingly — fix the root cause first.\n\n```go\n\u002F\u002F Good: specific linter + justification\n\u002F\u002Fnolint:errcheck \u002F\u002F fire-and-forget logging, error is not actionable\n_ = logger.Sync()\n\n\u002F\u002F Bad: blanket suppression without reason\n\u002F\u002Fnolint\n_ = logger.Sync()\n```\n\nRules:\n\n1. **\u002F\u002Fnolint directives MUST specify the linter name**: `\u002F\u002Fnolint:errcheck` not `\u002F\u002Fnolint`\n2. **\u002F\u002Fnolint directives MUST include a justification comment**: `\u002F\u002Fnolint:errcheck \u002F\u002F reason`\n3. **The `nolintlint` linter enforces both rules above** — it flags bare `\u002F\u002Fnolint` and missing reasons\n4. **NEVER suppress security linters** (gosec, bodyclose, sqlclosecheck) without a very strong reason\n\nFor comprehensive patterns and examples, see **[nolint directives](.\u002Freferences\u002Fnolint-directives.md)** — when to suppress, how to write justifications, patterns for per-line vs per-function suppression, and anti-patterns.\n\n## Development Workflow\n\n1. **Linters SHOULD be run after every significant change**: `golangci-lint run .\u002F...`\n2. **Auto-fix what you can**: `golangci-lint run --fix .\u002F...`\n3. **Format before committing**: `golangci-lint fmt .\u002F...`\n4. **Incremental adoption on legacy code**: set `issues.new-from-rev` in `.golangci.yml` to only lint new\u002Fchanged code, then gradually clean up old code\n\nMakefile targets (recommended):\n\n```makefile\nlint:\n\tgolangci-lint run .\u002F...\n\nlint-fix:\n\tgolangci-lint run --fix .\u002F...\n\nfmt:\n\tgolangci-lint fmt .\u002F...\n```\n\nFor CI pipeline setup (GitHub Actions with `golangci-lint-action`), see the `samber\u002Fcc-skills-golang@golang-continuous-integration` skill.\n\n## Interpreting Output\n\nEach issue follows this format:\n\n```\npath\u002Fto\u002Ffile.go:42:10: message describing the issue (linter-name)\n```\n\nThe linter name in parentheses tells you which linter flagged it. Use this to:\n\n- Look up the linter in the [reference](.\u002Freferences\u002Flinter-reference.md) to understand what it checks\n- Suppress with `\u002F\u002Fnolint:linter-name \u002F\u002F reason` if it's a false positive\n- Use `golangci-lint run --verbose` for additional context and timing\n\n## Common Issues\n\n| Problem | Solution |\n| --- | --- |\n| \"deadline exceeded\" | Set or increase `run.timeout` in `.golangci.yml`; golangci-lint v2 defaults to no timeout (`0`) |\n| Too many issues on legacy code | Set `issues.new-from-rev: HEAD~1` to lint only new code |\n| Linter not found | Check `golangci-lint linters` — linter may need a newer version |\n| Conflicts between linters | Disable the less useful one with a comment explaining why |\n| v1 config errors after upgrade | Run `golangci-lint migrate` to convert config format |\n| Slow on large repos | Reduce `run.concurrency` or exclude paths with `linters.exclusions.paths` \u002F `formatters.exclusions.paths` |\n\n## Parallelizing Legacy Codebase Cleanup\n\nWhen adopting linting on a legacy codebase, use up to 5 parallel sub-agents (via the Agent tool) to fix independent linter categories simultaneously:\n\n- Sub-agent 1: Run `golangci-lint run --fix .\u002F...` for auto-fixable issues\n- Sub-agent 2: Fix security linter findings (bodyclose, sqlclosecheck, gosec)\n- Sub-agent 3: Fix error handling issues (errcheck, nilerr, wrapcheck)\n- Sub-agent 4: Fix style and formatting (gofumpt, goimports, revive)\n- Sub-agent 5: Fix code quality (gocritic, unused, ineffassign)\n\n## Cross-References\n\n- → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for CI pipeline with golangci-lint-action\n- → See `samber\u002Fcc-skills-golang@golang-code-style` skill for style rules that linters enforce\n- → See `samber\u002Fcc-skills-golang@golang-security` skill for SAST tools beyond linting (gosec, govulncheck)\n- → See `samber\u002Fcc-skills-golang@golang-continuous-integration` skill for automated AI-driven code review in CI using these guidelines\n",{"name":5,"license":15,"metadata":49,"description":7,"allowed-tools":61,"compatibility":62,"user-invocable":63},{"author":50,"version":51,"openclaw":52},"samber","1.2.3",{"emoji":53,"install":54,"homepage":58,"requires":59},"🧹",[55],{"bins":56,"kind":28,"formula":57},[57],"golangci-lint","https:\u002F\u002Fgithub.com\u002Fsamber\u002Fcc-skills-golang",{"bins":60},[30,57],"Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent","Designed for Claude Code or similar AI coding agents, and for projects using Golang.",true,"claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fgolang-lint","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":72,"prompt":82,"zipAvailable":63},[73,76,79],{"tool":74,"command":75},"npx","npx skills add pattanation\u002FNorvik --skill golang-lint",{"tool":77,"command":78},"bunx","bunx skills add pattanation\u002FNorvik --skill golang-lint",{"tool":80,"command":81},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill golang-lint","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-lint\u002FSKILL.md",[84,90,96,100],{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"assets\u002F.golangci.yml","ASSET","资产文件",7528,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-lint\u002Fassets\u002F.golangci.yml",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"evals\u002Fevals.json","REFERENCE","参考文档",16136,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-lint\u002Fevals\u002Fevals.json",{"path":97,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Flinter-reference.md",7930,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-lint\u002Freferences\u002Flinter-reference.md",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fnolint-directives.md",2531,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fgolang-lint\u002Freferences\u002Fnolint-directives.md",[105,138,164,187,209,224],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":110,"sourceHtmlUrl":111,"categories":112,"keywords":119,"publishedAt":137},"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",[113,116],{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"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":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":142,"sourceHtmlUrl":143,"categories":144,"keywords":146,"publishedAt":137},"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",[145],{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},[147,148,149,133,150,151,152,123,153,154,126,155,156,157,158,159,160,161,162,163],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","use","file","components","react","multi","state","routing","state management",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":168,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":137},"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",[171],{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},[173,174,175,176,177,178,179,180,181,182,183,184,185,186],"functions","vueuse","vueuse functions","project","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":191,"sourceHtmlUrl":192,"categories":193,"keywords":196,"publishedAt":137},"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",[194,195],{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},[197,121,198,184,199,132,200,201,202,179,203,123,204,205,206,156,207,185,208],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"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":15,"licenseFileUrl":213,"sourceHtmlUrl":214,"categories":215,"keywords":217,"publishedAt":137},"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",[216],{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},[218,184,219,199,220,202,221,179,207,222,223],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":228,"sourceHtmlUrl":229,"categories":230,"keywords":232,"publishedAt":137},"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",[231],{"categoryNo":117,"categoryName":118,"taxonomyType":21,"taxonomyTypeDesc":22},[233,184,199,234,176,235,236,237,218,238,239,240,241,242,243,123,244,156,245,246],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]