Files
review-bot/CONVENTIONS.md
T
Rodin 0e9ddc3c57
CI / test (pull_request) Successful in 15s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (pull_request) Successful in 24s
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (pull_request) Successful in 52s
CI / review (gpt-5, security, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (pull_request) Successful in 56s
docs: allow approved third-party packages
Updates dependency policy from 'stdlib only' to 'stdlib preferred,
approved packages allowed'. Adds initial approved list:

- gopkg.in/yaml.v3: YAML parsing for persona files
- github.com/google/go-cmp: Test comparisons with readable diffs

Includes process for adding new dependencies.
2026-05-10 13:43:59 -07:00

1.3 KiB

Conventions

Language & Dependencies

  • Target the latest stable Go release.
  • Prefer Go standard library; approved third-party packages allowed (see below).

Approved Third-Party Packages

Package Use Case Notes
gopkg.in/yaml.v3 YAML parsing Persona files, config
github.com/google/go-cmp Test comparisons cmp.Diff for readable diffs

To add a new dependency:

  1. Open a PR with justification (why stdlib is insufficient)
  2. Package must be well-maintained, widely used, minimal transitive deps
  3. Update this table when approved

Error Handling

  • Return errors; never panic.
  • Wrap errors with context using fmt.Errorf("context: %w", err).
  • Check all error returns.

Testing

  • Test every exported function.
  • Use net/http/httptest for HTTP mocking.
  • Table-driven tests where multiple inputs share the same assertion logic.
  • Integration tests use build tags (//go:build integration).

Style

  • Keep functions short and focused.
  • Prefer early returns over deep nesting.
  • Meaningful variable names — no single-letter names outside loop indices.
  • Comments explain why, not what.

Process

  • go test ./... must pass before commit.
  • go vet ./... must pass before commit.
  • Keep commits atomic and well-described.