/holohub-debug-build-run
Use when a concrete ./holohub command fails, hangs, regresses, or returns wrong output and needs reproducible diagnosis and verification.
$ npx -y skills add NVIDIA/skills --skill holohub-debug-build-run --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/holohub-debug-build-run
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when a concrete ./holohub command fails, hangs, regresses, or returns wrong output and needs reproducible diagnosis and verification.
SKILL.md
holohub-debug-build-run.SKILL.mdname: holohub-debug-build-run
description: "Use when a concrete ./holohub command fails, hangs, regresses, or returns wrong output and needs reproducible diagnosis and verification."
license: Apache-2.0
metadata:
author: "Holoscan Team <holoscan-team@nvidia.com>"
compatibility: "holoscan-cli>=4.5.0"
github-url: "https://github.com/nvidia-holoscan/holohub"
tags:
- holoscan
- holohub
- debuggingDebug HoloHub commands
Purpose
Turn one concrete wrapper failure into a minimally fixed, reproducible passing command with focused regression proof.
Inputs
Require:
- the affected user-provided HoloHub checkout;
- one exact failing, hanging, regressed, or semantically wrong `./holohub`
command;
- expected and observed results, relevant inputs, and the point where progress
stops;
- the runtime needed to reproduce the command.
Route non-failing app development to `holohub-app-lifecycle`, non-failing Module work to `holohub-module-lifecycle`, and first-time SDK installation to `holoscan-setup`. If the matching skill is unavailable, preserve the handoff context and name the skill to install. Do not manufacture a failure.
Prerequisites
- Always read the [CLI contract](references/holohub-cli-contract.md).
- Read the [debug workflow](references/debug-workflow.md) for layer
classification, observability, hypothesis testing, cleanup, and proof.
- Read only the relevant section of
[version-sensitive diagnostic priors](references/known-issues.md).
The affected checkout's `AGENTS.md`, local help, exact reproduction, schemas, and source are the live technical authority where they do not conflict with user, system, or safety constraints.
Instructions
If the request is planning-only or forbids execution, do not begin the steps below. Return only the proposed diagnostic order, evidence, approval boundaries, and proof requirements; do not run commands or change files, caches, artifacts, privileges, or environments.
1. **Freeze the reproduction.** Record the exact command, exit status or hang boundary and observation deadline, first useful error, expected versus observed result, full HEAD, concise status, and relevant input/image/artifact identities. 2. **Identify syntax and environment.** Read wrapper and subcommand help. Capture `version --json`, `env-info --json`, relevant `env-check --json`, and `status --json`, reviewing sensitive values before sharing. 3. **Locate the failing phase.** Separate launcher bootstrap from the verb, then distinguish host, image setup, container, configure/build/test/package, and application behavior. 4. **Preview the identical shape.** Add only locally supported preview and verbosity flags. Do not change project, mode, language, build type, image, inputs, devices, output, or other effect-bearing arguments. 5. **Reproduce once without edits.** Capture the smallest complete causal section, separate from shutdown noise. If the command or its options clear cached artifacts, including `clear-cache` or `test --clear-cache`, review the resolved affected paths and obtain explicit user authorization before reproduction; receiving a failing-command report is not approval for cache cleanup. For a hang, preserve all effect-bearing arguments but enforce an external timeout derived from the recorded hang boundary; record the deadline, termination signal, exit status, and whether child wrapper or container processes remain. If it no longer reproduces, compare revision, state, inputs, image, cache, display/devices, and environment, then report the mismatch rather than inventing a fix. 6. **Test one boundary and hypothesis.** Choose one primary layer, state a falsifiable explanation, change one variable, and record the result. Read source only after narrowing ownership. Revert diagnostic-only changes. 7. **Fix minimally.** Change the owning layer without unrelated refactoring, broad dependency upgrades, or public-contract changes. Add a focused deterministic regression test when possible; if infeasible, record why and use the nearest repeatable boundary check. 8. **Keep cleanup separate.** Never clear caches speculatively. If stale state is proved, preview the narrowest `clear-cache` scope, review every resolved path, and obtain explicit user approval before clearing those paths. 9. **Prove and restore.** For a mutating command, preview the post-fix identical shape before re-running it with the same inputs; the pre-fix preview is not proof of the resolved image, mounts, or child commands. Require the expected result, run the nearest focused test, inspect relevant artifacts, remove diagnostic-only changes, and compare final status with the baseline. After benchmark or instrumentation work, search for backups, rebuild normally to remove instrumented binaries and cached flags, then run a finite smoke case. For a Module, test its declared operators, demos, and consumer because `test <module>` is not module-scoped. Run `git diff --check`. 10. **Validate requested commits.** In a dirty checkout, restrict auto-fixing lint to task paths. Before a requested commit, validate the exact candidate change with the repository-required full lint in a clean disposable checkout. Inspect auto-fixes and rerun once; report persistent failure or churn instead of looping. Do not commit or push unless requested.
Troubleshooting
If the failure does not reproduce, report the state mismatch. If it belongs to a non-failing app or Module workflow, preserve the reproduction context and route it to the matching lifecycle skill.
Examples
- Diagnose a repeatable wrapper build failure: use this skill.
- Create or enhance an app with no failing command: use
`holohub-app-lifecycle`.
Limitations
- Preserve unrelated work. Do not reset, clean, delete, commit, push, change
host configuration, or broaden privileges without authorization
Read more
name: holohub-debug-build-run
description: "Use when a concrete ./holohub command fails, hangs, regresses, or returns wrong output and needs reproducible diagnosis and verification."
license: Apache-2.0
metadata:
author: "Holoscan Team <holoscan-team@nvidia.com>"
compatibility: "holoscan-cli>=4.5.0"
github-url: "https://github.com/nvidia-holoscan/holohub"
tags:
- holoscan
- holohub
- debuggingDebug HoloHub commands
Purpose
Turn one concrete wrapper failure into a minimally fixed, reproducible passing command with focused regression proof.
Inputs
Require:
- the affected user-provided HoloHub checkout;
- one exact failing, hanging, regressed, or semantically wrong `./holohub`
command;
- expected and observed results, relevant inputs, and the point where progress
stops;
- the runtime needed to reproduce the command.
Route non-failing app development to `holohub-app-lifecycle`, non-failing Module work to `holohub-module-lifecycle`, and first-time SDK installation to `holoscan-setup`. If the matching skill is unavailable, preserve the handoff context and name the skill to install. Do not manufacture a failure.
Prerequisites
- Always read the [CLI contract](references/holohub-cli-contract.md).
- Read the [debug workflow](references/debug-workflow.md) for layer
classification, observability, hypothesis testing, cleanup, and proof.
- Read only the relevant section of
[version-sensitive diagnostic priors](references/known-issues.md).
The affected checkout's `AGENTS.md`, local help, exact reproduction, schemas, and source are the live technical authority where they do not conflict with user, system, or safety constraints.
Instructions
If the request is planning-only or forbids execution, do not begin the steps below. Return only the proposed diagnostic order, evidence, approval boundaries, and proof requirements; do not run commands or change files, caches, artifacts, privileges, or environments.
1. **Freeze the reproduction.** Record the exact command, exit status or hang boundary and observation deadline, first useful error, expected versus observed result, full HEAD, concise status, and relevant input/image/artifact identities. 2. **Identify syntax and environment.** Read wrapper and subcommand help. Capture `version --json`, `env-info --json`, relevant `env-check --json`, and `status --json`, reviewing sensitive values before sharing. 3. **Locate the failing phase.** Separate launcher bootstrap from the verb, then distinguish host, image setup, container, configure/build/test/package, and application behavior. 4. **Preview the identical shape.** Add only locally supported preview and verbosity flags. Do not change project, mode, language, build type, image, inputs, devices, output, or other effect-bearing arguments. 5. **Reproduce once without edits.** Capture the smallest complete causal section, separate from shutdown noise. If the command or its options clear cached artifacts, including `clear-cache` or `test --clear-cache`, review the resolved affected paths and obtain explicit user authorization before reproduction; receiving a failing-command report is not approval for cache cleanup. For a hang, preserve all effect-bearing arguments but enforce an external timeout derived from the recorded hang boundary; record the deadline, termination signal, exit status, and whether child wrapper or container processes remain. If it no longer reproduces, compare revision, state, inputs, image, cache, display/devices, and environment, then report the mismatch rather than inventing a fix. 6. **Test one boundary and hypothesis.** Choose one primary layer, state a falsifiable explanation, change one variable, and record the result. Read source only after narrowing ownership. Revert diagnostic-only changes. 7. **Fix minimally.** Change the owning layer without unrelated refactoring, broad dependency upgrades, or public-contract changes. Add a focused deterministic regression test when possible; if infeasible, record why and use the nearest repeatable boundary check. 8. **Keep cleanup separate.** Never clear caches speculatively. If stale state is proved, preview the narrowest `clear-cache` scope, review every resolved path, and obtain explicit user approval before clearing those paths. 9. **Prove and restore.** For a mutating command, preview the post-fix identical shape before re-running it with the same inputs; the pre-fix preview is not proof of the resolved image, mounts, or child commands. Require the expected result, run the nearest focused test, inspect relevant artifacts, remove diagnostic-only changes, and compare final status with the baseline. After benchmark or instrumentation work, search for backups, rebuild normally to remove instrumented binaries and cached flags, then run a finite smoke case. For a Module, test its declared operators, demos, and consumer because `test <module>` is not module-scoped. Run `git diff --check`. 10. **Validate requested commits.** In a dirty checkout, restrict auto-fixing lint to task paths. Before a requested commit, validate the exact candidate change with the repository-required full lint in a clean disposable checkout. Inspect auto-fixes and rerun once; report persistent failure or churn instead of looping. Do not commit or push unless requested.
Troubleshooting
If the failure does not reproduce, report the state mismatch. If it belongs to a non-failing app or Module workflow, preserve the reproduction context and route it to the matching lifecycle skill.
Examples
- Diagnose a repeatable wrapper build failure: use this skill.
- Create or enhance an app with no failing command: use
`holohub-app-lifecycle`.
Limitations
- Preserve unrelated work. Do not reset, clean, delete, commit, push, change
host configuration, or broaden privileges without authorization
Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.
Other skills on nvidia-skills.
- /nvidia-skill-finder
Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA products, hardware, software, SDKs, GPUs, Jetson/JetPack/L4T/BSP/SDK Manager/driver/flashing/setup, CUDA, NIM, NeMo, Omniverse/OpenUSD/SimReady,
Open skill - /accelerated-computing-cudf
Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
Open skill - /aiq-deploy
Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.
Open skill - /aiq-research
Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.
Open skill - /amc-run-sample-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'.
Open skill - /amc-run-video-calibration
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/live streams, use amc-run-rtsp-calibration instead.
Open skill

