Source profileQuality 90/100Review permissions

NVIDIA/skills/skills/vss-manage-alerts/SKILL.md

vss-manage-alerts

Use for VSS alert workflows — real-time monitoring, Alert-Bridge subscriptions, Slack notifications, incident queries, camera onboarding. Not for non-alert analytics.

Source repository stars
3,106
Declared platforms
0
Static risk flags
3
Last source update
2026-08-25
Source checked
2026-08-26

Decision brief

What it does: where it fits

Operate the VSS alert pipeline (mode detection, Alert-Bridge subscriptions, Slack notifications, queries, camera onboarding, verifier-prompt customization).

Best for

  • Start/stop a real-time alert on a sensor ("Start real-time alert for boxes dropped on warehousesample")
  • Create/list/stop realtime subscription rules on Alert Bridge
  • Set up or manage Slack incident notifications

Not for

  • Connection refused → microservice not running: probe /docs or /health, redeploy via vss-deploy-profile.
  • HTTP 401/403 on NGC pulls → missing/expired NGCCLIAPIKEY: docker login nvcr.io and re-export the key.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/NVIDIA/skills --skill "skills/vss-manage-alerts"
Safe inspection promptEditorial

Inspect the Agent Skill "vss-manage-alerts" from https://github.com/NVIDIA/skills/blob/994b87022af46deada9fdb79fc560a77aaf931ce/skills/vss-manage-alerts/SKILL.md at commit 994b87022af46deada9fdb79fc560a77aaf931ce. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Instructions

    Follow 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/ and helper scripts live in scripts/ — call them via runscript when the…

    Follow 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/ and helper…
  2. 02

    Step 1 — Detect the Currently Deployed Mode

    Before running any alert workflow, check which mode is live. Use CV-only containers as the signal — vss-rtvi-vlm is not a reliable mode signal because it runs in both modes.

    Before running any alert workflow, check which mode is live. Use CV-only containers as the signal — vss-rtvi-vlm is not a reliable mode signal because it runs in both modes.
  3. 03

    CV verification mode (vss-behavior-analytics + vss-rtvi-cv are CV-only)

    docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics && echo "mode=CV"

    docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics && echo "mode=CV"
  4. 04

    Step 2 — Route by Deployed Mode

    Always confirm before triggering a redeploy. A mode switch stops all currently-running monitoring and restarts services.

    Workflow E (Slack) — Slack-specific keywords (slack, webhook + slack, bot token, slack channel). notify alone is not sufficient.Workflow D (Subscriptions) — sensor plus a detection condition, rule CRUD keywords (rule, subscription, rule ID), or stopping/deleting a named alert by type/condition ("stop the PPE alert", "delete the collision rule").…Workflow B (VLM monitoring) — generic start/stop on a sensor with no detection condition and no alert-type qualifier ("start/stop real-time alert for sensor X"). A stop that names a type ("stop the PPE alert") is a rule…
  5. 05

    Workflow A — CV Mode (-m verification / MODE=2dcv)

    CV alerts are deployment-driven, not request-driven — there is no agent call to "create" one.

    Check if the sensor is in VIOS via vss-manage-video-io-storage's GET /sensor/list (idempotent — don't blindly POST /sensor/add).If missing, onboard via that skill's POST /sensor/add. The CV pipeline auto-picks up the stream once registered and online.Confirm online: curl -s "http:///vst/api/v1/sensor//status" | jq .

Permission review

Static risk signals and limitations

Network access

medium · line 49

The documentation includes network, browsing, or remote request actions.

curl -sf --max-time 5 "http://${HOST_IP}:8000/docs" >/dev/null \

Runs scripts

medium · line 75

The documentation asks the agent to run terminal commands or scripts.

docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics && echo "mode=CV"

Runs scripts

medium · line 78

The documentation asks the agent to run terminal commands or scripts.

docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics || \

Network access

medium · line 160

The documentation includes network, browsing, or remote request actions.

AGENT="http://<AGENT_ENDPOINT>" # default http://localhost:8000 on the alerts profile

Sends data out

high · line 162

The documentation includes sending, uploading, or posting data to a remote service.

curl -s -X POST "$AGENT/generate" \

Sends data out

high · line 198

The documentation includes sending, uploading, or posting data to a remote service.

curl -s -X POST "$AGENT/generate" -H "Content-Type: application/json" \

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars3,106SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
NVIDIA/skills
Skill path
skills/vss-manage-alerts/SKILL.md
Commit
994b87022af46deada9fdb79fc560a77aaf931ce
License
Apache-2.0
Collected
2026-08-26
Default branch
main
View the original SKILL.md

