Files
godoxy-yusing/AGENTS.md
2026-02-26 00:39:10 +08:00

1.1 KiB

AGENTS.md

Development Commands

  • Build: You should not run build command.
  • Test: go test -ldflags="-checklinkname=0" ...

Documentation

Update package level README.md if exists after making significant changes.

Go Guidelines

  1. Use builtin min and max functions instead of creating custom ones
  2. Prefer for i := range 10 over for i := 0; i < 10; i++
  3. Beware of variable shadowing when making edits
  4. Use internal/task/task.go for lifetime management:
    • task.RootTask() for background operations
    • parent.Subtask() for nested tasks
    • OnFinished() and OnCancel() callbacks for cleanup
  5. Use gperr "goutils/errs" to build pretty nested errors:
    • gperr.Multiline() for multiple operation attempts
    • gperr.NewBuilder() to collect errors
    • gperr.NewGroup() + group.Go() to collect errors of multiple concurrent operations
    • gperr.PrependSubject() to prepend subject to errors
  6. Use github.com/puzpuzpuz/xsync/v4 for lock-free thread safe maps
  7. Use goutils/synk to retrieve and put byte buffer

Testing

  • Run scoped tests instead of ./...
  • Use testify, no manual assertions.