mcpbeat

Test Ffi Surface

nvidia/test-ffi-surface

Build and test the NeMo Relay FFI surface; use this for crates/ffi changes, header generation, or ABI-facing validation

439 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
102
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/NVIDIA/NeMo-Relay --skill test-ffi-surface

The instruction itself

6 sections, as written by the author

Build And Test FFI Surface

Companion Guidance

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 crates/ffi, the generated

header, or ABI-facing behavior consumed by Go or external native callers.

Default Path

  • Rebuild the FFI crate in release mode so the shared library and header stay

in sync.

  • Run cargo fmt --all because FFI work is Rust work.
  • Run just test-rust.
  • Run cargo clippy --workspace --all-targets -- -D warnings.
  • Check the generated header diff when any exported symbol or type changed.
  • If downstream consumers changed too, run their binding-specific skills next.

Common Commands

# Rebuild the shared library with the repo wrapper used by FFI consumers
just build-go

# Required Rust validation
cargo fmt --all
just test-rust
cargo test -p nemo-relay-ffi
cargo clippy --workspace --all-targets -- -D warnings

# Review header drift if the FFI surface changed
git diff -- crates/ffi/nemo_relay.h

When To Escalate

  • If Go behavior changed, also use test-go-binding.
  • If the FFI change reflects shared runtime semantics rather than a pure bridge

change, also use validate-change.

References

  • crates/ffi/Cargo.toml
  • crates/ffi/build.rs
  • crates/ffi/cbindgen.toml
  • crates/ffi/nemo_relay.h
  • just build-go
  • .pre-commit-config.yaml
  • README.md
  • validate-change

How to use it

Copy the folder

Take nvidia/test-ffi-surface from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.