[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BV68SN9G120S4N0XFW5260":3,"skill-same:01M6BV68SN9G120S4N0XFW5260":90},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6BV68SN9G120S4N0XFW5260","go-review",null,"Go-focused code review checking idioms, patterns, and best practices. Use when reviewing Go code changes on the current branch or when the user asks for a Go code review.","bnferguson\u002Fdotfiles","bnferguson","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47749?v=4","01M6BV4H2TJKK8P14W86V1ZCPP","Brandon Ferguson","01M6BV4H7GJWTZJ1BVHQ1TX11Y",0,"MIT","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\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],"review","go","go review","code review","code","best practices","branch","user","use","idioms","go code review","patterns","for","changes","when","2026-11-10 10:12:30",false,"---\nname: go-review\ndescription: \"Go-focused code review checking idioms, patterns, and best practices. Use when reviewing Go code changes on the current branch or when the user asks for a Go code review.\"\n---\n\nPerform a Go focused code review of changes on the current branch.\n\nBased on \"100 Go Mistakes and How to Avoid Them\" (https:\u002F\u002F100go.co\u002F) and Go best practices.\n\n## Analysis Scope\n\nReview Go files in the following changes:\n1. **Uncommitted changes** (staged and unstaged)\n2. **Recent commits** on the current branch that differ from main\n\nFocus on `*.go` files and Go-specific concerns.\n\n## Instructions\n\nBefore reviewing code, read `~\u002F.agents\u002Fskills\u002Feffective-go\u002FSKILL.md` and `~\u002F.agents\u002Fskills\u002Fgo-concurrency-patterns\u002FSKILL.md` completely. Apply both skills during the review.\n\n1. **Identify Go Changes:**\n   - Use `git diff origin\u002Fmain...HEAD --name-only -- '*.go'` to find changed files\n   - Use `git diff HEAD -- '*.go'` to see uncommitted changes\n   - Read each changed file completely to understand context\n\n2. **Analyze Against Go Best Practices:** Load the relevant reference files based on what the code touches. You don't need all of them for every review — pick what's relevant.\n\n### Reference Files\n\n| File | When to load |\n|------|-------------|\n| `references\u002Fcode-organization-errors.md` | Variable shadowing, nesting, init functions, functional options, error handling |\n| `references\u002Fdata-types-control.md` | Slices, maps, range loops, defer, string handling |\n| `references\u002Fconcurrency.md` | Goroutines, channels, mutexes, race conditions, context, HTTP clients, resource cleanup |\n| `references\u002Finterfaces-packages.md` | Interface design, package naming, dependency direction |\n| `references\u002Ftesting.md` | Table-driven tests, test helpers, mocking, race detection, benchmarks, fuzzing |\n| `references\u002Fperformance-security.md` | Preallocation, string building, struct alignment, escape analysis, SQL injection, path traversal |\n\n## Report Format\n\n### ? Critical Issues\n- Goroutine leaks (#62)\n- Race conditions (#58, #69-70)\n- Ignored errors (#53)\n- Security vulnerabilities (SQL injection, path traversal)\n- Resource leaks (#79)\n- Panic misuse (#48)\n\n### ? High Priority\n- Variable shadowing (#1)\n- Missing context support (#60-61)\n- Error handling issues (#49-54)\n- Concurrency bugs (#55-74)\n- Defer in loops (#35)\n- sync type copying (#74)\n- Test gaps (no race detection #83)\n\n### ? Medium Priority\n- Slice\u002Fmap inefficiency (#20-21, #27-28)\n- Interface pollution (#5-7)\n- Package structure (#12-13)\n- String handling (#36-41)\n- Performance optimizations (#92-101)\n\n### ? Suggestions\n- Functional options pattern (#11)\n- Small interfaces\n- Table-driven tests (#85)\n- Fuzzing (#91)\n- Use errgroup (#73)\n- Data alignment (#95)\n\n### ✅ Good Practices Observed\nClean error handling, proper concurrency, well-tested code, idiomatic Go.\n\nFor each issue:\n- **Location**: File:line\n- **Issue**: What's wrong (reference 100go.co mistake number if applicable)\n- **Impact**: Why it matters\n- **Fix**: Code example\n\n## Quick Reference (100 Go Mistakes)\n\nNumbers reference https:\u002F\u002F100go.co\u002F for detailed explanations:\n\n| Category | Key Mistakes |\n|----------|--------------|\n| Code Organization | #1 shadowing, #2 nesting, #3 init, #5-7 interfaces, #11 options |\n| Data Types | #20-21 slices, #22-23 nil\u002Fempty, #25 append, #27-28 maps |\n| Control Structures | #30 range copy, #34 break, #35 defer loop |\n| Strings | #36-37 runes, #38 trim, #41 substring leak |\n| Errors | #48 panic, #49-51 wrapping, #52 handle once, #54 defer err |\n| Concurrency | #57 chan\u002Fmutex, #62 goroutine leak, #64 select, #71 WaitGroup, #73 errgroup, #74 sync copy |\n| Std Library | #76 time.After, #77 JSON, #79 close resources, #80 HTTP return |\n| Testing | #83 race flag, #85 table tests, #86 sleep, #87 time mock, #91 fuzz |\n| Performance | #95 alignment, #96 stack\u002Fheap, #97 sync.Pool, #99 diagnostics |\n","Perform a Go focused code review of changes on the current branch.\n\nBased on \"100 Go Mistakes and How to Avoid Them\" (https:\u002F\u002F100go.co\u002F) and Go best practices.\n\n## Analysis Scope\n\nReview Go files in the following changes:\n1. **Uncommitted changes** (staged and unstaged)\n2. **Recent commits** on the current branch that differ from main\n\nFocus on `*.go` files and Go-specific concerns.\n\n## Instructions\n\nBefore reviewing code, read `~\u002F.agents\u002Fskills\u002Feffective-go\u002FSKILL.md` and `~\u002F.agents\u002Fskills\u002Fgo-concurrency-patterns\u002FSKILL.md` completely. Apply both skills during the review.\n\n1. **Identify Go Changes:**\n   - Use `git diff origin\u002Fmain...HEAD --name-only -- '*.go'` to find changed files\n   - Use `git diff HEAD -- '*.go'` to see uncommitted changes\n   - Read each changed file completely to understand context\n\n2. **Analyze Against Go Best Practices:** Load the relevant reference files based on what the code touches. You don't need all of them for every review — pick what's relevant.\n\n### Reference Files\n\n| File | When to load |\n|------|-------------|\n| `references\u002Fcode-organization-errors.md` | Variable shadowing, nesting, init functions, functional options, error handling |\n| `references\u002Fdata-types-control.md` | Slices, maps, range loops, defer, string handling |\n| `references\u002Fconcurrency.md` | Goroutines, channels, mutexes, race conditions, context, HTTP clients, resource cleanup |\n| `references\u002Finterfaces-packages.md` | Interface design, package naming, dependency direction |\n| `references\u002Ftesting.md` | Table-driven tests, test helpers, mocking, race detection, benchmarks, fuzzing |\n| `references\u002Fperformance-security.md` | Preallocation, string building, struct alignment, escape analysis, SQL injection, path traversal |\n\n## Report Format\n\n### ? Critical Issues\n- Goroutine leaks (#62)\n- Race conditions (#58, #69-70)\n- Ignored errors (#53)\n- Security vulnerabilities (SQL injection, path traversal)\n- Resource leaks (#79)\n- Panic misuse (#48)\n\n### ? High Priority\n- Variable shadowing (#1)\n- Missing context support (#60-61)\n- Error handling issues (#49-54)\n- Concurrency bugs (#55-74)\n- Defer in loops (#35)\n- sync type copying (#74)\n- Test gaps (no race detection #83)\n\n### ? Medium Priority\n- Slice\u002Fmap inefficiency (#20-21, #27-28)\n- Interface pollution (#5-7)\n- Package structure (#12-13)\n- String handling (#36-41)\n- Performance optimizations (#92-101)\n\n### ? Suggestions\n- Functional options pattern (#11)\n- Small interfaces\n- Table-driven tests (#85)\n- Fuzzing (#91)\n- Use errgroup (#73)\n- Data alignment (#95)\n\n### ✅ Good Practices Observed\nClean error handling, proper concurrency, well-tested code, idiomatic Go.\n\nFor each issue:\n- **Location**: File:line\n- **Issue**: What's wrong (reference 100go.co mistake number if applicable)\n- **Impact**: Why it matters\n- **Fix**: Code example\n\n## Quick Reference (100 Go Mistakes)\n\nNumbers reference https:\u002F\u002F100go.co\u002F for detailed explanations:\n\n| Category | Key Mistakes |\n|----------|--------------|\n| Code Organization | #1 shadowing, #2 nesting, #3 init, #5-7 interfaces, #11 options |\n| Data Types | #20-21 slices, #22-23 nil\u002Fempty, #25 append, #27-28 maps |\n| Control Structures | #30 range copy, #34 break, #35 defer loop |\n| Strings | #36-37 runes, #38 trim, #41 substring leak |\n| Errors | #48 panic, #49-51 wrapping, #52 handle once, #54 defer err |\n| Concurrency | #57 chan\u002Fmutex, #62 goroutine leak, #64 select, #71 WaitGroup, #73 errgroup, #74 sync copy |\n| Std Library | #76 time.After, #77 JSON, #79 close resources, #80 HTTP return |\n| Testing | #83 race flag, #85 table tests, #86 sleep, #87 time mock, #91 fuzz |\n| Performance | #95 alignment, #96 stack\u002Fheap, #97 sync.Pool, #99 diagnostics |\n",{"name":5,"description":7},"main","e63965e4644984470d4cc8b3014a8b001f0c2666",".agents\u002Fskills\u002Fgo-review","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fbnferguson","2026-11-11 03:04:59",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add bnferguson\u002Fdotfiles --skill go-review",{"tool":56,"command":57},"bunx","bunx skills add bnferguson\u002Fdotfiles --skill go-review",{"tool":59,"command":60},"pnpm","pnpm dlx skills add bnferguson\u002Fdotfiles --skill go-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002FSKILL.md",true,[64,70,74,78,82,86],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fcode-organization-errors.md","REFERENCE","参考文档",4926,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Fcode-organization-errors.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fconcurrency.md",8877,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Fconcurrency.md",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fdata-types-control.md",5299,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Fdata-types-control.md",{"path":79,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Finterfaces-packages.md",3177,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Finterfaces-packages.md",{"path":83,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fperformance-security.md",3302,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Fperformance-security.md",{"path":87,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Ftesting.md",4882,"https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgo-review\u002Freferences\u002Ftesting.md",[91,120,137,167,176,189],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":96,"sourceHtmlUrl":97,"categories":98,"keywords":102,"publishedAt":39},"01M6BVA3RS3M016FANZ6792F9H","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002Fclaude\u002Fconfig\u002Fskills\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002Fclaude\u002Fconfig\u002Fskills\u002Fskill-creator\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,36,118,38,119],"creator","skill creator","specialized","workflows","create","update","capabilities","knowledge","tool","integrations","guide","new skill","existing skill","users","with","Existing","new",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":134,"publishedAt":39},"01M6BV94WN2RPYM8N6PN8TBNT8","writing-shape","Writing, exploit: shape raw material into an article, paragraph by paragraph.","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwriting-shape\u002FSKILL.md",[126,129],{"categoryNo":127,"categoryName":128,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":130,"categoryName":131,"taxonomyType":132,"taxonomyTypeDesc":133},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[135,136],"writing shape","writing",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":95,"licenseFileUrl":141,"sourceHtmlUrl":142,"categories":143,"keywords":150,"publishedAt":39},"01M6BV8QDFJ6PXBVK5NFBZT5M7","webapp-testing","Test local web applications using Playwright. Use when verifying frontend functionality, debugging UI behavior, capturing browser screenshots, or viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[144,147],{"categoryNo":145,"categoryName":146,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":148,"categoryName":149,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[151,152,153,154,155,156,157,158,159,160,161,162,163,164,32,165,166,38],"webapp","webapp testing","testing","browser","frontend","screenshots","playwright","test","web","debugging","ui","logs","applications","behavior","local","test local",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":173,"publishedAt":39},"01M6BV8MDXKXNVHKS3QF3YDFTF","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[174,175],"wait what","land",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":185,"publishedAt":39},"01M6BV756DJHT5BDA1HVRVHJJ7","prototype","Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprototype\u002FSKILL.md",[182],{"categoryNo":183,"categoryName":184,"taxonomyType":132,"taxonomyTypeDesc":133},"01JBSEEDCAT000000000000032","设计师",[178,186,187,161,188],"design","explore","state",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":39},"01M6BV6SBW166685KVBPWM2K4N","improve-codebase-architecture","Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.","https:\u002F\u002Fgithub.com\u002Fbnferguson\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimprove-codebase-architecture\u002FSKILL.md",[195],{"categoryNo":148,"categoryName":149,"taxonomyType":21,"taxonomyTypeDesc":22},[197,198,199,200],"architecture","improve","improve codebase architecture","report"]