go-turbo-reviewlisted
Install: claude install-skill hendriknielaender/go-turbo
# go-turbo-review
Review the diff for performance. One line per finding: location, what's wrong,
what replaces it. The best outcome is no actionable regression and no
speculative complexity.
Two directions matter equally. Reviewers reliably catch the added allocation;
they reliably miss the `sync.Pool` added to a cold path, which costs a lifetime
bug and buys nothing. Flag both.
## Format
`L<line>: <tag> <what>. <fix>.` — or `<file>:L<line>:` for multi-file diffs.
Tags: `alloc:` avoidable allocation on a plausibly hot path. `escape:` value
pushed to the heap by code shape. `algo:` complexity that will not hold at scale.
`sync:` unbounded goroutines, contention, over-wide critical section,
serialization through a channel. `io:` per-item syscall, query, or round trip.
`net:` undrained response body, missing timeout, transport misconfiguration,
per-request client construction. `leak:` goroutine or memory retention.
`premature:` optimization with no evidence, costing readability or safety — the
replacement is the simpler code. `layout:` padding or false sharing worth fixing
at this volume.
## Examples
Not this:
> "Have you considered whether this slice could be preallocated? It might
> improve performance under certain conditions."
This:
- `L34: alloc: append into nil slice, len(rows) known. make([]Result, 0, len(rows)).`
- `L12: escape: measured constructor allocation comes from returning *Point; identity and nil are unused. Return Point by value and remeasure.`
- `L88