Skip to content

chore(skills): add dynamic plugin maintainer guidance - #312

Merged
rapids-bot[bot] merged 1 commit into
NVIDIA:mainfrom
willkill07:wkk_dynamic-plugin-8-skills
Jun 30, 2026
Merged

chore(skills): add dynamic plugin maintainer guidance#312
rapids-bot[bot] merged 1 commit into
NVIDIA:mainfrom
willkill07:wkk_dynamic-plugin-8-skills

Conversation

@willkill07

@willkill07 willkill07 commented Jun 25, 2026

Copy link
Copy Markdown
Member

Overview

Add focused maintainer Skills guidance for dynamic plugin development and route related validation, packaging, CI, Python, Rust, and documentation work to the right repository workflows.

Dependency: PR #310 should merge first because several Skills updates describe its Python worker SDK paths and commands: #310

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Add .agents/skills/maintain-dynamic-plugins/SKILL.md.
  • Update the existing docs, CI, packaging, Python, Rust, and change-validation Skills with dynamic plugin guidance.
  • Align Rust validation with the actual integration-test targets and route focused Python SDK testing through PR feat(python): add nemo-relay-plugin worker SDK package #310's just test-python-plugin recipe.
  • Update skill discovery descriptions, distinguish top-level doctor from plugins subcommands, keep unmerged detailed-doc guidance conditional, and correct stale docs/workflow references.
  • Keep the PR limited to seven files under .agents/skills/; it contains no runtime, SDK, workflow, packaging configuration, or docs-site content changes.

Validation:

  • cargo test -p nemo-relay --features worker-grpc --test native_plugin_integration --test worker_plugin_integration --no-run
  • uv run pre-commit run --files <seven changed SKILL.md files>
  • uv run pre-commit run --all-files
  • Verified the Python plugin recipe and all updated paths against PR feat(python): add nemo-relay-plugin worker SDK package #310's head.

Where should the reviewer start?

Start with .agents/skills/maintain-dynamic-plugins/SKILL.md, then review the routing additions in .agents/skills/validate-change/SKILL.md.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

Summary by CodeRabbit

  • Documentation
    • Added new guidance for maintaining dynamic plugins, including clearer documentation structure, validation steps, and references.
    • Updated existing guidance to cover Python worker plugin packaging, testing, CI checks, and release expectations.
    • Refined docs rules so related native, worker, and protocol examples are easier to find and follow.

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Adds a new .agents/skills/maintain-dynamic-plugins/SKILL.md skill covering Rust/Python native SDKs, gRPC worker protocol, manifests, and related CI/docs. Updates six existing skills (test-rust-core, test-python-binding, validate-change, maintain-ci, maintain-packaging, contribute-docs) to reference this new skill, add plugin test commands, update CI workflow filenames, and switch doc references from .md to .mdx.

Changes

Dynamic Plugin Agent Skills

Layer / File(s) Summary
New maintain-dynamic-plugins skill
.agents/skills/maintain-dynamic-plugins/SKILL.md
Full skill document with metadata, rules (C ABI vs grpc-v1, DTO placement, SemVer, sandboxing), a detailed maintenance checklist (manifest/loader/worker activation/lifecycle/doctor), validation commands, and references.
test-rust-core and test-python-binding updates
.agents/skills/test-rust-core/SKILL.md, .agents/skills/test-python-binding/SKILL.md
test-rust-core adds plugin/worker crate cargo test targets and escalation to maintain-dynamic-plugins. test-python-binding expands scope to cover python/plugin, adds just test-python-plugin and just build-python-plugin steps, and updates references.
validate-change, maintain-ci, and maintain-packaging updates
.agents/skills/validate-change/SKILL.md, .agents/skills/maintain-ci/SKILL.md, .agents/skills/maintain-packaging/SKILL.md
validate-change adds a dynamic plugin decision path and plugin build/test commands. maintain-ci adds Codecov component alignment and single-wheel standards, switches ci_pipe.yml to ci_python.yml. maintain-packaging adds python/plugin/pyproject.toml audit, nemo-relay-plugin SemVer/PEP 440 expectations.
contribute-docs updates
.agents/skills/contribute-docs/SKILL.md
Adds dynamic plugin doc rules (separate pages, compat.relay default constraint), a checklist entry for cross-page linking, and updates the testing-and-docs reference to .mdx.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title follows Conventional Commits, matches the PR scope, and stays within the length and formatting rules.
Description check ✅ Passed The description includes the required overview, details, reviewer-start, related-issues, confirmation checkboxes, and validation notes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added size:XXL PR is very large Maintenance CI or Build or general repository maintenance lang:python PR changes/introduces Python code labels Jun 25, 2026
@github-actions github-actions Bot added the lang:rust PR changes/introduces Rust code label Jun 25, 2026
@github-actions

