Contributing
GoBeaver is early alpha. Issues, RFCs, and PRs are welcome — but expect the APIs to move under your feet for a while yet.
Ground rules
Section titled “Ground rules”- One concern per PR. Refactors and features in separate commits.
- Follow the Go conventions in
CLAUDE.md(no stuttering, lowercase packages, RFC 9457 responses, etc.). - New packages need at least: a
doc.go, aREADME.md, and a unit test for the happy path. go mod tidyin both modules whenever you touch a package another module consumes through areplacedirective.
Guidelines
Section titled “Guidelines”Three conventions hold the workspace together. Any new package is expected to follow all three; anything that diverges needs a comment saying why.
| Guide | Covers |
|---|---|
| Package layout | Directory structure, when to split into sub-modules, multi-module releases, the Makefile |
| Configuration | Loading config with configkit — the Config / New / Init / accessor pattern |
| Linting | The canonical .golangci.yml, what each linter buys you, the CI gate |
New package? Start from the checklist.