Purpose

Operate the VSS alert pipeline (mode detection, Alert-Bridge subscriptions, Slack notifications, queries, camera onboarding, verifier-prompt customization).

Prerequisites

  • Active VSS deployment reachable on $HOST_IP (see vss-deploy-profile and references/).
  • NGC credentials in $NGC_CLI_API_KEY and $NVIDIA_API_KEY for any image pulls.
  • curl, jq, and Docker available on the caller.

Instructions

Follow 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/ and helper scripts live in scripts/ — call them via run_script when the skill points to a script by name.

Examples

Runnable end-to-end scenarios live under evals/ (each *.json manifest); inline curl blocks appear in each workflow below. Replay with nv-base validate <this-skill-dir> --agent-eval.

Limitations

Requires the matching VSS profile/microservice deployed and reachable. NGC-hosted models/NIMs are subject to rate-limits, GPU-memory needs, and license terms; concurrency and storage limits depend on host hardware and the profile's compose file.

Troubleshooting

  • Connection refused → microservice not running: probe /docs or /health, redeploy via vss-deploy-profile.
  • HTTP 401/403 on NGC pulls → missing/expired NGC_CLI_API_KEY: docker login nvcr.io and re-export the key.
  • OOM / model load failure → insufficient GPU memory: use a smaller variant or docker compose down to free GPUs.

VSS Alert Management

The alerts profile runs in one of two modes (chosen at /vss-deploy-profile -p alerts -m {verification,real-time}) — see The Two Modes table below. This skill routes by deployed mode + user intent (monitoring vs subscription CRUD vs Slack webhook).

When to Use

  • Start/stop a real-time alert on a sensor ("Start real-time alert for boxes dropped on warehouse_sample")
  • Create/list/stop realtime subscription rules on Alert Bridge
  • Set up or manage Slack incident notifications
  • List or query detected incidents / alerts; check verdicts (confirmed/rejected/unverified)
  • Add a new camera to the alerts pipeline; customize VLM-verifier prompts (CV mode)

Deployment prerequisite

Requires the VSS alerts profile on $HOST_IP in either verification (CV) or real-time (VLM) mode.

# Either vss-rtvi-cv (CV mode) OR vss-rtvi-vlm (VLM mode) must be present.
curl -sf --max-time 5 "http://${HOST_IP}:8000/docs" >/dev/null \
  && docker ps --format '{{.Names}}' \
     | grep -qE '^(vss-rtvi-cv|vss-rtvi-vlm)$'

If the probe fails, ask which mode to deploy and hand off to /vss-deploy-profile -p alerts -m <mode> (decline → stop; pre-authorized autonomous deploy → run directly with verification by default). If it passes, detect the mode per Step 1.


The Two Modes (Deploy-Time Choice)

ModeDeploy flagEnv (.env)What runsWhat is available
CV (verification)-m verificationMODE=2d_cvRT-CV (Grounding DINO) + Behavior Analytics + alert-bridge VLM verifier + rtvi-vlmBoth static CV pipeline (Workflow A) and dynamic VLM real-time alerts (Workflows B/D)
VLM (real-time)-m real-timeMODE=2d_vlmalert-bridge + rtvi-vlmOnly dynamic VLM real-time alerts (Workflows B/D) and alert-bridge backend. No static CV pipeline.

Switching modes uses the vss-deploy-profile teardown + deploy flow with the other -m flag (VLM → CV adds the CV pipeline; CV → VLM tears it down). rtvi-vlm runs in both modes.


Step 1 — Detect the Currently Deployed Mode

Before running any alert workflow, check which mode is live. Use CV-only containers as the signal — vss-rtvi-vlm is not a reliable mode signal because it runs in both modes.

# CV verification mode (vss-behavior-analytics + vss-rtvi-cv are CV-only)
docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics && echo "mode=CV"

# VLM real-time mode (no CV pipeline; vss-rtvi-vlm still runs)
docker ps --format '{{.Names}}' | grep -qx vss-behavior-analytics || \
  docker ps --format '{{.Names}}' | grep -qx vss-rtvi-vlm && echo "mode=VLM"

If vss-behavior-analytics is present → CV mode (which also has vss-rtvi-vlm). If only vss-rtvi-vlm is present (and no CV pipeline) → VLM mode. If neither matches, the alerts profile is not deployed — direct the user to the vss-deploy-profile skill.

