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://mp-staging.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-phase-completeness.sh

#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Hook: Deep verification that every RCA phase has substantive content, not just headings
# Checks section existence, minimum content depth, required analytical elements per section
# Toggle: export RCA_HOOKS=0 to disable

[[ "${RCA_HOOKS:-1}" == "0" ]] && exit 0

source "$(dirname "$0")/_parse-stdin.sh"

if [[ "$CLAUDE_FILE_PATH" == *RCA_Report.md ]]; then
  warnings=""

  # --- Use Python for robust section-by-section validation ---
  section_warnings=$(python3 - "$CLAUDE_FILE_PATH" << 'PYEOF'
import sys, re

report_path = sys.argv[1]
with open(report_path) as f:
    report = f.read()

# Define checks: (section_heading_pattern, min_table_rows, [required_keywords])
checks = [
    ("Verdict", 1, ["tier", "root cause", "score gap"]),
    ("Score Analysis", 5, ["threshold", "recall", "FAR", "per-defect", "drop"]),
    ("Visual Evidence", 15, ["golden", "failure mode", "false positive", "detect"]),
    ("Cross-Dimensional", 5, ["comp_type", "board", "training", "component"]),
    ("Data Issues", 3, ["coverage", "ratio", "validation", "gap"]),
    ("Training Config", 5, ["cls_weight", "sampler", "learning rate", "over-emphasis"]),
    ("Exploratory Findings", 5, ["random", "anomal", "integrity", "distribution"]),
    ("Counterfactual", 3, ["what-if", "simulation", "FAR", "fix"]),
    ("Recommended Fixes", 3, ["CRITICAL", "effort", "impact"]),
]

warnings = []

for heading, min_rows, keywords in checks:
    # Extract section content between this heading and next ##
    pattern = rf'## .*?{re.escape(heading)}(.*?)(?=\n## |\Z)'
    m = re.search(pattern, report, re.DOTALL | re.IGNORECASE)
    if not m:
        warnings.append(f"MISSING SECTION: '{heading}' not found at all.")
        continue

    content = m.group(1)

    # Count table data rows (exclude separator rows with ---)
    rows = len([l for l in content.splitlines() if l.strip().startswith('|') and '---' not in l])
    if rows < min_rows:
        warnings.append(f"SHALLOW: '{heading}' has only {rows} table rows (need {min_rows}+). Add per-sample data tables.")

    # Word count
    words = len(content.split())
    if words < 100:
        warnings.append(f"THIN: '{heading}' is only {words} words. Needs substantive analysis.")

    # Required keywords
    missing = [kw for kw in keywords if not re.search(kw, content, re.IGNORECASE)]
    if missing:
        warnings.append(f"INCOMPLETE: '{heading}' missing key analysis: {', '.join(missing)}")

for w in warnings:
    print(w)
PYEOF
  )

  if [ -n "$section_warnings" ]; then
    warnings="${warnings}\n${section_warnings}"
  fi

  # --- Cross-section consistency checks (Python for robustness) ---
  cross_warnings=$(python3 - "$CLAUDE_FILE_PATH" << 'PYEOF2'
import sys, re

with open(sys.argv[1]) as f:
    report = f.read()

warnings = []

# Verdict must have ranked root causes
m = re.search(r'## 1.*?Verdict(.*?)## 2', report, re.DOTALL)
if m:
    verdict = m.group(1)
    rc_count = len(re.findall(r'(?:Rank|root cause|\| \d)', verdict, re.IGNORECASE))
    if rc_count < 2:
        warnings.append("VERDICT: Does not list ranked root causes. Must have top 3 with clear ranking.")

# Recommended Fixes must have priority levels
m = re.search(r'Recommended Fixes(.*)', report, re.DOTALL)
if m:
    fixes = m.group(1)
    priorities = len(re.findall(r'(CRITICAL|HIGH|MEDIUM|LOW|\[\d\]|^\d+\.)', fixes, re.IGNORECASE | re.MULTILINE))
    if priorities < 3:
        warnings.append("FIXES: Recommendations lack priority ranking. Each fix needs: priority level, specific action, expected impact.")

# Score Analysis must have actual numbers
m = re.search(r'Score Analysis(.*?)## 3', report, re.DOTALL)
if m:
    scores_sec = m.group(1)
    numbers = len(re.findall(r'\d+\.\d{2,}', scores_sec))
    if numbers < 10:
        warnings.append(f"SCORES: Only {numbers} precise numeric values in Score Analysis. Need scores, thresholds, FAR/recall at multiple operating points.")

for w in warnings:
    print(w)
PYEOF2
  )

  if [ -n "$cross_warnings" ]; then
    warnings="${warnings}\n${cross_warnings}"
  fi

  if [ -n "$warnings" ]; then
    echo -e "PHASE COMPLETENESS ISSUES:$warnings"
  fi
fi

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