review-go
Skill8 starsChanged 2 months agoMITView on GitHub
Review Go code for language and runtime conventions: concurrency, context usage, error handling, resource management, API stability, type semantics, and testability. Language-only atomic skill; output is a findings list.
In this repository77 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- archive-milestoneSkill
- assess-product-opportunitySkill
- automate-testsSkill
- bump-versionSkill
- capture-work-itemsSkill
- commit-workSkill
- competitive-researchSkill
- consume-nats-messageSkill
- decontextualize-textSkill
- deep-researchSkill
- define-docs-normsSkill
- define-missionSkill
- define-north-starSkill
- define-roadmapSkill
- define-strategic-pillarsSkill
- define-visionSkill
- deliver-featureSkill
- design-strategic-goalsSkill
- eli5Skill
- establish-delivery-workflowSkill
- execute-delivery-workflowSkill
- generate-agent-entrySkill
- generate-github-workflowSkill
- generate-standard-readmeSkill
- inspect-artifact-stateSkill
- integrate-branchesSkill
- manage-secretSkill
- map-item-dependenciesSkill
- market-researchSkill
- orchestrate-code-reviewSkill
- orchestrate-governance-stepSkill
- orchestrate-repair-loopSkill
- orchestrate-repair-requirements-loopSkill
- orchestrate-roadmap-planningSkill
- plan-milestonesSkill
- plan-nextSkill
- policy-researchSkill
- ponytailSkill
- prepare-presales-responseSkill
- prepare-version-notesSkill
- prioritize-backlogSkill
- product-opportunity-analysisSkill
- promote-roadmap-itemsSkill
- publish-nats-messageSkill
- record-milestone-achievementSkill
- redeploy-localSkill
- refine-skill-designSkill
- review-architectureSkill
- review-codebaseSkill
- review-diffSkill
- review-dotnetSkill
- review-error-surfacingSkill
- review-functional-designSkill
- review-implementation-alignmentSkill
- review-javaSkill
- review-observabilitySkill
- review-orm-usageSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 5 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 54
Handoff point: When all Go findings are emitted, hand off to orchestrate-code-review for aggregation.
- Distinctive: line 61
Go-only review: When the user wants only language/runtime conventions checked (e.g.
- Distinctive: line 62
Pre-PR Go checklist: Ensure concurrency, context, and error handling patterns are correct.
- Distinctive: line 64
When to use: When the code under review is Go and the task includes language/runtime quality.
- Distinctive: line 83
Testability and interfaces: Prefer small interfaces, injection over globals, and seams for deterministic tests.
- Very specific: line 116
Do NOT select or define the code scope — scope is determined by the caller or orchestrate-code-review
- Very specific: line 117
Do NOT perform security analysis — use review-security
- Very specific: line 118
Do NOT perform architecture analysis — use review-architecture
- Very specific: line 119
Do NOT perform comprehensive SQL analysis — use review-sql
- Very specific: line 123
When all Go findings are emitted, hand off to orchestrate-code-review for aggregation
- Very specific: line 124
When the user needs a full review (scope + language + cognitive), redirect to orchestrate-code-review
- Distinctive: line 125
When SQL or security issues are found, note them and suggest appropriate cognitive skills
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: Review Go
Purpose
Review code in Go for language and runtime conventions only. Do not define scope (diff vs codebase) or perform security/architecture analysis; those are handled by scope and cognitive skills. Emit a findings list in the standard format for aggregation. Focus on concurrency and goroutine lifecycle, context usage, error handling, resource management, API stability, type and zero-value semantics, and testability.
Core Objective
Primary goal: Produce a Go language/runtime findings list covering concurrency, context usage, error handling, resource management, API stability, type semantics, and testability for the given code scope.
Success Criteria (ALL must be met):
- ✅ Go-only scope: Only Go language and runtime conventions are reviewed; no scope selection, security, or architecture analysis performed
- ✅ All seven Go dimensions covered: Concurrency/goroutine lifecycle, context usage, error handling, resource management, API stability, type/zero-value semantics, and testability are assessed where relevant
- ✅ Findings format compliant: Every finding carries every element findings-list §5.1 requires, with category
language-go - ✅ File:line references: All findings reference specific file locations with line numbers
- ✅ Non-Go code excluded: Non-Go files are not analyzed for Go-specific rules unless explicitly in scope
Acceptance Test: Does the output contain a Go-focused findings list with file:line references covering all relevant language/runtime dimensions without performing security, architecture, or scope analysis?
Scope Boundaries
This skill handles:
- Goroutine lifecycle and leak prevention (channel closing, cancellation, WaitGroup)
- Context propagation through request paths
- Error handling (wrapping with
%w,errors.Is/As, avoiding panic for expected errors) - Resource management (defer Close(), resp.Body.Close(), context cancel())
- API stability and Go modules (exported types, backward compatibility, go.mod)
- Type and zero-value semantics (nil interface vs typed nil, pointer/value receiver, slice/map initialization)
- Testability (small interfaces, injection over globals, deterministic test seams)
This skill does NOT handle:
- Scope selection — scope is provided by the caller
- Security analysis — use
review-security - Architecture analysis — use
review-architecture - SQL-specific analysis — use
review-sql - Full orchestrated review — use
orchestrate-code-review
Handoff point: When all Go findings are emitted, hand off to orchestrate-code-review for aggregation. For SQL or security issues, note them and suggest the appropriate cognitive skill.
Use Cases
- Orchestrated review: Used as the language step when orchestrate-code-review runs scope -> language -> framework -> library -> cognitive for Go projects.
- Go-only review: When the user wants only language/runtime conventions checked (e.g. after adding a new Go file).
- Pre-PR Go checklist: Ensure concurrency, context, and error handling patterns are correct.
When to use: When the code under review is Go and the task includes language/runtime quality. Scope (diff vs paths) is determined by the caller or user.
Behavior
Scope of this skill
- Analyze: Go language and runtime conventions in the given code scope (files or diff provided by the caller). Do not decide scope; accept the code range as input.
- Do not: Perform scope selection (diff vs codebase), security review, or architecture review; do not review non-Go files for Go-specific rules unless explicitly in scope.
Review checklist (Go dimension only)
- Concurrency and goroutine lifecycle: Proper use of goroutines, channels, sync primitives, WaitGroup usage, channel closing, select patterns, and avoidance of goroutine leaks or data races.
- Context usage: Context passed through request paths, cancellation and deadlines respected, avoid context.Background() in request handlers, and no storing context in long-lived structs.
- Error handling: Errors checked and returned; wrapping with
%w; use oferrors.Is/As; avoid panic for expected errors; avoid error shadowing. - Resource management:
defer Close()for io.Closer,resp.Body.Close()on HTTP responses,Stop()for Timer/Ticker, andcancel()for contexts. - API stability and modules: Stability of exported APIs, changes to exported types and interfaces, backward compatibility, and Go version/module expectations (go.mod, build tags).
- Type and zero-value semantics: Nil interface vs typed nil pitfalls, pointer vs value receivers, map/slice initialization, copying and aliasing of slices, and zero-value correctness.
- Testability and interfaces: Prefer small interfaces, injection over globals, and seams for deterministic tests.
Tone and references
- Professional and technical: Reference specific locations (file:line). Emit findings carrying every element findings-list §5.1 requires.
Input & Output
Input
- Code scope: Files or directories (or diff) already selected by the user or by the scope skill. This skill does not decide scope; it reviews the provided Go code for language conventions only.
Output
- Emit zero or more findings in the format defined in specs/findings-list.md, with Category
language-go. - Category for this skill is language-go.
Restrictions
Hard Boundaries
- Do not perform security, architecture, or scope selection. Stay within Go language and runtime conventions.
- Do not emit a finding without a precise location. When a suggestion is included, it must be actionable; follow the canonical Findings Spec for required elements.
- Do not review non-Go code for Go-specific rules unless the user explicitly includes it (e.g. embedded code snippets).
Skill Boundaries
Do NOT do these (other skills handle them):
- Do NOT select or define the code scope — scope is determined by the caller or
orchestrate-code-review - Do NOT perform security analysis — use
review-security - Do NOT perform architecture analysis — use
review-architecture - Do NOT perform comprehensive SQL analysis — use
review-sql
When to stop and hand off:
- When all Go findings are emitted, hand off to
orchestrate-code-reviewfor aggregation - When the user needs a full review (scope + language + cognitive), redirect to
orchestrate-code-review - When SQL or security issues are found, note them and suggest appropriate cognitive skills
Self-Check
Core Success Criteria
- Go-only scope: Only Go language and runtime conventions are reviewed; no scope selection, security, or architecture analysis performed
- All seven Go dimensions covered: Concurrency/goroutine lifecycle, context usage, error handling, resource management, API stability, type/zero-value semantics, and testability are assessed where relevant
- Findings format compliant: Every finding carries every element findings-list §5.1 requires, with category
language-go - File:line references: All findings reference specific file locations with line numbers
- Non-Go code excluded: Non-Go files are not analyzed for Go-specific rules unless explicitly in scope
Process Quality Checks
- Was only the Go language/runtime dimension reviewed (no scope/security/architecture)?
- Are concurrency, context usage, error handling, resource management, API stability, type semantics, and testability covered where relevant?
- Does every finding carry every element findings-list §5.1 requires, with category=language-go?
- Are issues referenced with file:line?
Acceptance Test
Does the output contain a Go-focused findings list with file:line references covering all relevant language/runtime dimensions without performing security, architecture, or scope analysis?
Examples
Example 1: Goroutine leak
- Input: Goroutine started in a request handler that waits on a channel that is never closed or canceled.
- Expected: Emit a finding for goroutine leak and missing cancellation; reference the handler and channel usage. Category = language-go.
Example 2: Error handling
- Input: Function returns
fmt.Errorf("failed: %v", err)and the caller compares errors with==. - Expected: Emit a finding to wrap with
%wand useerrors.Is/As; reference the error construction and comparison. Category = language-go.
Example 3: Nil interface pitfall
- Input: Function returns
(*MyStruct)(nil)as anerrorinterface; caller checksif err != nil. - Expected: Emit a finding that a typed nil assigned to an interface is not nil; suggest returning an explicit
nilinstead. Category = language-go.
Edge case: Mixed Go and SQL
- Input: Go file with embedded SQL strings for database queries.
- Expected: Review only Go conventions (context usage, error handling, resource cleanup). Do not emit SQL-injection findings; that is for review-security or review-sql.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

