[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-dynamo-router-starter":3,"mdc--2s44xp-key":34,"related-org-nvidia-dynamo-router-starter":1173,"related-repo-nvidia-dynamo-router-starter":1331},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"dynamo-router-starter","configure and test Dynamo router modes","Start or patch Dynamo router modes and run router endpoint smoke checks. Use for round-robin, KV-aware, least-loaded, or device-aware routing setup; use recipe-runner for recipe deployment and troubleshoot for failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"Routing","routing",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"AI Infrastructure","ai-infrastructure",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-14T05:28:08.084368","Apache-2.0",281,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fdynamo-router-starter","---\nname: dynamo-router-starter\ndescription: Start or patch Dynamo router modes and run router endpoint smoke checks. Use for round-robin, KV-aware, least-loaded, or device-aware routing setup; use recipe-runner for recipe deployment and troubleshoot for failure diagnosis.\nlicense: Apache-2.0\nmetadata:\n  author: Dan Gil \u003Cdagil@nvidia.com>\n  tags:\n    - dynamo\n    - router\n    - smoke-test\n    - bring-up\n---\n\n# Dynamo Router Starter\n\n\u003C!--\nSPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\nSPDX-License-Identifier: CC-BY-4.0\n-->\n\n## Purpose\n\nMake Dynamo routing feel easy by getting a baseline router mode running, enabling\nKV-aware routing when appropriate, and proving the endpoint works. Keep the user\nfocused on exact commands and success signals, not router internals.\n\n## Prerequisites\n\n- Python 3.10+ with the `dynamo` package importable (`python3 -m dynamo.frontend --help` works).\n- For Kubernetes runs: `kubectl` configured with access to the target namespace and a deployed Dynamo recipe.\n- Network reachability to the frontend service (port-forward or direct).\n- A model already loaded into at least one worker (`\u002Fv1\u002Fmodels` returns at least one entry).\n\n## Required Inputs\n\nCollect or infer:\n\n- local Python\u002FCLI or Kubernetes recipe path\n- desired mode: `round-robin`, `kv`, `least-loaded`, `device-aware-weighted`, `direct`, or `random`\n- frontend port or Kubernetes frontend service\n- whether workers publish KV events; if not, use approximate KV mode\n- model name for smoke requests, if `\u002Fv1\u002Fmodels` cannot discover it\n\n## Instructions\n\n### 1. Establish A Baseline\n\nFor local bring-up with already registered workers:\n\n```bash\npython3 -m dynamo.frontend --router-mode round-robin --http-port 8000\n```\n\nFor Kubernetes, inspect the selected recipe `deploy.yaml` and locate the\nfrontend service. If the recipe is not already deployed, use\n`dynamo-recipe-runner` first.\n\n### 2. Enable KV Routing\n\nFor local frontend:\n\n```bash\npython3 -m dynamo.frontend --router-mode kv --http-port 8000\n```\n\nFor Kubernetes, patch only the frontend service env:\n\n```yaml\nenvs:\n  - name: DYN_ROUTER_MODE\n    value: kv\n```\n\nIf backend workers are not publishing KV cache events, set approximate mode\ninstead of leaving the router waiting for events:\n\n```yaml\nenvs:\n  - name: DYN_ROUTER_USE_KV_EVENTS\n    value: \"false\"\n```\n\n### 3. Smoke Test\n\nAfter port-forwarding the frontend service or starting local frontend, run:\n\n```bash\npython3 scripts\u002Fcheck_router_health.py \\\n  --base-url http:\u002F\u002F127.0.0.1:8000\n```\n\nThis must verify `\u002Fv1\u002Fmodels` and, when a model is discoverable, one\n`\u002Fv1\u002Fchat\u002Fcompletions` request.\n\n### 4. Compare Modes Carefully\n\nWhen comparing round-robin vs KV routing:\n\n- use the same model, workers, prompt set, concurrency, and sampling settings\n- send repeated-prefix prompts if demonstrating KV reuse\n- label the result as a smoke comparison unless enough benchmark samples were collected\n- do not claim throughput improvement from a single chat request\n\nIf the endpoint is unhealthy or workers are missing, switch to\n`dynamo-troubleshoot`.\n\n## Available Scripts\n\n| Script | Purpose | Arguments |\n|---|---|---|\n| `scripts\u002Fcheck_router_health.py` | Smoke-test `\u002Fv1\u002Fmodels` and one chat completion against a Dynamo frontend | `--base-url`, `--retries`, `--timeout` |\n\nInvoke via the agentskills.io `run_script()` protocol:\n\n```python\nrun_script(\"scripts\u002Fcheck_router_health.py\", args=[\"--base-url\", \"http:\u002F\u002F127.0.0.1:8000\"])\n```\n\n## Examples\n\nLocal KV-routed frontend on port 8000, then smoke-test it:\n\n```bash\npython3 -m dynamo.frontend --router-mode kv --http-port 8000 &\npython3 scripts\u002Fcheck_router_health.py --base-url http:\u002F\u002F127.0.0.1:8000\n```\n\nKubernetes-deployed frontend reachable via port-forward:\n\n```bash\nkubectl port-forward svc\u002Fqwen-vllm-disagg-frontend 8000:8000 -n dynamo-demo &\npython3 scripts\u002Fcheck_router_health.py --base-url http:\u002F\u002F127.0.0.1:8000 --retries 3\n```\n\nEquivalent through the agent protocol:\n\n```python\nrun_script(\"scripts\u002Fcheck_router_health.py\", args=[\"--base-url\", \"http:\u002F\u002F127.0.0.1:8000\", \"--retries\", \"3\"])\n```\n\n## Output Contract\n\nReturn:\n\n- mode selected and why\n- local command or Kubernetes env patch\n- frontend service or URL\n- smoke-test result\n- any limitation, such as approximate KV mode or missing worker KV events\n- next command to run for a fuller comparison\n\n## Limitations\n\n- Smoke test is one chat completion; it is not a benchmark. Use `dynamo-benchmark` for throughput\u002Flatency numbers.\n- KV-aware mode without worker KV-event publication degrades to approximate mode; this skill flags but does not fix the underlying worker config.\n- Mode comparisons require matched workloads; cross-mode latency claims need separate benchmark runs.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Next step |\n|---|---|---|\n| `\u002Fv1\u002Fmodels` returns empty list | No worker registered with the frontend | Verify worker pods are Ready; confirm they connect to the same etcd\u002FNATS |\n| Smoke chat request times out | Frontend up, workers not serving | Switch to `dynamo-troubleshoot`; inspect worker logs |\n| KV mode hangs | Workers do not publish KV cache events | Set `DYN_ROUTER_USE_KV_EVENTS=false` (approximate mode) |\n| Connection refused on port-forward | Port-forward dropped or wrong service name | Re-run port-forward; verify the frontend service name matches the recipe |\n\n## Benchmark\n\nSee `BENCHMARK.md` for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run `\u002Fnvskills-ci` on an upstream PR touching this skill.\n\n## References\n\n- Read `references\u002Frouter-modes.md` for the compact mode\u002Fenv map.\n- Use `scripts\u002Fcheck_router_health.py` for endpoint smoke tests.\n",{"data":35,"body":43},{"name":4,"description":6,"license":26,"metadata":36},{"author":37,"tags":38},"Dan Gil \u003Cdagil@nvidia.com>",[39,40,41,42],"dynamo","router","smoke-test","bring-up",{"type":44,"children":45},"root",[46,54,61,67,73,130,136,141,219,225,232,237,292,313,319,324,363,368,434,439,503,509,514,552,572,578,583,606,619,625,704,717,733,739,744,808,813,886,891,905,911,916,949,955,981,987,1106,1112,1133,1139,1167],{"type":47,"tag":48,"props":49,"children":50},"element","h1",{"id":4},[51],{"type":52,"value":53},"text","Dynamo Router Starter",{"type":47,"tag":55,"props":56,"children":58},"h2",{"id":57},"purpose",[59],{"type":52,"value":60},"Purpose",{"type":47,"tag":62,"props":63,"children":64},"p",{},[65],{"type":52,"value":66},"Make Dynamo routing feel easy by getting a baseline router mode running, enabling\nKV-aware routing when appropriate, and proving the endpoint works. Keep the user\nfocused on exact commands and success signals, not router internals.",{"type":47,"tag":55,"props":68,"children":70},{"id":69},"prerequisites",[71],{"type":52,"value":72},"Prerequisites",{"type":47,"tag":74,"props":75,"children":76},"ul",{},[77,99,112,117],{"type":47,"tag":78,"props":79,"children":80},"li",{},[81,83,89,91,97],{"type":52,"value":82},"Python 3.10+ with the ",{"type":47,"tag":84,"props":85,"children":87},"code",{"className":86},[],[88],{"type":52,"value":39},{"type":52,"value":90}," package importable (",{"type":47,"tag":84,"props":92,"children":94},{"className":93},[],[95],{"type":52,"value":96},"python3 -m dynamo.frontend --help",{"type":52,"value":98}," works).",{"type":47,"tag":78,"props":100,"children":101},{},[102,104,110],{"type":52,"value":103},"For Kubernetes runs: ",{"type":47,"tag":84,"props":105,"children":107},{"className":106},[],[108],{"type":52,"value":109},"kubectl",{"type":52,"value":111}," configured with access to the target namespace and a deployed Dynamo recipe.",{"type":47,"tag":78,"props":113,"children":114},{},[115],{"type":52,"value":116},"Network reachability to the frontend service (port-forward or direct).",{"type":47,"tag":78,"props":118,"children":119},{},[120,122,128],{"type":52,"value":121},"A model already loaded into at least one worker (",{"type":47,"tag":84,"props":123,"children":125},{"className":124},[],[126],{"type":52,"value":127},"\u002Fv1\u002Fmodels",{"type":52,"value":129}," returns at least one entry).",{"type":47,"tag":55,"props":131,"children":133},{"id":132},"required-inputs",[134],{"type":52,"value":135},"Required Inputs",{"type":47,"tag":62,"props":137,"children":138},{},[139],{"type":52,"value":140},"Collect or infer:",{"type":47,"tag":74,"props":142,"children":143},{},[144,149,197,202,207],{"type":47,"tag":78,"props":145,"children":146},{},[147],{"type":52,"value":148},"local Python\u002FCLI or Kubernetes recipe path",{"type":47,"tag":78,"props":150,"children":151},{},[152,154,160,162,168,169,175,176,182,183,189,191],{"type":52,"value":153},"desired mode: ",{"type":47,"tag":84,"props":155,"children":157},{"className":156},[],[158],{"type":52,"value":159},"round-robin",{"type":52,"value":161},", ",{"type":47,"tag":84,"props":163,"children":165},{"className":164},[],[166],{"type":52,"value":167},"kv",{"type":52,"value":161},{"type":47,"tag":84,"props":170,"children":172},{"className":171},[],[173],{"type":52,"value":174},"least-loaded",{"type":52,"value":161},{"type":47,"tag":84,"props":177,"children":179},{"className":178},[],[180],{"type":52,"value":181},"device-aware-weighted",{"type":52,"value":161},{"type":47,"tag":84,"props":184,"children":186},{"className":185},[],[187],{"type":52,"value":188},"direct",{"type":52,"value":190},", or ",{"type":47,"tag":84,"props":192,"children":194},{"className":193},[],[195],{"type":52,"value":196},"random",{"type":47,"tag":78,"props":198,"children":199},{},[200],{"type":52,"value":201},"frontend port or Kubernetes frontend service",{"type":47,"tag":78,"props":203,"children":204},{},[205],{"type":52,"value":206},"whether workers publish KV events; if not, use approximate KV mode",{"type":47,"tag":78,"props":208,"children":209},{},[210,212,217],{"type":52,"value":211},"model name for smoke requests, if ",{"type":47,"tag":84,"props":213,"children":215},{"className":214},[],[216],{"type":52,"value":127},{"type":52,"value":218}," cannot discover it",{"type":47,"tag":55,"props":220,"children":222},{"id":221},"instructions",[223],{"type":52,"value":224},"Instructions",{"type":47,"tag":226,"props":227,"children":229},"h3",{"id":228},"_1-establish-a-baseline",[230],{"type":52,"value":231},"1. Establish A Baseline",{"type":47,"tag":62,"props":233,"children":234},{},[235],{"type":52,"value":236},"For local bring-up with already registered workers:",{"type":47,"tag":238,"props":239,"children":244},"pre",{"className":240,"code":241,"language":242,"meta":243,"style":243},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python3 -m dynamo.frontend --router-mode round-robin --http-port 8000\n","bash","",[245],{"type":47,"tag":84,"props":246,"children":247},{"__ignoreMap":243},[248],{"type":47,"tag":249,"props":250,"children":253},"span",{"class":251,"line":252},"line",1,[254,260,266,271,276,281,286],{"type":47,"tag":249,"props":255,"children":257},{"style":256},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[258],{"type":52,"value":259},"python3",{"type":47,"tag":249,"props":261,"children":263},{"style":262},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[264],{"type":52,"value":265}," -m",{"type":47,"tag":249,"props":267,"children":268},{"style":262},[269],{"type":52,"value":270}," dynamo.frontend",{"type":47,"tag":249,"props":272,"children":273},{"style":262},[274],{"type":52,"value":275}," --router-mode",{"type":47,"tag":249,"props":277,"children":278},{"style":262},[279],{"type":52,"value":280}," round-robin",{"type":47,"tag":249,"props":282,"children":283},{"style":262},[284],{"type":52,"value":285}," --http-port",{"type":47,"tag":249,"props":287,"children":289},{"style":288},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[290],{"type":52,"value":291}," 8000\n",{"type":47,"tag":62,"props":293,"children":294},{},[295,297,303,305,311],{"type":52,"value":296},"For Kubernetes, inspect the selected recipe ",{"type":47,"tag":84,"props":298,"children":300},{"className":299},[],[301],{"type":52,"value":302},"deploy.yaml",{"type":52,"value":304}," and locate the\nfrontend service. If the recipe is not already deployed, use\n",{"type":47,"tag":84,"props":306,"children":308},{"className":307},[],[309],{"type":52,"value":310},"dynamo-recipe-runner",{"type":52,"value":312}," first.",{"type":47,"tag":226,"props":314,"children":316},{"id":315},"_2-enable-kv-routing",[317],{"type":52,"value":318},"2. Enable KV Routing",{"type":47,"tag":62,"props":320,"children":321},{},[322],{"type":52,"value":323},"For local frontend:",{"type":47,"tag":238,"props":325,"children":327},{"className":240,"code":326,"language":242,"meta":243,"style":243},"python3 -m dynamo.frontend --router-mode kv --http-port 8000\n",[328],{"type":47,"tag":84,"props":329,"children":330},{"__ignoreMap":243},[331],{"type":47,"tag":249,"props":332,"children":333},{"class":251,"line":252},[334,338,342,346,350,355,359],{"type":47,"tag":249,"props":335,"children":336},{"style":256},[337],{"type":52,"value":259},{"type":47,"tag":249,"props":339,"children":340},{"style":262},[341],{"type":52,"value":265},{"type":47,"tag":249,"props":343,"children":344},{"style":262},[345],{"type":52,"value":270},{"type":47,"tag":249,"props":347,"children":348},{"style":262},[349],{"type":52,"value":275},{"type":47,"tag":249,"props":351,"children":352},{"style":262},[353],{"type":52,"value":354}," kv",{"type":47,"tag":249,"props":356,"children":357},{"style":262},[358],{"type":52,"value":285},{"type":47,"tag":249,"props":360,"children":361},{"style":288},[362],{"type":52,"value":291},{"type":47,"tag":62,"props":364,"children":365},{},[366],{"type":52,"value":367},"For Kubernetes, patch only the frontend service env:",{"type":47,"tag":238,"props":369,"children":373},{"className":370,"code":371,"language":372,"meta":243,"style":243},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","envs:\n  - name: DYN_ROUTER_MODE\n    value: kv\n","yaml",[374],{"type":47,"tag":84,"props":375,"children":376},{"__ignoreMap":243},[377,392,416],{"type":47,"tag":249,"props":378,"children":379},{"class":251,"line":252},[380,386],{"type":47,"tag":249,"props":381,"children":383},{"style":382},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[384],{"type":52,"value":385},"envs",{"type":47,"tag":249,"props":387,"children":389},{"style":388},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[390],{"type":52,"value":391},":\n",{"type":47,"tag":249,"props":393,"children":395},{"class":251,"line":394},2,[396,401,406,411],{"type":47,"tag":249,"props":397,"children":398},{"style":388},[399],{"type":52,"value":400},"  -",{"type":47,"tag":249,"props":402,"children":403},{"style":382},[404],{"type":52,"value":405}," name",{"type":47,"tag":249,"props":407,"children":408},{"style":388},[409],{"type":52,"value":410},":",{"type":47,"tag":249,"props":412,"children":413},{"style":262},[414],{"type":52,"value":415}," DYN_ROUTER_MODE\n",{"type":47,"tag":249,"props":417,"children":419},{"class":251,"line":418},3,[420,425,429],{"type":47,"tag":249,"props":421,"children":422},{"style":382},[423],{"type":52,"value":424},"    value",{"type":47,"tag":249,"props":426,"children":427},{"style":388},[428],{"type":52,"value":410},{"type":47,"tag":249,"props":430,"children":431},{"style":262},[432],{"type":52,"value":433}," kv\n",{"type":47,"tag":62,"props":435,"children":436},{},[437],{"type":52,"value":438},"If backend workers are not publishing KV cache events, set approximate mode\ninstead of leaving the router waiting for events:",{"type":47,"tag":238,"props":440,"children":442},{"className":370,"code":441,"language":372,"meta":243,"style":243},"envs:\n  - name: DYN_ROUTER_USE_KV_EVENTS\n    value: \"false\"\n",[443],{"type":47,"tag":84,"props":444,"children":445},{"__ignoreMap":243},[446,457,477],{"type":47,"tag":249,"props":447,"children":448},{"class":251,"line":252},[449,453],{"type":47,"tag":249,"props":450,"children":451},{"style":382},[452],{"type":52,"value":385},{"type":47,"tag":249,"props":454,"children":455},{"style":388},[456],{"type":52,"value":391},{"type":47,"tag":249,"props":458,"children":459},{"class":251,"line":394},[460,464,468,472],{"type":47,"tag":249,"props":461,"children":462},{"style":388},[463],{"type":52,"value":400},{"type":47,"tag":249,"props":465,"children":466},{"style":382},[467],{"type":52,"value":405},{"type":47,"tag":249,"props":469,"children":470},{"style":388},[471],{"type":52,"value":410},{"type":47,"tag":249,"props":473,"children":474},{"style":262},[475],{"type":52,"value":476}," DYN_ROUTER_USE_KV_EVENTS\n",{"type":47,"tag":249,"props":478,"children":479},{"class":251,"line":418},[480,484,488,493,498],{"type":47,"tag":249,"props":481,"children":482},{"style":382},[483],{"type":52,"value":424},{"type":47,"tag":249,"props":485,"children":486},{"style":388},[487],{"type":52,"value":410},{"type":47,"tag":249,"props":489,"children":490},{"style":388},[491],{"type":52,"value":492}," \"",{"type":47,"tag":249,"props":494,"children":495},{"style":262},[496],{"type":52,"value":497},"false",{"type":47,"tag":249,"props":499,"children":500},{"style":388},[501],{"type":52,"value":502},"\"\n",{"type":47,"tag":226,"props":504,"children":506},{"id":505},"_3-smoke-test",[507],{"type":52,"value":508},"3. Smoke Test",{"type":47,"tag":62,"props":510,"children":511},{},[512],{"type":52,"value":513},"After port-forwarding the frontend service or starting local frontend, run:",{"type":47,"tag":238,"props":515,"children":517},{"className":240,"code":516,"language":242,"meta":243,"style":243},"python3 scripts\u002Fcheck_router_health.py \\\n  --base-url http:\u002F\u002F127.0.0.1:8000\n",[518],{"type":47,"tag":84,"props":519,"children":520},{"__ignoreMap":243},[521,539],{"type":47,"tag":249,"props":522,"children":523},{"class":251,"line":252},[524,528,533],{"type":47,"tag":249,"props":525,"children":526},{"style":256},[527],{"type":52,"value":259},{"type":47,"tag":249,"props":529,"children":530},{"style":262},[531],{"type":52,"value":532}," scripts\u002Fcheck_router_health.py",{"type":47,"tag":249,"props":534,"children":536},{"style":535},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[537],{"type":52,"value":538}," \\\n",{"type":47,"tag":249,"props":540,"children":541},{"class":251,"line":394},[542,547],{"type":47,"tag":249,"props":543,"children":544},{"style":262},[545],{"type":52,"value":546},"  --base-url",{"type":47,"tag":249,"props":548,"children":549},{"style":262},[550],{"type":52,"value":551}," http:\u002F\u002F127.0.0.1:8000\n",{"type":47,"tag":62,"props":553,"children":554},{},[555,557,562,564,570],{"type":52,"value":556},"This must verify ",{"type":47,"tag":84,"props":558,"children":560},{"className":559},[],[561],{"type":52,"value":127},{"type":52,"value":563}," and, when a model is discoverable, one\n",{"type":47,"tag":84,"props":565,"children":567},{"className":566},[],[568],{"type":52,"value":569},"\u002Fv1\u002Fchat\u002Fcompletions",{"type":52,"value":571}," request.",{"type":47,"tag":226,"props":573,"children":575},{"id":574},"_4-compare-modes-carefully",[576],{"type":52,"value":577},"4. Compare Modes Carefully",{"type":47,"tag":62,"props":579,"children":580},{},[581],{"type":52,"value":582},"When comparing round-robin vs KV routing:",{"type":47,"tag":74,"props":584,"children":585},{},[586,591,596,601],{"type":47,"tag":78,"props":587,"children":588},{},[589],{"type":52,"value":590},"use the same model, workers, prompt set, concurrency, and sampling settings",{"type":47,"tag":78,"props":592,"children":593},{},[594],{"type":52,"value":595},"send repeated-prefix prompts if demonstrating KV reuse",{"type":47,"tag":78,"props":597,"children":598},{},[599],{"type":52,"value":600},"label the result as a smoke comparison unless enough benchmark samples were collected",{"type":47,"tag":78,"props":602,"children":603},{},[604],{"type":52,"value":605},"do not claim throughput improvement from a single chat request",{"type":47,"tag":62,"props":607,"children":608},{},[609,611,617],{"type":52,"value":610},"If the endpoint is unhealthy or workers are missing, switch to\n",{"type":47,"tag":84,"props":612,"children":614},{"className":613},[],[615],{"type":52,"value":616},"dynamo-troubleshoot",{"type":52,"value":618},".",{"type":47,"tag":55,"props":620,"children":622},{"id":621},"available-scripts",[623],{"type":52,"value":624},"Available Scripts",{"type":47,"tag":626,"props":627,"children":628},"table",{},[629,652],{"type":47,"tag":630,"props":631,"children":632},"thead",{},[633],{"type":47,"tag":634,"props":635,"children":636},"tr",{},[637,643,647],{"type":47,"tag":638,"props":639,"children":640},"th",{},[641],{"type":52,"value":642},"Script",{"type":47,"tag":638,"props":644,"children":645},{},[646],{"type":52,"value":60},{"type":47,"tag":638,"props":648,"children":649},{},[650],{"type":52,"value":651},"Arguments",{"type":47,"tag":653,"props":654,"children":655},"tbody",{},[656],{"type":47,"tag":634,"props":657,"children":658},{},[659,669,681],{"type":47,"tag":660,"props":661,"children":662},"td",{},[663],{"type":47,"tag":84,"props":664,"children":666},{"className":665},[],[667],{"type":52,"value":668},"scripts\u002Fcheck_router_health.py",{"type":47,"tag":660,"props":670,"children":671},{},[672,674,679],{"type":52,"value":673},"Smoke-test ",{"type":47,"tag":84,"props":675,"children":677},{"className":676},[],[678],{"type":52,"value":127},{"type":52,"value":680}," and one chat completion against a Dynamo frontend",{"type":47,"tag":660,"props":682,"children":683},{},[684,690,691,697,698],{"type":47,"tag":84,"props":685,"children":687},{"className":686},[],[688],{"type":52,"value":689},"--base-url",{"type":52,"value":161},{"type":47,"tag":84,"props":692,"children":694},{"className":693},[],[695],{"type":52,"value":696},"--retries",{"type":52,"value":161},{"type":47,"tag":84,"props":699,"children":701},{"className":700},[],[702],{"type":52,"value":703},"--timeout",{"type":47,"tag":62,"props":705,"children":706},{},[707,709,715],{"type":52,"value":708},"Invoke via the agentskills.io ",{"type":47,"tag":84,"props":710,"children":712},{"className":711},[],[713],{"type":52,"value":714},"run_script()",{"type":52,"value":716}," protocol:",{"type":47,"tag":238,"props":718,"children":722},{"className":719,"code":720,"language":721,"meta":243,"style":243},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","run_script(\"scripts\u002Fcheck_router_health.py\", args=[\"--base-url\", \"http:\u002F\u002F127.0.0.1:8000\"])\n","python",[723],{"type":47,"tag":84,"props":724,"children":725},{"__ignoreMap":243},[726],{"type":47,"tag":249,"props":727,"children":728},{"class":251,"line":252},[729],{"type":47,"tag":249,"props":730,"children":731},{},[732],{"type":52,"value":720},{"type":47,"tag":55,"props":734,"children":736},{"id":735},"examples",[737],{"type":52,"value":738},"Examples",{"type":47,"tag":62,"props":740,"children":741},{},[742],{"type":52,"value":743},"Local KV-routed frontend on port 8000, then smoke-test it:",{"type":47,"tag":238,"props":745,"children":747},{"className":240,"code":746,"language":242,"meta":243,"style":243},"python3 -m dynamo.frontend --router-mode kv --http-port 8000 &\npython3 scripts\u002Fcheck_router_health.py --base-url http:\u002F\u002F127.0.0.1:8000\n",[748],{"type":47,"tag":84,"props":749,"children":750},{"__ignoreMap":243},[751,788],{"type":47,"tag":249,"props":752,"children":753},{"class":251,"line":252},[754,758,762,766,770,774,778,783],{"type":47,"tag":249,"props":755,"children":756},{"style":256},[757],{"type":52,"value":259},{"type":47,"tag":249,"props":759,"children":760},{"style":262},[761],{"type":52,"value":265},{"type":47,"tag":249,"props":763,"children":764},{"style":262},[765],{"type":52,"value":270},{"type":47,"tag":249,"props":767,"children":768},{"style":262},[769],{"type":52,"value":275},{"type":47,"tag":249,"props":771,"children":772},{"style":262},[773],{"type":52,"value":354},{"type":47,"tag":249,"props":775,"children":776},{"style":262},[777],{"type":52,"value":285},{"type":47,"tag":249,"props":779,"children":780},{"style":288},[781],{"type":52,"value":782}," 8000",{"type":47,"tag":249,"props":784,"children":785},{"style":388},[786],{"type":52,"value":787}," &\n",{"type":47,"tag":249,"props":789,"children":790},{"class":251,"line":394},[791,795,799,804],{"type":47,"tag":249,"props":792,"children":793},{"style":256},[794],{"type":52,"value":259},{"type":47,"tag":249,"props":796,"children":797},{"style":262},[798],{"type":52,"value":532},{"type":47,"tag":249,"props":800,"children":801},{"style":262},[802],{"type":52,"value":803}," --base-url",{"type":47,"tag":249,"props":805,"children":806},{"style":262},[807],{"type":52,"value":551},{"type":47,"tag":62,"props":809,"children":810},{},[811],{"type":52,"value":812},"Kubernetes-deployed frontend reachable via port-forward:",{"type":47,"tag":238,"props":814,"children":816},{"className":240,"code":815,"language":242,"meta":243,"style":243},"kubectl port-forward svc\u002Fqwen-vllm-disagg-frontend 8000:8000 -n dynamo-demo &\npython3 scripts\u002Fcheck_router_health.py --base-url http:\u002F\u002F127.0.0.1:8000 --retries 3\n",[817],{"type":47,"tag":84,"props":818,"children":819},{"__ignoreMap":243},[820,856],{"type":47,"tag":249,"props":821,"children":822},{"class":251,"line":252},[823,827,832,837,842,847,852],{"type":47,"tag":249,"props":824,"children":825},{"style":256},[826],{"type":52,"value":109},{"type":47,"tag":249,"props":828,"children":829},{"style":262},[830],{"type":52,"value":831}," port-forward",{"type":47,"tag":249,"props":833,"children":834},{"style":262},[835],{"type":52,"value":836}," svc\u002Fqwen-vllm-disagg-frontend",{"type":47,"tag":249,"props":838,"children":839},{"style":262},[840],{"type":52,"value":841}," 8000:8000",{"type":47,"tag":249,"props":843,"children":844},{"style":262},[845],{"type":52,"value":846}," -n",{"type":47,"tag":249,"props":848,"children":849},{"style":262},[850],{"type":52,"value":851}," dynamo-demo",{"type":47,"tag":249,"props":853,"children":854},{"style":388},[855],{"type":52,"value":787},{"type":47,"tag":249,"props":857,"children":858},{"class":251,"line":394},[859,863,867,871,876,881],{"type":47,"tag":249,"props":860,"children":861},{"style":256},[862],{"type":52,"value":259},{"type":47,"tag":249,"props":864,"children":865},{"style":262},[866],{"type":52,"value":532},{"type":47,"tag":249,"props":868,"children":869},{"style":262},[870],{"type":52,"value":803},{"type":47,"tag":249,"props":872,"children":873},{"style":262},[874],{"type":52,"value":875}," http:\u002F\u002F127.0.0.1:8000",{"type":47,"tag":249,"props":877,"children":878},{"style":262},[879],{"type":52,"value":880}," --retries",{"type":47,"tag":249,"props":882,"children":883},{"style":288},[884],{"type":52,"value":885}," 3\n",{"type":47,"tag":62,"props":887,"children":888},{},[889],{"type":52,"value":890},"Equivalent through the agent protocol:",{"type":47,"tag":238,"props":892,"children":894},{"className":719,"code":893,"language":721,"meta":243,"style":243},"run_script(\"scripts\u002Fcheck_router_health.py\", args=[\"--base-url\", \"http:\u002F\u002F127.0.0.1:8000\", \"--retries\", \"3\"])\n",[895],{"type":47,"tag":84,"props":896,"children":897},{"__ignoreMap":243},[898],{"type":47,"tag":249,"props":899,"children":900},{"class":251,"line":252},[901],{"type":47,"tag":249,"props":902,"children":903},{},[904],{"type":52,"value":893},{"type":47,"tag":55,"props":906,"children":908},{"id":907},"output-contract",[909],{"type":52,"value":910},"Output Contract",{"type":47,"tag":62,"props":912,"children":913},{},[914],{"type":52,"value":915},"Return:",{"type":47,"tag":74,"props":917,"children":918},{},[919,924,929,934,939,944],{"type":47,"tag":78,"props":920,"children":921},{},[922],{"type":52,"value":923},"mode selected and why",{"type":47,"tag":78,"props":925,"children":926},{},[927],{"type":52,"value":928},"local command or Kubernetes env patch",{"type":47,"tag":78,"props":930,"children":931},{},[932],{"type":52,"value":933},"frontend service or URL",{"type":47,"tag":78,"props":935,"children":936},{},[937],{"type":52,"value":938},"smoke-test result",{"type":47,"tag":78,"props":940,"children":941},{},[942],{"type":52,"value":943},"any limitation, such as approximate KV mode or missing worker KV events",{"type":47,"tag":78,"props":945,"children":946},{},[947],{"type":52,"value":948},"next command to run for a fuller comparison",{"type":47,"tag":55,"props":950,"children":952},{"id":951},"limitations",[953],{"type":52,"value":954},"Limitations",{"type":47,"tag":74,"props":956,"children":957},{},[958,971,976],{"type":47,"tag":78,"props":959,"children":960},{},[961,963,969],{"type":52,"value":962},"Smoke test is one chat completion; it is not a benchmark. Use ",{"type":47,"tag":84,"props":964,"children":966},{"className":965},[],[967],{"type":52,"value":968},"dynamo-benchmark",{"type":52,"value":970}," for throughput\u002Flatency numbers.",{"type":47,"tag":78,"props":972,"children":973},{},[974],{"type":52,"value":975},"KV-aware mode without worker KV-event publication degrades to approximate mode; this skill flags but does not fix the underlying worker config.",{"type":47,"tag":78,"props":977,"children":978},{},[979],{"type":52,"value":980},"Mode comparisons require matched workloads; cross-mode latency claims need separate benchmark runs.",{"type":47,"tag":55,"props":982,"children":984},{"id":983},"troubleshooting",[985],{"type":52,"value":986},"Troubleshooting",{"type":47,"tag":626,"props":988,"children":989},{},[990,1011],{"type":47,"tag":630,"props":991,"children":992},{},[993],{"type":47,"tag":634,"props":994,"children":995},{},[996,1001,1006],{"type":47,"tag":638,"props":997,"children":998},{},[999],{"type":52,"value":1000},"Symptom",{"type":47,"tag":638,"props":1002,"children":1003},{},[1004],{"type":52,"value":1005},"Likely cause",{"type":47,"tag":638,"props":1007,"children":1008},{},[1009],{"type":52,"value":1010},"Next step",{"type":47,"tag":653,"props":1012,"children":1013},{},[1014,1037,1062,1088],{"type":47,"tag":634,"props":1015,"children":1016},{},[1017,1027,1032],{"type":47,"tag":660,"props":1018,"children":1019},{},[1020,1025],{"type":47,"tag":84,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":52,"value":127},{"type":52,"value":1026}," returns empty list",{"type":47,"tag":660,"props":1028,"children":1029},{},[1030],{"type":52,"value":1031},"No worker registered with the frontend",{"type":47,"tag":660,"props":1033,"children":1034},{},[1035],{"type":52,"value":1036},"Verify worker pods are Ready; confirm they connect to the same etcd\u002FNATS",{"type":47,"tag":634,"props":1038,"children":1039},{},[1040,1045,1050],{"type":47,"tag":660,"props":1041,"children":1042},{},[1043],{"type":52,"value":1044},"Smoke chat request times out",{"type":47,"tag":660,"props":1046,"children":1047},{},[1048],{"type":52,"value":1049},"Frontend up, workers not serving",{"type":47,"tag":660,"props":1051,"children":1052},{},[1053,1055,1060],{"type":52,"value":1054},"Switch to ",{"type":47,"tag":84,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":52,"value":616},{"type":52,"value":1061},"; inspect worker logs",{"type":47,"tag":634,"props":1063,"children":1064},{},[1065,1070,1075],{"type":47,"tag":660,"props":1066,"children":1067},{},[1068],{"type":52,"value":1069},"KV mode hangs",{"type":47,"tag":660,"props":1071,"children":1072},{},[1073],{"type":52,"value":1074},"Workers do not publish KV cache events",{"type":47,"tag":660,"props":1076,"children":1077},{},[1078,1080,1086],{"type":52,"value":1079},"Set ",{"type":47,"tag":84,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":52,"value":1085},"DYN_ROUTER_USE_KV_EVENTS=false",{"type":52,"value":1087}," (approximate mode)",{"type":47,"tag":634,"props":1089,"children":1090},{},[1091,1096,1101],{"type":47,"tag":660,"props":1092,"children":1093},{},[1094],{"type":52,"value":1095},"Connection refused on port-forward",{"type":47,"tag":660,"props":1097,"children":1098},{},[1099],{"type":52,"value":1100},"Port-forward dropped or wrong service name",{"type":47,"tag":660,"props":1102,"children":1103},{},[1104],{"type":52,"value":1105},"Re-run port-forward; verify the frontend service name matches the recipe",{"type":47,"tag":55,"props":1107,"children":1109},{"id":1108},"benchmark",[1110],{"type":52,"value":1111},"Benchmark",{"type":47,"tag":62,"props":1113,"children":1114},{},[1115,1117,1123,1125,1131],{"type":52,"value":1116},"See ",{"type":47,"tag":84,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":52,"value":1122},"BENCHMARK.md",{"type":52,"value":1124}," for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run ",{"type":47,"tag":84,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":52,"value":1130},"\u002Fnvskills-ci",{"type":52,"value":1132}," on an upstream PR touching this skill.",{"type":47,"tag":55,"props":1134,"children":1136},{"id":1135},"references",[1137],{"type":52,"value":1138},"References",{"type":47,"tag":74,"props":1140,"children":1141},{},[1142,1155],{"type":47,"tag":78,"props":1143,"children":1144},{},[1145,1147,1153],{"type":52,"value":1146},"Read ",{"type":47,"tag":84,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":52,"value":1152},"references\u002Frouter-modes.md",{"type":52,"value":1154}," for the compact mode\u002Fenv map.",{"type":47,"tag":78,"props":1156,"children":1157},{},[1158,1160,1165],{"type":52,"value":1159},"Use ",{"type":47,"tag":84,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":52,"value":668},{"type":52,"value":1166}," for endpoint smoke tests.",{"type":47,"tag":1168,"props":1169,"children":1170},"style",{},[1171],{"type":52,"value":1172},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1174,"total":1330},[1175,1193,1210,1221,1233,1247,1260,1274,1287,1298,1312,1321],{"slug":1176,"name":1176,"fn":1177,"description":1178,"org":1179,"tags":1180,"stars":1190,"repoUrl":1191,"updatedAt":1192},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1181,1184,1187],{"name":1182,"slug":1183,"type":15},"Documentation","documentation",{"name":1185,"slug":1186,"type":15},"MCP","mcp",{"name":1188,"slug":1189,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1194,"name":1194,"fn":1195,"description":1196,"org":1197,"tags":1198,"stars":1207,"repoUrl":1208,"updatedAt":1209},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1199,1202,1205],{"name":1200,"slug":1201,"type":15},"Containers","containers",{"name":1203,"slug":1204,"type":15},"Deployment","deployment",{"name":1206,"slug":721,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1211,"name":1211,"fn":1212,"description":1213,"org":1214,"tags":1215,"stars":1207,"repoUrl":1208,"updatedAt":1220},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1216,1219],{"name":1217,"slug":1218,"type":15},"CI\u002FCD","ci-cd",{"name":1203,"slug":1204,"type":15},"2026-07-14T05:25:59.97109",{"slug":1222,"name":1222,"fn":1223,"description":1224,"org":1225,"tags":1226,"stars":1207,"repoUrl":1208,"updatedAt":1232},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1227,1228,1229],{"name":1217,"slug":1218,"type":15},{"name":1203,"slug":1204,"type":15},{"name":1230,"slug":1231,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1234,"name":1234,"fn":1235,"description":1236,"org":1237,"tags":1238,"stars":1207,"repoUrl":1208,"updatedAt":1246},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1239,1242,1243],{"name":1240,"slug":1241,"type":15},"Debugging","debugging",{"name":1230,"slug":1231,"type":15},{"name":1244,"slug":1245,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1248,"name":1248,"fn":1249,"description":1250,"org":1251,"tags":1252,"stars":1207,"repoUrl":1208,"updatedAt":1259},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1253,1256],{"name":1254,"slug":1255,"type":15},"Best Practices","best-practices",{"name":1257,"slug":1258,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1261,"name":1261,"fn":1262,"description":1263,"org":1264,"tags":1265,"stars":1207,"repoUrl":1208,"updatedAt":1273},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1266,1269,1272],{"name":1267,"slug":1268,"type":15},"Machine Learning","machine-learning",{"name":1270,"slug":1271,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1275,"name":1275,"fn":1276,"description":1277,"org":1278,"tags":1279,"stars":1207,"repoUrl":1208,"updatedAt":1286},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1280,1283],{"name":1281,"slug":1282,"type":15},"QA","qa",{"name":1284,"slug":1285,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1288,"name":1288,"fn":1289,"description":1290,"org":1291,"tags":1292,"stars":1207,"repoUrl":1208,"updatedAt":1297},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1293,1294],{"name":1203,"slug":1204,"type":15},{"name":1295,"slug":1296,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1299,"name":1299,"fn":1300,"description":1301,"org":1302,"tags":1303,"stars":1207,"repoUrl":1208,"updatedAt":1311},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1304,1307,1308],{"name":1305,"slug":1306,"type":15},"Code Review","code-review",{"name":1230,"slug":1231,"type":15},{"name":1309,"slug":1310,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1313,"name":1313,"fn":1314,"description":1315,"org":1316,"tags":1317,"stars":1207,"repoUrl":1208,"updatedAt":1320},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1318,1319],{"name":1281,"slug":1282,"type":15},{"name":1284,"slug":1285,"type":15},"2026-07-14T05:25:54.928983",{"slug":1322,"name":1322,"fn":1323,"description":1324,"org":1325,"tags":1326,"stars":1207,"repoUrl":1208,"updatedAt":1329},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1327,1328],{"name":13,"slug":14,"type":15},{"name":1217,"slug":1218,"type":15},"2026-07-30T05:29:03.275638",496,{"items":1332,"total":1428},[1333,1350,1360,1374,1384,1399,1414],{"slug":1334,"name":1334,"fn":1335,"description":1336,"org":1337,"tags":1338,"stars":23,"repoUrl":24,"updatedAt":1349},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1339,1342,1345,1346],{"name":1340,"slug":1341,"type":15},"Data Analysis","data-analysis",{"name":1343,"slug":1344,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1347,"slug":1348,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1351,"name":1351,"fn":1352,"description":1353,"org":1354,"tags":1355,"stars":23,"repoUrl":24,"updatedAt":1359},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1356,1357,1358],{"name":1203,"slug":1204,"type":15},{"name":1295,"slug":1296,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":23,"repoUrl":24,"updatedAt":1373},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1366,1369,1370],{"name":1367,"slug":1368,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1371,"slug":1372,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1375,"name":1375,"fn":1376,"description":1377,"org":1378,"tags":1379,"stars":23,"repoUrl":24,"updatedAt":1383},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1380,1381,1382],{"name":1340,"slug":1341,"type":15},{"name":9,"slug":8,"type":15},{"name":1284,"slug":1285,"type":15},"2026-07-17T05:29:03.913266",{"slug":1385,"name":1385,"fn":1386,"description":1387,"org":1388,"tags":1389,"stars":23,"repoUrl":24,"updatedAt":1398},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1390,1391,1394,1395],{"name":13,"slug":14,"type":15},{"name":1392,"slug":1393,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1396,"slug":1397,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1400,"name":1400,"fn":1401,"description":1402,"org":1403,"tags":1404,"stars":23,"repoUrl":24,"updatedAt":1413},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1405,1406,1409,1410],{"name":1203,"slug":1204,"type":15},{"name":1407,"slug":1408,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1411,"slug":1412,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1415,"name":1415,"fn":1416,"description":1417,"org":1418,"tags":1419,"stars":23,"repoUrl":24,"updatedAt":1427},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1420,1421,1424],{"name":9,"slug":8,"type":15},{"name":1422,"slug":1423,"type":15},"Quantum Computing","quantum-computing",{"name":1425,"slug":1426,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]