All skills
nvidia-nemo avatar

/switchyard-testing-ci

@239a413
by nvidia-nemonvidia-nemo/switchyard3.3k stars
317

Select or debug Switchyard validation and GitHub CI. Use when asked which tests to run, whether a change is ready, why a CI job failed, how to reproduce CI, or whether live provider tests are appropriate.

Use this Skill: https://skilld.dev/gh/nvidia-nemo/switchyard/switchyard-testing-ci

This session only. Nothing lands on disk.

SKILL.md

≈57 tokens always: the name and description. ≈658 when used: this file.

Switchyard Testing And CI

Read .github/workflows/ci.yml before claiming local CI equivalence. Select tests from the current diff and symbol references rather than a static subsystem inventory.

Validation Matrix

Change Minimum trustworthy validation
Markdown or skill Markdown only Parse skill frontmatter when applicable; git diff --check
Python implementation Focused pytest, uv run ruff check ., uv run mypy switchyard
Broad Python or public API Hermetic full pytest plus lint and mypy
One Rust crate cargo fmt --all --check, workspace clippy, focused crate tests
Shared Rust/API/FFI Rust workspace tests plus affected Python tests
Packaging, extras, top-level imports The slim-install smoke commands from the current CI workflow
Live provider behavior Focused integration test only after explicit authorization

Standard Gates

Python pre-PR gate:

uv run ruff check .
uv run mypy switchyard
env -u OPENROUTER_API_KEY -u NVIDIA_API_KEY -u OPENAI_API_KEY \
  -u ANTHROPIC_API_KEY uv run pytest tests/ -v -m "not integration"

Rust workspace gate:

cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

Use -o addopts= when the repository's pytest defaults would stop failure collection too early. Run focused tests first, then broaden only when the changed contract or shared ownership warrants it.

Live Tests

Integration tests can spend money, require credentials, and contact real services. Never run them as an automatic pre-PR step. Provision NVIDIA_API_KEY through the environment or a secret manager before running the user-authorized path, and state which provider was called:

uv run pytest tests/e2e/<focused_test>.py \
  -v -m integration -o addopts=

Skill Validation

Each retained skill must have YAML frontmatter with name and description:

uv run python - <<'PY'
from pathlib import Path

import yaml

for path in Path(".agents/skills").glob("*/SKILL.md"):
    parts = path.read_text().split("---", 2)
    data = yaml.safe_load(parts[1]) if len(parts) == 3 else None
    if not isinstance(data, dict) or not data.get("name") or not data.get("description"):
        raise SystemExit(f"{path}: missing name or description")
print("skill frontmatter is valid")
PY
git diff --check

Reporting

Report exact commands, pass/fail status, and whether any live network call occurred. Do not call a focused test run "full CI", and do not treat mypy or clippy warnings as unrelated without checking whether the diff introduced them.

Source: SKILL.md on GitHub

No alerts2mo3 checks · Risk SAFE
  • Gen Agent Trust Hub2mo

    A testing and CI utility for the Switchyard repository. It provides commands for linting, type checking, and running tests. It includes security-conscious practices like unsetting API keys for local hermetic tests.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: LOW · No issues

Signed by skilld at 239a413. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago

README badge

README badge for nvidia-nemo/switchyard/switchyard-testing-ci