Scope the .golangci.yml agent prohibition to vendored copies #49
@@ -124,10 +124,15 @@ last_modified: 2026-03-18
|
||||
|
||||
1. Keep the `main()` function as small as possible.
|
||||
|
||||
1. Keep the `main` package as small as possible. Move as much code as is
|
||||
feasible to a library package, even if it's an internal one. `main` is just
|
||||
an entrypoint to your code, not a place for implementations. Exception:
|
||||
single-file scripts.
|
||||
1. Keep the `main` package as small as possible. Each `cmd/<name>/` directory
|
||||
contains a single `main.go` whose body is one call into library code (for
|
||||
example `os.Exit(cli.Main())` calling `internal/cli`). All CLI logic — flag
|
||||
parsing, subcommand dispatch, argument handling, output formatting — lives
|
||||
in `internal/` or `pkg/`, not in `cmd/`. `main` is just an entrypoint to
|
||||
your code, not a place for implementations. Exception: single-file scripts.
|
||||
|
||||
1. No project logic outside `internal/` or `pkg/`. Anything in `cmd/` is a thin
|
||||
entrypoint only.
|
||||
|
||||
1. HTTP HandleFuncs should be returned from methods or functions that need to
|
||||
handle HTTP requests. Don't use methods or your top level functions as
|
||||
|
||||
@@ -390,7 +390,9 @@ style conventions are in separate documents:
|
||||
language-specific config). Everything else goes in a subdirectory. Canonical
|
||||
subdirectory names:
|
||||
- `bin/` — executable scripts and tools
|
||||
- `cmd/` — Go command entrypoints
|
||||
- `cmd/` — Go command entrypoints; thin only: one `main.go` per binary whose
|
||||
body is a single call into `internal/` or `pkg/`, no project logic in
|
||||
`cmd/`
|
||||
- `configs/` — configuration templates and examples
|
||||
- `deploy/` — deployment manifests (k8s, compose, terraform)
|
||||
- `docs/` — documentation and markdown (README.md stays in root)
|
||||
|
||||
Reference in New Issue
Block a user