Awesome Reviewers

Always use dedicated configuration files for specific configuration needs rather than modifying core build or system files. This practice improves maintainability, traceability, and scope control.

When working with configuration:

Example:

# Don't do this:
# In Makefile
ci-build-misc: \
	clean-tools \
	proto \
	go-generate \
	# buf-breaking was removed here

# Instead do this:
# 1. Keep the Makefile entry
ci-build-misc: \
	clean-tools \
	proto \
	go-generate \
	buf-breaking \  # Don't remove this, add ignores to proto/internal/buf.yaml instead

# 2. Add specific ignores in the dedicated configuration file (buf.yaml)

# 3. For tool dependencies, use specific versions:
WORKFLOWCHECK := $(LOCALBIN)/workflowcheck
$(WORKFLOWCHECK): | $(LOCALBIN)
	$(call go-install-tool,$(WORKFLOWCHECK),go.temporal.io/sdk/contrib/tools/workflowcheck,v0.3.0)

This approach keeps configuration changes properly scoped, makes them easier to track, and prevents unintended consequences from global modifications or unexpected version changes.