Generated banner for Tao Analyze Changenet Rca
Generated logo for Tao Analyze Changenet Rca

Tao Analyze Changenet Rca

NVIDIAOfficialCreated by NVIDIA Corporation

  • Skill
  • Review and audit
  • Software development
  • Apache-2.0
  • Medium risk
  • Has scripts

From the author

Performs deep Root Cause Analysis (RCA) on NVIDIA TAO Visual ChangeNet classification experiments with image-evidence-driven investigation. Use when analyzing ChangeNet model failures, investigating poor recall / FAR / PASS-NO_PASS metrics, auditing visual inspection pipeline quality, or running an RCA report for an AOI defect-detection model. Trigger phrases include "RCA on my ChangeNet model", "why is my AOI model failing", "audit ChangeNet predictions", "investigate FAR regressions", "root cause analysis on visual-changenet".
— the description by NVIDIA Corporation

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

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/nvidia/tao-analyze-changenet-rca/download
  2. Unzip 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-setup skill 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

  1. Experiment result directory — contains train/ and inference/

  2. Training code directory — the visual_changenet/ source tree

  3. Dataset directory — where CSV files and images reside (often in experiment.yaml)

  4. 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:

  1. 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.

  2. 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.

  3. 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.jsonl

Get 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

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