Skip to main content

go-review

Go code review guidelines for the Cog codebase

Datos de origen

Repositorio
replicate/cog
Última actividad en el origen
24 de abril de 2026 a las 19:38
Idioma detectado de SKILL.md
inglés
Estrellas
9490
Forks
699

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
go-review
description
Go code review guidelines for the Cog codebase
## Go review guidelines This project uses Go for the CLI (`cmd/cog/`, `pkg/`) and support tooling (`tools/`). ### What linters already catch (skip these) golangci-lint runs errcheck, gocritic, gosec, govet, ineffassign, misspell, revive, staticcheck, and unused. Don't flag issues these would catch. ### What to look for **Error handling** - Errors returned but not checked or silently discarded - User-facing errors should use `pkg/errors.CodedError` with error codes - Generic error wrapping that loses context (`fmt.Errorf("failed")` with no `%w`) **Imports** - Should be three groups: stdlib, third-party, internal (`github.com/replicate/cog/pkg/...`) - Only flag if actually wrong, not cosmetic reordering **Testing** - Must use `testify/require` for fatal assertions and `testify/assert` for non-fatal - No raw `if` checks with `t.Fatal`/`t.Errorf` - Prefer table-driven tests for similar cases - Prefer specific assertions (`Equal`, `Contains`, `NoError`) over `True`/`False` **Concurrency** - Goroutine leaks (no cleanup path, missing context cancellation) - Shared state without synchronization - Channel misuse (sends on closed channels, unbuffered channels in wrong contexts) **Docker/container patterns** - The CLI uses the Docker Go SDK. Watch for leaked clients, unclosed response bodies - Dockerfile generation is in `pkg/dockerfile/` -- template injection risks **Architecture** - Commands belong in `pkg/cli/`, business logic in `pkg/` - Config parsing/validation in `pkg/config/` - Don't mix CLI concerns with library logic
Ver en GitHub