Copy link
Copy Markdown

@willkill07 willkill07 self-assigned this Jun 25, 2026
@willkill07 willkill07 added this to the 0.5 milestone Jun 25, 2026
@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 1cdbe93 to 73b08c3 Compare June 25, 2026 18:16
@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 73b08c3 to 51efbf2 Compare June 25, 2026 18:44
@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 51efbf2 to 744b9f9 Compare June 25, 2026 19:03
@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 744b9f9 to 9989937 Compare June 25, 2026 23:21
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 9989937 to 30b4f4f Compare June 25, 2026 23:40
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 30b4f4f to 0f7e347 Compare June 26, 2026 00:19
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 0f7e347 to baff0be Compare June 26, 2026 00:45
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from baff0be to 2281fc5 Compare June 26, 2026 02:28
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from bb216ed to 2032bc5 Compare June 26, 2026 22:14
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 684dd54 to da53150 Compare June 26, 2026 22:48
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from da53150 to 12e56bc Compare June 26, 2026 23:04
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from 12e56bc to b9ee757 Compare June 26, 2026 23:21
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

@willkill07
willkill07 force-pushed the wkk_dynamic-plugin-8-skills branch from b9ee757 to 8a3371f Compare June 26, 2026 23:35
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

1 similar comment
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

Signed-off-by: Will Killian <wkillian@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/maintain-dynamic-plugins/SKILL.md:
- Around line 12-14: The companion guidance in the skill’s instruction list is
missing maintain-ci, even though the skill covers CI workflow changes. Update
the guidance around the skill references so it includes maintain-ci alongside
the existing helpers, and make sure the documented companion set still points
users to the CI-specific runbook for permissions, pinned action SHAs, and cache
policy.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: dae54fc6-9f28-4cef-a88d-ff6504c1b755

📥 Commits

Reviewing files that changed from the base of the PR and between 19a537d and ff56020.

📒 Files selected for processing (7)
  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-dynamic-plugins/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/test-python-binding/SKILL.md
  • .agents/skills/test-rust-core/SKILL.md
  • .agents/skills/validate-change/SKILL.md
📜 Review details
⚠️ CI failures not shown inline (2)

GitHub Actions: Build pull request / 12_Check _ Run.txt: chore(skills): add dynamic plugin maintainer guidance

Conclusion: failure

View job details

