[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CFJSVH0ZJ9E9J9R051MPD0":3,"skill-same:01M6CFJSVH0ZJ9E9J9R051MPD0":108},{"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":68,"commitSha":69,"skillDirectory":70,"forksCount":71,"repositoryHtmlUrl":72,"repositoryHomepageUrl":6,"ownerHtmlUrl":73,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":74,"install":75,"resources":87},"01M6CFJSVH0ZJ9E9J9R051MPD0","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.","rockcookies\u002Fskills","rockcookies","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3498265?v=4","01M6CF9C16X3SDSKZX6ANH7HQM","Jacob He","01M6CF9C53JP821FCW6R9B00AJ",1,"MIT","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\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],"golang lint","lint","golang","projects","tooling","up","use","edit","write","read","brew","quality","github","Bash","https","harness","best practices","code","code quality","codex","2026-11-10 10:12:30",false,"---\nname: golang-lint\ndescription: >-\n  Linting best practices and golangci-lint configuration for Golang projects —\n  running linters, configuring .golangci.yml, suppressing warnings with nolint\n  directives, interpreting lint output, and selecting linters. Use when\n  configuring golangci-lint, asking about lint warnings or nolint suppressions,\n  setting up code quality tooling, or choosing linters. Also use when the user\n  mentions golangci-lint, go vet, staticcheck, or revive.\nuser-invocable: true\nlicense: MIT\ncompatibility: >-\n  Designed for Claude Code, Codex or similar harness, and for projects using\n  Golang.\nmetadata:\n  author: samber\n  version: 1.4.0\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:\n          - golangci-lint\nallowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent\npaths:\n  - '**\u002F*.go'\n  - .golangci.yml\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:** Fan out the five sub-agents described in the \"Parallelizing Legacy Codebase Cleanup\" section (auto-fix, security linters, error handling, style\u002Fformatting, code quality) when adopting linting on a legacy codebase, so independent linter categories are fixed concurrently. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.\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 `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 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 `golang-continuous-integration` skill for CI pipeline with golangci-lint-action\n- → See `golang-code-style` skill for style rules that linters enforce\n- → See `golang-security` skill for SAST tools beyond linting (gosec, govulncheck)\n- → See `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:** Fan out the five sub-agents described in the \"Parallelizing Legacy Codebase Cleanup\" section (auto-fix, security linters, error handling, style\u002Fformatting, code quality) when adopting linting on a legacy codebase, so independent linter categories are fixed concurrently. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.\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 `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 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 `golang-continuous-integration` skill for CI pipeline with golangci-lint-action\n- → See `golang-code-style` skill for style rules that linters enforce\n- → See `golang-security` skill for SAST tools beyond linting (gosec, govulncheck)\n- → See `golang-continuous-integration` skill for automated AI-driven code review in CI using these guidelines\n",{"name":5,"paths":49,"license":15,"metadata":52,"description":7,"allowed-tools":65,"compatibility":66,"user-invocable":67},[50,51],"**\u002F*.go",".golangci.yml",{"author":53,"version":54,"openclaw":55},"samber","1.4.0",{"emoji":56,"install":57,"homepage":61,"requires":62},"?",[58],{"bins":59,"kind":34,"formula":60},[60],"golangci-lint","https:\u002F\u002Fgithub.com\u002Fsamber\u002Fcc-skills-golang",{"bins":63},[64,60],"go","Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent","Designed for Claude Code, Codex or similar harness, and for projects using Golang.",true,"main","c349be0704bffe54a7191d1412faf564b08983ca","skills\u002Fsamber-golang\u002Fgolang-lint",0,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills","https:\u002F\u002Fgithub.com\u002Frockcookies","2026-11-12 14:42:52",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":67},[77,80,83],{"tool":78,"command":79},"npx","npx skills add rockcookies\u002Fskills --skill golang-lint",{"tool":81,"command":82},"bunx","bunx skills add rockcookies\u002Fskills --skill golang-lint",{"tool":84,"command":85},"pnpm","pnpm dlx skills add rockcookies\u002Fskills --skill golang-lint","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\u002Fgolang-lint\u002FSKILL.md",[88,94,100,104],{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"assets\u002F.golangci.yml","ASSET","资产文件",7304,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\u002Fgolang-lint\u002Fassets\u002F.golangci.yml",{"path":95,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":98,"sourceHtmlUrl":99},"evals\u002Fevals.json","REFERENCE","参考文档",16136,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\u002Fgolang-lint\u002Fevals\u002Fevals.json",{"path":101,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Flinter-reference.md",7930,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\u002Fgolang-lint\u002Freferences\u002Flinter-reference.md",{"path":105,"resourceType":96,"resourceTypeDesc":97,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fnolint-directives.md",2531,"https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fsamber-golang\u002Fgolang-lint\u002Freferences\u002Fnolint-directives.md",[109,133,149,170,182,196],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":44},"01M6WMNKD3Y4H9FGM8Q901F507","hierarchical-agents-md","层级 AGENTS.md \u002F README.md：init、update、audit、reorganize、trim。 初始化 Agent 指令、代码改动后同步文档、检查文档漂移、重组仓库文档层级、精简规则与 Skills。 Not for 写业务代码或生成文档站点。","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcustom\u002Fhierarchical-agents-md\u002FSKILL.md",[],[116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],"hierarchical agents md","agents md","party","init","third-party","true","git","packages","change","maintenance","初始化","文档","audit","for","README","update","python",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":44},"01M6CFS6BRTQPFZCDHQP97HYXR","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvueuse\u002Fvueuse-functions\u002FSKILL.md",[139],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[143,144,145,146,38,147,148,36],"functions","vueuse functions","js","vue","nuxt","build",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":159,"publishedAt":44},"01M6CFS34MDQXZPAWQFE5D7VGT","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\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-testing-best-practices\u002FSKILL.md",[155,158],{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},[40,146,160,161,162,163,164,165,166,167,36,168,169,30,145],"testing best practices","testing","vue testing best practices","e2e testing","playwright","test","testing patterns","component","vitest","e2e",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":44},"01M6CFS0N19MSJNTVM9AEQ7Z73","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-router-best-practices\u002FSKILL.md",[176],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},[178,40,146,179,36,167,180,181],"vue router best practices","router","navigation","lifecycle",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":44},"01M6CFRYN31RFQFTE41Z6DCGKE","vue-pinia-best-practices","Pinia stores, state management patterns, store setup, and reactivity with stores.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-pinia-best-practices\u002FSKILL.md",[188],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},[40,146,190,191,192,193,36,194,195],"vue pinia best practices","pinia","state","state management","management","setup",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":211,"publishedAt":44},"01M6CFRW2DKXJHP05DYJ3P3Y2S","vue-options-api-best-practices","Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.","https:\u002F\u002Fgithub.com\u002Frockcookies\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fvuejs-ai\u002Fvue-options-api-best-practices\u002FSKILL.md",[202,203,206],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":204,"categoryName":205,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":207,"categoryName":208,"taxonomyType":209,"taxonomyTypeDesc":210},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[146,40,212,213,214,215,216,36,217,218],"vue options api best practices","api","only","data","reference","methods","context"]