All contributions are welcome — new checks, bug fixes, docs, whatever.
Fork the repo first, then clone your fork:
git clone https://github.com/YOUR_USERNAME/devcheck
cd devcheck
go build ./cmd/devcheck
go test ./...Most contributions are new checks. Here's how:
- Create
internal/checks/yourcheck.go - Implement the
Checkinterface:
type YourCheck struct{}
func (c *YourCheck) Name() string { return "your check name" }
func (c *YourCheck) Run(ctx context.Context) check.Result {
return check.Result{
Name: c.Name(),
Status: check.StatusPass,
Message: "looks good",
Fix: "", // shown with --fix if this fails
}
}- Register it in
internal/check/registry.gounder the right stack condition - Add a test in
internal/checks/yourcheck_test.go— cover both pass and fail - Run
go test ./...and make sure everything passes - Open a PR referencing the issue (e.g. "Closes #5")
Before you start on something, leave a comment on the issue so nobody duplicates work.
go build ./...passesgo test ./...passesgo vet ./...passes- Test covers pass and fail cases
Open a GitHub Discussion or leave a comment on the issue.