##[group]Run bail() {
 �[36;1mbail() {�[0m
 �[36;1m  printf '::error::install-action: %s\n' "$*"�[0m

GitHub Actions: Build pull request / 0_pr-builder _ run.txt: chore(skills): add dynamic plugin maintainer guidance

Conclusion: failure

View job details

##[group]Run if grep -n -R -E 'alternative\-gh\-token\-secret\-name\:' ./.github; then
 �[36;1mif grep -n -R -E 'alternative\-gh\-token\-secret\-name\:' ./.github; then�[0m
 �[36;1m  echo "::error::$ERROR_MSG"�[0m
🧰 Additional context used
📓 Path-based instructions (7)
.agents/skills/**

⚙️ CodeRabbit configuration file

.agents/skills/**:

Maintainer Skills

This directory is the maintainer-only skill set for developing NeMo Relay
itself.

Use these skills for repository work such as:

  • Changing core or binding APIs
  • Maintaining patches, packaging, CI, and docs
  • Extending middleware or observability internals
  • Validating library changes across bindings

Consumer-facing NeMo Relay usage skills live in the top-level skills/
directory so they can be exported separately for integrators and end users.

Files:

  • .agents/skills/contribute-docs/SKILL.md
  • .agents/skills/maintain-dynamic-plugins/SKILL.md
  • .agents/skills/maintain-ci/SKILL.md
  • .agents/skills/maintain-packaging/SKILL.md
  • .agents/skills/test-rust-core/SKILL.md
  • .agents/skills/test-python-binding/SKILL.md
  • .agents/skills/validate-change/SKILL.md
.agents/skills/contribute-docs/**

⚙️ CodeRabbit configuration file

.agents/skills/contribute-docs/**: ---
name: contribute-docs
description: Contribute documentation or example changes that stay aligned with NeMo Relay public behavior
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Contribute Docs Or Examples

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 for docs-only or example-heavy changes.

Rules

  • Prefer the documented public API, not internal shortcuts
  • Keep package names, repo references, and build commands current
  • Update entry-point docs when examples or reading paths change
  • Keep release-process and release-notes guidance in repo-maintainer docs such as
    RELEASING.md, not as user-facing docs pages or CHANGELOG.md
  • Keep stable user-facing wrappers at scripts/ root in docs and examples;
    only point at namespaced helper paths when documenting internal maintenance
    work
  • In MDX files, top-of-file comments must use JSX comment delimiters:
    {/* to open and */} to close. Do not use HTML comments for MDX SPDX
    headers.

Checklist

  • README.md or docs/index.md updated when entry points changed
  • Relevant getting-started or reference docs updated
  • Example commands still match current package names and paths
  • Relevant package or crate README.md files updated when examples or binding guidance changed
  • New or regenerated MDX files use {/* ... */} for top-of-file SPDX comments
  • Release-policy docs still point to GitHub Releases as the only release-history source of truth
  • Run just docs when the docs site changed; ./scripts/build-docs.sh html remains the compatibility wrapper

References

  • CONTRIBUTING.md
  • RELEASING.md
  • docs/contribute/testing-and-docs.md
  • review-doc-style

Files:

  • .agents/skills/contribute-docs/SKILL.md
.agents/skills/maintain-ci/**

⚙️ CodeRabbit configuration file

.agents/skills/maintain-ci/**: ---
name: maintain-ci
description: Maintain and review NeMo Relay GitHub Actions workflows with explicit per-job permissions, pinned action SHAs, deterministic caching, reusable workflow permission boundaries, and local validation
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Maintain GitHub Actions CI

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 touches .github/workflows/*.yml or
.github/workflows/*.yaml, or when reviewing CI behavior for security,
reliability, or reproducibility.

Standards

  • Put permissions: on each job that needs token access.
  • Avoid workflow-level permissions unless the repository intentionally centralizes
    them and the inheritance tradeoff is documented.
  • Keep third-party actions pinned to full commit SHAs and preserve the readable
    version comment after the SHA.
  • Prefer action-native or ecosystem-native caching over generic
    actions/cache.
  • Use lockfiles or dependency manifests to drive cache invalidation.
  • Keep deploy and publish permissions isolated to the jobs that need them.
  • Read both caller and callee when a workflow uses workflow_call.
  • Put release-tag validation in the earliest practical caller job when the
    pipeline has tag-based publish behavior.
  • Keep release-tag policy aligned with RELEASING.md: raw SemVer tags only,
    no leading v.

Permission Model

  • contents: read is the default minimum for checkout-based build, test, docs,
    and packaging jobs.
  • pull-requests: read is required for PR metadata lookup jobs.
  • pages: write and id-token: write should be limited to Pages deployment
    jobs and any caller that invokes them through a reusable workflow.
  • For reusable workflows, the caller must grant every permission the called
    jobs require. The callee cannot ...

Files:

  • .agents/skills/maintain-ci/SKILL.md
.agents/skills/maintain-packaging/**

⚙️ CodeRabbit configuration file

.agents/skills/maintain-packaging/**: ---
name: maintain-packaging
description: Maintain NeMo Relay package metadata, module paths, generated artifacts, and release-facing build surfaces
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Maintain Release And Packaging Surfaces

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 how NeMo Relay is built, packaged, named, or
consumed outside the source tree.

Audit Areas

  • Rust Cargo.toml package names and workspace metadata
  • Python packaging in pyproject.toml
  • Go module path in go/nemo_relay/go.mod
  • Node workspace metadata in root package.json and package-lock.json
  • Node package metadata in crates/node/package.json
  • WebAssembly package naming and generated package expectations
  • FFI header and library naming
  • CI workflows, install commands, and example commands
  • Release tags, release-note surfaces, and registry-facing version translation

Checklist

  • Package names, import paths, and module names are internally consistent
  • Generated artifacts still land where downstream consumers expect
  • Docs and examples use the current install/import/build commands
  • CI references the same package names as local workflows
  • Public packaging changes are reflected in release-facing docs
  • Release tags still use raw SemVer without a leading v
  • Release history and release notes still point to GitHub Releases, not CHANGELOG.md or docs pages

References

  • pyproject.toml
  • go/nemo_relay/go.mod
  • package.json
  • package-lock.json
  • crates/node/package.json
  • RELEASING.md
  • .github/workflows/ci_pipe.yml
  • .github/workflows/ci.yaml
  • .gitlab-ci.yml

Files:

  • .agents/skills/maintain-packaging/SKILL.md
.agents/skills/test-rust-core/**

⚙️ CodeRabbit configuration file

.agents/skills/test-rust-core/**: ---
name: test-rust-core
description: Build and test the NeMo Relay Rust core and adaptive crates; use this for crates/core, crates/adaptive, or shared runtime semantics changes
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Build And Test Rust Core

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 is primarily in crates/core, crates/adaptive,
or shared Rust runtime semantics.

Default Path

  1. Run cargo fmt --all.
  2. Run just test-rust.
  3. Run cargo clippy --workspace --all-targets -- -D warnings.
  4. Because this skill covers crates/core, crates/adaptive, or shared runtime
    semantics, expand to the full binding matrix with validate-change.

Use narrower crate tests as a local debug loop, not as the final validation
story for a Rust change.

Common Commands

# Shared-runtime build/test wrapper
just test-rust

# Required Rust format pass
cargo fmt --all

# Required Rust lint pass
cargo clippy --workspace --all-targets -- -D warnings

# Core runtime only
cargo test -p nemo-relay

# Adaptive crate when touched
cargo test -p nemo-relay-adaptive

# Compile sweep
just build-rust

# Shared-semantics or broad runtime changes
just ci=true test-rust

When To Escalate

  • If a public API, event shape, middleware behavior, plugin semantics, or any
    crates/core/crates/adaptive behavior changed, also use validate-change.
  • If the change is isolated to one binding wrapper on top of unchanged Rust
    semantics, prefer that binding's build/test skill instead.

References

  • Cargo.toml
  • crates/core/Cargo.toml
  • crates/adaptive/Cargo.toml
  • crates/core/README.md
  • crates/adaptive/README.md
  • docs/contribute/testing-and-docs.md
  • validate-change

Files:

  • .agents/skills/test-rust-core/SKILL.md
.agents/skills/test-python-binding/**

⚙️ CodeRabbit configuration file

.agents/skills/test-python-binding/**: ---
name: test-python-binding
description: Build and test the NeMo Relay Python binding; use this for python/nemo_relay or crates/python changes
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Build And Test Python Binding

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 python/nemo_relay,
python/tests, crates/python, or Python-facing docs/examples.

Default Path

  1. Format changed Python wrapper and test files with uv run ruff format python.
  2. Run focused pytest first when you know the affected area.
  3. Run the full Python suite with just test-python before review.
  4. If any Rust files changed as part of the Python work, also run
    cargo fmt --all, just test-rust, and
    cargo clippy --workspace --all-targets -- -D warnings.
  5. Use just build-python when you want an explicit build-only pass.
  6. If the native Rust bridge changed, add the Rust crate tests for
    nemo-relay-python.

Python Test Style

  • Pytest is used to run tests.
  • Do not add @pytest.mark.asyncio to any test. Async tests are automatically detected and run by the async runner; the decorator is unnecessary clutter.
  • Do not add a -> None return type annotation to test functions. This is not a common convention in pytest and adds unnecessary verbosity.
  • When mocking a class, do not define a new class. Use unittest.mock.MagicMock or unittest.mock.AsyncMock, with the spec constructor argument when necessary.
  • The name of the mocked class should be prefixed with mock, not fake.
  • Prefer pytest fixtures over helper methods.
  • Do not repeat fixtures, if a fixture is needed in multiple test files, place it in a conftest.py file.
  • When creating a fixture follow this pattern:
    `@pytest.fixture`(name=...

Files:

  • .agents/skills/test-python-binding/SKILL.md
.agents/skills/validate-change/**

⚙️ CodeRabbit configuration file

.agents/skills/validate-change/**: ---
name: validate-change
description: Choose and run the right NeMo Relay validation matrix for a change instead of using one fixed test list
author: NVIDIA Corporation and Affiliates
license: Apache-2.0

Validate a Change

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 to choose the smallest validation set that still covers the
surfaces touched by a change.

Mandatory Rules

  • Format changed files with the language-native formatter before the final
    lint/test pass.
  • If any Rust code changed, always run just test-rust.
  • If any Rust code changed, also run cargo fmt --all.
  • If any Rust code changed, also run cargo clippy --workspace --all-targets -- -D warnings.
  • If crates/core or crates/adaptive changed, run the full matrix across Rust,
    Python, Go, Node.js, and WebAssembly.
  • If a language surface changed, always run that language's test target even when
    Rust core did not change.
  • If code changes alter APIs, bindings, commands, paths, packaging behavior,
    observability/adaptive semantics, or documented best practices, update any
    dependent maintainer or consumer skills in the same branch.
  • During iteration, prefer uv run pre-commit run --files <changed files...>.
  • Before review or handoff, run uv run pre-commit run --all-files.

Start With The Change Shape

  • Core runtime or shared semantics changed
    Use test-rust-core. This always includes just test-rust,
    cargo fmt --all, cargo clippy --workspace --all-targets -- -D warnings,
    and the full matrix across Rust, Python, Go, Node.js, and WebAssembly.
  • Python-only wrapper or binding change
    Use test-python-binding.
  • Go binding change
    Use test-go-binding.
  • Node.js binding change
    Use test-node-binding.
  • WebAssembly binding change
    Use `tes...

Files:

  • .agents/skills/validate-change/SKILL.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:53:33.722Z
Learning: Prefer the documented public API, not internal shortcuts
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Use this skill for `plugin.kind = "rust_dynamic"`, `plugin.kind = "worker"`, `nemo-relay-plugin`, `nemo-relay-worker`, `nemo-relay-worker-proto`, `nemo-relay-types`, and the Python `nemo-relay-plugin` package.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Treat plugin Relay compatibility as normal SemVer; use `>=0.5,<1.0` in examples unless a plugin intentionally declares a narrower range.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Native and worker plugins are trusted extensions; document that native plugins are in-process and unsandboxed, and worker plugins provide process isolation but not a security sandbox.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Manifest validation covers kind, compatibility, load contract, integrity, capability mismatch, and disabled-plugin behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Native loader keeps libraries alive until registered callbacks are cleared and deregisters plugin kinds before unload.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Worker activation covers process launch, token auth, handshake, validation, declarative registration, proxy rollback, cancellation, and shutdown.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Rust and Python SDKs expose every supported registration surface.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Runtime helpers cover marks, scopes, continuations, and isolated scope stacks.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: `plugins list`, `plugins inspect`, and `plugins validate` report lifecycle and compatibility status without leaking secret config.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: Top-level `doctor` reports resolved dynamic plugin and host configuration status.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:00.453Z
Learning: When detailed dynamic plugin guides exist, keep Rust native, Python worker, and `grpc-v1` protocol details on separate pages.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:10.411Z
Learning: Keep WebAssembly package naming and generated package expectations consistent for downstream consumers.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:10.411Z
Learning: Keep FFI header names and native library names consistent across build and release surfaces.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:10.411Z
Learning: Keep `justfile` recipes for plugin crates and packages aligned with versioning, build, test, clean, and packaging behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:10.411Z
Learning: Use raw SemVer for release tags, and translate package versions to valid PEP 440 only for Python wheels.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:10.411Z
Learning: Point release history and release notes to GitHub Releases instead of `CHANGELOG.md` or documentation pages.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:16.776Z
Learning: When you know the affected area, run focused `pytest` first before broader validation.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:23.982Z
Learning: Use narrower crate tests as a local debug loop, not as the final validation story for a Rust change.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:23.982Z
Learning: If a public API, event shape, middleware behavior, plugin semantics, or any `crates/core`/`crates/adaptive` behavior changed, also use `validate-change`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:23.982Z
Learning: If native dynamic plugins, gRPC workers, `nemo-relay-plugin`, `nemo-relay-worker`, `nemo-relay-worker-proto`, or `nemo-relay-types` changed, also use `maintain-dynamic-plugins`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:23.982Z
Learning: If the change is isolated to one binding wrapper on top of unchanged Rust semantics, prefer that binding's build/test skill instead.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: Use `karpathy-guidelines` alongside this skill for implementation or review work; keep changes scoped, surface assumptions, and define focused validation before editing.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: Format changed files with the language-native formatter before the final lint/test pass.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: If a language surface changed, always run that language's test target even when Rust core did not change.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: If dynamic plugin behavior changed, use `maintain-dynamic-plugins` and include the native SDK, worker protocol, Python SDK, docs, packaging, and Codecov surfaces in the validation plan.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: If code changes alter APIs, bindings, commands, paths, packaging behavior, observability/adaptive semantics, or documented best practices, update any dependent maintainer or consumer skills in the same branch.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: During iteration, prefer `uv run pre-commit run --files <changed files...>`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: Before review or handoff, run `uv run pre-commit run --all-files`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a core runtime or shared semantics change, use `test-rust-core`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a Python-only wrapper or binding change, use `test-python-binding`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a Go binding change, use `test-go-binding`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a Node.js binding change, use `test-node-binding`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a WebAssembly binding change, use `test-wasm-binding`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For an FFI surface change, use `test-ffi-surface`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a dynamic plugin loader, SDK, or protocol change, use `maintain-dynamic-plugins`; run the targeted plugin crates and `just test-python-plugin` first, then escalate to the core validation matrix when runtime behavior or `crates/core` changed.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a third-party integration or patch change, run `./scripts/apply-patches.sh --check` and the relevant integration tests; keep the root `./scripts/*.sh` wrappers for third-party flows and use the repository `justfile` entrypoints for build/test commands.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: For a docs-only change, run targeted checks only if commands, package names, or examples changed; use `just docs` for docs-site builds and `just docs-linkcheck` when links changed.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: Use the listed layer-specific skills: `test-rust-core`, `test-python-binding`, `test-go-binding`, `test-node-binding`, `test-wasm-binding`, `test-ffi-surface`, and `maintain-dynamic-plugins`.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: Use pre-commit in two modes: `uv run pre-commit run --files <changed files...>` during iteration and `uv run pre-commit run --all-files` before review or handoff.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: When matching Python files, Ruff runs on the selected files and `ty check . ...` may also run for the Python project.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-06-29T18:54:36.333Z
Learning: If the change is large or public-facing, verify that README and docs entry points still match current package names and paths; examples still run with the documented commands; any renamed public surfaces are reflected consistently in manifests and docs; and dynamic plugin examples use `compat.relay = ">=0.5,<1.0"` unless deliberately narrower.
🪛 LanguageTool
.agents/skills/test-python-binding/SKILL.md

[style] ~26-~26: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... when the Python worker SDK changed. 4. Run the full Python suite with `just test-p...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🔇 Additional comments (10)
.agents/skills/contribute-docs/SKILL.md (4)

29-31: LGTM!


44-45: LGTM!


54-54: LGTM!


32-33: 🎯 Functional Correctness

Keep the broader compat.relay guidance. The dynamic-plugin docs apply compat.relay = ">=0.5,<1.0" to examples generally, so this wording is fine.

			> Likely an incorrect or invalid review comment.
.agents/skills/test-rust-core/SKILL.md (2)

3-3: LGTM!

Also applies to: 18-18, 67-69, 80-82


49-55: 🎯 Functional Correctness

Keep this command as-is: worker_plugin_integration is declared in crates/core/Cargo.toml, so cargo test -p nemo-relay --features worker-grpc --test native_plugin_integration --test worker_plugin_integration already covers both integration tests.

			> Likely an incorrect or invalid review comment.
.agents/skills/test-python-binding/SKILL.md (1)

3-3: LGTM!

Also applies to: 18-32, 60-64, 77-79, 88-89, 99-103

.agents/skills/validate-change/SKILL.md (1)

31-33: LGTM!

Also applies to: 56-59, 92-94, 130-130, 176-186

.agents/skills/maintain-ci/SKILL.md (1)

37-40: LGTM!

Also applies to: 68-71, 82-82, 98-103

.agents/skills/maintain-packaging/SKILL.md (1)

24-32: LGTM!

Also applies to: 42-45, 47-59

Comment thread .agents/skills/maintain-dynamic-plugins/SKILL.md

@mnajafian-nv mnajafian-nv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thank you!

@willkill07

Copy link
Copy Markdown
Member Author

/merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Maintenance CI or Build or general repository maintenance size:M PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants