Install any skill in seconds. Free to start, no credit card required.
Get Started Free →nvidia/tao-route-visual-changenet-samples
Routes the weakest VCN samples (output of `tao-analyze-gaps-visual-changenet`) into per-augmentation-module subsets based on each module's label eligibility.
Passed 15 of 19 test cases with the skill, and 3 of 19 without it.
and 17 more in the full report
14 fixed3 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
Our defect dataset contains labels 'PASS', 'EXCESS_SOLDER', 'MISSING', 'BRIDGE', and 'SOLDER_BALL'. We are setting up routing to Cosmos SDG. Which of these five categories are routed into the AnomalyGen parquet by default?
| Checked | Without skill | With skill |
|---|---|---|
| Excludes 'SOLDER_BALL' from the default AnomalyGen filtered subset. | Passed | Passed |
| Includes 'PASS', 'EXCESS_SOLDER', 'MISSING', and 'BRIDGE' in the default AnomalyGen subset. | Missed | Passed |
The instructions your model reads when the skill loads.
You are the dispatcher between gap analysis and the augmentation modules in a VCN AOI SDA pipeline. Each augmentation module can only act on labels it knows how to handle:
SHIFT neighbors if the pool has no SHIFT rows.PASS, EXCESS_SOLDER, MISSING, BRIDGE. A weak sample with a label outside this set is unroutable to AnomalyGen.This skill runs once per SDA iteration immediately after gap analysis. It splits the gap-analysis parquet into one filtered parquet per module so each module operates on its own eligible subset, and it writes a human-readable summary of the per-label routing decisions.
The work is intentionally trivial: read a parquet, do two .isin(...) filters, write two parquets, write one summary. The skill exists to make those decisions auditable — every label must show up in the summary with a yes/no verdict for each module so a downstream reviewer can spot when a label is silently dropped because no module accepted it.
gaps_parquet — the gap-analysis output (typically <exp_dir>/rca_results/<timestamp>/gaps.parquet from tao-analyze-gaps-visual-changenet). Required columns: filepath, label. Other columns (siamese_score, weakness) are preserved verbatim.source_pool_csv — VCN-format mining source pool CSV with a label column. Empty string or non-existent path is allowed; the mining subset will simply be empty in that case.<rca_result_dir>/routing_results/<timestamp>/.anomalygen_supported_labels (optional) — override the default AnomalyGen-eligible label set. Default: {"PASS", "EXCESS_SOLDER", "MISSING", "BRIDGE"}. Warning: This must stay in sync with ANOMALYGEN_SUPPORTED_LABELS in mdo-kratos-workflows/pipelines/sda/routing.py and the AnomalyGen integration's actual generator coverage. Adding a new defect class to AnomalyGen means adding it here too.The whole skill is two .isin(...) masks against the uppercased label column.
df = pd.read_parquet(gaps_parquet)
labels_upper = df["label"].astype(str).str.upper()
The match is case-insensitive for both module checks. The original label column is preserved unchanged in the output parquets — only the comparison key is uppercased.
if source_pool_csv and os.path.isfile(source_pool_csv):
pool_df = pd.read_csv(source_pool_csv)
test cases passed, vs 3 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.