Tao Analyze Changenet Rca
NVIDIAOfficialCreated by NVIDIA Corporation
- Skill
- Review and audit
- Software development
- Apache-2.0
- Medium risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured, five-phase investigation framework to diagnose failures in NVIDIA TAO Visual ChangeNet models. It focuses on identifying why a model underperforms by correlating numerical score statistics with visual evidence from test and golden image pairs. The process includes score analysis, systematic golden image audits, cross-dimensional pattern recognition, and counterfactual impact analysis to generate actionable fixes for AOI defect-detection pipelines.
What it does
- Analyzes model score distributions and performs threshold sweeps to establish KPI baselines.
- Conducts deep visual investigations of threshold-critical samples and false positives.
- Audits golden image quality to detect illumination issues or framing mismatches.
- Clusters failure modes by component type, board level, and light condition.
- Evaluates training configuration, data sufficiency, and class balance.
- Generates a comprehensive RCA report with embedded visual evidence thumbnails.
When to use it
- When investigating poor recall, high false alarm rates, or PASS/NO_PASS metric regressions.
- When auditing the quality of a visual inspection pipeline.
- When diagnosing why specific defect types are failing to be detected.
- When performing a root cause analysis for an AOI defect-detection model.
Advantages
- Evidence-based: Every conclusion is backed by direct visual inspection of images.
- Systematic: Follows a rigorous five-phase methodology from score analysis to counterfactuals.
- Actionable: Includes a counterfactual analysis phase to quantify the impact of potential fixes.
- Parallelized: Utilizes subagents to accelerate investigation tracks.
Usage examples
- “RCA on my ChangeNet model”
- The agent initiates a multi-phase investigation, starting with score analysis and threshold sweeps to identify the primary failure modes.
- “why is my AOI model failing”
- The agent performs a deep dive into the experiment results, auditing golden images and test samples to pinpoint data quality or model configuration issues.
- “audit ChangeNet predictions”
- The agent clusters false positives and failures, providing a visual report that highlights systemic issues in the inspection pipeline.
- “root cause analysis on visual-changenet”
- The agent executes the full RCA workflow, producing a timestamped report containing score statistics, visual evidence, and recommended fixes.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/tao-analyze-changenet-rca/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip tao-analyze-changenet-rca.zip -d .agents/skills
Documentation by NVIDIA Corporation
TAO ChangeNet Classification RCA Skill
Standalone install? If this session was not initialized by the TAO skill bank plugin, run the
tao-setupskill first (host preflight, credentials, cross-skill discovery).
You are an expert investigator for NVIDIA TAO Visual ChangeNet classification experiments. Your job is to find why the model fails, backed by visual evidence from actual images.
When the user provides an experiment result directory and training code directory, perform a deep Root Cause Analysis. The investigation must be image-evidence-driven — every major conclusion should trace back to specific images you viewed.
Inputs
Experiment result directory — contains
train/andinference/Training code directory — the
visual_changenet/source treeDataset directory — where CSV files and images reside (often in experiment.yaml)
Target KPI — default to Recall-first if not specified. Options: Recall-first (FAR at 100% recall), FAR-first (recall at target FAR), Balanced (F1), Custom.
Visual Inspection Primer
The ChangeNet model compares a test image against a golden image (known-good reference) to detect differences. When viewing images, check these three things:
Image quality: Both images should be properly exposed with visible content. Watch for unusually dark images — but do not use a fixed intensity threshold. Some illumination types (e.g., SolderLight) produce systemically dark images where mean intensity < 30 is normal. Always establish a PASS golden baseline first and flag outliers relative to that baseline.
Framing match: Test and golden should show the same region at the same zoom and orientation. Mismatched framing (e.g., wide-field vs close-up) indicates a golden pipeline error.
Defect visibility: Can you see the difference between test and golden? Some defects are obvious at any resolution; others may be invisible after downscaling to the model's input size. Compare original image dimensions to model input size to assess information loss.
Investigation Flow
The investigation has 5 phases. Phase 1 (numbers) gives you hypotheses. Phase 2 (images) proves or disproves them. Phase 3 (cross-dimensional) finds hidden patterns. Phase 4 (config) explains the mechanism. Phase 5 (counterfactual) quantifies fixes. Phase 2 is the core — spend the most effort there. Phase 5 is the most actionable — never skip it.
Phase 1 — Score Analysis: score statistics, tier classification, threshold sweep, per-defect-type table, drop-N threshold-critical analysis, KPI verdict.
Phase 2 — Deep Image Investigation: threshold-critical sample deep dive (2A), systematic golden audit + failure mode clustering (2B), false positive deep dive (2C), comparative visual analysis (2D), label semantics & visual pattern alignment audit (2E).
Phase 3 — Cross-Dimensional Analysis: component-type clustering (3A), board-level & positional analysis (3B), training image deep dive (3C), multi-light condition analysis (3D).
Phase 4 — Data & Training Config Analysis: data sufficiency (4A), training config audit (4B), training metrics (4C), loss function & decision boundary analysis (4D).
Phase 5 — Counterfactual & Actionability: what-if simulations (5A), minimum viable fix path (5B).
See references/investigation-phases.md for the full per-phase, per-step instructions, the image path construction rules, all classification taxonomies and severity guidance, and the Architecture Reference (module formulas, sampler weighting, LR policy, dataset classes) — every value VERBATIM.
Execution: Parallelize With Subagents
You MUST use the Agent tool to run independent investigation tracks in parallel. Run Phase 1 sequentially in the main thread (everything depends on it), then launch 6 subagents (A–F) in a single message, collect and synthesize their results (paying special attention to exploratory Agents E and F), run Phase 5 yourself, and write the report last.
Before writing RCA_Report.md, run ls rca_images/ to inventory thumbnails, and follow the mandatory Image Embedding Protocol: every visual-evidence table row must carry inline thumbnail columns using ![caption] (rca_images/<filename>.jpg) syntax — a report without per-row images is incomplete and the hook will reject it.
See references/parallelization.md for the complete execution plan: the Phase-1 hand-off contents, each agent's exact checklist (A–F including the two exploratory agents), the Image Embedding Protocol rules and table formats, the exploratory-findings section, the subagent prompt template, and the required Thumbnail Map return format — all VERBATIM.
Report Structure and Output
Produce RCA_Report.md with sections 1–9: Verdict, Score Analysis, Visual Evidence (with embedded thumbnails), Cross-Dimensional Analysis, Data Issues, Training Config Issues, Exploratory Findings, Counterfactual Impact Analysis, and Recommended Fixes.
Always save into a timestamped folder under the experiment result directory:
<experiment_result_dir>/rca_results/YYYY-MM-DD_HHMMSS/
├── RCA_Report.md
├── rca_images/
├── rca_config/
└── claude_session.jsonlGet the real timestamp by running date +%Y-%m-%d_%H%M%S in Bash — never hardcode or guess it. If the user specifies a custom path, use that instead but keep the same structure.
See references/output-structure.md for the complete section-by-section report skeleton (every table header and summary line) and the full output layout with hook-copied contents — VERBATIM.
Files
- ATTRIBUTION.mdAdded by AutoGineer945 B
- BENCHMARK.md6.9 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md6.4 KiB
- config/skillspector-baseline.yaml2.4 KiB
- evals/evals.json804 B
- hooks/_parse-stdin.shScript1.4 KiB
- hooks/rca-defect-coverage.shScript5.5 KiB
- hooks/rca-depth-check.shScript9.7 KiB
- hooks/rca-package.shScript2.9 KiB
- hooks/rca-phase-completeness.shScript4.2 KiB
- hooks/rca-report-check.shScript4.9 KiB
- hooks/rca-script-check.shScript3.1 KiB
- references/investigation-phases.md16.6 KiB
- references/output-structure.md6.0 KiB
- references/parallelization.md8.6 KiB
- skill-card.md4.3 KiB
- skill.oms.sig7.1 KiB
hooks/rca-script-check.sh
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# Hook: Catch silent Python script failures and validate analysis scripts produce output
# Parses PostToolUse stdin JSON for exit code and stdout content
# Toggle: export RCA_HOOKS=0 to disable, RCA_HOOKS=1 to enable (default: enabled)
[[ "${RCA_HOOKS:-1}" == "0" ]] && exit 0
# Read stdin JSON into variable
_stdin=$(cat)
# Pass JSON via environment variable (not argv — avoids shell quoting issues with large JSON)
export _HOOK_STDIN="$_stdin"
python3 << 'PYEOF'
import json, sys, os
raw = os.environ.get('_HOOK_STDIN', '')
if not raw:
sys.exit(0)
try:
data = json.loads(raw)
except (json.JSONDecodeError, ValueError):
sys.exit(0)
tool_name = data.get('tool_name', '')
if tool_name != 'Bash':
sys.exit(0)
# Extract fields
tool_response = data.get('tool_response', {})
stdout = tool_response.get('stdout', '') or ''
stderr = tool_response.get('stderr', '') or ''
command = data.get('tool_input', {}).get('command', '')
# Heuristic exit code: check stderr for common error patterns
has_error = False
if stderr.strip():
error_patterns = ['Traceback', 'Error:', 'error:', 'FAILED', 'fatal:', 'Permission denied']
has_error = any(p in stderr for p in error_patterns)
warnings = []
# Check 1: Traceback in stdout or stderr
if 'Traceback (most recent call last)' in stdout or 'Traceback (most recent call last)' in stderr:
warnings.append("Python traceback detected — script crashed mid-execution. Fix the error and re-run to get complete results.")
# Check 2: Python analysis scripts that produce no output (likely silent failure)
if 'python' in command.lower() and not stdout.strip() and not has_error:
analysis_keywords = ['print', 'score', 'defect', 'mean', 'count', 'compute', 'analyze', 'statistics']
if any(kw in command.lower() for kw in analysis_keywords):
warnings.append("Python analysis script produced NO output. It may have silently failed or has a logic error. Check for empty DataFrames, wrong file paths, or swallowed exceptions.")
# Check 3: Common data analysis red flags in output
if stdout:
if 'nan' in stdout.lower() and ('mean' in stdout.lower() or 'score' in stdout.lower()):
warnings.append("NaN values in analysis output. Check for empty groups, division by zero, or missing data.")
if 'empty dataframe' in stdout.lower() or 'no rows' in stdout.lower():
warnings.append("Empty DataFrame in output. Likely a filter that matched nothing — check your conditions.")
# Check 4: stderr warnings that may indicate partial results
if stderr.strip() and not has_error:
warn_patterns = ['UserWarning', 'FutureWarning', 'DeprecationWarning']
real_warnings = [line for line in stderr.splitlines()
if not any(wp in line for wp in warn_patterns) and line.strip()]
if real_warnings:
warnings.append(f"Unexpected stderr output ({len(real_warnings)} lines). Script may have partial errors.")
if warnings:
print("SCRIPT ISSUES:")
for w in warnings:
print(f" - {w}")
PYEOF
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools
The author says: Requires docker + nvidia-container-toolkit. Workflows declare additional requirements.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA Corporation
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/tao-analyze-changenet-rca · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA Corporation or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download tao-analyze-changenet-rca.zip