Alternative signal (preferred when docker ps isn't accessible): check the profile's generated.env:

grep -E '^MODE=' deploy/docker/developer-profiles/dev-profile-alerts/generated.env
# MODE=2d_cv   → CV mode (full superset)
# MODE=2d_vlm  → VLM real-time mode (vss-rtvi-vlm only; no vss-rtvi-cv)

Step 2 — Route by Deployed Mode

Deployed modeUser asks about…Action
VLM real-timeSlack webhook setup/status/test/stopWorkflow Ereferences/alert-notify.md
VLM real-timerule CRUD, or a realtime alert on a sensor with a detection condition, or stop/delete a named alert (by alert_type/condition or rule ID)Workflow Dreferences/alert-subscriptions.md (incl. two-step stop/confirm)
CV verificationsubscription/rule CRUD or Slack/notification setupRefuse — see canonical refusal text below
CV or VLMgeneric start/stop monitoring without a detection conditionWorkflow B (VLM) — call the VSS Agent; rtvi-vlm runs in both modes
CV or VLMincident lookup / what happened (recent alerts, time-range, casual "any alerts today?")Workflow C (Query) — works on both; always run the query, never answer from memory
CVstatic CV alert onboarding / verdict-prompt customizationWorkflow A (CV) — onboard RTSP via vss-manage-video-io-storage; pipeline auto-picks it up
VLMa CV / behavior-analytics / PPE-rule alert needing the static CV pipelineRedeployment required — confirm first, then vss-deploy-profile -m verification

Always confirm before triggering a redeploy. A mode switch stops all currently-running monitoring and restarts services.

Intent precedence (first match wins)

  1. Workflow E (Slack) — Slack-specific keywords (slack, webhook + slack, bot token, slack channel). notify alone is not sufficient.
  2. Workflow D (Subscriptions) — sensor plus a detection condition, rule CRUD keywords (rule, subscription, rule ID), or stopping/deleting a named alert by type/condition ("stop the PPE alert", "delete the collision rule"). A named alert_type/condition = an existing rule → D's two-step stop protocol (GET /api/v1/realtime → yes/no confirm → delete), never Workflow B.
  3. Workflow B (VLM monitoring) — generic start/stop on a sensor with no detection condition and no alert-type qualifier ("start/stop real-time alert for sensor X"). A stop that names a type ("stop the PPE alert") is a rule stop → Workflow D.
  4. Workflow C (Query) — incident lookup / what happened (show/list incidents, recent alerts, time-range queries, and casual "any alerts…?" / "any alerts so far today?" / "what's been triggered?" phrasings). Bare alerts (without rule/subscription/active rules) means incidents → Workflow C, never Workflow D.
  5. Workflow A (CV) — CV deployment handling for anything not matched above.

alerts vs alert rules (C vs D) — pick exactly one, never both: what happened / has been triggered (incidents) → Workflow C (POST /generate). What rules/subscriptions are configured or activeWorkflow D (the bare GET /api/v1/realtime, no /incidents). Bare alerts = incidents (C); alert rules / subscriptions / active rules = inventory (D). Never answer from memory; run the one correct call — full endpoint detail in Workflow C below.

Disambiguation (B vs D): if a sensor is named with start/monitor language but the detection condition is unclear, ask:

"Do you want me to (a) create a persistent alert rule on Alert Bridge that keeps running until you delete it, or (b) start a one-time monitoring session via the VSS Agent?"

Stop routing (B vs D): "Stop the <type> alert" (names an alert_type/condition like PPE, collision, fire) = stop a subscription ruleWorkflow D (find via GET /api/v1/realtime, then the two-step stop/confirm protocol in references/alert-subscriptions.md; do not call POST /generate). A bare "stop real-time alert / stop monitoring on <sensor>" with no type qualifier = Workflow B.

If a prompt mixes workflows ("start monitoring and send to Slack"), ask one clarifying question to split execution order.

CV-mode refusal text for D and E intents

When the deployed mode is CV verification and the user asks for an alert-subscription or Slack/notification intent, refuse with this message verbatim:

"Alert subscriptions and Slack notifications are only supported in VLM real-time mode. Your current deployment is <CV verification | not deployed>. To use these features, redeploy with /vss-deploy-profile -p alerts -m real-time (note: switching tears down current CV monitoring)."

No auto-redeploy. The user decides whether to switch modes.


Prereq for Either Mode: Sensor Must Be in VIOS

Both modes require the camera registered in VIOS first (via the vss-manage-video-io-storage skill):

  • RTSP URL / IP camera → add it with POST /sensor/add (that skill's Section 6); record the sensorId / name.
  • Named existing sensor → confirm it appears in GET /sensor/list before proceeding.

On CV, adding the RTSP is the entire onboarding step (pipeline auto-picks it up). On VLM, it is a prerequisite to Workflow B.


The Agent /generate Endpoint

All VLM-flow actions and all query actions go through the VSS Agent's natural-language endpoint:

AGENT="http://<AGENT_ENDPOINT>"   # default http://localhost:8000 on the alerts profile

curl -s -X POST "$AGENT/generate" \
  -H "Content-Type: application/json" \
  -d '{"input_message": "<natural-language request>"}' | jq .

Endpoint resolution: use the agent endpoint from the active VSS deployment context. If unavailable, ask the user. Do not discover via filesystem.

Availability check: curl -sf --connect-timeout 5 "$AGENT/docs".

Do not call the rtvi-vlm microservice endpoints directly — always go through the agent. The agent internally dispatches to rtvi_vlm_alert, rtvi_prompt_gen, and video_analytics_mcp.get_incidents.


Workflow A — CV Mode (-m verification / MODE=2d_cv)

CV alerts are deployment-driven, not request-driven — there is no agent call to "create" one.

  1. Check if the sensor is in VIOS via vss-manage-video-io-storage's GET /sensor/list (idempotent — don't blindly POST /sensor/add).
  2. If missing, onboard via that skill's POST /sensor/add. The CV pipeline auto-picks up the stream once registered and online.
  3. Confirm online: curl -s "http://<VST_ENDPOINT>/vst/api/v1/sensor/<sensorId>/status" | jq .
  4. Alerts land in Elasticsearch (Behavior Analytics → alert-bridge verification per alert_type_config.json). Query with Workflow C.

A static-CV-pipeline alert on a VLM-only deployment is a mode mismatch — see the routing table above.


Workflow B — VLM Real-time Monitoring (CV or VLM mode)

Generic start / stop intents through the VSS Agent for a named sensor without a detection condition (if a condition is present, route to Workflow D). rtvi-vlm runs in both modes.

# start: input_message = "Start real-time alert for sensor <id>"
# stop:  input_message = "Stop real-time alert for sensor <id>"
curl -s -X POST "$AGENT/generate" -H "Content-Type: application/json" \
  -d '{"input_message": "<start|stop> real-time alert for sensor <id>"}' | jq .

Under the hood: rtvi_prompt_genrtvi_vlm_alert action="start". Every chunk is captioned; a chunk whose VLM response contains yes/true (case-insensitive) publishes an incident to mdx-vlm-incidents. Prompts must force a Yes/No answer. A static-CV-pipeline request on a VLM-only deployment is a mode mismatch — see the routing table.


Workflow D — Alert Subscriptions (VLM real-time mode only)

Create / list / delete persistent realtime alert rules on Alert Bridge. Route here when the prompt has rule keywords (rule, subscription, a rule ID) or when it pairs a specific sensor with a specific detection condition (e.g. "Set up a realtime alert on warehouse-dock-1 for PPE violations", "Watch sensor entrance-1 for tailgating", "Stop rule 496aebd1-…").

Not here: generic start/stop without a condition (→ Workflow B) or Slack operations (→ Workflow E).

Load and follow references/alert-subscriptions.md as the authoritative playbook for subscription CRUD. VLM real-time mode only; refuse with the canonical refusal text on CV.


Workflow E — Slack Notifications (VLM real-time mode only)

Use when the user explicitly mentions Slack or the webhook relay (start/stop webhook server, check status/health, send a test message, set Slack channel/token). The word notify alone is not enough.

alert-notify (port 9090) ≠ vss-alert-bridge (/api/v1/realtime). Do NOT touch vss-alert-bridge for Slack ops.

Routes here: "Set up Slack notifications", "Check if alert-notify is running", "Send a test alert to Slack". Does not route here: "Notify me when someone enters the zone" (→ D/B), "Alert and notify on my phone" (ambiguous — ask).

Load and follow references/alert-notify.md. Code lives in scripts/alert-notify/. VLM real-time mode only.


Workflow C — Query / List Alerts (works on either mode)

Both CV- and VLM-generated alerts land in Elasticsearch and are queryable via the agent's video_analytics_mcp.get_incidents tool. POST natural-language requests to $AGENT/generate — "Show me recent alerts for sensor X", "List confirmed alerts from the last hour", "Show collision incidents from Camera_02 between <ISO> and <ISO>".

Casual phrasings route here too. Questions like "Any alerts so far today?", "Any alerts today?", "What's been triggered?", or "Anything detected lately?" are incident queries — issue a POST /generate (e.g. {"input_message": "List alerts from today"}) and summarize the result. Never answer these from memory and never reply "no alerts" without running the query. A bare "alerts" question is always an incident lookup (Workflow C), not a subscription-rule listing (Workflow D).

Do NOT list subscription rules for an incident query. The bare GET /api/v1/realtime (no /incidents) lists rules (Workflow D) and is wrong for "what happened" — never call/probe it or load the Workflow D playbook for an incident query.

Empty result is a valid answer. If no incidents match (e.g. a freshly deployed system with no activity yet), report that none were found / the count is 0 for the requested period and STOP — do not fall back to listing rules or hunting other endpoints.

For richer / non-natural-language filtering (sensor-level, time-series, counts) use the vss-query-analytics skill (VA-MCP on port 9901).

Verdict interpretation & CV verifier prompts (CV mode only)

CV alerts carry a VLM verification verdict (confirmed / rejected / unverified); VLM real-time incidents have no separate verdict (the trigger is itself a Yes/No VLM answer). CV-path verifier prompts are customizable via alert_type_config.json (restart alert-bridge to apply). See references/cv-verifier-prompts.md for the verdict table, field meanings, and the prompt-customization rules.


Cross-Skill Links

TaskSkill
Deploy, redeploy, or switch alert modevss-deploy-profile-p alerts -m {verification,real-time}
Add an RTSP/IP camera, list sensors, snapshots, clipsvss-manage-video-io-storage (Section 6 for Add Sensor)
Time-range incident / occupancy / PPE metrics from Elasticsearchvss-query-analytics (VA-MCP :9901)
Detailed incident report from an alertvss-generate-video-report
Subscriptions / Slack sub-workflowsreferences/alert-subscriptions.md, references/alert-notify.md (code in scripts/alert-notify/)

Gotchas

  • alert-notify (port 9090) ≠ vss-alert-bridge. Slack ops → Workflow E (alert-notify); never route Slack to vss-alert-bridge's /api/v1/realtime.
  • Workflow scope by mode: A is CV-only; B and C work on either mode; D and E are VLM real-time only (refuse on CV with the canonical text).
  • Don't use vss-rtvi-vlm as a mode signal — it runs in both modes. Use vss-behavior-analytics (CV-only) or the MODE env var.
  • A mode switch tears down the current deployment — running VLM streams and un-persisted CV alert state are lost.
  • Always go through $AGENT/generate — never call rtvi-vlm directly. The VLM trigger is a "yes"/"true" token match (case-insensitive); rtvi_prompt_gen enforces the Yes/No pattern, so don't hand-craft prompts that break it.
  • Sensor must already be in VIOS for either mode (use vss-manage-video-io-storage for RTSP-only inputs).

bump:1

Frequently asked questions

What to verify before installation and use

What does the vss-manage-alerts source document cover?

Operate the VSS alert pipeline (mode detection, Alert-Bridge subscriptions, Slack notifications, queries, camera onboarding, verifier-prompt customization).

How do I install vss-manage-alerts?

The source record exposes this install command: npx skills add https://github.com/NVIDIA/skills --skill "skills/vss-manage-alerts". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged network, exec-script, send-data in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 973,106

NVIDIA/skills

vss-deploy-detection-tracking-2d

Use this skill when the user wants to deploy, run, debug, tear down, or call the REST API of the RTVI-CV 2D detection / 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.

Computed 97149

UiPath/skills

uipath-coded-apps

UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows

Computed 97139

JasonColapietro/suede-creator-skills

suede-instagram-growth

Suede-owned Instagram growth operating system for account-specific audits, Reels, carousels, Stories, conversion mapping, calendars, and daily candidate-production loops. Use when the user names Instagram, IG, Reels, Stories, asks to analyze recent posts, grow a handle, run a daily workflow, create or repurpose Instagram content, or distinguish views from follows, leads, and sales. NOT FOR: multi-platform organic strategy (use suede-social), full video rendering or editing (use suede-video), pai

Computed 963,106

NVIDIA/skills

vss-deploy-detection-tracking-3d

Deploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`): per-camera DeepStream perception plus BEV Fusion over calibrated cameras. Supports the bundled sample dataset, custom video files, and RTSP streams, and chains to `vss-generate-video-calibration` when calibration is missing. Use `vss-deploy-profile` for the full warehouse blueprint and `vss-deploy-detection-tracking-2d` for single-camera 2D detection.