go-code-review
Use when reviewing Go code or preparing code for review. Quick-reference checklist covering naming, error handling, concurrency, testing, imports, documentation, and common pitfalls. Based on Go Wiki CodeReviewComments.
What this skill does
# Go Code Review Checklist Quick-reference checklist for reviewing Go code. Each item links to deeper guidance in the parent skill. ## Naming - [ ] MixedCaps used (no underscores) - [ ] Initialisms are consistent case (URL, ID, HTTP) - [ ] Variable names match scope (short for local, descriptive for global) - [ ] Receiver names are 1-2 letters, consistent across methods - [ ] Package names are lowercase single words, no util/common/misc - [ ] No name repetition (package.Method, not package.PackageMethod) ## Error Handling - [ ] Errors returned, not panicked (production code) - [ ] Error wrapping uses `%w` or `%v` appropriately - [ ] Error context is succinct (no "failed to" chains) - [ ] Errors handled once (not logged AND returned) - [ ] Error strings are lowercase, no trailing punctuation - [ ] Happy path at minimal indentation (error-first) - [ ] Sentinel errors use `Err` prefix, error types use `Error` suffix ## Concurrency - [ ] Channel buffers are 0 or 1 (or justified) - [ ] Goroutine lifetimes are documented - [ ] errgroup used for error-returning goroutines - [ ] Functions are synchronous unless concurrency is essential - [ ] Mutexes are zero-value, unexported, not embedded in public structs - [ ] Typed atomics used (Go 1.19+) ## Testing - [ ] Table-driven tests with named subtests - [ ] Subtests run in parallel where safe - [ ] go-cmp used for struct comparisons - [ ] Failure messages include input, got, want - [ ] t.Fatal for setup errors, t.Error for test assertions - [ ] Interfaces defined in consumer packages ## Imports - [ ] Three groups: stdlib, external, internal - [ ] No unnecessary renames - [ ] No dot imports (except circular dep tests) - [ ] Blank imports only in main/tests ## Structs - [ ] Field names used in initialization (no positional) - [ ] Zero value fields omitted - [ ] Types not embedded in public structs - [ ] JSON field tags on marshaled structs ## Slices and Maps - [ ] Nil slices preferred over empty slices - [ ] Copied at boundaries to prevent mutation - [ ] Capacity preallocated when size is known - [ ] Standard library slices/maps packages used ## Performance - [ ] strconv used over fmt for conversions - [ ] No repeated string-to-byte conversions - [ ] Map and slice capacity preallocated - [ ] strings.Builder used for concatenation ## Documentation - [ ] Exported declarations have doc comments - [ ] Comments are full sentences starting with declared name - [ ] Package has package comment ## Patterns - [ ] Functional options for complex constructors - [ ] Interface compliance verified at compile time - [ ] defer used for resource cleanup - [ ] Context is first parameter - [ ] No mutable globals (dependency injection instead) - [ ] Type assertions use two-value form - [ ] time.Duration used instead of raw integers - [ ] Enums start at one (zero = invalid) ## Common Gotchas - [ ] No loop variable capture bugs (Go 1.22+ or shadowed) - [ ] Defer argument evaluation understood - [ ] Nil interface vs nil pointer handled correctly - [ ] Error checked before using result - [ ] No map iteration order dependency - [ ] Slice append backing array understood
Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.