add-binding-feature

작성자: nvidia

핵심 런타임과 영향을 받는 모든 바인딩에서 공용 NeMo Relay API 표면을 추가하거나 변경합니다.

npx skills add https://github.com/nvidia/nemo-relay --skill add-binding-feature

Add a Binding Feature

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 a change affects the public runtime surface and must stay in parity across the Rust core, FFI, and one or more bindings.

Do not use this skill for:

  • Internal-only core refactors with no public API change
  • Binding-local bug fixes that do not change shared behavior
  • Docs-only or example-only updates

Implementation Order

  1. Core Rust Implement the behavior first in crates/core/src/api/ and related core modules such as crates/core/src/api/runtime/, crates/core/src/codec/, or crates/core/src/json.rs.
  2. FFI / shared C surface Add or update FFI wrappers in the relevant crates/ffi/src/api/*.rs module, re-export them through crates/ffi/src/api/mod.rs, and ensure the generated crates/ffi/nemo_relay.h stays correct.
  3. Language-native bindings Update Python, Go, and Node.js for every surface that should expose the capability.
  4. Language wrapper helpers Update Python wrapper modules, Go shorthand packages, typed helpers, or adaptive/plugin helpers if the new behavior belongs there.
  5. Docs and examples Update reference docs, language-binding docs, and examples when the public surface or expected usage changed.
  6. Validation Run the validation matrix from the validate-change skill for the affected surfaces.

Naming Conventions

LayerConventionExample
Rustsnake_casenemo_relay_tool_call
C FFInemo_relay_ prefixnemo_relay_tool_call
Pythonsnake_casenemo_relay.tools.call
GoPascalCasenemo_relay.ToolCall
Node.jscamelCasetoolCall

Parity Checklist

  • Core function with doc comment in crates/core/src/api/
  • Runtime callback/state, codec, JSON, or event/tool/LLM/scope types added in the relevant core module if needed
  • FFI wrapper in the relevant crates/ffi/src/api/*.rs module and re-export in crates/ffi/src/api/mod.rs
  • Regenerate the shared library/header path with just build-go
  • Python native binding in crates/python/src/py_api/mod.rs
  • Python wrapper with docstring in python/nemo_relay/<module>.py
  • Python type stubs updated in the relevant python/nemo_relay/*.pyi modules
  • Go wrapper in go/nemo_relay/nemo_relay.go with doc comment
  • Go shorthand package updated if the capability belongs there
  • Node.js binding in crates/node/src/api/mod.rs
  • Typed wrapper or adaptive/plugin helper surfaces updated when applicable
  • Tests added in every affected language surface
  • SPDX license header on any new files
  • Relevant pages under docs/reference/ updated
  • README.md, docs/getting-started/, or binding-level READMEs updated if behavior differs by language
  • Relevant getting-started, README, or example docs updated if usage changed

Decision Points

Lock these before implementing:

  • Which bindings actually expose the new surface?
  • Is the change part of the plain JSON API, typed wrappers, adaptive/plugin helpers, or observability helpers?
  • Does the new API need manual lifecycle and managed execute variants, or only one of them?
  • Does the new behavior change event fields, metadata, or scope expectations?
  • Are docs/examples required because the intended usage changed?

Key References

  • Architecture: docs/about/architecture.md
  • Reference index: docs/reference/api/index.md
  • Getting started and binding status: README.md, docs/getting-started/quick-start.md, docs/about/release-notes/support-matrix.md
  • Typed wrappers and codecs: docs/integrate-frameworks/using-codecs.md, docs/integrate-frameworks/provider-codecs.md
  • Adaptive config/plugins: docs/about/concepts/plugins.md, docs/build-plugins/about.md, docs/plugins/adaptive/configuration.md
  • Existing pattern: follow a surface already implemented across core, FFI, Python, Go, and Node.js rather than inventing a new shape

nvidia의 다른 스킬

compileiq-debug
nvidia
Use when something is wrong: Search() hangs, all evaluations return INVALID_SCORE, scores aren't improving, every config returns the same number, ptxas errors…
official
create-github-pr
nvidia
gh CLI를 사용하여 GitHub 풀 리퀘스트를 생성합니다. 사용자가 새 PR을 만들거나, 코드 리뷰를 제출하거나, 풀 리퀘스트를 열고자 할 때 사용합니다. 트리거 키워드 -…
official
diagnose-perf
nvidia
First-responder performance triage for Isaac Sim and Isaac Lab. Identifies bottleneck category (GPU-bound, CPU-bound, VRAM, loading) using nvidia-smi and…
official
eagle3-review-logs
nvidia
Review EAGLE3 pipeline experiment logs from the launcher's experiments/ directory. Summarizes pass/fail status for all 4 tasks, diagnoses failures with root…
official
nemoclaw-maintainer-cross-issue-sweep
nvidia
다른 열린 이슈들을 스캔하여 주어진 PR이 함께 수정하거나 실수로 망가뜨릴 수 있는 이슈를 찾습니다. 인접 수정 기회와 모순 위험을 file:line…과 함께 출력합니다.
official
karpathy-guidelines
nvidia
일반적인 LLM 코딩 실수를 줄이기 위한 행동 지침입니다. 코드 작성, 검토 또는 리팩토링 시 과도한 복잡성을 피하고 정밀한 변경을 위해 사용하세요.
official
fhir-basics
nvidia
에이전트에게 FHIR R4 API의 작동 방식, 사용 가능한 리소스, 검색 매개변수를 사용한 쿼리 방법, 모든 응답 형식을 올바르게 파싱하는 방법을 가르칩니다…
official
underdeclared-agent
nvidia
A helpful assistant agent
official