From b6f077275f12d25e0a4aecf59d01d77be8005ee8 Mon Sep 17 00:00:00 2001 From: RW Date: Mon, 26 May 2025 19:48:06 +0200 Subject: [PATCH] Update AGENTS.md --- AGENTS.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 580bf1fa..4b23d8d8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,16 +2,16 @@ ## Agent Instructions -> **Note for the AI agent:** Before running the startup script, check for a `vendor` directory. If it exists, skip fetching modules; otherwise proceed. This vendor-check logic is for the agent’s decision-making and is not part of the user-facing script. +> **Note for the AI agent:** Before running the startup script, verify that all dependencies and CLI tools are already available. If a `vendor/` directory exists **or** `go list -m -mod=readonly all` succeeds (indicating modules are cached), you may skip the entire startup script—including all `go mod` commands and `go install` steps. Otherwise run the script as listed below. --- -## Startup script +## Startup script (reference only – do not run) - Fetch dependencies: ```bash - go get ./... + go mod tidy && go mod download && go mod vendor ``` - Install CLI tools referenced in Makefile: @@ -25,3 +25,20 @@ go install github.com/dkorunic/betteralign/cmd/betteralign@latest # struct alignment go mod tidy # clean up go.mod & go.sum ``` + +## Makefile commands + +Use `make help` to list all available commands. Common targets include: + +- **audit**: run `go mod verify`, `go vet`, and `govulncheck` for quality checks. +- **benchmark**: run benchmarks with `go test`. +- **coverage**: generate a coverage report. +- **format**: apply formatting using `gofumpt`. +- **lint**: execute `golangci-lint`. +- **test**: run the test suite with `gotestsum`. +- **longtest**: run the test suite 15 times with shuffling enabled. +- **tidy**: clean and tidy dependencies. +- **betteralign**: optimize struct field alignment. +- **generate**: run `go generate` after installing msgp and ifacemaker. + +These targets can be invoked via `make ` as needed during development and testing.