[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-vss-deploy-detection-tracking-2d":3,"mdc--742j8e-key":37,"related-org-nvidia-vss-deploy-detection-tracking-2d":2631,"related-repo-nvidia-vss-deploy-detection-tracking-2d":2788},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"vss-deploy-detection-tracking-2d","deploy and debug 2D detection tracking microservices","Use this skill when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection \u002F tracking microservice. Trigger when the user says things like 'deploy rtvi-cv', 'start warehouse 2d', 'add a stream', 'check rtvi-cv health', or 'stop the perception container'. Not for VLM, embedding, or analytics — use the matching vss-* skill.",{"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,23],{"name":13,"slug":14,"type":15},"Deployment","deployment","tag",{"name":17,"slug":18,"type":15},"REST API","rest-api",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Computer Vision","computer-vision",{"name":24,"slug":25,"type":15},"Debugging","debugging",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-17T05:28:55.906661","Apache-2.0",281,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fvss-deploy-detection-tracking-2d","---\nname: vss-deploy-detection-tracking-2d\ndescription: \"Use this skill when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection \u002F tracking microservice. Trigger when the user says things like 'deploy rtvi-cv', 'start warehouse 2d', 'add a stream', 'check rtvi-cv health', or 'stop the perception container'. Not for VLM, embedding, or analytics — use the matching vss-* skill.\"\nlicense: Apache-2.0\nmetadata:\n  version: \"3.2.1\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization\"\n  tags: \"nvidia rtvi-cv deployment rest-api docker deepstream ngc warehouse smartcity sparse4d gdino rt-detr metropolis stream-management health-check metrics\"\n---\n## Purpose\n\nDeploy, debug, and operate the RTVI-CV detection \u002F tracking 2D microservice and drive its REST API.\n\n## Prerequisites\n\n- Active VSS deployment reachable on `$HOST_IP` (see `vss-deploy-profile` and `references\u002F`).\n- NGC credentials in `$NGC_CLI_API_KEY` and `$NVIDIA_API_KEY` for any image pulls.\n- `curl`, `jq`, and Docker available on the caller.\n\n## Instructions\n\nFollow the routing tables and step-by-step workflows below. Each section that ends in *workflow*, *quick start*, or *flow* is intended to be executed top-to-bottom. Detailed reference material lives in `references\u002F` and helper scripts live in `scripts\u002F` — call them via `run_script` when the skill points to a script by name.\n\n## Examples\n\nWorked end-to-end examples are kept under `evals\u002F` (each `*.json` manifest contains a runnable scenario) and inline in the per-workflow `curl` blocks below. Run a Tier-3 evaluation with `nv-base validate \u003Cthis-skill-dir> --agent-eval` to replay them.\n\n## Limitations\n\n- Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.\n- NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.\n- Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.\n\n## Troubleshooting\n\n- **Error**: REST call returns connection refused. **Cause**: target microservice not running. **Solution**: probe `\u002Fdocs` or `\u002Fhealth`; redeploy via `vss-deploy-profile` or the matching `vss-deploy-*` skill.\n- **Error**: HTTP 401\u002F403 from NGC pulls. **Cause**: missing\u002Fexpired `NGC_CLI_API_KEY`. **Solution**: `docker login nvcr.io` and re-export the key before retrying.\n- **Error**: container OOM or model fails to load. **Cause**: insufficient GPU memory for the selected profile. **Solution**: switch to a smaller variant or free GPUs via `docker compose down`.\n\n# RTVI-CV — Detection & Tracking (Unified Skill)\n\nUnified skill for the **Real Time Video Intelligence CV (RTVI-CV)** microservice. Two action surfaces in one skill:\n\n- **Deploy \u002F operate \u002F debug \u002F tear down** the RTVI-CV container locally → see [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md)\n- **Call the RTVI-CV REST API** (streams, health, metrics, embeddings) on a running instance → see [`references\u002Fusage-vss-detection-tracking-2d.md`](references\u002Fusage-vss-detection-tracking-2d.md)\n\n> **Service**: `rtvi-cv` (`metropolis_perception_app`)\n> **Image**: `nvcr.io\u002F\u003Corg>\u002F\u003Crepo>:\u003Ctag>` — user-supplied at deploy time\n> **REST port**: `9000` (`\u002Fapi\u002Fv1` — `\u002Flive`, `\u002Fready`, `\u002Fstartup`, `\u002Fmetrics`, `\u002Fstream\u002Fadd`, `\u002Fstream\u002Fremove`, embeddings)\n> **Hardware**: x86\u002Faarch64 dGPU (T4, A100, L40, H100, B200, RTX), SBSA (Spark, Grace-Hopper), Jetson (Thor, Orin, Xavier)\n\n---\n\n## Action routing — pick once per invocation\n\n| User intent (sample phrasing) | Flow | Load this reference |\n|-------------------------------|------|---------------------|\n| `deploy rtvi-cv warehouse 2d`, `run rtvicv warehouse-3d with 4 streams`, `start smartcity gdino`, `launch perception app`, `bring up sparse4d` | **DEPLOY** | [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md) |\n| `stop rtvi-cv`, `tear down`, `kill the perception container`, `cleanup rtvicv-perception-docker` | **TEARDOWN** (handled by deploy doc → \"Mode Selection\") | [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md) + [`references\u002Fteardown-flow.md`](references\u002Fteardown-flow.md) |\n| `check rtvi-cv logs`, `diagnose rtvi-cv crashing`, `troubleshoot healthcheck failing`, `rtvi-cv won't start` | **DEBUG** | [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md) + [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md) |\n| `add a stream`, `remove camera`, `list streams`, `health check`, `is rtvi-cv ready`, `get metrics`, `what's the FPS`, `check GPU usage`, `generate text embeddings`, `call rtvi-cv api` | **API USAGE** | [`references\u002Fusage-vss-detection-tracking-2d.md`](references\u002Fusage-vss-detection-tracking-2d.md) + [`references\u002Fapi-reference.md`](references\u002Fapi-reference.md) |\n\n**Selection rule:** match the user's phrasing against the table above and immediately load the corresponding reference file. Do not mix the flows — DEPLOY assumes no running container yet; API USAGE assumes the container is already running on `http:\u002F\u002F\u003Chost>:9000`.\n\nIf intent is genuinely ambiguous (e.g., the user says just \"I want to use rtvi-cv\"), ask one `AskQuestion`: deploy a new instance, or call an already-running one?\n\n---\n\n## What lives where\n\n```\nvss-deploy-detection-tracking-2d\u002F\n├── SKILL.md          # this file (routing + contracts)\n├── assets\u002F           # data files (deploy-defaults.yml — single source of truth for tags \u002F refs \u002F paths \u002F GPU)\n├── evals\u002F            # Tier-3 eval manifests (deploy-evals.json, usage-evals.json)\n├── scripts\u002F          # 23 bash + python helpers (see `scripts\u002F` for the full inventory)\n└── references\u002F       # workflow runbooks (deploy \u002F api-usage \u002F teardown \u002F troubleshooting \u002F …)\n```\n\nFor the full per-file inventory and what each reference covers, see\n[`references\u002Fworkflow-reference.md`](references\u002Fworkflow-reference.md).\n\nAll scripts are invoked from the skill root via `$SKILL_DIR\u002Fscripts\u002F\u003Cname>` — paths inside the deploy reference doc are preserved verbatim and resolve correctly when the agent runs from skill root.\n\n---\n\n## Available Scripts\n\nHelpers live in `scripts\u002F` and are invoked from the skill root by name —\ncall each via `run_script(\"scripts\u002F\u003Cname>\")` so the agent records a\nproper tool invocation.\n\n| Script | Purpose | Arguments |\n| --- | --- | --- |\n| `load_defaults.sh` | Detect platform (x86 dGPU \u002F SBSA \u002F Jetson) and resolve YAML defaults from `assets\u002Fdeploy-defaults.yml`. | `--usecase \u003Cname>` |\n| `fetch_resources.sh` | Download + extract NGC resources, scan for layout. | `--ngc-ref \u003Cref>` (optional) |\n| `apply_in_container.sh` | Host-side wrapper for Step 4 (`apply_config.sh` inside the running container). | `\u003Ccontainer_name>` |\n| `apply_config.sh` | In-container path-substitution, batch, sink, sources, engine cache. | `\u003Cusecase> \u003Cstream_count> \u003Csink_type>` |\n| `start_app_in_container.sh` | Host-side wrapper for Step 5 (`run_app_and_wait.sh`). | `\u003Ccontainer_name>` |\n| `run_app_and_wait.sh` | In-container app launch + readiness + metrics + log. | `\u003Cconfig_path>` |\n| `add_streams.sh` \u002F `update_stream_sources.sh` | REST stream lifecycle for Step 6. | `\u003Crtsp_or_file_uri>...` |\n| `collect_metrics.sh` | Pull `\u002Fapi\u002Fv1\u002Fmetrics` snapshot. | none |\n| `discover_streams.sh` | Enumerate active streams via `\u002Fstream\u002Fget-stream-info`. | none |\n| `synthesize_docker_run.sh` | Print the platform-correct `docker run` line for the resolved env. | none |\n| `render_box.sh` | Render the fixed-width step receipt. | `\u003Cstep_label>` |\n| `calibration_manager.py` | Manage calibration artefacts + per-use-case engine cache invalidation. | `--usecase \u003Cname> --reset` |\n\nFor the full inventory of helpers (cache, GPU checks, setup) browse\n`scripts\u002F`; each script's `--help` describes its arguments.\n\n## How to use this skill\n\n1. **Read this file first.** It only routes — it does not contain workflows.\n2. **Match the user's intent** against the routing table above.\n3. **Load exactly one reference doc** (DEPLOY or API USAGE). Don't preload both — each reference is large and contains its own full contract.\n4. **Follow the loaded reference exactly.** The reference docs are the byte-for-byte preserved contracts from the predecessor skills `vss-deploy-detection-tracking-2d` (deploy\u002Fteardown\u002Fdebug) and `rtvicv-api` (REST API) — every step ordering invariant, bash-batching rule, box-rendering rule, and `AskQuestion` contract is retained.\n5. **For DEPLOY**, the reference doc enforces its own startup contract: one-line acknowledgement → planning-tool call (`TodoWrite` array of 5 todos, OR 5 successive `TaskCreate` calls on newer Claude Code) → Step 1 question. Do not narrate, do not pre-flight, and never print \"loading TodoWrite\u002FTaskCreate\" or any deferred-tool resolution prose — the planning tool is loaded silently.\n\n---\n\n## Output contract — DEPLOY flow\n\nWhen running the DEPLOY \u002F TEARDOWN \u002F DEBUG flow, the agent MUST honour\nall four items below on every successful deploy. These are the user's\nonly feedback channel between steps; skipping any of them is a\nbehaviour regression.\n\n1. **Render every step's exit in a fixed-width box** — Step 1 *Deploy\n   targets*, Step 2 *Pipeline configuration*, Step 3 *Container*, Step 4\n   *Apply configuration*, Step 5 *Plan* + *Results*. Not just the final\n   summary. The box is the user's step receipt. Geometry is fixed (see\n   § \"Universal box format\" below). Per-step **content** rules (what\n   rows go inside each box) live in [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md)\n   under \"Step N box content rule\".\n2. **After the Step 5 Results box, issue the Step 6 `AskUserQuestion`**\n   from [`references\u002Fnext-steps.md`](references\u002Fnext-steps.md) § \"11.c\"\n   — never replace it with a free-form *Next steps* bullet list. The\n   menu is the deploy's exit handle: it lets the user run metrics,\n   manage streams, tail logs, or tear down with one click instead of\n   having to remember curl URLs.\n3. **After the user picks a Step 6 bucket, issue the follow-up\n   `AskUserQuestion`** from [`references\u002Fnext-steps.md`](references\u002Fnext-steps.md)\n   § \"11.d\" — never substitute prose + ready-to-copy curl examples + a\n   free-text \"want me to run X?\" question. Each bucket has its own\n   menu of concrete actions; the user picks the action, then the skill\n   emits the API box and runs the curl. Per-bucket follow-ups:\n   - **Manage streams** → Add \u002F Remove \u002F List. **Remove builds its\n     options dynamically from `\u002Fstream\u002Fget-stream-info`** — one option\n     per active stream labelled `\u003Ccamera_id> · \u003Ccamera_url>` plus\n     \"Remove ALL\" when `ACTIVE > 1` (full spec: § \"`remove_streams`\n     sub-flow\").\n   - **Stop the deployment** → Stop app \u002F Stop container \u002F Full teardown.\n   - **Check metrics & FPS** → no follow-up; run `collect_metrics.sh`\n     directly after printing the `\u002Fapi\u002Fv1\u002Fmetrics` API box.\n   - **Check liveness \u002F readiness** → no follow-up; probe all three\n     health endpoints after printing their API boxes.\n4. **Render the FULL per-step content, not an overview row** —\n   rendering the box is necessary but not sufficient. Each step has a\n   row composition spec in\n   [`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md)\n   under \"Step N box content rule\". **Step 4 (Apply configuration) is\n   where the agent collapses most often** — its canonical\n   per-use-case key list lives in\n   [`references\u002Fapply-config.md`](references\u002Fapply-config.md)\n   § \"Per-use-case complete edit list\", and the agent MUST emit one\n   `✔ [section] key=value  — annotation` row per key in that table for\n   the active use case + settings. A section with 5 keys → 5 rows; a\n   section with 6 keys → 6 rows. Never one overview row per section.\n\nForbidden (these are the shortcuts the agent falls back to under\npressure, and they break the user's UX):\n\n- ❌ **Internal tool-loading narration.** Never print \"I need to load\n  TodoWrite (a deferred tool the skill calls for the task widget)\",\n  \"Loading TaskCreate…\", \"Calling ToolSearch for the planning tool…\",\n  or any other text about resolving \u002F loading \u002F fetching deferred tools.\n  The agent loads tools **silently**. The user only ever sees the `✔\n  \u003Cpinned-values>` summary line followed by the widget — never any\n  scaffolding around tool resolution.\n- ❌ **Collapsing all 5 deploy steps into a single `TaskCreate`'s\n  `description` field.** When `TaskCreate` is the available planning\n  tool, issue **5 separate `TaskCreate` calls** back-to-back (one per\n  step). See `references\u002Ftask-list.md` § \"Initial `TaskCreate` calls\"\n  for the verbatim template. Same rule for `TodoWrite` — one call with\n  all 5 todos in the `todos:[…]` array; never one todo whose `content`\n  is a multi-line list.\n- ❌ **Silently choosing `dynamic` stream-mode.** The skill default is\n  `stream_mode=static` — the agent bakes auto-discovered `file:\u002F\u002F` URLs\n  into the DS main config's `[source-list]` block before app start.\n  Switch to `dynamic` only when the user explicitly asks (\"add streams\n  later via REST\", \"use dynamic stream mode\") OR when they pick `dynamic`\n  in the Step 2 AskQuestion. Picking `dynamic` for a generic \"deploy\n  rtvi-cv with N streams\" query breaks the deploy rubric and the\n  user's `\u002Fmetrics` expectations. See\n  [`references\u002Fpipeline-config.md`](references\u002Fpipeline-config.md)\n  § \"Defaults — the skill is static-mode by default\" for the full\n  rationale.\n- ❌ A one-line `✔ App ready in Ns, N streams, fps total Y` in place of\n  the Step 5 Results box.\n- ❌ ASCII box-drawing chars (`+`, `-`, `=`, `*`) instead of light\n  box-drawing chars (`┌ ─ ┐ │ └ ┘`).\n- ❌ Skipping Step 6 on the assumption \"the user knows what to do next\".\n- ❌ After Step 6, dumping a markdown wall of prose + multiple curl\n  blocks + a closing \"want me to run any of these?\" — that's the\n  shape the agent falls back to and it bypasses both the 11.d menu\n  and the per-API-call box. The user picks from a menu; the skill\n  shows the resolved API box; the skill runs it. No free-text Q.\n- ❌ Step 4 overview collapses — these are explicitly banned by the\n  deploy doc's Step 4 content rule:\n    - `✔ Batch size 3 (tile grid: 1×3)` → required: 5 separate rows\n      (`[streammux] batch-size=3`, `[primary-gie] batch-size=3`,\n      `[source-list] max-batch-size=3`, `[tiled-display] rows=1`,\n      `[tiled-display] columns=3`).\n    - `✔ Output sink eglsink` → required: one row per sink key\n      (4 keys for eglsink, e.g. `[sink0] enable=1`, `type=2`,\n      `sync=0`, `qos=0` — read apply-config.md for the exact list).\n    - `✔ Sources static (3 streams, http-port=9000)` → required: six\n      annotated `[source-list]` rows.\n    - `✔ Tile grid 1 row × 3 cols` (single row) → required: two\n      rows, `[tiled-display] rows=1` and `[tiled-display] columns=3`.\n\n## Universal box format\n\nThe geometry contract for every step-exit box (Step 1 through Step 5\nResults). The same shape across every box; only the **title** and the\n**body rows** change per step.\n\n- **Width: 128 chars** corner-to-corner — `┌` at column 1, `┐` at\n  column 128. Wider terminals leave the box flush-left; do not stretch\n  it. Inner content area is **124 chars** (with one space margin on\n  each side inside the `│` borders).\n- **Light box-drawing chars only**: `┌ ─ ┐ │ └ ┘`. No `+`, `-`, `=`,\n  `*` ASCII fallbacks.\n- **Top border — title CENTERED**: `┌` + N₁ dashes + `␣` + title + `␣`\n  + N₂ dashes + `┐`, where `N₁ + N₂ + len(title) + 2 = 126`. Distribute\n  the pad: `N₁ = floor((126 − len(title) − 2) \u002F 2)`,\n  `N₂ = 126 − len(title) − 2 − N₁`. N₁ and N₂ differ by at most 1.\n- **Body**: one `│ \u003Ccontent padded to inner-content 124> │` per fact.\n  Each fact line uses the `  ✔ \u003Ckey-padded-to-13>  \u003Cvalue>` form (two\n  spaces in, glyph, key right-padded to 13, two spaces, value).\n- **Blank lines between groups**: render `│ \u003C124 spaces> │` between\n  logical groups (e.g. Identity \u002F Model \u002F Videos in Step 1) so the\n  user can scan the box at a glance.\n- **Bottom border**: `└` + 126 dashes + `┘` — solid border, no title.\n\nStandard step titles (used at the top of each step's box):\n\n```\n┌─────────────────────────────────────────────────────── Deploy targets ───────────────────────────────────────────────────────┐\n┌─────────────────────────────────────────────────── Pipeline configuration ───────────────────────────────────────────────────┐\n┌───────────────────────────────────────────────────────── Container ──────────────────────────────────────────────────────────┐\n┌──────────────────────────────────────────────────── Apply configuration ─────────────────────────────────────────────────────┐\n┌──────────────────────────────────────────────── Perception Application — Plan ───────────────────────────────────────────────┐\n┌────────────────────────────────────────────── Perception Application — Results ──────────────────────────────────────────────┐\n```\n\nPer-step content rules (which rows go in which box, mode-aware row\nhiding, the apply-config sectioned layout, the Step 5 PLAN-then-RESULT\npattern, the Step 3 `docker run` synthesis requirement) live in\n[`references\u002Fdeploy-vss-detection-tracking-2d.md`](references\u002Fdeploy-vss-detection-tracking-2d.md)\nunder \"Step N box content rule\" — read those when rendering the\ncorresponding step.\n\n## Quick triggers (mnemonic)\n\n| Phrase | Flow |\n|--------|------|\n| `deploy rtvicv warehouse 2d with 4 streams and display` | DEPLOY |\n| `run smartcity gdino on gpu 1` | DEPLOY |\n| `stop the perception container` | TEARDOWN (deploy doc) |\n| `rtvi-cv healthcheck failing` | DEBUG (deploy doc + troubleshooting) |\n| `add a stream to rtvi-cv` | API USAGE |\n| `is rtvi-cv ready on localhost:9000` | API USAGE |\n| `get rtvi-cv metrics` | API USAGE |\n| `generate text embeddings via rtvi-cv` | API USAGE |\n\nbump:1\n",{"data":38,"body":43},{"name":4,"description":6,"license":29,"metadata":39},{"version":40,"github-url":41,"tags":42},"3.2.1","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization","nvidia rtvi-cv deployment rest-api docker deepstream ngc warehouse smartcity sparse4d gdino rt-detr metropolis stream-management health-check metrics",{"type":44,"children":45},"root",[46,55,61,67,141,147,196,202,238,244,262,268,393,400,412,454,568,572,578,901,918,931,934,940,952,967,980,983,989,1009,1385,1405,1411,1503,1506,1512,1517,1786,1791,2187,2193,2212,2433,2438,2447,2469,2475,2626],{"type":47,"tag":48,"props":49,"children":51},"element","h2",{"id":50},"purpose",[52],{"type":53,"value":54},"text","Purpose",{"type":47,"tag":56,"props":57,"children":58},"p",{},[59],{"type":53,"value":60},"Deploy, debug, and operate the RTVI-CV detection \u002F tracking 2D microservice and drive its REST API.",{"type":47,"tag":48,"props":62,"children":64},{"id":63},"prerequisites",[65],{"type":53,"value":66},"Prerequisites",{"type":47,"tag":68,"props":69,"children":70},"ul",{},[71,102,122],{"type":47,"tag":72,"props":73,"children":74},"li",{},[75,77,84,86,92,94,100],{"type":53,"value":76},"Active VSS deployment reachable on ",{"type":47,"tag":78,"props":79,"children":81},"code",{"className":80},[],[82],{"type":53,"value":83},"$HOST_IP",{"type":53,"value":85}," (see ",{"type":47,"tag":78,"props":87,"children":89},{"className":88},[],[90],{"type":53,"value":91},"vss-deploy-profile",{"type":53,"value":93}," and ",{"type":47,"tag":78,"props":95,"children":97},{"className":96},[],[98],{"type":53,"value":99},"references\u002F",{"type":53,"value":101},").",{"type":47,"tag":72,"props":103,"children":104},{},[105,107,113,114,120],{"type":53,"value":106},"NGC credentials in ",{"type":47,"tag":78,"props":108,"children":110},{"className":109},[],[111],{"type":53,"value":112},"$NGC_CLI_API_KEY",{"type":53,"value":93},{"type":47,"tag":78,"props":115,"children":117},{"className":116},[],[118],{"type":53,"value":119},"$NVIDIA_API_KEY",{"type":53,"value":121}," for any image pulls.",{"type":47,"tag":72,"props":123,"children":124},{},[125,131,133,139],{"type":47,"tag":78,"props":126,"children":128},{"className":127},[],[129],{"type":53,"value":130},"curl",{"type":53,"value":132},", ",{"type":47,"tag":78,"props":134,"children":136},{"className":135},[],[137],{"type":53,"value":138},"jq",{"type":53,"value":140},", and Docker available on the caller.",{"type":47,"tag":48,"props":142,"children":144},{"id":143},"instructions",[145],{"type":53,"value":146},"Instructions",{"type":47,"tag":56,"props":148,"children":149},{},[150,152,158,159,164,166,171,173,178,180,186,188,194],{"type":53,"value":151},"Follow the routing tables and step-by-step workflows below. Each section that ends in ",{"type":47,"tag":153,"props":154,"children":155},"em",{},[156],{"type":53,"value":157},"workflow",{"type":53,"value":132},{"type":47,"tag":153,"props":160,"children":161},{},[162],{"type":53,"value":163},"quick start",{"type":53,"value":165},", or ",{"type":47,"tag":153,"props":167,"children":168},{},[169],{"type":53,"value":170},"flow",{"type":53,"value":172}," is intended to be executed top-to-bottom. Detailed reference material lives in ",{"type":47,"tag":78,"props":174,"children":176},{"className":175},[],[177],{"type":53,"value":99},{"type":53,"value":179}," and helper scripts live in ",{"type":47,"tag":78,"props":181,"children":183},{"className":182},[],[184],{"type":53,"value":185},"scripts\u002F",{"type":53,"value":187}," — call them via ",{"type":47,"tag":78,"props":189,"children":191},{"className":190},[],[192],{"type":53,"value":193},"run_script",{"type":53,"value":195}," when the skill points to a script by name.",{"type":47,"tag":48,"props":197,"children":199},{"id":198},"examples",[200],{"type":53,"value":201},"Examples",{"type":47,"tag":56,"props":203,"children":204},{},[205,207,213,215,221,223,228,230,236],{"type":53,"value":206},"Worked end-to-end examples are kept under ",{"type":47,"tag":78,"props":208,"children":210},{"className":209},[],[211],{"type":53,"value":212},"evals\u002F",{"type":53,"value":214}," (each ",{"type":47,"tag":78,"props":216,"children":218},{"className":217},[],[219],{"type":53,"value":220},"*.json",{"type":53,"value":222}," manifest contains a runnable scenario) and inline in the per-workflow ",{"type":47,"tag":78,"props":224,"children":226},{"className":225},[],[227],{"type":53,"value":130},{"type":53,"value":229}," blocks below. Run a Tier-3 evaluation with ",{"type":47,"tag":78,"props":231,"children":233},{"className":232},[],[234],{"type":53,"value":235},"nv-base validate \u003Cthis-skill-dir> --agent-eval",{"type":53,"value":237}," to replay them.",{"type":47,"tag":48,"props":239,"children":241},{"id":240},"limitations",[242],{"type":53,"value":243},"Limitations",{"type":47,"tag":68,"props":245,"children":246},{},[247,252,257],{"type":47,"tag":72,"props":248,"children":249},{},[250],{"type":53,"value":251},"Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.",{"type":47,"tag":72,"props":253,"children":254},{},[255],{"type":53,"value":256},"NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.",{"type":47,"tag":72,"props":258,"children":259},{},[260],{"type":53,"value":261},"Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.",{"type":47,"tag":48,"props":263,"children":265},{"id":264},"troubleshooting",[266],{"type":53,"value":267},"Troubleshooting",{"type":47,"tag":68,"props":269,"children":270},{},[271,327,364],{"type":47,"tag":72,"props":272,"children":273},{},[274,280,282,287,289,294,296,302,304,310,312,317,319,325],{"type":47,"tag":275,"props":276,"children":277},"strong",{},[278],{"type":53,"value":279},"Error",{"type":53,"value":281},": REST call returns connection refused. ",{"type":47,"tag":275,"props":283,"children":284},{},[285],{"type":53,"value":286},"Cause",{"type":53,"value":288},": target microservice not running. ",{"type":47,"tag":275,"props":290,"children":291},{},[292],{"type":53,"value":293},"Solution",{"type":53,"value":295},": probe ",{"type":47,"tag":78,"props":297,"children":299},{"className":298},[],[300],{"type":53,"value":301},"\u002Fdocs",{"type":53,"value":303}," or ",{"type":47,"tag":78,"props":305,"children":307},{"className":306},[],[308],{"type":53,"value":309},"\u002Fhealth",{"type":53,"value":311},"; redeploy via ",{"type":47,"tag":78,"props":313,"children":315},{"className":314},[],[316],{"type":53,"value":91},{"type":53,"value":318}," or the matching ",{"type":47,"tag":78,"props":320,"children":322},{"className":321},[],[323],{"type":53,"value":324},"vss-deploy-*",{"type":53,"value":326}," skill.",{"type":47,"tag":72,"props":328,"children":329},{},[330,334,336,340,342,348,350,354,356,362],{"type":47,"tag":275,"props":331,"children":332},{},[333],{"type":53,"value":279},{"type":53,"value":335},": HTTP 401\u002F403 from NGC pulls. ",{"type":47,"tag":275,"props":337,"children":338},{},[339],{"type":53,"value":286},{"type":53,"value":341},": missing\u002Fexpired ",{"type":47,"tag":78,"props":343,"children":345},{"className":344},[],[346],{"type":53,"value":347},"NGC_CLI_API_KEY",{"type":53,"value":349},". ",{"type":47,"tag":275,"props":351,"children":352},{},[353],{"type":53,"value":293},{"type":53,"value":355},": ",{"type":47,"tag":78,"props":357,"children":359},{"className":358},[],[360],{"type":53,"value":361},"docker login nvcr.io",{"type":53,"value":363}," and re-export the key before retrying.",{"type":47,"tag":72,"props":365,"children":366},{},[367,371,373,377,379,383,385,391],{"type":47,"tag":275,"props":368,"children":369},{},[370],{"type":53,"value":279},{"type":53,"value":372},": container OOM or model fails to load. ",{"type":47,"tag":275,"props":374,"children":375},{},[376],{"type":53,"value":286},{"type":53,"value":378},": insufficient GPU memory for the selected profile. ",{"type":47,"tag":275,"props":380,"children":381},{},[382],{"type":53,"value":293},{"type":53,"value":384},": switch to a smaller variant or free GPUs via ",{"type":47,"tag":78,"props":386,"children":388},{"className":387},[],[389],{"type":53,"value":390},"docker compose down",{"type":53,"value":392},".",{"type":47,"tag":394,"props":395,"children":397},"h1",{"id":396},"rtvi-cv-detection-tracking-unified-skill",[398],{"type":53,"value":399},"RTVI-CV — Detection & Tracking (Unified Skill)",{"type":47,"tag":56,"props":401,"children":402},{},[403,405,410],{"type":53,"value":404},"Unified skill for the ",{"type":47,"tag":275,"props":406,"children":407},{},[408],{"type":53,"value":409},"Real Time Video Intelligence CV (RTVI-CV)",{"type":53,"value":411}," microservice. Two action surfaces in one skill:",{"type":47,"tag":68,"props":413,"children":414},{},[415,435],{"type":47,"tag":72,"props":416,"children":417},{},[418,423,425],{"type":47,"tag":275,"props":419,"children":420},{},[421],{"type":53,"value":422},"Deploy \u002F operate \u002F debug \u002F tear down",{"type":53,"value":424}," the RTVI-CV container locally → see ",{"type":47,"tag":426,"props":427,"children":429},"a",{"href":428},"references\u002Fdeploy-vss-detection-tracking-2d.md",[430],{"type":47,"tag":78,"props":431,"children":433},{"className":432},[],[434],{"type":53,"value":428},{"type":47,"tag":72,"props":436,"children":437},{},[438,443,445],{"type":47,"tag":275,"props":439,"children":440},{},[441],{"type":53,"value":442},"Call the RTVI-CV REST API",{"type":53,"value":444}," (streams, health, metrics, embeddings) on a running instance → see ",{"type":47,"tag":426,"props":446,"children":448},{"href":447},"references\u002Fusage-vss-detection-tracking-2d.md",[449],{"type":47,"tag":78,"props":450,"children":452},{"className":451},[],[453],{"type":53,"value":447},{"type":47,"tag":455,"props":456,"children":457},"blockquote",{},[458],{"type":47,"tag":56,"props":459,"children":460},{},[461,466,467,473,475,481,483,488,489,495,497,502,503,509,510,516,518,524,525,531,532,538,539,545,546,552,553,559,561,566],{"type":47,"tag":275,"props":462,"children":463},{},[464],{"type":53,"value":465},"Service",{"type":53,"value":355},{"type":47,"tag":78,"props":468,"children":470},{"className":469},[],[471],{"type":53,"value":472},"rtvi-cv",{"type":53,"value":474}," (",{"type":47,"tag":78,"props":476,"children":478},{"className":477},[],[479],{"type":53,"value":480},"metropolis_perception_app",{"type":53,"value":482},")\n",{"type":47,"tag":275,"props":484,"children":485},{},[486],{"type":53,"value":487},"Image",{"type":53,"value":355},{"type":47,"tag":78,"props":490,"children":492},{"className":491},[],[493],{"type":53,"value":494},"nvcr.io\u002F\u003Corg>\u002F\u003Crepo>:\u003Ctag>",{"type":53,"value":496}," — user-supplied at deploy time\n",{"type":47,"tag":275,"props":498,"children":499},{},[500],{"type":53,"value":501},"REST port",{"type":53,"value":355},{"type":47,"tag":78,"props":504,"children":506},{"className":505},[],[507],{"type":53,"value":508},"9000",{"type":53,"value":474},{"type":47,"tag":78,"props":511,"children":513},{"className":512},[],[514],{"type":53,"value":515},"\u002Fapi\u002Fv1",{"type":53,"value":517}," — ",{"type":47,"tag":78,"props":519,"children":521},{"className":520},[],[522],{"type":53,"value":523},"\u002Flive",{"type":53,"value":132},{"type":47,"tag":78,"props":526,"children":528},{"className":527},[],[529],{"type":53,"value":530},"\u002Fready",{"type":53,"value":132},{"type":47,"tag":78,"props":533,"children":535},{"className":534},[],[536],{"type":53,"value":537},"\u002Fstartup",{"type":53,"value":132},{"type":47,"tag":78,"props":540,"children":542},{"className":541},[],[543],{"type":53,"value":544},"\u002Fmetrics",{"type":53,"value":132},{"type":47,"tag":78,"props":547,"children":549},{"className":548},[],[550],{"type":53,"value":551},"\u002Fstream\u002Fadd",{"type":53,"value":132},{"type":47,"tag":78,"props":554,"children":556},{"className":555},[],[557],{"type":53,"value":558},"\u002Fstream\u002Fremove",{"type":53,"value":560},", embeddings)\n",{"type":47,"tag":275,"props":562,"children":563},{},[564],{"type":53,"value":565},"Hardware",{"type":53,"value":567},": x86\u002Faarch64 dGPU (T4, A100, L40, H100, B200, RTX), SBSA (Spark, Grace-Hopper), Jetson (Thor, Orin, Xavier)",{"type":47,"tag":569,"props":570,"children":571},"hr",{},[],{"type":47,"tag":48,"props":573,"children":575},{"id":574},"action-routing-pick-once-per-invocation",[576],{"type":53,"value":577},"Action routing — pick once per invocation",{"type":47,"tag":579,"props":580,"children":581},"table",{},[582,606],{"type":47,"tag":583,"props":584,"children":585},"thead",{},[586],{"type":47,"tag":587,"props":588,"children":589},"tr",{},[590,596,601],{"type":47,"tag":591,"props":592,"children":593},"th",{},[594],{"type":53,"value":595},"User intent (sample phrasing)",{"type":47,"tag":591,"props":597,"children":598},{},[599],{"type":53,"value":600},"Flow",{"type":47,"tag":591,"props":602,"children":603},{},[604],{"type":53,"value":605},"Load this reference",{"type":47,"tag":607,"props":608,"children":609},"tbody",{},[610,670,735,797],{"type":47,"tag":587,"props":611,"children":612},{},[613,651,659],{"type":47,"tag":614,"props":615,"children":616},"td",{},[617,623,624,630,631,637,638,644,645],{"type":47,"tag":78,"props":618,"children":620},{"className":619},[],[621],{"type":53,"value":622},"deploy rtvi-cv warehouse 2d",{"type":53,"value":132},{"type":47,"tag":78,"props":625,"children":627},{"className":626},[],[628],{"type":53,"value":629},"run rtvicv warehouse-3d with 4 streams",{"type":53,"value":132},{"type":47,"tag":78,"props":632,"children":634},{"className":633},[],[635],{"type":53,"value":636},"start smartcity gdino",{"type":53,"value":132},{"type":47,"tag":78,"props":639,"children":641},{"className":640},[],[642],{"type":53,"value":643},"launch perception app",{"type":53,"value":132},{"type":47,"tag":78,"props":646,"children":648},{"className":647},[],[649],{"type":53,"value":650},"bring up sparse4d",{"type":47,"tag":614,"props":652,"children":653},{},[654],{"type":47,"tag":275,"props":655,"children":656},{},[657],{"type":53,"value":658},"DEPLOY",{"type":47,"tag":614,"props":660,"children":661},{},[662],{"type":47,"tag":426,"props":663,"children":664},{"href":428},[665],{"type":47,"tag":78,"props":666,"children":668},{"className":667},[],[669],{"type":53,"value":428},{"type":47,"tag":587,"props":671,"children":672},{},[673,703,713],{"type":47,"tag":614,"props":674,"children":675},{},[676,682,683,689,690,696,697],{"type":47,"tag":78,"props":677,"children":679},{"className":678},[],[680],{"type":53,"value":681},"stop rtvi-cv",{"type":53,"value":132},{"type":47,"tag":78,"props":684,"children":686},{"className":685},[],[687],{"type":53,"value":688},"tear down",{"type":53,"value":132},{"type":47,"tag":78,"props":691,"children":693},{"className":692},[],[694],{"type":53,"value":695},"kill the perception container",{"type":53,"value":132},{"type":47,"tag":78,"props":698,"children":700},{"className":699},[],[701],{"type":53,"value":702},"cleanup rtvicv-perception-docker",{"type":47,"tag":614,"props":704,"children":705},{},[706,711],{"type":47,"tag":275,"props":707,"children":708},{},[709],{"type":53,"value":710},"TEARDOWN",{"type":53,"value":712}," (handled by deploy doc → \"Mode Selection\")",{"type":47,"tag":614,"props":714,"children":715},{},[716,724,726],{"type":47,"tag":426,"props":717,"children":718},{"href":428},[719],{"type":47,"tag":78,"props":720,"children":722},{"className":721},[],[723],{"type":53,"value":428},{"type":53,"value":725}," + ",{"type":47,"tag":426,"props":727,"children":729},{"href":728},"references\u002Fteardown-flow.md",[730],{"type":47,"tag":78,"props":731,"children":733},{"className":732},[],[734],{"type":53,"value":728},{"type":47,"tag":587,"props":736,"children":737},{},[738,768,776],{"type":47,"tag":614,"props":739,"children":740},{},[741,747,748,754,755,761,762],{"type":47,"tag":78,"props":742,"children":744},{"className":743},[],[745],{"type":53,"value":746},"check rtvi-cv logs",{"type":53,"value":132},{"type":47,"tag":78,"props":749,"children":751},{"className":750},[],[752],{"type":53,"value":753},"diagnose rtvi-cv crashing",{"type":53,"value":132},{"type":47,"tag":78,"props":756,"children":758},{"className":757},[],[759],{"type":53,"value":760},"troubleshoot healthcheck failing",{"type":53,"value":132},{"type":47,"tag":78,"props":763,"children":765},{"className":764},[],[766],{"type":53,"value":767},"rtvi-cv won't start",{"type":47,"tag":614,"props":769,"children":770},{},[771],{"type":47,"tag":275,"props":772,"children":773},{},[774],{"type":53,"value":775},"DEBUG",{"type":47,"tag":614,"props":777,"children":778},{},[779,787,788],{"type":47,"tag":426,"props":780,"children":781},{"href":428},[782],{"type":47,"tag":78,"props":783,"children":785},{"className":784},[],[786],{"type":53,"value":428},{"type":53,"value":725},{"type":47,"tag":426,"props":789,"children":791},{"href":790},"references\u002Ftroubleshooting.md",[792],{"type":47,"tag":78,"props":793,"children":795},{"className":794},[],[796],{"type":53,"value":790},{"type":47,"tag":587,"props":798,"children":799},{},[800,872,880],{"type":47,"tag":614,"props":801,"children":802},{},[803,809,810,816,817,823,824,830,831,837,838,844,845,851,852,858,859,865,866],{"type":47,"tag":78,"props":804,"children":806},{"className":805},[],[807],{"type":53,"value":808},"add a stream",{"type":53,"value":132},{"type":47,"tag":78,"props":811,"children":813},{"className":812},[],[814],{"type":53,"value":815},"remove camera",{"type":53,"value":132},{"type":47,"tag":78,"props":818,"children":820},{"className":819},[],[821],{"type":53,"value":822},"list streams",{"type":53,"value":132},{"type":47,"tag":78,"props":825,"children":827},{"className":826},[],[828],{"type":53,"value":829},"health check",{"type":53,"value":132},{"type":47,"tag":78,"props":832,"children":834},{"className":833},[],[835],{"type":53,"value":836},"is rtvi-cv ready",{"type":53,"value":132},{"type":47,"tag":78,"props":839,"children":841},{"className":840},[],[842],{"type":53,"value":843},"get metrics",{"type":53,"value":132},{"type":47,"tag":78,"props":846,"children":848},{"className":847},[],[849],{"type":53,"value":850},"what's the FPS",{"type":53,"value":132},{"type":47,"tag":78,"props":853,"children":855},{"className":854},[],[856],{"type":53,"value":857},"check GPU usage",{"type":53,"value":132},{"type":47,"tag":78,"props":860,"children":862},{"className":861},[],[863],{"type":53,"value":864},"generate text embeddings",{"type":53,"value":132},{"type":47,"tag":78,"props":867,"children":869},{"className":868},[],[870],{"type":53,"value":871},"call rtvi-cv api",{"type":47,"tag":614,"props":873,"children":874},{},[875],{"type":47,"tag":275,"props":876,"children":877},{},[878],{"type":53,"value":879},"API USAGE",{"type":47,"tag":614,"props":881,"children":882},{},[883,891,892],{"type":47,"tag":426,"props":884,"children":885},{"href":447},[886],{"type":47,"tag":78,"props":887,"children":889},{"className":888},[],[890],{"type":53,"value":447},{"type":53,"value":725},{"type":47,"tag":426,"props":893,"children":895},{"href":894},"references\u002Fapi-reference.md",[896],{"type":47,"tag":78,"props":897,"children":899},{"className":898},[],[900],{"type":53,"value":894},{"type":47,"tag":56,"props":902,"children":903},{},[904,909,911,917],{"type":47,"tag":275,"props":905,"children":906},{},[907],{"type":53,"value":908},"Selection rule:",{"type":53,"value":910}," match the user's phrasing against the table above and immediately load the corresponding reference file. Do not mix the flows — DEPLOY assumes no running container yet; API USAGE assumes the container is already running on ",{"type":47,"tag":78,"props":912,"children":914},{"className":913},[],[915],{"type":53,"value":916},"http:\u002F\u002F\u003Chost>:9000",{"type":53,"value":392},{"type":47,"tag":56,"props":919,"children":920},{},[921,923,929],{"type":53,"value":922},"If intent is genuinely ambiguous (e.g., the user says just \"I want to use rtvi-cv\"), ask one ",{"type":47,"tag":78,"props":924,"children":926},{"className":925},[],[927],{"type":53,"value":928},"AskQuestion",{"type":53,"value":930},": deploy a new instance, or call an already-running one?",{"type":47,"tag":569,"props":932,"children":933},{},[],{"type":47,"tag":48,"props":935,"children":937},{"id":936},"what-lives-where",[938],{"type":53,"value":939},"What lives where",{"type":47,"tag":941,"props":942,"children":946},"pre",{"className":943,"code":945,"language":53},[944],"language-text","vss-deploy-detection-tracking-2d\u002F\n├── SKILL.md          # this file (routing + contracts)\n├── assets\u002F           # data files (deploy-defaults.yml — single source of truth for tags \u002F refs \u002F paths \u002F GPU)\n├── evals\u002F            # Tier-3 eval manifests (deploy-evals.json, usage-evals.json)\n├── scripts\u002F          # 23 bash + python helpers (see `scripts\u002F` for the full inventory)\n└── references\u002F       # workflow runbooks (deploy \u002F api-usage \u002F teardown \u002F troubleshooting \u002F …)\n",[947],{"type":47,"tag":78,"props":948,"children":950},{"__ignoreMap":949},"",[951],{"type":53,"value":945},{"type":47,"tag":56,"props":953,"children":954},{},[955,957,966],{"type":53,"value":956},"For the full per-file inventory and what each reference covers, see\n",{"type":47,"tag":426,"props":958,"children":960},{"href":959},"references\u002Fworkflow-reference.md",[961],{"type":47,"tag":78,"props":962,"children":964},{"className":963},[],[965],{"type":53,"value":959},{"type":53,"value":392},{"type":47,"tag":56,"props":968,"children":969},{},[970,972,978],{"type":53,"value":971},"All scripts are invoked from the skill root via ",{"type":47,"tag":78,"props":973,"children":975},{"className":974},[],[976],{"type":53,"value":977},"$SKILL_DIR\u002Fscripts\u002F\u003Cname>",{"type":53,"value":979}," — paths inside the deploy reference doc are preserved verbatim and resolve correctly when the agent runs from skill root.",{"type":47,"tag":569,"props":981,"children":982},{},[],{"type":47,"tag":48,"props":984,"children":986},{"id":985},"available-scripts",[987],{"type":53,"value":988},"Available Scripts",{"type":47,"tag":56,"props":990,"children":991},{},[992,994,999,1001,1007],{"type":53,"value":993},"Helpers live in ",{"type":47,"tag":78,"props":995,"children":997},{"className":996},[],[998],{"type":53,"value":185},{"type":53,"value":1000}," and are invoked from the skill root by name —\ncall each via ",{"type":47,"tag":78,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":53,"value":1006},"run_script(\"scripts\u002F\u003Cname>\")",{"type":53,"value":1008}," so the agent records a\nproper tool invocation.",{"type":47,"tag":579,"props":1010,"children":1011},{},[1012,1032],{"type":47,"tag":583,"props":1013,"children":1014},{},[1015],{"type":47,"tag":587,"props":1016,"children":1017},{},[1018,1023,1027],{"type":47,"tag":591,"props":1019,"children":1020},{},[1021],{"type":53,"value":1022},"Script",{"type":47,"tag":591,"props":1024,"children":1025},{},[1026],{"type":53,"value":54},{"type":47,"tag":591,"props":1028,"children":1029},{},[1030],{"type":53,"value":1031},"Arguments",{"type":47,"tag":607,"props":1033,"children":1034},{},[1035,1068,1096,1130,1155,1187,1212,1246,1276,1304,1333,1359],{"type":47,"tag":587,"props":1036,"children":1037},{},[1038,1047,1059],{"type":47,"tag":614,"props":1039,"children":1040},{},[1041],{"type":47,"tag":78,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":53,"value":1046},"load_defaults.sh",{"type":47,"tag":614,"props":1048,"children":1049},{},[1050,1052,1058],{"type":53,"value":1051},"Detect platform (x86 dGPU \u002F SBSA \u002F Jetson) and resolve YAML defaults from ",{"type":47,"tag":78,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":53,"value":1057},"assets\u002Fdeploy-defaults.yml",{"type":53,"value":392},{"type":47,"tag":614,"props":1060,"children":1061},{},[1062],{"type":47,"tag":78,"props":1063,"children":1065},{"className":1064},[],[1066],{"type":53,"value":1067},"--usecase \u003Cname>",{"type":47,"tag":587,"props":1069,"children":1070},{},[1071,1080,1085],{"type":47,"tag":614,"props":1072,"children":1073},{},[1074],{"type":47,"tag":78,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":53,"value":1079},"fetch_resources.sh",{"type":47,"tag":614,"props":1081,"children":1082},{},[1083],{"type":53,"value":1084},"Download + extract NGC resources, scan for layout.",{"type":47,"tag":614,"props":1086,"children":1087},{},[1088,1094],{"type":47,"tag":78,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":53,"value":1093},"--ngc-ref \u003Cref>",{"type":53,"value":1095}," (optional)",{"type":47,"tag":587,"props":1097,"children":1098},{},[1099,1108,1121],{"type":47,"tag":614,"props":1100,"children":1101},{},[1102],{"type":47,"tag":78,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":53,"value":1107},"apply_in_container.sh",{"type":47,"tag":614,"props":1109,"children":1110},{},[1111,1113,1119],{"type":53,"value":1112},"Host-side wrapper for Step 4 (",{"type":47,"tag":78,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":53,"value":1118},"apply_config.sh",{"type":53,"value":1120}," inside the running container).",{"type":47,"tag":614,"props":1122,"children":1123},{},[1124],{"type":47,"tag":78,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":53,"value":1129},"\u003Ccontainer_name>",{"type":47,"tag":587,"props":1131,"children":1132},{},[1133,1141,1146],{"type":47,"tag":614,"props":1134,"children":1135},{},[1136],{"type":47,"tag":78,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":53,"value":1118},{"type":47,"tag":614,"props":1142,"children":1143},{},[1144],{"type":53,"value":1145},"In-container path-substitution, batch, sink, sources, engine cache.",{"type":47,"tag":614,"props":1147,"children":1148},{},[1149],{"type":47,"tag":78,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":53,"value":1154},"\u003Cusecase> \u003Cstream_count> \u003Csink_type>",{"type":47,"tag":587,"props":1156,"children":1157},{},[1158,1167,1179],{"type":47,"tag":614,"props":1159,"children":1160},{},[1161],{"type":47,"tag":78,"props":1162,"children":1164},{"className":1163},[],[1165],{"type":53,"value":1166},"start_app_in_container.sh",{"type":47,"tag":614,"props":1168,"children":1169},{},[1170,1172,1178],{"type":53,"value":1171},"Host-side wrapper for Step 5 (",{"type":47,"tag":78,"props":1173,"children":1175},{"className":1174},[],[1176],{"type":53,"value":1177},"run_app_and_wait.sh",{"type":53,"value":101},{"type":47,"tag":614,"props":1180,"children":1181},{},[1182],{"type":47,"tag":78,"props":1183,"children":1185},{"className":1184},[],[1186],{"type":53,"value":1129},{"type":47,"tag":587,"props":1188,"children":1189},{},[1190,1198,1203],{"type":47,"tag":614,"props":1191,"children":1192},{},[1193],{"type":47,"tag":78,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":53,"value":1177},{"type":47,"tag":614,"props":1199,"children":1200},{},[1201],{"type":53,"value":1202},"In-container app launch + readiness + metrics + log.",{"type":47,"tag":614,"props":1204,"children":1205},{},[1206],{"type":47,"tag":78,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":53,"value":1211},"\u003Cconfig_path>",{"type":47,"tag":587,"props":1213,"children":1214},{},[1215,1232,1237],{"type":47,"tag":614,"props":1216,"children":1217},{},[1218,1224,1226],{"type":47,"tag":78,"props":1219,"children":1221},{"className":1220},[],[1222],{"type":53,"value":1223},"add_streams.sh",{"type":53,"value":1225}," \u002F ",{"type":47,"tag":78,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":53,"value":1231},"update_stream_sources.sh",{"type":47,"tag":614,"props":1233,"children":1234},{},[1235],{"type":53,"value":1236},"REST stream lifecycle for Step 6.",{"type":47,"tag":614,"props":1238,"children":1239},{},[1240],{"type":47,"tag":78,"props":1241,"children":1243},{"className":1242},[],[1244],{"type":53,"value":1245},"\u003Crtsp_or_file_uri>...",{"type":47,"tag":587,"props":1247,"children":1248},{},[1249,1258,1271],{"type":47,"tag":614,"props":1250,"children":1251},{},[1252],{"type":47,"tag":78,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":53,"value":1257},"collect_metrics.sh",{"type":47,"tag":614,"props":1259,"children":1260},{},[1261,1263,1269],{"type":53,"value":1262},"Pull ",{"type":47,"tag":78,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":53,"value":1268},"\u002Fapi\u002Fv1\u002Fmetrics",{"type":53,"value":1270}," snapshot.",{"type":47,"tag":614,"props":1272,"children":1273},{},[1274],{"type":53,"value":1275},"none",{"type":47,"tag":587,"props":1277,"children":1278},{},[1279,1288,1300],{"type":47,"tag":614,"props":1280,"children":1281},{},[1282],{"type":47,"tag":78,"props":1283,"children":1285},{"className":1284},[],[1286],{"type":53,"value":1287},"discover_streams.sh",{"type":47,"tag":614,"props":1289,"children":1290},{},[1291,1293,1299],{"type":53,"value":1292},"Enumerate active streams via ",{"type":47,"tag":78,"props":1294,"children":1296},{"className":1295},[],[1297],{"type":53,"value":1298},"\u002Fstream\u002Fget-stream-info",{"type":53,"value":392},{"type":47,"tag":614,"props":1301,"children":1302},{},[1303],{"type":53,"value":1275},{"type":47,"tag":587,"props":1305,"children":1306},{},[1307,1316,1329],{"type":47,"tag":614,"props":1308,"children":1309},{},[1310],{"type":47,"tag":78,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":53,"value":1315},"synthesize_docker_run.sh",{"type":47,"tag":614,"props":1317,"children":1318},{},[1319,1321,1327],{"type":53,"value":1320},"Print the platform-correct ",{"type":47,"tag":78,"props":1322,"children":1324},{"className":1323},[],[1325],{"type":53,"value":1326},"docker run",{"type":53,"value":1328}," line for the resolved env.",{"type":47,"tag":614,"props":1330,"children":1331},{},[1332],{"type":53,"value":1275},{"type":47,"tag":587,"props":1334,"children":1335},{},[1336,1345,1350],{"type":47,"tag":614,"props":1337,"children":1338},{},[1339],{"type":47,"tag":78,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":53,"value":1344},"render_box.sh",{"type":47,"tag":614,"props":1346,"children":1347},{},[1348],{"type":53,"value":1349},"Render the fixed-width step receipt.",{"type":47,"tag":614,"props":1351,"children":1352},{},[1353],{"type":47,"tag":78,"props":1354,"children":1356},{"className":1355},[],[1357],{"type":53,"value":1358},"\u003Cstep_label>",{"type":47,"tag":587,"props":1360,"children":1361},{},[1362,1371,1376],{"type":47,"tag":614,"props":1363,"children":1364},{},[1365],{"type":47,"tag":78,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":53,"value":1370},"calibration_manager.py",{"type":47,"tag":614,"props":1372,"children":1373},{},[1374],{"type":53,"value":1375},"Manage calibration artefacts + per-use-case engine cache invalidation.",{"type":47,"tag":614,"props":1377,"children":1378},{},[1379],{"type":47,"tag":78,"props":1380,"children":1382},{"className":1381},[],[1383],{"type":53,"value":1384},"--usecase \u003Cname> --reset",{"type":47,"tag":56,"props":1386,"children":1387},{},[1388,1390,1395,1397,1403],{"type":53,"value":1389},"For the full inventory of helpers (cache, GPU checks, setup) browse\n",{"type":47,"tag":78,"props":1391,"children":1393},{"className":1392},[],[1394],{"type":53,"value":185},{"type":53,"value":1396},"; each script's ",{"type":47,"tag":78,"props":1398,"children":1400},{"className":1399},[],[1401],{"type":53,"value":1402},"--help",{"type":53,"value":1404}," describes its arguments.",{"type":47,"tag":48,"props":1406,"children":1408},{"id":1407},"how-to-use-this-skill",[1409],{"type":53,"value":1410},"How to use this skill",{"type":47,"tag":1412,"props":1413,"children":1414},"ol",{},[1415,1425,1435,1445,1477],{"type":47,"tag":72,"props":1416,"children":1417},{},[1418,1423],{"type":47,"tag":275,"props":1419,"children":1420},{},[1421],{"type":53,"value":1422},"Read this file first.",{"type":53,"value":1424}," It only routes — it does not contain workflows.",{"type":47,"tag":72,"props":1426,"children":1427},{},[1428,1433],{"type":47,"tag":275,"props":1429,"children":1430},{},[1431],{"type":53,"value":1432},"Match the user's intent",{"type":53,"value":1434}," against the routing table above.",{"type":47,"tag":72,"props":1436,"children":1437},{},[1438,1443],{"type":47,"tag":275,"props":1439,"children":1440},{},[1441],{"type":53,"value":1442},"Load exactly one reference doc",{"type":53,"value":1444}," (DEPLOY or API USAGE). Don't preload both — each reference is large and contains its own full contract.",{"type":47,"tag":72,"props":1446,"children":1447},{},[1448,1453,1455,1460,1462,1468,1470,1475],{"type":47,"tag":275,"props":1449,"children":1450},{},[1451],{"type":53,"value":1452},"Follow the loaded reference exactly.",{"type":53,"value":1454}," The reference docs are the byte-for-byte preserved contracts from the predecessor skills ",{"type":47,"tag":78,"props":1456,"children":1458},{"className":1457},[],[1459],{"type":53,"value":4},{"type":53,"value":1461}," (deploy\u002Fteardown\u002Fdebug) and ",{"type":47,"tag":78,"props":1463,"children":1465},{"className":1464},[],[1466],{"type":53,"value":1467},"rtvicv-api",{"type":53,"value":1469}," (REST API) — every step ordering invariant, bash-batching rule, box-rendering rule, and ",{"type":47,"tag":78,"props":1471,"children":1473},{"className":1472},[],[1474],{"type":53,"value":928},{"type":53,"value":1476}," contract is retained.",{"type":47,"tag":72,"props":1478,"children":1479},{},[1480,1485,1487,1493,1495,1501],{"type":47,"tag":275,"props":1481,"children":1482},{},[1483],{"type":53,"value":1484},"For DEPLOY",{"type":53,"value":1486},", the reference doc enforces its own startup contract: one-line acknowledgement → planning-tool call (",{"type":47,"tag":78,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":53,"value":1492},"TodoWrite",{"type":53,"value":1494}," array of 5 todos, OR 5 successive ",{"type":47,"tag":78,"props":1496,"children":1498},{"className":1497},[],[1499],{"type":53,"value":1500},"TaskCreate",{"type":53,"value":1502}," calls on newer Claude Code) → Step 1 question. Do not narrate, do not pre-flight, and never print \"loading TodoWrite\u002FTaskCreate\" or any deferred-tool resolution prose — the planning tool is loaded silently.",{"type":47,"tag":569,"props":1504,"children":1505},{},[],{"type":47,"tag":48,"props":1507,"children":1509},{"id":1508},"output-contract-deploy-flow",[1510],{"type":53,"value":1511},"Output contract — DEPLOY flow",{"type":47,"tag":56,"props":1513,"children":1514},{},[1515],{"type":53,"value":1516},"When running the DEPLOY \u002F TEARDOWN \u002F DEBUG flow, the agent MUST honour\nall four items below on every successful deploy. These are the user's\nonly feedback channel between steps; skipping any of them is a\nbehaviour regression.",{"type":47,"tag":1412,"props":1518,"children":1519},{},[1520,1588,1622,1740],{"type":47,"tag":72,"props":1521,"children":1522},{},[1523,1528,1530,1535,1537,1542,1544,1549,1551,1556,1558,1563,1564,1569,1571,1576,1578,1586],{"type":47,"tag":275,"props":1524,"children":1525},{},[1526],{"type":53,"value":1527},"Render every step's exit in a fixed-width box",{"type":53,"value":1529}," — Step 1 ",{"type":47,"tag":153,"props":1531,"children":1532},{},[1533],{"type":53,"value":1534},"Deploy\ntargets",{"type":53,"value":1536},", Step 2 ",{"type":47,"tag":153,"props":1538,"children":1539},{},[1540],{"type":53,"value":1541},"Pipeline configuration",{"type":53,"value":1543},", Step 3 ",{"type":47,"tag":153,"props":1545,"children":1546},{},[1547],{"type":53,"value":1548},"Container",{"type":53,"value":1550},", Step 4\n",{"type":47,"tag":153,"props":1552,"children":1553},{},[1554],{"type":53,"value":1555},"Apply configuration",{"type":53,"value":1557},", Step 5 ",{"type":47,"tag":153,"props":1559,"children":1560},{},[1561],{"type":53,"value":1562},"Plan",{"type":53,"value":725},{"type":47,"tag":153,"props":1565,"children":1566},{},[1567],{"type":53,"value":1568},"Results",{"type":53,"value":1570},". Not just the final\nsummary. The box is the user's step receipt. Geometry is fixed (see\n§ \"Universal box format\" below). Per-step ",{"type":47,"tag":275,"props":1572,"children":1573},{},[1574],{"type":53,"value":1575},"content",{"type":53,"value":1577}," rules (what\nrows go inside each box) live in ",{"type":47,"tag":426,"props":1579,"children":1580},{"href":428},[1581],{"type":47,"tag":78,"props":1582,"children":1584},{"className":1583},[],[1585],{"type":53,"value":428},{"type":53,"value":1587},"\nunder \"Step N box content rule\".",{"type":47,"tag":72,"props":1589,"children":1590},{},[1591,1602,1604,1613,1615,1620],{"type":47,"tag":275,"props":1592,"children":1593},{},[1594,1596],{"type":53,"value":1595},"After the Step 5 Results box, issue the Step 6 ",{"type":47,"tag":78,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":53,"value":1601},"AskUserQuestion",{"type":53,"value":1603},"\nfrom ",{"type":47,"tag":426,"props":1605,"children":1607},{"href":1606},"references\u002Fnext-steps.md",[1608],{"type":47,"tag":78,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":53,"value":1606},{"type":53,"value":1614}," § \"11.c\"\n— never replace it with a free-form ",{"type":47,"tag":153,"props":1616,"children":1617},{},[1618],{"type":53,"value":1619},"Next steps",{"type":53,"value":1621}," bullet list. The\nmenu is the deploy's exit handle: it lets the user run metrics,\nmanage streams, tail logs, or tear down with one click instead of\nhaving to remember curl URLs.",{"type":47,"tag":72,"props":1623,"children":1624},{},[1625,1635,1637,1645,1647],{"type":47,"tag":275,"props":1626,"children":1627},{},[1628,1630],{"type":53,"value":1629},"After the user picks a Step 6 bucket, issue the follow-up\n",{"type":47,"tag":78,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":53,"value":1601},{"type":53,"value":1636}," from ",{"type":47,"tag":426,"props":1638,"children":1639},{"href":1606},[1640],{"type":47,"tag":78,"props":1641,"children":1643},{"className":1642},[],[1644],{"type":53,"value":1606},{"type":53,"value":1646},"\n§ \"11.d\" — never substitute prose + ready-to-copy curl examples + a\nfree-text \"want me to run X?\" question. Each bucket has its own\nmenu of concrete actions; the user picks the action, then the skill\nemits the API box and runs the curl. Per-bucket follow-ups:\n",{"type":47,"tag":68,"props":1648,"children":1649},{},[1650,1696,1706,1730],{"type":47,"tag":72,"props":1651,"children":1652},{},[1653,1658,1660,1670,1672,1678,1680,1686,1688,1694],{"type":47,"tag":275,"props":1654,"children":1655},{},[1656],{"type":53,"value":1657},"Manage streams",{"type":53,"value":1659}," → Add \u002F Remove \u002F List. ",{"type":47,"tag":275,"props":1661,"children":1662},{},[1663,1665],{"type":53,"value":1664},"Remove builds its\noptions dynamically from ",{"type":47,"tag":78,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":53,"value":1298},{"type":53,"value":1671}," — one option\nper active stream labelled ",{"type":47,"tag":78,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":53,"value":1677},"\u003Ccamera_id> · \u003Ccamera_url>",{"type":53,"value":1679}," plus\n\"Remove ALL\" when ",{"type":47,"tag":78,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":53,"value":1685},"ACTIVE > 1",{"type":53,"value":1687}," (full spec: § \"",{"type":47,"tag":78,"props":1689,"children":1691},{"className":1690},[],[1692],{"type":53,"value":1693},"remove_streams",{"type":53,"value":1695},"\nsub-flow\").",{"type":47,"tag":72,"props":1697,"children":1698},{},[1699,1704],{"type":47,"tag":275,"props":1700,"children":1701},{},[1702],{"type":53,"value":1703},"Stop the deployment",{"type":53,"value":1705}," → Stop app \u002F Stop container \u002F Full teardown.",{"type":47,"tag":72,"props":1707,"children":1708},{},[1709,1714,1716,1721,1723,1728],{"type":47,"tag":275,"props":1710,"children":1711},{},[1712],{"type":53,"value":1713},"Check metrics & FPS",{"type":53,"value":1715}," → no follow-up; run ",{"type":47,"tag":78,"props":1717,"children":1719},{"className":1718},[],[1720],{"type":53,"value":1257},{"type":53,"value":1722},"\ndirectly after printing the ",{"type":47,"tag":78,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":53,"value":1268},{"type":53,"value":1729}," API box.",{"type":47,"tag":72,"props":1731,"children":1732},{},[1733,1738],{"type":47,"tag":275,"props":1734,"children":1735},{},[1736],{"type":53,"value":1737},"Check liveness \u002F readiness",{"type":53,"value":1739}," → no follow-up; probe all three\nhealth endpoints after printing their API boxes.",{"type":47,"tag":72,"props":1741,"children":1742},{},[1743,1748,1750,1758,1760,1765,1767,1776,1778,1784],{"type":47,"tag":275,"props":1744,"children":1745},{},[1746],{"type":53,"value":1747},"Render the FULL per-step content, not an overview row",{"type":53,"value":1749}," —\nrendering the box is necessary but not sufficient. Each step has a\nrow composition spec in\n",{"type":47,"tag":426,"props":1751,"children":1752},{"href":428},[1753],{"type":47,"tag":78,"props":1754,"children":1756},{"className":1755},[],[1757],{"type":53,"value":428},{"type":53,"value":1759},"\nunder \"Step N box content rule\". ",{"type":47,"tag":275,"props":1761,"children":1762},{},[1763],{"type":53,"value":1764},"Step 4 (Apply configuration) is\nwhere the agent collapses most often",{"type":53,"value":1766}," — its canonical\nper-use-case key list lives in\n",{"type":47,"tag":426,"props":1768,"children":1770},{"href":1769},"references\u002Fapply-config.md",[1771],{"type":47,"tag":78,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":53,"value":1769},{"type":53,"value":1777},"\n§ \"Per-use-case complete edit list\", and the agent MUST emit one\n",{"type":47,"tag":78,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":53,"value":1783},"✔ [section] key=value  — annotation",{"type":53,"value":1785}," row per key in that table for\nthe active use case + settings. A section with 5 keys → 5 rows; a\nsection with 6 keys → 6 rows. Never one overview row per section.",{"type":47,"tag":56,"props":1787,"children":1788},{},[1789],{"type":53,"value":1790},"Forbidden (these are the shortcuts the agent falls back to under\npressure, and they break the user's UX):",{"type":47,"tag":68,"props":1792,"children":1793},{},[1794,1821,1905,1987,2000,2041,2046,2051],{"type":47,"tag":72,"props":1795,"children":1796},{},[1797,1799,1804,1806,1811,1813,1819],{"type":53,"value":1798},"❌ ",{"type":47,"tag":275,"props":1800,"children":1801},{},[1802],{"type":53,"value":1803},"Internal tool-loading narration.",{"type":53,"value":1805}," Never print \"I need to load\nTodoWrite (a deferred tool the skill calls for the task widget)\",\n\"Loading TaskCreate…\", \"Calling ToolSearch for the planning tool…\",\nor any other text about resolving \u002F loading \u002F fetching deferred tools.\nThe agent loads tools ",{"type":47,"tag":275,"props":1807,"children":1808},{},[1809],{"type":53,"value":1810},"silently",{"type":53,"value":1812},". The user only ever sees the ",{"type":47,"tag":78,"props":1814,"children":1816},{"className":1815},[],[1817],{"type":53,"value":1818},"✔ \u003Cpinned-values>",{"type":53,"value":1820}," summary line followed by the widget — never any\nscaffolding around tool resolution.",{"type":47,"tag":72,"props":1822,"children":1823},{},[1824,1825,1845,1847,1852,1854,1866,1868,1874,1876,1881,1883,1888,1890,1896,1898,1903],{"type":53,"value":1798},{"type":47,"tag":275,"props":1826,"children":1827},{},[1828,1830,1835,1837,1843],{"type":53,"value":1829},"Collapsing all 5 deploy steps into a single ",{"type":47,"tag":78,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":53,"value":1500},{"type":53,"value":1836},"'s\n",{"type":47,"tag":78,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":53,"value":1842},"description",{"type":53,"value":1844}," field.",{"type":53,"value":1846}," When ",{"type":47,"tag":78,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":53,"value":1500},{"type":53,"value":1853}," is the available planning\ntool, issue ",{"type":47,"tag":275,"props":1855,"children":1856},{},[1857,1859,1864],{"type":53,"value":1858},"5 separate ",{"type":47,"tag":78,"props":1860,"children":1862},{"className":1861},[],[1863],{"type":53,"value":1500},{"type":53,"value":1865}," calls",{"type":53,"value":1867}," back-to-back (one per\nstep). See ",{"type":47,"tag":78,"props":1869,"children":1871},{"className":1870},[],[1872],{"type":53,"value":1873},"references\u002Ftask-list.md",{"type":53,"value":1875}," § \"Initial ",{"type":47,"tag":78,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":53,"value":1500},{"type":53,"value":1882}," calls\"\nfor the verbatim template. Same rule for ",{"type":47,"tag":78,"props":1884,"children":1886},{"className":1885},[],[1887],{"type":53,"value":1492},{"type":53,"value":1889}," — one call with\nall 5 todos in the ",{"type":47,"tag":78,"props":1891,"children":1893},{"className":1892},[],[1894],{"type":53,"value":1895},"todos:[…]",{"type":53,"value":1897}," array; never one todo whose ",{"type":47,"tag":78,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":53,"value":1575},{"type":53,"value":1904},"\nis a multi-line list.",{"type":47,"tag":72,"props":1906,"children":1907},{},[1908,1909,1922,1924,1930,1932,1938,1940,1946,1948,1953,1955,1960,1962,1967,1969,1974,1976,1985],{"type":53,"value":1798},{"type":47,"tag":275,"props":1910,"children":1911},{},[1912,1914,1920],{"type":53,"value":1913},"Silently choosing ",{"type":47,"tag":78,"props":1915,"children":1917},{"className":1916},[],[1918],{"type":53,"value":1919},"dynamic",{"type":53,"value":1921}," stream-mode.",{"type":53,"value":1923}," The skill default is\n",{"type":47,"tag":78,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":53,"value":1929},"stream_mode=static",{"type":53,"value":1931}," — the agent bakes auto-discovered ",{"type":47,"tag":78,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":53,"value":1937},"file:\u002F\u002F",{"type":53,"value":1939}," URLs\ninto the DS main config's ",{"type":47,"tag":78,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":53,"value":1945},"[source-list]",{"type":53,"value":1947}," block before app start.\nSwitch to ",{"type":47,"tag":78,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":53,"value":1919},{"type":53,"value":1954}," only when the user explicitly asks (\"add streams\nlater via REST\", \"use dynamic stream mode\") OR when they pick ",{"type":47,"tag":78,"props":1956,"children":1958},{"className":1957},[],[1959],{"type":53,"value":1919},{"type":53,"value":1961},"\nin the Step 2 AskQuestion. Picking ",{"type":47,"tag":78,"props":1963,"children":1965},{"className":1964},[],[1966],{"type":53,"value":1919},{"type":53,"value":1968}," for a generic \"deploy\nrtvi-cv with N streams\" query breaks the deploy rubric and the\nuser's ",{"type":47,"tag":78,"props":1970,"children":1972},{"className":1971},[],[1973],{"type":53,"value":544},{"type":53,"value":1975}," expectations. See\n",{"type":47,"tag":426,"props":1977,"children":1979},{"href":1978},"references\u002Fpipeline-config.md",[1980],{"type":47,"tag":78,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":53,"value":1978},{"type":53,"value":1986},"\n§ \"Defaults — the skill is static-mode by default\" for the full\nrationale.",{"type":47,"tag":72,"props":1988,"children":1989},{},[1990,1992,1998],{"type":53,"value":1991},"❌ A one-line ",{"type":47,"tag":78,"props":1993,"children":1995},{"className":1994},[],[1996],{"type":53,"value":1997},"✔ App ready in Ns, N streams, fps total Y",{"type":53,"value":1999}," in place of\nthe Step 5 Results box.",{"type":47,"tag":72,"props":2001,"children":2002},{},[2003,2005,2011,2012,2018,2019,2025,2026,2032,2034,2040],{"type":53,"value":2004},"❌ ASCII box-drawing chars (",{"type":47,"tag":78,"props":2006,"children":2008},{"className":2007},[],[2009],{"type":53,"value":2010},"+",{"type":53,"value":132},{"type":47,"tag":78,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":53,"value":2017},"-",{"type":53,"value":132},{"type":47,"tag":78,"props":2020,"children":2022},{"className":2021},[],[2023],{"type":53,"value":2024},"=",{"type":53,"value":132},{"type":47,"tag":78,"props":2027,"children":2029},{"className":2028},[],[2030],{"type":53,"value":2031},"*",{"type":53,"value":2033},") instead of light\nbox-drawing chars (",{"type":47,"tag":78,"props":2035,"children":2037},{"className":2036},[],[2038],{"type":53,"value":2039},"┌ ─ ┐ │ └ ┘",{"type":53,"value":101},{"type":47,"tag":72,"props":2042,"children":2043},{},[2044],{"type":53,"value":2045},"❌ Skipping Step 6 on the assumption \"the user knows what to do next\".",{"type":47,"tag":72,"props":2047,"children":2048},{},[2049],{"type":53,"value":2050},"❌ After Step 6, dumping a markdown wall of prose + multiple curl\nblocks + a closing \"want me to run any of these?\" — that's the\nshape the agent falls back to and it bypasses both the 11.d menu\nand the per-API-call box. The user picks from a menu; the skill\nshows the resolved API box; the skill runs it. No free-text Q.",{"type":47,"tag":72,"props":2052,"children":2053},{},[2054,2056],{"type":53,"value":2055},"❌ Step 4 overview collapses — these are explicitly banned by the\ndeploy doc's Step 4 content rule:\n",{"type":47,"tag":68,"props":2057,"children":2058},{},[2059,2106,2146,2164],{"type":47,"tag":72,"props":2060,"children":2061},{},[2062,2068,2070,2076,2077,2083,2085,2091,2092,2098,2099,2105],{"type":47,"tag":78,"props":2063,"children":2065},{"className":2064},[],[2066],{"type":53,"value":2067},"✔ Batch size 3 (tile grid: 1×3)",{"type":53,"value":2069}," → required: 5 separate rows\n(",{"type":47,"tag":78,"props":2071,"children":2073},{"className":2072},[],[2074],{"type":53,"value":2075},"[streammux] batch-size=3",{"type":53,"value":132},{"type":47,"tag":78,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":53,"value":2082},"[primary-gie] batch-size=3",{"type":53,"value":2084},",\n",{"type":47,"tag":78,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":53,"value":2090},"[source-list] max-batch-size=3",{"type":53,"value":132},{"type":47,"tag":78,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":53,"value":2097},"[tiled-display] rows=1",{"type":53,"value":2084},{"type":47,"tag":78,"props":2100,"children":2102},{"className":2101},[],[2103],{"type":53,"value":2104},"[tiled-display] columns=3",{"type":53,"value":101},{"type":47,"tag":72,"props":2107,"children":2108},{},[2109,2115,2117,2123,2124,2130,2131,2137,2138,2144],{"type":47,"tag":78,"props":2110,"children":2112},{"className":2111},[],[2113],{"type":53,"value":2114},"✔ Output sink eglsink",{"type":53,"value":2116}," → required: one row per sink key\n(4 keys for eglsink, e.g. ",{"type":47,"tag":78,"props":2118,"children":2120},{"className":2119},[],[2121],{"type":53,"value":2122},"[sink0] enable=1",{"type":53,"value":132},{"type":47,"tag":78,"props":2125,"children":2127},{"className":2126},[],[2128],{"type":53,"value":2129},"type=2",{"type":53,"value":2084},{"type":47,"tag":78,"props":2132,"children":2134},{"className":2133},[],[2135],{"type":53,"value":2136},"sync=0",{"type":53,"value":132},{"type":47,"tag":78,"props":2139,"children":2141},{"className":2140},[],[2142],{"type":53,"value":2143},"qos=0",{"type":53,"value":2145}," — read apply-config.md for the exact list).",{"type":47,"tag":72,"props":2147,"children":2148},{},[2149,2155,2157,2162],{"type":47,"tag":78,"props":2150,"children":2152},{"className":2151},[],[2153],{"type":53,"value":2154},"✔ Sources static (3 streams, http-port=9000)",{"type":53,"value":2156}," → required: six\nannotated ",{"type":47,"tag":78,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":53,"value":1945},{"type":53,"value":2163}," rows.",{"type":47,"tag":72,"props":2165,"children":2166},{},[2167,2173,2175,2180,2181,2186],{"type":47,"tag":78,"props":2168,"children":2170},{"className":2169},[],[2171],{"type":53,"value":2172},"✔ Tile grid 1 row × 3 cols",{"type":53,"value":2174}," (single row) → required: two\nrows, ",{"type":47,"tag":78,"props":2176,"children":2178},{"className":2177},[],[2179],{"type":53,"value":2097},{"type":53,"value":93},{"type":47,"tag":78,"props":2182,"children":2184},{"className":2183},[],[2185],{"type":53,"value":2104},{"type":53,"value":392},{"type":47,"tag":48,"props":2188,"children":2190},{"id":2189},"universal-box-format",[2191],{"type":53,"value":2192},"Universal box format",{"type":47,"tag":56,"props":2194,"children":2195},{},[2196,2198,2203,2205,2210],{"type":53,"value":2197},"The geometry contract for every step-exit box (Step 1 through Step 5\nResults). The same shape across every box; only the ",{"type":47,"tag":275,"props":2199,"children":2200},{},[2201],{"type":53,"value":2202},"title",{"type":53,"value":2204}," and the\n",{"type":47,"tag":275,"props":2206,"children":2207},{},[2208],{"type":53,"value":2209},"body rows",{"type":53,"value":2211}," change per step.",{"type":47,"tag":68,"props":2213,"children":2214},{},[2215,2256,2297,2364,2390,2408],{"type":47,"tag":72,"props":2216,"children":2217},{},[2218,2223,2225,2231,2233,2239,2241,2246,2248,2254],{"type":47,"tag":275,"props":2219,"children":2220},{},[2221],{"type":53,"value":2222},"Width: 128 chars",{"type":53,"value":2224}," corner-to-corner — ",{"type":47,"tag":78,"props":2226,"children":2228},{"className":2227},[],[2229],{"type":53,"value":2230},"┌",{"type":53,"value":2232}," at column 1, ",{"type":47,"tag":78,"props":2234,"children":2236},{"className":2235},[],[2237],{"type":53,"value":2238},"┐",{"type":53,"value":2240}," at\ncolumn 128. Wider terminals leave the box flush-left; do not stretch\nit. Inner content area is ",{"type":47,"tag":275,"props":2242,"children":2243},{},[2244],{"type":53,"value":2245},"124 chars",{"type":53,"value":2247}," (with one space margin on\neach side inside the ",{"type":47,"tag":78,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":53,"value":2253},"│",{"type":53,"value":2255}," borders).",{"type":47,"tag":72,"props":2257,"children":2258},{},[2259,2264,2265,2270,2272,2277,2278,2283,2284,2289,2290,2295],{"type":47,"tag":275,"props":2260,"children":2261},{},[2262],{"type":53,"value":2263},"Light box-drawing chars only",{"type":53,"value":355},{"type":47,"tag":78,"props":2266,"children":2268},{"className":2267},[],[2269],{"type":53,"value":2039},{"type":53,"value":2271},". No ",{"type":47,"tag":78,"props":2273,"children":2275},{"className":2274},[],[2276],{"type":53,"value":2010},{"type":53,"value":132},{"type":47,"tag":78,"props":2279,"children":2281},{"className":2280},[],[2282],{"type":53,"value":2017},{"type":53,"value":132},{"type":47,"tag":78,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":53,"value":2024},{"type":53,"value":2084},{"type":47,"tag":78,"props":2291,"children":2293},{"className":2292},[],[2294],{"type":53,"value":2031},{"type":53,"value":2296}," ASCII fallbacks.",{"type":47,"tag":72,"props":2298,"children":2299},{},[2300,2305,2306,2311,2313,2319,2321,2326],{"type":47,"tag":275,"props":2301,"children":2302},{},[2303],{"type":53,"value":2304},"Top border — title CENTERED",{"type":53,"value":355},{"type":47,"tag":78,"props":2307,"children":2309},{"className":2308},[],[2310],{"type":53,"value":2230},{"type":53,"value":2312}," + N₁ dashes + ",{"type":47,"tag":78,"props":2314,"children":2316},{"className":2315},[],[2317],{"type":53,"value":2318},"␣",{"type":53,"value":2320}," + title + ",{"type":47,"tag":78,"props":2322,"children":2324},{"className":2323},[],[2325],{"type":53,"value":2318},{"type":47,"tag":68,"props":2327,"children":2328},{},[2329],{"type":47,"tag":72,"props":2330,"children":2331},{},[2332,2334,2339,2341,2347,2349,2355,2356,2362],{"type":53,"value":2333},"N₂ dashes + ",{"type":47,"tag":78,"props":2335,"children":2337},{"className":2336},[],[2338],{"type":53,"value":2238},{"type":53,"value":2340},", where ",{"type":47,"tag":78,"props":2342,"children":2344},{"className":2343},[],[2345],{"type":53,"value":2346},"N₁ + N₂ + len(title) + 2 = 126",{"type":53,"value":2348},". Distribute\nthe pad: ",{"type":47,"tag":78,"props":2350,"children":2352},{"className":2351},[],[2353],{"type":53,"value":2354},"N₁ = floor((126 − len(title) − 2) \u002F 2)",{"type":53,"value":2084},{"type":47,"tag":78,"props":2357,"children":2359},{"className":2358},[],[2360],{"type":53,"value":2361},"N₂ = 126 − len(title) − 2 − N₁",{"type":53,"value":2363},". N₁ and N₂ differ by at most 1.",{"type":47,"tag":72,"props":2365,"children":2366},{},[2367,2372,2374,2380,2382,2388],{"type":47,"tag":275,"props":2368,"children":2369},{},[2370],{"type":53,"value":2371},"Body",{"type":53,"value":2373},": one ",{"type":47,"tag":78,"props":2375,"children":2377},{"className":2376},[],[2378],{"type":53,"value":2379},"│ \u003Ccontent padded to inner-content 124> │",{"type":53,"value":2381}," per fact.\nEach fact line uses the ",{"type":47,"tag":78,"props":2383,"children":2385},{"className":2384},[],[2386],{"type":53,"value":2387},"  ✔ \u003Ckey-padded-to-13>  \u003Cvalue>",{"type":53,"value":2389}," form (two\nspaces in, glyph, key right-padded to 13, two spaces, value).",{"type":47,"tag":72,"props":2391,"children":2392},{},[2393,2398,2400,2406],{"type":47,"tag":275,"props":2394,"children":2395},{},[2396],{"type":53,"value":2397},"Blank lines between groups",{"type":53,"value":2399},": render ",{"type":47,"tag":78,"props":2401,"children":2403},{"className":2402},[],[2404],{"type":53,"value":2405},"│ \u003C124 spaces> │",{"type":53,"value":2407}," between\nlogical groups (e.g. Identity \u002F Model \u002F Videos in Step 1) so the\nuser can scan the box at a glance.",{"type":47,"tag":72,"props":2409,"children":2410},{},[2411,2416,2417,2423,2425,2431],{"type":47,"tag":275,"props":2412,"children":2413},{},[2414],{"type":53,"value":2415},"Bottom border",{"type":53,"value":355},{"type":47,"tag":78,"props":2418,"children":2420},{"className":2419},[],[2421],{"type":53,"value":2422},"└",{"type":53,"value":2424}," + 126 dashes + ",{"type":47,"tag":78,"props":2426,"children":2428},{"className":2427},[],[2429],{"type":53,"value":2430},"┘",{"type":53,"value":2432}," — solid border, no title.",{"type":47,"tag":56,"props":2434,"children":2435},{},[2436],{"type":53,"value":2437},"Standard step titles (used at the top of each step's box):",{"type":47,"tag":941,"props":2439,"children":2442},{"className":2440,"code":2441,"language":53},[944],"┌─────────────────────────────────────────────────────── Deploy targets ───────────────────────────────────────────────────────┐\n┌─────────────────────────────────────────────────── Pipeline configuration ───────────────────────────────────────────────────┐\n┌───────────────────────────────────────────────────────── Container ──────────────────────────────────────────────────────────┐\n┌──────────────────────────────────────────────────── Apply configuration ─────────────────────────────────────────────────────┐\n┌──────────────────────────────────────────────── Perception Application — Plan ───────────────────────────────────────────────┐\n┌────────────────────────────────────────────── Perception Application — Results ──────────────────────────────────────────────┐\n",[2443],{"type":47,"tag":78,"props":2444,"children":2445},{"__ignoreMap":949},[2446],{"type":53,"value":2441},{"type":47,"tag":56,"props":2448,"children":2449},{},[2450,2452,2457,2459,2467],{"type":53,"value":2451},"Per-step content rules (which rows go in which box, mode-aware row\nhiding, the apply-config sectioned layout, the Step 5 PLAN-then-RESULT\npattern, the Step 3 ",{"type":47,"tag":78,"props":2453,"children":2455},{"className":2454},[],[2456],{"type":53,"value":1326},{"type":53,"value":2458}," synthesis requirement) live in\n",{"type":47,"tag":426,"props":2460,"children":2461},{"href":428},[2462],{"type":47,"tag":78,"props":2463,"children":2465},{"className":2464},[],[2466],{"type":53,"value":428},{"type":53,"value":2468},"\nunder \"Step N box content rule\" — read those when rendering the\ncorresponding step.",{"type":47,"tag":48,"props":2470,"children":2472},{"id":2471},"quick-triggers-mnemonic",[2473],{"type":53,"value":2474},"Quick triggers (mnemonic)",{"type":47,"tag":579,"props":2476,"children":2477},{},[2478,2493],{"type":47,"tag":583,"props":2479,"children":2480},{},[2481],{"type":47,"tag":587,"props":2482,"children":2483},{},[2484,2489],{"type":47,"tag":591,"props":2485,"children":2486},{},[2487],{"type":53,"value":2488},"Phrase",{"type":47,"tag":591,"props":2490,"children":2491},{},[2492],{"type":53,"value":600},{"type":47,"tag":607,"props":2494,"children":2495},{},[2496,2512,2528,2545,2562,2578,2594,2610],{"type":47,"tag":587,"props":2497,"children":2498},{},[2499,2508],{"type":47,"tag":614,"props":2500,"children":2501},{},[2502],{"type":47,"tag":78,"props":2503,"children":2505},{"className":2504},[],[2506],{"type":53,"value":2507},"deploy rtvicv warehouse 2d with 4 streams and display",{"type":47,"tag":614,"props":2509,"children":2510},{},[2511],{"type":53,"value":658},{"type":47,"tag":587,"props":2513,"children":2514},{},[2515,2524],{"type":47,"tag":614,"props":2516,"children":2517},{},[2518],{"type":47,"tag":78,"props":2519,"children":2521},{"className":2520},[],[2522],{"type":53,"value":2523},"run smartcity gdino on gpu 1",{"type":47,"tag":614,"props":2525,"children":2526},{},[2527],{"type":53,"value":658},{"type":47,"tag":587,"props":2529,"children":2530},{},[2531,2540],{"type":47,"tag":614,"props":2532,"children":2533},{},[2534],{"type":47,"tag":78,"props":2535,"children":2537},{"className":2536},[],[2538],{"type":53,"value":2539},"stop the perception container",{"type":47,"tag":614,"props":2541,"children":2542},{},[2543],{"type":53,"value":2544},"TEARDOWN (deploy doc)",{"type":47,"tag":587,"props":2546,"children":2547},{},[2548,2557],{"type":47,"tag":614,"props":2549,"children":2550},{},[2551],{"type":47,"tag":78,"props":2552,"children":2554},{"className":2553},[],[2555],{"type":53,"value":2556},"rtvi-cv healthcheck failing",{"type":47,"tag":614,"props":2558,"children":2559},{},[2560],{"type":53,"value":2561},"DEBUG (deploy doc + troubleshooting)",{"type":47,"tag":587,"props":2563,"children":2564},{},[2565,2574],{"type":47,"tag":614,"props":2566,"children":2567},{},[2568],{"type":47,"tag":78,"props":2569,"children":2571},{"className":2570},[],[2572],{"type":53,"value":2573},"add a stream to rtvi-cv",{"type":47,"tag":614,"props":2575,"children":2576},{},[2577],{"type":53,"value":879},{"type":47,"tag":587,"props":2579,"children":2580},{},[2581,2590],{"type":47,"tag":614,"props":2582,"children":2583},{},[2584],{"type":47,"tag":78,"props":2585,"children":2587},{"className":2586},[],[2588],{"type":53,"value":2589},"is rtvi-cv ready on localhost:9000",{"type":47,"tag":614,"props":2591,"children":2592},{},[2593],{"type":53,"value":879},{"type":47,"tag":587,"props":2595,"children":2596},{},[2597,2606],{"type":47,"tag":614,"props":2598,"children":2599},{},[2600],{"type":47,"tag":78,"props":2601,"children":2603},{"className":2602},[],[2604],{"type":53,"value":2605},"get rtvi-cv metrics",{"type":47,"tag":614,"props":2607,"children":2608},{},[2609],{"type":53,"value":879},{"type":47,"tag":587,"props":2611,"children":2612},{},[2613,2622],{"type":47,"tag":614,"props":2614,"children":2615},{},[2616],{"type":47,"tag":78,"props":2617,"children":2619},{"className":2618},[],[2620],{"type":53,"value":2621},"generate text embeddings via rtvi-cv",{"type":47,"tag":614,"props":2623,"children":2624},{},[2625],{"type":53,"value":879},{"type":47,"tag":56,"props":2627,"children":2628},{},[2629],{"type":53,"value":2630},"bump:1",{"items":2632,"total":2787},[2633,2651,2667,2678,2690,2702,2715,2729,2742,2753,2767,2776],{"slug":2634,"name":2634,"fn":2635,"description":2636,"org":2637,"tags":2638,"stars":2648,"repoUrl":2649,"updatedAt":2650},"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},[2639,2642,2645],{"name":2640,"slug":2641,"type":15},"Documentation","documentation",{"name":2643,"slug":2644,"type":15},"MCP","mcp",{"name":2646,"slug":2647,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2652,"name":2652,"fn":2653,"description":2654,"org":2655,"tags":2656,"stars":2664,"repoUrl":2665,"updatedAt":2666},"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},[2657,2660,2661],{"name":2658,"slug":2659,"type":15},"Containers","containers",{"name":13,"slug":14,"type":15},{"name":2662,"slug":2663,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2668,"name":2668,"fn":2669,"description":2670,"org":2671,"tags":2672,"stars":2664,"repoUrl":2665,"updatedAt":2677},"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},[2673,2676],{"name":2674,"slug":2675,"type":15},"CI\u002FCD","ci-cd",{"name":13,"slug":14,"type":15},"2026-07-14T05:25:59.97109",{"slug":2679,"name":2679,"fn":2680,"description":2681,"org":2682,"tags":2683,"stars":2664,"repoUrl":2665,"updatedAt":2689},"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},[2684,2685,2686],{"name":2674,"slug":2675,"type":15},{"name":13,"slug":14,"type":15},{"name":2687,"slug":2688,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2691,"name":2691,"fn":2692,"description":2693,"org":2694,"tags":2695,"stars":2664,"repoUrl":2665,"updatedAt":2701},"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},[2696,2697,2698],{"name":24,"slug":25,"type":15},{"name":2687,"slug":2688,"type":15},{"name":2699,"slug":2700,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2703,"name":2703,"fn":2704,"description":2705,"org":2706,"tags":2707,"stars":2664,"repoUrl":2665,"updatedAt":2714},"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},[2708,2711],{"name":2709,"slug":2710,"type":15},"Best Practices","best-practices",{"name":2712,"slug":2713,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2716,"name":2716,"fn":2717,"description":2718,"org":2719,"tags":2720,"stars":2664,"repoUrl":2665,"updatedAt":2728},"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},[2721,2724,2727],{"name":2722,"slug":2723,"type":15},"Machine Learning","machine-learning",{"name":2725,"slug":2726,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2730,"name":2730,"fn":2731,"description":2732,"org":2733,"tags":2734,"stars":2664,"repoUrl":2665,"updatedAt":2741},"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},[2735,2738],{"name":2736,"slug":2737,"type":15},"QA","qa",{"name":2739,"slug":2740,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2743,"name":2743,"fn":2744,"description":2745,"org":2746,"tags":2747,"stars":2664,"repoUrl":2665,"updatedAt":2752},"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},[2748,2749],{"name":13,"slug":14,"type":15},{"name":2750,"slug":2751,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2754,"name":2754,"fn":2755,"description":2756,"org":2757,"tags":2758,"stars":2664,"repoUrl":2665,"updatedAt":2766},"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},[2759,2762,2763],{"name":2760,"slug":2761,"type":15},"Code Review","code-review",{"name":2687,"slug":2688,"type":15},{"name":2764,"slug":2765,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2768,"name":2768,"fn":2769,"description":2770,"org":2771,"tags":2772,"stars":2664,"repoUrl":2665,"updatedAt":2775},"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},[2773,2774],{"name":2736,"slug":2737,"type":15},{"name":2739,"slug":2740,"type":15},"2026-07-14T05:25:54.928983",{"slug":2777,"name":2777,"fn":2778,"description":2779,"org":2780,"tags":2781,"stars":2664,"repoUrl":2665,"updatedAt":2786},"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},[2782,2785],{"name":2783,"slug":2784,"type":15},"Automation","automation",{"name":2674,"slug":2675,"type":15},"2026-07-30T05:29:03.275638",496,{"items":2789,"total":2885},[2790,2807,2817,2831,2841,2856,2871],{"slug":2791,"name":2791,"fn":2792,"description":2793,"org":2794,"tags":2795,"stars":26,"repoUrl":27,"updatedAt":2806},"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},[2796,2799,2802,2803],{"name":2797,"slug":2798,"type":15},"Data Analysis","data-analysis",{"name":2800,"slug":2801,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":2804,"slug":2805,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":2808,"name":2808,"fn":2809,"description":2810,"org":2811,"tags":2812,"stars":26,"repoUrl":27,"updatedAt":2816},"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},[2813,2814,2815],{"name":13,"slug":14,"type":15},{"name":2750,"slug":2751,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":2818,"name":2818,"fn":2819,"description":2820,"org":2821,"tags":2822,"stars":26,"repoUrl":27,"updatedAt":2830},"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},[2823,2826,2827],{"name":2824,"slug":2825,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":2828,"slug":2829,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":2832,"name":2832,"fn":2833,"description":2834,"org":2835,"tags":2836,"stars":26,"repoUrl":27,"updatedAt":2840},"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},[2837,2838,2839],{"name":2797,"slug":2798,"type":15},{"name":9,"slug":8,"type":15},{"name":2739,"slug":2740,"type":15},"2026-07-17T05:29:03.913266",{"slug":2842,"name":2842,"fn":2843,"description":2844,"org":2845,"tags":2846,"stars":26,"repoUrl":27,"updatedAt":2855},"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},[2847,2848,2851,2852],{"name":2783,"slug":2784,"type":15},{"name":2849,"slug":2850,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":2853,"slug":2854,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":2857,"name":2857,"fn":2858,"description":2859,"org":2860,"tags":2861,"stars":26,"repoUrl":27,"updatedAt":2870},"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},[2862,2863,2866,2867],{"name":13,"slug":14,"type":15},{"name":2864,"slug":2865,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":2868,"slug":2869,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":2872,"name":2872,"fn":2873,"description":2874,"org":2875,"tags":2876,"stars":26,"repoUrl":27,"updatedAt":2884},"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},[2877,2878,2881],{"name":9,"slug":8,"type":15},{"name":2879,"slug":2880,"type":15},"Quantum Computing","quantum-computing",{"name":2882,"slug":2883,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]