- Go 1.22 or later
- Claude CLI installed and authenticated (see README Prerequisites section)
go build -o skill-eval ./cmd/skill-evalTo embed a version string in the binary:
go build -ldflags "-X main.version=1.2.3" -o skill-eval ./cmd/skill-evalgo test ./...Tests use a stub claude binary injected via $PATH — no real API calls are made during go test.
cmd/skill-eval/ # main package — flag parsing and dispatch
pkg/skilleval/ # core logic — evals, runner, classifier, artifacts, init, scan
The pkg/skilleval package is the library. cmd/skill-eval is a thin CLI wrapper over it.
- Fork the repo and create a branch.
- Make your changes with tests.
- Run
go test ./...— all tests must pass. - Run
go vet ./...— no warnings. - Open a pull request with a clear description of what changed and why.
Standard Go formatting. Run gofmt -w . before committing. No external linter config is required — go vet is the bar.
Comments explain why, not what. Prefer clear naming over comments where possible.
Open an issue. Include the output of skill-eval --version, your OS, and the exact command that triggered the problem.