[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-tao-validate-dataset-format":3,"mdc-ju422n-key":34,"related-org-nvidia-tao-validate-dataset-format":995,"related-repo-nvidia-tao-validate-dataset-format":1153},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"tao-validate-dataset-format","validate NVIDIA TAO DAFT dataset structure","Run `tao-daft validate` to check NVIDIA TAO DAFT datasets for structure, schema, and cross-reference errors. Do not use for non-DAFT formats. Use when the user asks to validate a DAFT dataset, check DAFT schema, validate a TAO dataset format, or run `tao-daft validate`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Datasets","datasets","tag",{"name":17,"slug":18,"type":15},"Data Quality","data-quality",{"name":20,"slug":21,"type":15},"QA","qa",{"name":9,"slug":8,"type":15},2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-14T05:30:36.622644","Apache-2.0",281,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ftao-validate-dataset-format","---\nname: tao-validate-dataset-format\ndescription: Run `tao-daft validate` to check NVIDIA TAO DAFT datasets for structure, schema, and cross-reference errors. Do\n  not use for non-DAFT formats. Use when the user asks to validate a DAFT dataset, check DAFT schema, validate a TAO dataset\n  format, or run `tao-daft validate`.\nlicense: Apache-2.0\ncompatibility: Requires Python 3.10+ and the nvidia-tao-sdk package (pip install nvidia-tao-daft).\nmetadata:\n  author: NVIDIA Corporation\n  version: \"0.1.0\"\nallowed-tools: Read Bash\ntags:\n- tao-daft\n- dataset\n- validation\n- schema\n---\n\n# Validate a TAO DAFT Dataset\n\n## Quick start\n\n```bash\ntao-daft validate \u003Cformat> --path \u003Cdataset-or-parent-dir>\n```\n\n`\u003Cformat>` is a positional subcommand (e.g. `metropolis-v3.0`, `cosmos-reason-v1.0`);\n`--path` is required. Discover supported formats and per-format flags via\n`tao-daft validate --help` and the leaf `--help` (see \"CLI conventions\" below).\n\n## Preflight\n```bash\npython -c \"import nvidia_tao_daft\" 2>\u002Fdev\u002Fnull || {\n  echo \"MISSING: tao-daft not installed. Run:\"\n  echo \"  pip install nvidia-tao-daft\"\n  exit 1\n}\n```\n\n## Quick Start\n\nDiscover the installed validator formats before choosing a format slug, then\nrun validation with the target passed through `--path`:\n\n```bash\ntao-daft --version\ntao-daft validate --help\ntao-daft validate \u003Cformat> --help\ntao-daft validate \u003Cformat> --path \u002Fpath\u002Fto\u002Fdaft-dataset\n```\n\n## Purpose\n\nDrive `tao-daft validate` against a DAFT dataset (or a tree of them).\nThe CLI is the spec; the skill picks subcommand + flags and explains\nthe result.\n\nTrigger when the user mentions \"TAO DAFT\", \"DAFT format\", validating a\nDAFT dataset, schema\u002Fcross-reference errors, or `tao-daft validate`.\nDo **not** trigger for non-DAFT layouts (COCO, YOLO, Data Factory JSONL),\nor for `tao-daft info` \u002F `tao-daft convert` — those have their own skills.\n\nIf the user's opening is ambiguous, run a few `--help` commands first\nto ground yourself, then come back and confirm the task.\n\n## Prerequisites\n\n- `nvidia-tao-daft` installed (`pip install nvidia-tao-daft`; the wheel\n  is enough, no source repo). Confirm with `tao-daft --version`.\n- A DAFT dataset, or a parent directory of them, on local disk.\n\n## Instructions\n\n### CLI conventions\n\n`tao-daft` is nested argparse subcommands. Names and flags drift across\nversions, so **discover the current surface from `--help`** rather than\ntrusting any list in this doc.\n\n1. **Format is a positional subcommand**, not `--format`:\n   `tao-daft validate \u003Cformat> [flags]`. List current formats via\n   `tao-daft validate --help`; slugs look like `metropolis-v3.0`,\n   `cosmos-reason-v1.0`.\n2. **Target is `--path PATH`**, not positional. It accepts a single\n   dataset\u002Fscene or a parent directory — the validator walks the tree.\n3. **Flags are per-format**; run the leaf help, e.g.\n   `tao-daft validate metropolis-v3.0 --help`, before choosing them.\n   Don't assume a flag from one format exists on another.\n\nSo the loop is: `tao-daft --version` → `tao-daft validate --help` →\npick format (infer if unspecified, see below) →\n`tao-daft validate \u003Cformat> --help` → run → interpret.\n\n### Format inference\n\nUse directory markers, not filenames:\n\n- `meta.json` next to `media\u002F` and `text\u002F` ⇒ `cosmos-reason-v1.0`.\n- A directory (or nested directories) containing `contextual\u002F`,\n  typically alongside `raw\u002F` and `task\u002F` ⇒ `metropolis-v3.0`.\n- Neither marker present ⇒ ask the user; do not guess.\n\n### Reading errors\n\nThe CLI ends every run with a `VALIDATION RESULTS` block, then\n`✅ VALIDATION PASSED` or `❌ VALIDATION FAILED`, and exits non-zero on\nfailure (safe to chain in scripts).\n\nOutput can be large on big trees — capture the full output to a file\nand read it in slices rather than scrolling inline.\n\n## Limitations\n\n- Validates DAFT only. Non-DAFT layouts (COCO, YOLO, Data Factory\n  JSONL, etc.) belong in the upstream converter skills.\n- Supported formats are whatever `tao-daft validate --help` reports\n  for the installed version; older slugs may have been retired.\n- Covers `validate` only. Defer to the dedicated skills for\n  `tao-daft info` and `tao-daft convert`.\n- Don't reimplement validation in Python; the CLI is the spec.\n\n## Troubleshooting\n\n- **`tao-daft: command not found`** — wheel not installed in the active\n  env. `pip install nvidia-tao-daft`; verify `tao-daft --version`.\n- **`error: argument --path is required`** — path passed positionally.\n  Move it behind `--path`.\n- **`invalid choice: '\u003Cformat>'`** — slug isn't wired up in this\n  version. Re-run `tao-daft validate --help` and pick from the list.\n- **Auto-detection (raw type \u002F contextual set) is wrong** — override\n  via the format's scope-restriction flag; discover the name from the\n  leaf `--help`.\n- **CI wants warnings to fail** — add `--strict`.\n",{"data":35,"body":46},{"name":4,"description":6,"license":26,"compatibility":36,"metadata":37,"allowed-tools":40,"tags":41},"Requires Python 3.10+ and the nvidia-tao-sdk package (pip install nvidia-tao-daft).",{"author":38,"version":39},"NVIDIA Corporation","0.1.0","Read Bash",[42,43,44,45],"tao-daft","dataset","validation","schema",{"type":47,"children":48},"root",[49,58,65,140,192,198,322,328,340,442,448,461,497,509,515,552,558,565,587,671,698,704,709,783,789,818,823,829,879,885,989],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"validate-a-tao-daft-dataset",[55],{"type":56,"value":57},"text","Validate a TAO DAFT Dataset",{"type":50,"tag":59,"props":60,"children":62},"h2",{"id":61},"quick-start",[63],{"type":56,"value":64},"Quick start",{"type":50,"tag":66,"props":67,"children":72},"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","tao-daft validate \u003Cformat> --path \u003Cdataset-or-parent-dir>\n","bash","",[73],{"type":50,"tag":74,"props":75,"children":76},"code",{"__ignoreMap":71},[77],{"type":50,"tag":78,"props":79,"children":82},"span",{"class":80,"line":81},"line",1,[83,88,94,100,105,111,116,121,125,130,135],{"type":50,"tag":78,"props":84,"children":86},{"style":85},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[87],{"type":56,"value":42},{"type":50,"tag":78,"props":89,"children":91},{"style":90},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[92],{"type":56,"value":93}," validate",{"type":50,"tag":78,"props":95,"children":97},{"style":96},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[98],{"type":56,"value":99}," \u003C",{"type":50,"tag":78,"props":101,"children":102},{"style":90},[103],{"type":56,"value":104},"forma",{"type":50,"tag":78,"props":106,"children":108},{"style":107},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[109],{"type":56,"value":110},"t",{"type":50,"tag":78,"props":112,"children":113},{"style":96},[114],{"type":56,"value":115},">",{"type":50,"tag":78,"props":117,"children":118},{"style":90},[119],{"type":56,"value":120}," --path",{"type":50,"tag":78,"props":122,"children":123},{"style":96},[124],{"type":56,"value":99},{"type":50,"tag":78,"props":126,"children":127},{"style":90},[128],{"type":56,"value":129},"dataset-or-parent-di",{"type":50,"tag":78,"props":131,"children":132},{"style":107},[133],{"type":56,"value":134},"r",{"type":50,"tag":78,"props":136,"children":137},{"style":96},[138],{"type":56,"value":139},">\n",{"type":50,"tag":141,"props":142,"children":143},"p",{},[144,150,152,158,160,166,168,174,176,182,184,190],{"type":50,"tag":74,"props":145,"children":147},{"className":146},[],[148],{"type":56,"value":149},"\u003Cformat>",{"type":56,"value":151}," is a positional subcommand (e.g. ",{"type":50,"tag":74,"props":153,"children":155},{"className":154},[],[156],{"type":56,"value":157},"metropolis-v3.0",{"type":56,"value":159},", ",{"type":50,"tag":74,"props":161,"children":163},{"className":162},[],[164],{"type":56,"value":165},"cosmos-reason-v1.0",{"type":56,"value":167},");\n",{"type":50,"tag":74,"props":169,"children":171},{"className":170},[],[172],{"type":56,"value":173},"--path",{"type":56,"value":175}," is required. Discover supported formats and per-format flags via\n",{"type":50,"tag":74,"props":177,"children":179},{"className":178},[],[180],{"type":56,"value":181},"tao-daft validate --help",{"type":56,"value":183}," and the leaf ",{"type":50,"tag":74,"props":185,"children":187},{"className":186},[],[188],{"type":56,"value":189},"--help",{"type":56,"value":191}," (see \"CLI conventions\" below).",{"type":50,"tag":59,"props":193,"children":195},{"id":194},"preflight",[196],{"type":56,"value":197},"Preflight",{"type":50,"tag":66,"props":199,"children":201},{"className":68,"code":200,"language":70,"meta":71,"style":71},"python -c \"import nvidia_tao_daft\" 2>\u002Fdev\u002Fnull || {\n  echo \"MISSING: tao-daft not installed. Run:\"\n  echo \"  pip install nvidia-tao-daft\"\n  exit 1\n}\n",[202],{"type":50,"tag":74,"props":203,"children":204},{"__ignoreMap":71},[205,253,277,298,313],{"type":50,"tag":78,"props":206,"children":207},{"class":80,"line":81},[208,213,218,223,228,233,238,243,248],{"type":50,"tag":78,"props":209,"children":210},{"style":85},[211],{"type":56,"value":212},"python",{"type":50,"tag":78,"props":214,"children":215},{"style":90},[216],{"type":56,"value":217}," -c",{"type":50,"tag":78,"props":219,"children":220},{"style":96},[221],{"type":56,"value":222}," \"",{"type":50,"tag":78,"props":224,"children":225},{"style":90},[226],{"type":56,"value":227},"import nvidia_tao_daft",{"type":50,"tag":78,"props":229,"children":230},{"style":96},[231],{"type":56,"value":232},"\"",{"type":50,"tag":78,"props":234,"children":235},{"style":96},[236],{"type":56,"value":237}," 2>",{"type":50,"tag":78,"props":239,"children":240},{"style":90},[241],{"type":56,"value":242},"\u002Fdev\u002Fnull",{"type":50,"tag":78,"props":244,"children":245},{"style":96},[246],{"type":56,"value":247}," ||",{"type":50,"tag":78,"props":249,"children":250},{"style":96},[251],{"type":56,"value":252}," {\n",{"type":50,"tag":78,"props":254,"children":256},{"class":80,"line":255},2,[257,263,267,272],{"type":50,"tag":78,"props":258,"children":260},{"style":259},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[261],{"type":56,"value":262},"  echo",{"type":50,"tag":78,"props":264,"children":265},{"style":96},[266],{"type":56,"value":222},{"type":50,"tag":78,"props":268,"children":269},{"style":90},[270],{"type":56,"value":271},"MISSING: tao-daft not installed. Run:",{"type":50,"tag":78,"props":273,"children":274},{"style":96},[275],{"type":56,"value":276},"\"\n",{"type":50,"tag":78,"props":278,"children":280},{"class":80,"line":279},3,[281,285,289,294],{"type":50,"tag":78,"props":282,"children":283},{"style":259},[284],{"type":56,"value":262},{"type":50,"tag":78,"props":286,"children":287},{"style":96},[288],{"type":56,"value":222},{"type":50,"tag":78,"props":290,"children":291},{"style":90},[292],{"type":56,"value":293},"  pip install nvidia-tao-daft",{"type":50,"tag":78,"props":295,"children":296},{"style":96},[297],{"type":56,"value":276},{"type":50,"tag":78,"props":299,"children":301},{"class":80,"line":300},4,[302,307],{"type":50,"tag":78,"props":303,"children":304},{"style":259},[305],{"type":56,"value":306},"  exit",{"type":50,"tag":78,"props":308,"children":310},{"style":309},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[311],{"type":56,"value":312}," 1\n",{"type":50,"tag":78,"props":314,"children":316},{"class":80,"line":315},5,[317],{"type":50,"tag":78,"props":318,"children":319},{"style":96},[320],{"type":56,"value":321},"}\n",{"type":50,"tag":59,"props":323,"children":325},{"id":324},"quick-start-1",[326],{"type":56,"value":327},"Quick Start",{"type":50,"tag":141,"props":329,"children":330},{},[331,333,338],{"type":56,"value":332},"Discover the installed validator formats before choosing a format slug, then\nrun validation with the target passed through ",{"type":50,"tag":74,"props":334,"children":336},{"className":335},[],[337],{"type":56,"value":173},{"type":56,"value":339},":",{"type":50,"tag":66,"props":341,"children":343},{"className":68,"code":342,"language":70,"meta":71,"style":71},"tao-daft --version\ntao-daft validate --help\ntao-daft validate \u003Cformat> --help\ntao-daft validate \u003Cformat> --path \u002Fpath\u002Fto\u002Fdaft-dataset\n",[344],{"type":50,"tag":74,"props":345,"children":346},{"__ignoreMap":71},[347,359,375,406],{"type":50,"tag":78,"props":348,"children":349},{"class":80,"line":81},[350,354],{"type":50,"tag":78,"props":351,"children":352},{"style":85},[353],{"type":56,"value":42},{"type":50,"tag":78,"props":355,"children":356},{"style":90},[357],{"type":56,"value":358}," --version\n",{"type":50,"tag":78,"props":360,"children":361},{"class":80,"line":255},[362,366,370],{"type":50,"tag":78,"props":363,"children":364},{"style":85},[365],{"type":56,"value":42},{"type":50,"tag":78,"props":367,"children":368},{"style":90},[369],{"type":56,"value":93},{"type":50,"tag":78,"props":371,"children":372},{"style":90},[373],{"type":56,"value":374}," --help\n",{"type":50,"tag":78,"props":376,"children":377},{"class":80,"line":279},[378,382,386,390,394,398,402],{"type":50,"tag":78,"props":379,"children":380},{"style":85},[381],{"type":56,"value":42},{"type":50,"tag":78,"props":383,"children":384},{"style":90},[385],{"type":56,"value":93},{"type":50,"tag":78,"props":387,"children":388},{"style":96},[389],{"type":56,"value":99},{"type":50,"tag":78,"props":391,"children":392},{"style":90},[393],{"type":56,"value":104},{"type":50,"tag":78,"props":395,"children":396},{"style":107},[397],{"type":56,"value":110},{"type":50,"tag":78,"props":399,"children":400},{"style":96},[401],{"type":56,"value":115},{"type":50,"tag":78,"props":403,"children":404},{"style":90},[405],{"type":56,"value":374},{"type":50,"tag":78,"props":407,"children":408},{"class":80,"line":300},[409,413,417,421,425,429,433,437],{"type":50,"tag":78,"props":410,"children":411},{"style":85},[412],{"type":56,"value":42},{"type":50,"tag":78,"props":414,"children":415},{"style":90},[416],{"type":56,"value":93},{"type":50,"tag":78,"props":418,"children":419},{"style":96},[420],{"type":56,"value":99},{"type":50,"tag":78,"props":422,"children":423},{"style":90},[424],{"type":56,"value":104},{"type":50,"tag":78,"props":426,"children":427},{"style":107},[428],{"type":56,"value":110},{"type":50,"tag":78,"props":430,"children":431},{"style":96},[432],{"type":56,"value":115},{"type":50,"tag":78,"props":434,"children":435},{"style":90},[436],{"type":56,"value":120},{"type":50,"tag":78,"props":438,"children":439},{"style":90},[440],{"type":56,"value":441}," \u002Fpath\u002Fto\u002Fdaft-dataset\n",{"type":50,"tag":59,"props":443,"children":445},{"id":444},"purpose",[446],{"type":56,"value":447},"Purpose",{"type":50,"tag":141,"props":449,"children":450},{},[451,453,459],{"type":56,"value":452},"Drive ",{"type":50,"tag":74,"props":454,"children":456},{"className":455},[],[457],{"type":56,"value":458},"tao-daft validate",{"type":56,"value":460}," against a DAFT dataset (or a tree of them).\nThe CLI is the spec; the skill picks subcommand + flags and explains\nthe result.",{"type":50,"tag":141,"props":462,"children":463},{},[464,466,471,473,479,481,487,489,495],{"type":56,"value":465},"Trigger when the user mentions \"TAO DAFT\", \"DAFT format\", validating a\nDAFT dataset, schema\u002Fcross-reference errors, or ",{"type":50,"tag":74,"props":467,"children":469},{"className":468},[],[470],{"type":56,"value":458},{"type":56,"value":472},".\nDo ",{"type":50,"tag":474,"props":475,"children":476},"strong",{},[477],{"type":56,"value":478},"not",{"type":56,"value":480}," trigger for non-DAFT layouts (COCO, YOLO, Data Factory JSONL),\nor for ",{"type":50,"tag":74,"props":482,"children":484},{"className":483},[],[485],{"type":56,"value":486},"tao-daft info",{"type":56,"value":488}," \u002F ",{"type":50,"tag":74,"props":490,"children":492},{"className":491},[],[493],{"type":56,"value":494},"tao-daft convert",{"type":56,"value":496}," — those have their own skills.",{"type":50,"tag":141,"props":498,"children":499},{},[500,502,507],{"type":56,"value":501},"If the user's opening is ambiguous, run a few ",{"type":50,"tag":74,"props":503,"children":505},{"className":504},[],[506],{"type":56,"value":189},{"type":56,"value":508}," commands first\nto ground yourself, then come back and confirm the task.",{"type":50,"tag":59,"props":510,"children":512},{"id":511},"prerequisites",[513],{"type":56,"value":514},"Prerequisites",{"type":50,"tag":516,"props":517,"children":518},"ul",{},[519,547],{"type":50,"tag":520,"props":521,"children":522},"li",{},[523,529,531,537,539,545],{"type":50,"tag":74,"props":524,"children":526},{"className":525},[],[527],{"type":56,"value":528},"nvidia-tao-daft",{"type":56,"value":530}," installed (",{"type":50,"tag":74,"props":532,"children":534},{"className":533},[],[535],{"type":56,"value":536},"pip install nvidia-tao-daft",{"type":56,"value":538},"; the wheel\nis enough, no source repo). Confirm with ",{"type":50,"tag":74,"props":540,"children":542},{"className":541},[],[543],{"type":56,"value":544},"tao-daft --version",{"type":56,"value":546},".",{"type":50,"tag":520,"props":548,"children":549},{},[550],{"type":56,"value":551},"A DAFT dataset, or a parent directory of them, on local disk.",{"type":50,"tag":59,"props":553,"children":555},{"id":554},"instructions",[556],{"type":56,"value":557},"Instructions",{"type":50,"tag":559,"props":560,"children":562},"h3",{"id":561},"cli-conventions",[563],{"type":56,"value":564},"CLI conventions",{"type":50,"tag":141,"props":566,"children":567},{},[568,573,575,585],{"type":50,"tag":74,"props":569,"children":571},{"className":570},[],[572],{"type":56,"value":42},{"type":56,"value":574}," is nested argparse subcommands. Names and flags drift across\nversions, so ",{"type":50,"tag":474,"props":576,"children":577},{},[578,580],{"type":56,"value":579},"discover the current surface from ",{"type":50,"tag":74,"props":581,"children":583},{"className":582},[],[584],{"type":56,"value":189},{"type":56,"value":586}," rather than\ntrusting any list in this doc.",{"type":50,"tag":588,"props":589,"children":590},"ol",{},[591,637,653],{"type":50,"tag":520,"props":592,"children":593},{},[594,599,601,607,609,615,617,622,624,629,631,636],{"type":50,"tag":474,"props":595,"children":596},{},[597],{"type":56,"value":598},"Format is a positional subcommand",{"type":56,"value":600},", not ",{"type":50,"tag":74,"props":602,"children":604},{"className":603},[],[605],{"type":56,"value":606},"--format",{"type":56,"value":608},":\n",{"type":50,"tag":74,"props":610,"children":612},{"className":611},[],[613],{"type":56,"value":614},"tao-daft validate \u003Cformat> [flags]",{"type":56,"value":616},". List current formats via\n",{"type":50,"tag":74,"props":618,"children":620},{"className":619},[],[621],{"type":56,"value":181},{"type":56,"value":623},"; slugs look like ",{"type":50,"tag":74,"props":625,"children":627},{"className":626},[],[628],{"type":56,"value":157},{"type":56,"value":630},",\n",{"type":50,"tag":74,"props":632,"children":634},{"className":633},[],[635],{"type":56,"value":165},{"type":56,"value":546},{"type":50,"tag":520,"props":638,"children":639},{},[640,651],{"type":50,"tag":474,"props":641,"children":642},{},[643,645],{"type":56,"value":644},"Target is ",{"type":50,"tag":74,"props":646,"children":648},{"className":647},[],[649],{"type":56,"value":650},"--path PATH",{"type":56,"value":652},", not positional. It accepts a single\ndataset\u002Fscene or a parent directory — the validator walks the tree.",{"type":50,"tag":520,"props":654,"children":655},{},[656,661,663,669],{"type":50,"tag":474,"props":657,"children":658},{},[659],{"type":56,"value":660},"Flags are per-format",{"type":56,"value":662},"; run the leaf help, e.g.\n",{"type":50,"tag":74,"props":664,"children":666},{"className":665},[],[667],{"type":56,"value":668},"tao-daft validate metropolis-v3.0 --help",{"type":56,"value":670},", before choosing them.\nDon't assume a flag from one format exists on another.",{"type":50,"tag":141,"props":672,"children":673},{},[674,676,681,683,688,690,696],{"type":56,"value":675},"So the loop is: ",{"type":50,"tag":74,"props":677,"children":679},{"className":678},[],[680],{"type":56,"value":544},{"type":56,"value":682}," → ",{"type":50,"tag":74,"props":684,"children":686},{"className":685},[],[687],{"type":56,"value":181},{"type":56,"value":689}," →\npick format (infer if unspecified, see below) →\n",{"type":50,"tag":74,"props":691,"children":693},{"className":692},[],[694],{"type":56,"value":695},"tao-daft validate \u003Cformat> --help",{"type":56,"value":697}," → run → interpret.",{"type":50,"tag":559,"props":699,"children":701},{"id":700},"format-inference",[702],{"type":56,"value":703},"Format inference",{"type":50,"tag":141,"props":705,"children":706},{},[707],{"type":56,"value":708},"Use directory markers, not filenames:",{"type":50,"tag":516,"props":710,"children":711},{},[712,745,778],{"type":50,"tag":520,"props":713,"children":714},{},[715,721,723,729,731,737,739,744],{"type":50,"tag":74,"props":716,"children":718},{"className":717},[],[719],{"type":56,"value":720},"meta.json",{"type":56,"value":722}," next to ",{"type":50,"tag":74,"props":724,"children":726},{"className":725},[],[727],{"type":56,"value":728},"media\u002F",{"type":56,"value":730}," and ",{"type":50,"tag":74,"props":732,"children":734},{"className":733},[],[735],{"type":56,"value":736},"text\u002F",{"type":56,"value":738}," ⇒ ",{"type":50,"tag":74,"props":740,"children":742},{"className":741},[],[743],{"type":56,"value":165},{"type":56,"value":546},{"type":50,"tag":520,"props":746,"children":747},{},[748,750,756,758,764,765,771,772,777],{"type":56,"value":749},"A directory (or nested directories) containing ",{"type":50,"tag":74,"props":751,"children":753},{"className":752},[],[754],{"type":56,"value":755},"contextual\u002F",{"type":56,"value":757},",\ntypically alongside ",{"type":50,"tag":74,"props":759,"children":761},{"className":760},[],[762],{"type":56,"value":763},"raw\u002F",{"type":56,"value":730},{"type":50,"tag":74,"props":766,"children":768},{"className":767},[],[769],{"type":56,"value":770},"task\u002F",{"type":56,"value":738},{"type":50,"tag":74,"props":773,"children":775},{"className":774},[],[776],{"type":56,"value":157},{"type":56,"value":546},{"type":50,"tag":520,"props":779,"children":780},{},[781],{"type":56,"value":782},"Neither marker present ⇒ ask the user; do not guess.",{"type":50,"tag":559,"props":784,"children":786},{"id":785},"reading-errors",[787],{"type":56,"value":788},"Reading errors",{"type":50,"tag":141,"props":790,"children":791},{},[792,794,800,802,808,810,816],{"type":56,"value":793},"The CLI ends every run with a ",{"type":50,"tag":74,"props":795,"children":797},{"className":796},[],[798],{"type":56,"value":799},"VALIDATION RESULTS",{"type":56,"value":801}," block, then\n",{"type":50,"tag":74,"props":803,"children":805},{"className":804},[],[806],{"type":56,"value":807},"✅ VALIDATION PASSED",{"type":56,"value":809}," or ",{"type":50,"tag":74,"props":811,"children":813},{"className":812},[],[814],{"type":56,"value":815},"❌ VALIDATION FAILED",{"type":56,"value":817},", and exits non-zero on\nfailure (safe to chain in scripts).",{"type":50,"tag":141,"props":819,"children":820},{},[821],{"type":56,"value":822},"Output can be large on big trees — capture the full output to a file\nand read it in slices rather than scrolling inline.",{"type":50,"tag":59,"props":824,"children":826},{"id":825},"limitations",[827],{"type":56,"value":828},"Limitations",{"type":50,"tag":516,"props":830,"children":831},{},[832,837,849,874],{"type":50,"tag":520,"props":833,"children":834},{},[835],{"type":56,"value":836},"Validates DAFT only. Non-DAFT layouts (COCO, YOLO, Data Factory\nJSONL, etc.) belong in the upstream converter skills.",{"type":50,"tag":520,"props":838,"children":839},{},[840,842,847],{"type":56,"value":841},"Supported formats are whatever ",{"type":50,"tag":74,"props":843,"children":845},{"className":844},[],[846],{"type":56,"value":181},{"type":56,"value":848}," reports\nfor the installed version; older slugs may have been retired.",{"type":50,"tag":520,"props":850,"children":851},{},[852,854,860,862,867,868,873],{"type":56,"value":853},"Covers ",{"type":50,"tag":74,"props":855,"children":857},{"className":856},[],[858],{"type":56,"value":859},"validate",{"type":56,"value":861}," only. Defer to the dedicated skills for\n",{"type":50,"tag":74,"props":863,"children":865},{"className":864},[],[866],{"type":56,"value":486},{"type":56,"value":730},{"type":50,"tag":74,"props":869,"children":871},{"className":870},[],[872],{"type":56,"value":494},{"type":56,"value":546},{"type":50,"tag":520,"props":875,"children":876},{},[877],{"type":56,"value":878},"Don't reimplement validation in Python; the CLI is the spec.",{"type":50,"tag":59,"props":880,"children":882},{"id":881},"troubleshooting",[883],{"type":56,"value":884},"Troubleshooting",{"type":50,"tag":516,"props":886,"children":887},{},[888,915,935,956,972],{"type":50,"tag":520,"props":889,"children":890},{},[891,900,902,907,909,914],{"type":50,"tag":474,"props":892,"children":893},{},[894],{"type":50,"tag":74,"props":895,"children":897},{"className":896},[],[898],{"type":56,"value":899},"tao-daft: command not found",{"type":56,"value":901}," — wheel not installed in the active\nenv. ",{"type":50,"tag":74,"props":903,"children":905},{"className":904},[],[906],{"type":56,"value":536},{"type":56,"value":908},"; verify ",{"type":50,"tag":74,"props":910,"children":912},{"className":911},[],[913],{"type":56,"value":544},{"type":56,"value":546},{"type":50,"tag":520,"props":916,"children":917},{},[918,927,929,934],{"type":50,"tag":474,"props":919,"children":920},{},[921],{"type":50,"tag":74,"props":922,"children":924},{"className":923},[],[925],{"type":56,"value":926},"error: argument --path is required",{"type":56,"value":928}," — path passed positionally.\nMove it behind ",{"type":50,"tag":74,"props":930,"children":932},{"className":931},[],[933],{"type":56,"value":173},{"type":56,"value":546},{"type":50,"tag":520,"props":936,"children":937},{},[938,947,949,954],{"type":50,"tag":474,"props":939,"children":940},{},[941],{"type":50,"tag":74,"props":942,"children":944},{"className":943},[],[945],{"type":56,"value":946},"invalid choice: '\u003Cformat>'",{"type":56,"value":948}," — slug isn't wired up in this\nversion. Re-run ",{"type":50,"tag":74,"props":950,"children":952},{"className":951},[],[953],{"type":56,"value":181},{"type":56,"value":955}," and pick from the list.",{"type":50,"tag":520,"props":957,"children":958},{},[959,964,966,971],{"type":50,"tag":474,"props":960,"children":961},{},[962],{"type":56,"value":963},"Auto-detection (raw type \u002F contextual set) is wrong",{"type":56,"value":965}," — override\nvia the format's scope-restriction flag; discover the name from the\nleaf ",{"type":50,"tag":74,"props":967,"children":969},{"className":968},[],[970],{"type":56,"value":189},{"type":56,"value":546},{"type":50,"tag":520,"props":973,"children":974},{},[975,980,982,988],{"type":50,"tag":474,"props":976,"children":977},{},[978],{"type":56,"value":979},"CI wants warnings to fail",{"type":56,"value":981}," — add ",{"type":50,"tag":74,"props":983,"children":985},{"className":984},[],[986],{"type":56,"value":987},"--strict",{"type":56,"value":546},{"type":50,"tag":990,"props":991,"children":992},"style",{},[993],{"type":56,"value":994},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":996,"total":1152},[997,1015,1032,1043,1055,1069,1082,1096,1107,1118,1132,1141],{"slug":998,"name":998,"fn":999,"description":1000,"org":1001,"tags":1002,"stars":1012,"repoUrl":1013,"updatedAt":1014},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1003,1006,1009],{"name":1004,"slug":1005,"type":15},"Documentation","documentation",{"name":1007,"slug":1008,"type":15},"MCP","mcp",{"name":1010,"slug":1011,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1016,"name":1016,"fn":1017,"description":1018,"org":1019,"tags":1020,"stars":1029,"repoUrl":1030,"updatedAt":1031},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1021,1024,1027],{"name":1022,"slug":1023,"type":15},"Containers","containers",{"name":1025,"slug":1026,"type":15},"Deployment","deployment",{"name":1028,"slug":212,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1033,"name":1033,"fn":1034,"description":1035,"org":1036,"tags":1037,"stars":1029,"repoUrl":1030,"updatedAt":1042},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1038,1041],{"name":1039,"slug":1040,"type":15},"CI\u002FCD","ci-cd",{"name":1025,"slug":1026,"type":15},"2026-07-14T05:25:59.97109",{"slug":1044,"name":1044,"fn":1045,"description":1046,"org":1047,"tags":1048,"stars":1029,"repoUrl":1030,"updatedAt":1054},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1049,1050,1051],{"name":1039,"slug":1040,"type":15},{"name":1025,"slug":1026,"type":15},{"name":1052,"slug":1053,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1056,"name":1056,"fn":1057,"description":1058,"org":1059,"tags":1060,"stars":1029,"repoUrl":1030,"updatedAt":1068},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1061,1064,1065],{"name":1062,"slug":1063,"type":15},"Debugging","debugging",{"name":1052,"slug":1053,"type":15},{"name":1066,"slug":1067,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1070,"name":1070,"fn":1071,"description":1072,"org":1073,"tags":1074,"stars":1029,"repoUrl":1030,"updatedAt":1081},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1075,1078],{"name":1076,"slug":1077,"type":15},"Best Practices","best-practices",{"name":1079,"slug":1080,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1083,"name":1083,"fn":1084,"description":1085,"org":1086,"tags":1087,"stars":1029,"repoUrl":1030,"updatedAt":1095},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1088,1091,1094],{"name":1089,"slug":1090,"type":15},"Machine Learning","machine-learning",{"name":1092,"slug":1093,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1097,"name":1097,"fn":1098,"description":1099,"org":1100,"tags":1101,"stars":1029,"repoUrl":1030,"updatedAt":1106},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1102,1103],{"name":20,"slug":21,"type":15},{"name":1104,"slug":1105,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1108,"name":1108,"fn":1109,"description":1110,"org":1111,"tags":1112,"stars":1029,"repoUrl":1030,"updatedAt":1117},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1113,1114],{"name":1025,"slug":1026,"type":15},{"name":1115,"slug":1116,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1119,"name":1119,"fn":1120,"description":1121,"org":1122,"tags":1123,"stars":1029,"repoUrl":1030,"updatedAt":1131},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1124,1127,1128],{"name":1125,"slug":1126,"type":15},"Code Review","code-review",{"name":1052,"slug":1053,"type":15},{"name":1129,"slug":1130,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1133,"name":1133,"fn":1134,"description":1135,"org":1136,"tags":1137,"stars":1029,"repoUrl":1030,"updatedAt":1140},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1138,1139],{"name":20,"slug":21,"type":15},{"name":1104,"slug":1105,"type":15},"2026-07-14T05:25:54.928983",{"slug":1142,"name":1142,"fn":1143,"description":1144,"org":1145,"tags":1146,"stars":1029,"repoUrl":1030,"updatedAt":1151},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1147,1150],{"name":1148,"slug":1149,"type":15},"Automation","automation",{"name":1039,"slug":1040,"type":15},"2026-07-30T05:29:03.275638",496,{"items":1154,"total":1250},[1155,1172,1182,1196,1206,1221,1236],{"slug":1156,"name":1156,"fn":1157,"description":1158,"org":1159,"tags":1160,"stars":23,"repoUrl":24,"updatedAt":1171},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1161,1164,1167,1168],{"name":1162,"slug":1163,"type":15},"Data Analysis","data-analysis",{"name":1165,"slug":1166,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1169,"slug":1170,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1173,"name":1173,"fn":1174,"description":1175,"org":1176,"tags":1177,"stars":23,"repoUrl":24,"updatedAt":1181},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1178,1179,1180],{"name":1025,"slug":1026,"type":15},{"name":1115,"slug":1116,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1183,"name":1183,"fn":1184,"description":1185,"org":1186,"tags":1187,"stars":23,"repoUrl":24,"updatedAt":1195},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1188,1191,1192],{"name":1189,"slug":1190,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1193,"slug":1194,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1197,"name":1197,"fn":1198,"description":1199,"org":1200,"tags":1201,"stars":23,"repoUrl":24,"updatedAt":1205},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1202,1203,1204],{"name":1162,"slug":1163,"type":15},{"name":9,"slug":8,"type":15},{"name":1104,"slug":1105,"type":15},"2026-07-17T05:29:03.913266",{"slug":1207,"name":1207,"fn":1208,"description":1209,"org":1210,"tags":1211,"stars":23,"repoUrl":24,"updatedAt":1220},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1212,1213,1216,1217],{"name":1148,"slug":1149,"type":15},{"name":1214,"slug":1215,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1218,"slug":1219,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1222,"name":1222,"fn":1223,"description":1224,"org":1225,"tags":1226,"stars":23,"repoUrl":24,"updatedAt":1235},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1227,1228,1231,1232],{"name":1025,"slug":1026,"type":15},{"name":1229,"slug":1230,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1233,"slug":1234,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1237,"name":1237,"fn":1238,"description":1239,"org":1240,"tags":1241,"stars":23,"repoUrl":24,"updatedAt":1249},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1242,1243,1246],{"name":9,"slug":8,"type":15},{"name":1244,"slug":1245,"type":15},"Quantum Computing","quantum-computing",{"name":1247,"slug":1248,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]