diff --git a/AGENTS.md b/AGENTS.md index 3892686..8d95b90 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -141,3 +141,17 @@ Version: 2025-06-08 - Local application imports Each group should be separated by a blank line. + +## Go-Specific Guidelines + +1. **No `panic`, `log.Fatal`, or `os.Exit` in library code.** Always propagate errors via return values. + +2. **Constructors return `(*T, error)`, not just `*T`.** Callers must handle errors, not crash. + +3. **Wrap errors** with `fmt.Errorf("context: %w", err)` for debuggability. + +4. **Never modify linter config** (`.golangci.yml`) to suppress findings. Fix the code. + +5. **All PRs must pass `make check` with zero failures.** No exceptions, no "pre-existing issue" excuses. + +6. **Pin external dependencies by commit hash**, not mutable tags.