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