nvidia/test-go-binding
Build and test the NeMo Relay Go binding; use this for go/nemo_relay changes or Go-facing integration checks
npx skills add https://github.com/NVIDIA/NeMo-Relay --skill test-go-binding
Use karpathy-guidelines alongside this skill for implementation or review
work. Keep changes scoped, surface assumptions, and define focused validation
before editing.
Use this skill when the change is primarily in go/nemo_relay or the Go
binding behavior it depends on.
The Go binding links against the shared FFI library. just test-go
builds that library for you, while just build-go remains useful when
you want an explicit build-only pass or need the artifact for other work.
cd go/nemo_relay && go fmt ./....just test-go.cargo fmt --all, just test-rust, and
cargo clippy --workspace --all-targets -- -D warnings.
just build-go when you want an explicit build-only pass.just ci=true test-go when you need the CI-style coverage and JUnit path.# Full Go suite
just test-go
# Format Go files
cd go/nemo_relay && go fmt ./...
# Required when the Go change also touched Rust code
cargo fmt --all
just test-rust
cargo clippy --workspace --all-targets -- -D warnings
# CI-style Go suite with coverage and JUnit artifacts
just ci=true test-go
# Explicit shared-library build when needed separately
just build-go
In the test-go task, the ci variable is what is_true "{{ ci }}" checks.
Setting ci=true enables coverage_out and junit_out handling and adds
-coverprofile=coverage.out to go_test_cmd.
On macOS, also set DYLD_LIBRARY_PATH to the same ../../target/release
directory before running the raw go test command directly.
crates/ffi, also use test-ffi-surface.crates/core or shared runtime semantics, also usevalidate-change.
go/nemo_relay/go.modgo/nemo_relay/nemo_relay.goREADME.mddocs/getting-started/installation.mdvalidate-changeTake nvidia/test-go-binding from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.