All analyzers
gohawk ships a focused set of analyzers rather than a general-purpose lint catalog.
API and data contracts
These analyzers make contracts visible in Go types and APIs, where callers and tools can rely on them.
apishape
Checks exported API parameter and receiver shape.
contextpolicy
Checks context placement, storage, nil use, and test ownership.
closedomain
Finds builtin-string fields used as closed semantic domains.
wirepolicy
Checks serialized structs and their composite literals.
Ownership and lifecycle
These analyzers look for work or resources whose owner cannot be identified on every relevant path.
cancellationownership
Checks context and signal-derived cancellation functions are called on every return path.
channelpolicy
Checks channel capacity and closing ownership.
deferinloop
Checks cleanup defers whose lifetime extends across loop iterations.
exitpolicy
Checks process termination that bypasses registered defers.
goroutineownership
Checks that explicit goroutines have a recognizable join handle or lifecycle owner.
processownership
Checks that started os/exec commands are waited on or transferred to a wait owner.
resourcelifetime
Checks owned files, SQL handles, HTTP responses, timers, and compressors are released on every path.
Reliability and safety
These analyzers cover failure modes that often survive ordinary type checking and code review.
concurrentcapture
Checks locals mutated by goroutines launched repeatedly.
determinism
Checks map iteration reaching ordered output without explicit sorting.
errorownership
Checks that errors are handled once and classified structurally.
evalorder
Checks later operands that mutate values evaluated earlier.
globalstate
Checks mutable package-level state.
lockorder
Checks contradictory mutex acquisition order and unreleased return paths.
oncepolicy
Checks sync.Once function wrappers that are immediately discarded.
syncmapatomicity
Checks non-atomic sync.Map load-and-delete claims.
taintpolicy
Checks untrusted environment and argument data reaching sensitive sinks.
Testing
These analyzers keep test failures bounded and make helper behavior visible at the call site.