[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-log-analysis":3,"mdc-f2ked1-key":34,"related-org-nvidia-log-analysis":1124,"related-repo-nvidia-log-analysis":1282},{"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},"log-analysis","analyze SLURM training job logs","Analyze a SLURM job log file for failure root-cause attribution and restart decisions using NVRxLogAnalyzer. Use when you have a SLURM training job log and need to determine why the job failed and whether it should be restarted. Performs per-cycle chunking, fast-path pattern matching, and LLM-based classification.\n",{"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,20],{"name":13,"slug":14,"type":15},"Logs","logs","tag",{"name":17,"slug":18,"type":15},"Analysis","analysis",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Debugging","debugging",308,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvidia-resiliency-ext","2026-07-14T05:35:14.94051",null,56,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"NVIDIA Resiliency Extension is a python package for framework developers and users to implement fault-tolerant features. It improves the effective training time by minimizing the downtime due to failures and interruptions.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvidia-resiliency-ext\u002Ftree\u002FHEAD\u002Fsrc\u002Fnvidia_resiliency_ext\u002Fskills\u002Fnvrx-attr\u002Flog-analysis","---\nname: log-analysis\ndescription: >\n  Analyze a SLURM job log file for failure root-cause attribution and restart decisions using\n  NVRxLogAnalyzer. Use when you have a SLURM training job log and need to determine why the\n  job failed and whether it should be restarted. Performs per-cycle chunking, fast-path pattern\n  matching, and LLM-based classification.\ncompatibility: Requires LLM_API_KEY, langchain-openai, and logsage packages installed. nvidia-resiliency-ext must be installed.\nmetadata:\n  entry-point: NVRxLogAnalyzer\n  script: scripts\u002Fnvrx_logsage.py\n---\n\n# Skill: log_analysis\n\nAnalyze a SLURM job log file for failure root-cause attribution and restart decisions using `NVRxLogAnalyzer`.\n\n**Script:** [`scripts\u002Fnvrx_logsage.py`](.\u002Fscripts\u002Fnvrx_logsage.py) → `attribution\u002Flog_analyzer\u002Fnvrx_logsage.py`\n\n---\n\n## What it does\n\n1. Reads the log file (UTF-8, falls back to latin-1).\n2. Splits into per-cycle chunks using `chunk_logs_strict` (scans for `profiling.py:.*Cycle:\\s*N` markers). Falls back to a single chunk when no markers are found.\n3. For each chunk, extracts application errors via `return_application_errors` (logsage).\n4. Classifies each chunk with fast-path pattern matching (training done, SLURM cancelled, preemption, time limit) or calls the LLM via `get_proposed_solution_cat`.\n5. Returns one result tuple per cycle.\n\n---\n\n## CLI\n\n```bash\npython scripts\u002Fnvrx_logsage.py \\\n    --log-path \u002Fpath\u002Fto\u002Fjob.log \\\n    [--model MODEL] \\\n    [--temperature 0.2] \\\n    [--top_p 0.7] \\\n    [--max_tokens 8192] \\\n    [--exclude_nvrx_logs] \\\n    [--is_per_cycle]\n```\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--log-path` | required | Path to the job log file |\n| `--model` | `nvidia\u002Fnemotron-3-super-120b-a12b` | LLM model |\n| `--temperature` | `0.2` | Sampling temperature |\n| `--top_p` | `0.7` | Top-p nucleus sampling |\n| `--max_tokens` | `8192` | Max output tokens |\n| `--exclude_nvrx_logs` \u002F `--no-exclude_nvrx_logs` | on | Strip `nvidia_resiliency_ext` \u002F `[workload:]` lines before chunking (default on; use `--no-exclude_nvrx_logs` to disable) |\n| `--is_per_cycle` | off | Skip chunking — treat the whole file as a single pre-split cycle |\n\n---\n\n## Programmatic API\n\n```python\nfrom nvidia_resiliency_ext.attribution.log_analyzer.nvrx_logsage import NVRxLogAnalyzer\n\nanalyzer = NVRxLogAnalyzer({\n    \"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\",\n    \"model\": \"nvidia\u002Fnemotron-3-super-120b-a12b\",\n    \"temperature\": 0.2,\n    \"top_p\": 0.7,\n    \"max_tokens\": 8192,\n    \"exclude_nvrx_logs\": False,\n    \"is_per_cycle\": False,\n})\nresults = analyzer.run_sync({\"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\"})\n# results: tuple[list[RawAnalysisResultItem], AttributionState]\n```\n\nRun-time overrides take precedence over constructor config (see `base.effective_run_or_init_config`).\n\n---\n\n## Output\n\nEach returned `RawAnalysisResultItem` keeps `raw_text` with five fields joined by `\\n`,\nbut also carries the parsed fields directly so consumers do not reparse the text:\n\n```\n\u003Crestart_decision>      # \"RESTART IMMEDIATE\" | \"STOP - DONT RESTART IMMEDIATE\"\n\u003Cerror_explanation>     # short string or \"\"\n\u003Cattribution_text>      # \"Attribution: Primary issues: [...], Secondary issues: [...]\"\n\u003Cadditional_detail>     # extended text or \"\"\n\u003Ccheckpoint_saved>      # \"True\" | \"False\"\n```\n\nThe serialized cycle fields are `auto_resume`, `auto_resume_explanation`,\n`attribution_text`, `checkpoint_saved_flag`, `primary_issues`, and\n`secondary_issues`, plus the parsed cycle `action`. The overall client decision\nis emitted separately as `recommendation.action` \u002F `recommendation.source`. The runner's internal\n`AttributionState.STOP` is set only when the parsed cycle action is `STOP`.\n\n### Fast-path decisions (no LLM call)\n\n| Detected condition | restart_decision | attribution_text |\n|--------------------|-----------------|-----------------|\n| Training complete | `STOP - DONT RESTART IMMEDIATE` | `TRAINING DONE` |\n| SLURM preemption | `RESTART IMMEDIATE` | `SLURM CANCELLED DUE TO PREEMPTION` |\n| SLURM step cancelled | `RESTART IMMEDIATE` | `SLURM STEP CANCELLED` |\n| SLURM job requeue | `RESTART IMMEDIATE` | `SLURM STEP CANCELLED JOB REQUEUE` |\n| Time-limit exceeded | `STOP - DONT RESTART IMMEDIATE` | status string |\n| Empty log | — | `NO LOGS` |\n| No errors found | — | `ERRORS NOT FOUND` |\n| LLM failure | — | `LLM FAILURE` |\n\n---\n\n## Prerequisites\n\n- `LLM_API_KEY` set (env var, `LLM_API_KEY_FILE`, or `~\u002F.llm_api_key`)\n- `langchain-openai` and `logsage` packages installed\n",{"data":35,"body":40},{"name":4,"description":6,"compatibility":36,"metadata":37},"Requires LLM_API_KEY, langchain-openai, and logsage packages installed. nvidia-resiliency-ext must be installed.",{"entry-point":38,"script":39},"NVRxLogAnalyzer","scripts\u002Fnvrx_logsage.py",{"type":41,"children":42},"root",[43,52,66,95,99,106,167,170,176,330,562,565,571,689,702,705,711,740,750,839,846,1059,1062,1068,1118],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"skill-log_analysis",[49],{"type":50,"value":51},"text","Skill: log_analysis",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56,58,64],{"type":50,"value":57},"Analyze a SLURM job log file for failure root-cause attribution and restart decisions using ",{"type":44,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":50,"value":38},{"type":50,"value":65},".",{"type":44,"tag":53,"props":67,"children":68},{},[69,75,77,87,89],{"type":44,"tag":70,"props":71,"children":72},"strong",{},[73],{"type":50,"value":74},"Script:",{"type":50,"value":76}," ",{"type":44,"tag":78,"props":79,"children":81},"a",{"href":80},".\u002Fscripts\u002Fnvrx_logsage.py",[82],{"type":44,"tag":59,"props":83,"children":85},{"className":84},[],[86],{"type":50,"value":39},{"type":50,"value":88}," → ",{"type":44,"tag":59,"props":90,"children":92},{"className":91},[],[93],{"type":50,"value":94},"attribution\u002Flog_analyzer\u002Fnvrx_logsage.py",{"type":44,"tag":96,"props":97,"children":98},"hr",{},[],{"type":44,"tag":100,"props":101,"children":103},"h2",{"id":102},"what-it-does",[104],{"type":50,"value":105},"What it does",{"type":44,"tag":107,"props":108,"children":109},"ol",{},[110,116,137,150,162],{"type":44,"tag":111,"props":112,"children":113},"li",{},[114],{"type":50,"value":115},"Reads the log file (UTF-8, falls back to latin-1).",{"type":44,"tag":111,"props":117,"children":118},{},[119,121,127,129,135],{"type":50,"value":120},"Splits into per-cycle chunks using ",{"type":44,"tag":59,"props":122,"children":124},{"className":123},[],[125],{"type":50,"value":126},"chunk_logs_strict",{"type":50,"value":128}," (scans for ",{"type":44,"tag":59,"props":130,"children":132},{"className":131},[],[133],{"type":50,"value":134},"profiling.py:.*Cycle:\\s*N",{"type":50,"value":136}," markers). Falls back to a single chunk when no markers are found.",{"type":44,"tag":111,"props":138,"children":139},{},[140,142,148],{"type":50,"value":141},"For each chunk, extracts application errors via ",{"type":44,"tag":59,"props":143,"children":145},{"className":144},[],[146],{"type":50,"value":147},"return_application_errors",{"type":50,"value":149}," (logsage).",{"type":44,"tag":111,"props":151,"children":152},{},[153,155,161],{"type":50,"value":154},"Classifies each chunk with fast-path pattern matching (training done, SLURM cancelled, preemption, time limit) or calls the LLM via ",{"type":44,"tag":59,"props":156,"children":158},{"className":157},[],[159],{"type":50,"value":160},"get_proposed_solution_cat",{"type":50,"value":65},{"type":44,"tag":111,"props":163,"children":164},{},[165],{"type":50,"value":166},"Returns one result tuple per cycle.",{"type":44,"tag":96,"props":168,"children":169},{},[],{"type":44,"tag":100,"props":171,"children":173},{"id":172},"cli",[174],{"type":50,"value":175},"CLI",{"type":44,"tag":177,"props":178,"children":183},"pre",{"className":179,"code":180,"language":181,"meta":182,"style":182},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python scripts\u002Fnvrx_logsage.py \\\n    --log-path \u002Fpath\u002Fto\u002Fjob.log \\\n    [--model MODEL] \\\n    [--temperature 0.2] \\\n    [--top_p 0.7] \\\n    [--max_tokens 8192] \\\n    [--exclude_nvrx_logs] \\\n    [--is_per_cycle]\n","bash","",[184],{"type":44,"tag":59,"props":185,"children":186},{"__ignoreMap":182},[187,211,229,247,265,283,301,310],{"type":44,"tag":188,"props":189,"children":192},"span",{"class":190,"line":191},"line",1,[193,199,205],{"type":44,"tag":188,"props":194,"children":196},{"style":195},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[197],{"type":50,"value":198},"python",{"type":44,"tag":188,"props":200,"children":202},{"style":201},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[203],{"type":50,"value":204}," scripts\u002Fnvrx_logsage.py",{"type":44,"tag":188,"props":206,"children":208},{"style":207},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[209],{"type":50,"value":210}," \\\n",{"type":44,"tag":188,"props":212,"children":214},{"class":190,"line":213},2,[215,220,225],{"type":44,"tag":188,"props":216,"children":217},{"style":201},[218],{"type":50,"value":219},"    --log-path",{"type":44,"tag":188,"props":221,"children":222},{"style":201},[223],{"type":50,"value":224}," \u002Fpath\u002Fto\u002Fjob.log",{"type":44,"tag":188,"props":226,"children":227},{"style":207},[228],{"type":50,"value":210},{"type":44,"tag":188,"props":230,"children":232},{"class":190,"line":231},3,[233,238,243],{"type":44,"tag":188,"props":234,"children":235},{"style":207},[236],{"type":50,"value":237},"    [--model ",{"type":44,"tag":188,"props":239,"children":240},{"style":201},[241],{"type":50,"value":242},"MODEL]",{"type":44,"tag":188,"props":244,"children":245},{"style":207},[246],{"type":50,"value":210},{"type":44,"tag":188,"props":248,"children":250},{"class":190,"line":249},4,[251,256,261],{"type":44,"tag":188,"props":252,"children":253},{"style":207},[254],{"type":50,"value":255},"    [--temperature ",{"type":44,"tag":188,"props":257,"children":258},{"style":201},[259],{"type":50,"value":260},"0.2]",{"type":44,"tag":188,"props":262,"children":263},{"style":207},[264],{"type":50,"value":210},{"type":44,"tag":188,"props":266,"children":268},{"class":190,"line":267},5,[269,274,279],{"type":44,"tag":188,"props":270,"children":271},{"style":207},[272],{"type":50,"value":273},"    [--top_p ",{"type":44,"tag":188,"props":275,"children":276},{"style":201},[277],{"type":50,"value":278},"0.7]",{"type":44,"tag":188,"props":280,"children":281},{"style":207},[282],{"type":50,"value":210},{"type":44,"tag":188,"props":284,"children":286},{"class":190,"line":285},6,[287,292,297],{"type":44,"tag":188,"props":288,"children":289},{"style":207},[290],{"type":50,"value":291},"    [--max_tokens ",{"type":44,"tag":188,"props":293,"children":294},{"style":201},[295],{"type":50,"value":296},"8192]",{"type":44,"tag":188,"props":298,"children":299},{"style":207},[300],{"type":50,"value":210},{"type":44,"tag":188,"props":302,"children":304},{"class":190,"line":303},7,[305],{"type":44,"tag":188,"props":306,"children":307},{"style":207},[308],{"type":50,"value":309},"    [--exclude_nvrx_logs] \\\n",{"type":44,"tag":188,"props":311,"children":313},{"class":190,"line":312},8,[314,320,325],{"type":44,"tag":188,"props":315,"children":317},{"style":316},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[318],{"type":50,"value":319},"    [",{"type":44,"tag":188,"props":321,"children":322},{"style":207},[323],{"type":50,"value":324},"--is_per_cycle",{"type":44,"tag":188,"props":326,"children":327},{"style":316},[328],{"type":50,"value":329},"]\n",{"type":44,"tag":331,"props":332,"children":333},"table",{},[334,358],{"type":44,"tag":335,"props":336,"children":337},"thead",{},[338],{"type":44,"tag":339,"props":340,"children":341},"tr",{},[342,348,353],{"type":44,"tag":343,"props":344,"children":345},"th",{},[346],{"type":50,"value":347},"Flag",{"type":44,"tag":343,"props":349,"children":350},{},[351],{"type":50,"value":352},"Default",{"type":44,"tag":343,"props":354,"children":355},{},[356],{"type":50,"value":357},"Description",{"type":44,"tag":359,"props":360,"children":361},"tbody",{},[362,385,411,437,463,489,541],{"type":44,"tag":339,"props":363,"children":364},{},[365,375,380],{"type":44,"tag":366,"props":367,"children":368},"td",{},[369],{"type":44,"tag":59,"props":370,"children":372},{"className":371},[],[373],{"type":50,"value":374},"--log-path",{"type":44,"tag":366,"props":376,"children":377},{},[378],{"type":50,"value":379},"required",{"type":44,"tag":366,"props":381,"children":382},{},[383],{"type":50,"value":384},"Path to the job log file",{"type":44,"tag":339,"props":386,"children":387},{},[388,397,406],{"type":44,"tag":366,"props":389,"children":390},{},[391],{"type":44,"tag":59,"props":392,"children":394},{"className":393},[],[395],{"type":50,"value":396},"--model",{"type":44,"tag":366,"props":398,"children":399},{},[400],{"type":44,"tag":59,"props":401,"children":403},{"className":402},[],[404],{"type":50,"value":405},"nvidia\u002Fnemotron-3-super-120b-a12b",{"type":44,"tag":366,"props":407,"children":408},{},[409],{"type":50,"value":410},"LLM model",{"type":44,"tag":339,"props":412,"children":413},{},[414,423,432],{"type":44,"tag":366,"props":415,"children":416},{},[417],{"type":44,"tag":59,"props":418,"children":420},{"className":419},[],[421],{"type":50,"value":422},"--temperature",{"type":44,"tag":366,"props":424,"children":425},{},[426],{"type":44,"tag":59,"props":427,"children":429},{"className":428},[],[430],{"type":50,"value":431},"0.2",{"type":44,"tag":366,"props":433,"children":434},{},[435],{"type":50,"value":436},"Sampling temperature",{"type":44,"tag":339,"props":438,"children":439},{},[440,449,458],{"type":44,"tag":366,"props":441,"children":442},{},[443],{"type":44,"tag":59,"props":444,"children":446},{"className":445},[],[447],{"type":50,"value":448},"--top_p",{"type":44,"tag":366,"props":450,"children":451},{},[452],{"type":44,"tag":59,"props":453,"children":455},{"className":454},[],[456],{"type":50,"value":457},"0.7",{"type":44,"tag":366,"props":459,"children":460},{},[461],{"type":50,"value":462},"Top-p nucleus sampling",{"type":44,"tag":339,"props":464,"children":465},{},[466,475,484],{"type":44,"tag":366,"props":467,"children":468},{},[469],{"type":44,"tag":59,"props":470,"children":472},{"className":471},[],[473],{"type":50,"value":474},"--max_tokens",{"type":44,"tag":366,"props":476,"children":477},{},[478],{"type":44,"tag":59,"props":479,"children":481},{"className":480},[],[482],{"type":50,"value":483},"8192",{"type":44,"tag":366,"props":485,"children":486},{},[487],{"type":50,"value":488},"Max output tokens",{"type":44,"tag":339,"props":490,"children":491},{},[492,509,514],{"type":44,"tag":366,"props":493,"children":494},{},[495,501,503],{"type":44,"tag":59,"props":496,"children":498},{"className":497},[],[499],{"type":50,"value":500},"--exclude_nvrx_logs",{"type":50,"value":502}," \u002F ",{"type":44,"tag":59,"props":504,"children":506},{"className":505},[],[507],{"type":50,"value":508},"--no-exclude_nvrx_logs",{"type":44,"tag":366,"props":510,"children":511},{},[512],{"type":50,"value":513},"on",{"type":44,"tag":366,"props":515,"children":516},{},[517,519,525,526,532,534,539],{"type":50,"value":518},"Strip ",{"type":44,"tag":59,"props":520,"children":522},{"className":521},[],[523],{"type":50,"value":524},"nvidia_resiliency_ext",{"type":50,"value":502},{"type":44,"tag":59,"props":527,"children":529},{"className":528},[],[530],{"type":50,"value":531},"[workload:]",{"type":50,"value":533}," lines before chunking (default on; use ",{"type":44,"tag":59,"props":535,"children":537},{"className":536},[],[538],{"type":50,"value":508},{"type":50,"value":540}," to disable)",{"type":44,"tag":339,"props":542,"children":543},{},[544,552,557],{"type":44,"tag":366,"props":545,"children":546},{},[547],{"type":44,"tag":59,"props":548,"children":550},{"className":549},[],[551],{"type":50,"value":324},{"type":44,"tag":366,"props":553,"children":554},{},[555],{"type":50,"value":556},"off",{"type":44,"tag":366,"props":558,"children":559},{},[560],{"type":50,"value":561},"Skip chunking — treat the whole file as a single pre-split cycle",{"type":44,"tag":96,"props":563,"children":564},{},[],{"type":44,"tag":100,"props":566,"children":568},{"id":567},"programmatic-api",[569],{"type":50,"value":570},"Programmatic API",{"type":44,"tag":177,"props":572,"children":575},{"className":573,"code":574,"language":198,"meta":182,"style":182},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from nvidia_resiliency_ext.attribution.log_analyzer.nvrx_logsage import NVRxLogAnalyzer\n\nanalyzer = NVRxLogAnalyzer({\n    \"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\",\n    \"model\": \"nvidia\u002Fnemotron-3-super-120b-a12b\",\n    \"temperature\": 0.2,\n    \"top_p\": 0.7,\n    \"max_tokens\": 8192,\n    \"exclude_nvrx_logs\": False,\n    \"is_per_cycle\": False,\n})\nresults = analyzer.run_sync({\"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\"})\n# results: tuple[list[RawAnalysisResultItem], AttributionState]\n",[576],{"type":44,"tag":59,"props":577,"children":578},{"__ignoreMap":182},[579,587,596,604,612,620,628,636,644,653,662,671,680],{"type":44,"tag":188,"props":580,"children":581},{"class":190,"line":191},[582],{"type":44,"tag":188,"props":583,"children":584},{},[585],{"type":50,"value":586},"from nvidia_resiliency_ext.attribution.log_analyzer.nvrx_logsage import NVRxLogAnalyzer\n",{"type":44,"tag":188,"props":588,"children":589},{"class":190,"line":213},[590],{"type":44,"tag":188,"props":591,"children":593},{"emptyLinePlaceholder":592},true,[594],{"type":50,"value":595},"\n",{"type":44,"tag":188,"props":597,"children":598},{"class":190,"line":231},[599],{"type":44,"tag":188,"props":600,"children":601},{},[602],{"type":50,"value":603},"analyzer = NVRxLogAnalyzer({\n",{"type":44,"tag":188,"props":605,"children":606},{"class":190,"line":249},[607],{"type":44,"tag":188,"props":608,"children":609},{},[610],{"type":50,"value":611},"    \"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\",\n",{"type":44,"tag":188,"props":613,"children":614},{"class":190,"line":267},[615],{"type":44,"tag":188,"props":616,"children":617},{},[618],{"type":50,"value":619},"    \"model\": \"nvidia\u002Fnemotron-3-super-120b-a12b\",\n",{"type":44,"tag":188,"props":621,"children":622},{"class":190,"line":285},[623],{"type":44,"tag":188,"props":624,"children":625},{},[626],{"type":50,"value":627},"    \"temperature\": 0.2,\n",{"type":44,"tag":188,"props":629,"children":630},{"class":190,"line":303},[631],{"type":44,"tag":188,"props":632,"children":633},{},[634],{"type":50,"value":635},"    \"top_p\": 0.7,\n",{"type":44,"tag":188,"props":637,"children":638},{"class":190,"line":312},[639],{"type":44,"tag":188,"props":640,"children":641},{},[642],{"type":50,"value":643},"    \"max_tokens\": 8192,\n",{"type":44,"tag":188,"props":645,"children":647},{"class":190,"line":646},9,[648],{"type":44,"tag":188,"props":649,"children":650},{},[651],{"type":50,"value":652},"    \"exclude_nvrx_logs\": False,\n",{"type":44,"tag":188,"props":654,"children":656},{"class":190,"line":655},10,[657],{"type":44,"tag":188,"props":658,"children":659},{},[660],{"type":50,"value":661},"    \"is_per_cycle\": False,\n",{"type":44,"tag":188,"props":663,"children":665},{"class":190,"line":664},11,[666],{"type":44,"tag":188,"props":667,"children":668},{},[669],{"type":50,"value":670},"})\n",{"type":44,"tag":188,"props":672,"children":674},{"class":190,"line":673},12,[675],{"type":44,"tag":188,"props":676,"children":677},{},[678],{"type":50,"value":679},"results = analyzer.run_sync({\"log_path\": \"\u002Fpath\u002Fto\u002Fjob.log\"})\n",{"type":44,"tag":188,"props":681,"children":683},{"class":190,"line":682},13,[684],{"type":44,"tag":188,"props":685,"children":686},{},[687],{"type":50,"value":688},"# results: tuple[list[RawAnalysisResultItem], AttributionState]\n",{"type":44,"tag":53,"props":690,"children":691},{},[692,694,700],{"type":50,"value":693},"Run-time overrides take precedence over constructor config (see ",{"type":44,"tag":59,"props":695,"children":697},{"className":696},[],[698],{"type":50,"value":699},"base.effective_run_or_init_config",{"type":50,"value":701},").",{"type":44,"tag":96,"props":703,"children":704},{},[],{"type":44,"tag":100,"props":706,"children":708},{"id":707},"output",[709],{"type":50,"value":710},"Output",{"type":44,"tag":53,"props":712,"children":713},{},[714,716,722,724,730,732,738],{"type":50,"value":715},"Each returned ",{"type":44,"tag":59,"props":717,"children":719},{"className":718},[],[720],{"type":50,"value":721},"RawAnalysisResultItem",{"type":50,"value":723}," keeps ",{"type":44,"tag":59,"props":725,"children":727},{"className":726},[],[728],{"type":50,"value":729},"raw_text",{"type":50,"value":731}," with five fields joined by ",{"type":44,"tag":59,"props":733,"children":735},{"className":734},[],[736],{"type":50,"value":737},"\\n",{"type":50,"value":739},",\nbut also carries the parsed fields directly so consumers do not reparse the text:",{"type":44,"tag":177,"props":741,"children":745},{"className":742,"code":744,"language":50},[743],"language-text","\u003Crestart_decision>      # \"RESTART IMMEDIATE\" | \"STOP - DONT RESTART IMMEDIATE\"\n\u003Cerror_explanation>     # short string or \"\"\n\u003Cattribution_text>      # \"Attribution: Primary issues: [...], Secondary issues: [...]\"\n\u003Cadditional_detail>     # extended text or \"\"\n\u003Ccheckpoint_saved>      # \"True\" | \"False\"\n",[746],{"type":44,"tag":59,"props":747,"children":748},{"__ignoreMap":182},[749],{"type":50,"value":744},{"type":44,"tag":53,"props":751,"children":752},{},[753,755,761,763,769,771,777,778,784,785,791,793,799,801,807,809,815,816,822,824,830,832,838],{"type":50,"value":754},"The serialized cycle fields are ",{"type":44,"tag":59,"props":756,"children":758},{"className":757},[],[759],{"type":50,"value":760},"auto_resume",{"type":50,"value":762},", ",{"type":44,"tag":59,"props":764,"children":766},{"className":765},[],[767],{"type":50,"value":768},"auto_resume_explanation",{"type":50,"value":770},",\n",{"type":44,"tag":59,"props":772,"children":774},{"className":773},[],[775],{"type":50,"value":776},"attribution_text",{"type":50,"value":762},{"type":44,"tag":59,"props":779,"children":781},{"className":780},[],[782],{"type":50,"value":783},"checkpoint_saved_flag",{"type":50,"value":762},{"type":44,"tag":59,"props":786,"children":788},{"className":787},[],[789],{"type":50,"value":790},"primary_issues",{"type":50,"value":792},", and\n",{"type":44,"tag":59,"props":794,"children":796},{"className":795},[],[797],{"type":50,"value":798},"secondary_issues",{"type":50,"value":800},", plus the parsed cycle ",{"type":44,"tag":59,"props":802,"children":804},{"className":803},[],[805],{"type":50,"value":806},"action",{"type":50,"value":808},". The overall client decision\nis emitted separately as ",{"type":44,"tag":59,"props":810,"children":812},{"className":811},[],[813],{"type":50,"value":814},"recommendation.action",{"type":50,"value":502},{"type":44,"tag":59,"props":817,"children":819},{"className":818},[],[820],{"type":50,"value":821},"recommendation.source",{"type":50,"value":823},". The runner's internal\n",{"type":44,"tag":59,"props":825,"children":827},{"className":826},[],[828],{"type":50,"value":829},"AttributionState.STOP",{"type":50,"value":831}," is set only when the parsed cycle action is ",{"type":44,"tag":59,"props":833,"children":835},{"className":834},[],[836],{"type":50,"value":837},"STOP",{"type":50,"value":65},{"type":44,"tag":840,"props":841,"children":843},"h3",{"id":842},"fast-path-decisions-no-llm-call",[844],{"type":50,"value":845},"Fast-path decisions (no LLM call)",{"type":44,"tag":331,"props":847,"children":848},{},[849,869],{"type":44,"tag":335,"props":850,"children":851},{},[852],{"type":44,"tag":339,"props":853,"children":854},{},[855,860,865],{"type":44,"tag":343,"props":856,"children":857},{},[858],{"type":50,"value":859},"Detected condition",{"type":44,"tag":343,"props":861,"children":862},{},[863],{"type":50,"value":864},"restart_decision",{"type":44,"tag":343,"props":866,"children":867},{},[868],{"type":50,"value":776},{"type":44,"tag":359,"props":870,"children":871},{},[872,898,924,949,974,995,1017,1038],{"type":44,"tag":339,"props":873,"children":874},{},[875,880,889],{"type":44,"tag":366,"props":876,"children":877},{},[878],{"type":50,"value":879},"Training complete",{"type":44,"tag":366,"props":881,"children":882},{},[883],{"type":44,"tag":59,"props":884,"children":886},{"className":885},[],[887],{"type":50,"value":888},"STOP - DONT RESTART IMMEDIATE",{"type":44,"tag":366,"props":890,"children":891},{},[892],{"type":44,"tag":59,"props":893,"children":895},{"className":894},[],[896],{"type":50,"value":897},"TRAINING DONE",{"type":44,"tag":339,"props":899,"children":900},{},[901,906,915],{"type":44,"tag":366,"props":902,"children":903},{},[904],{"type":50,"value":905},"SLURM preemption",{"type":44,"tag":366,"props":907,"children":908},{},[909],{"type":44,"tag":59,"props":910,"children":912},{"className":911},[],[913],{"type":50,"value":914},"RESTART IMMEDIATE",{"type":44,"tag":366,"props":916,"children":917},{},[918],{"type":44,"tag":59,"props":919,"children":921},{"className":920},[],[922],{"type":50,"value":923},"SLURM CANCELLED DUE TO PREEMPTION",{"type":44,"tag":339,"props":925,"children":926},{},[927,932,940],{"type":44,"tag":366,"props":928,"children":929},{},[930],{"type":50,"value":931},"SLURM step cancelled",{"type":44,"tag":366,"props":933,"children":934},{},[935],{"type":44,"tag":59,"props":936,"children":938},{"className":937},[],[939],{"type":50,"value":914},{"type":44,"tag":366,"props":941,"children":942},{},[943],{"type":44,"tag":59,"props":944,"children":946},{"className":945},[],[947],{"type":50,"value":948},"SLURM STEP CANCELLED",{"type":44,"tag":339,"props":950,"children":951},{},[952,957,965],{"type":44,"tag":366,"props":953,"children":954},{},[955],{"type":50,"value":956},"SLURM job requeue",{"type":44,"tag":366,"props":958,"children":959},{},[960],{"type":44,"tag":59,"props":961,"children":963},{"className":962},[],[964],{"type":50,"value":914},{"type":44,"tag":366,"props":966,"children":967},{},[968],{"type":44,"tag":59,"props":969,"children":971},{"className":970},[],[972],{"type":50,"value":973},"SLURM STEP CANCELLED JOB REQUEUE",{"type":44,"tag":339,"props":975,"children":976},{},[977,982,990],{"type":44,"tag":366,"props":978,"children":979},{},[980],{"type":50,"value":981},"Time-limit exceeded",{"type":44,"tag":366,"props":983,"children":984},{},[985],{"type":44,"tag":59,"props":986,"children":988},{"className":987},[],[989],{"type":50,"value":888},{"type":44,"tag":366,"props":991,"children":992},{},[993],{"type":50,"value":994},"status string",{"type":44,"tag":339,"props":996,"children":997},{},[998,1003,1008],{"type":44,"tag":366,"props":999,"children":1000},{},[1001],{"type":50,"value":1002},"Empty log",{"type":44,"tag":366,"props":1004,"children":1005},{},[1006],{"type":50,"value":1007},"—",{"type":44,"tag":366,"props":1009,"children":1010},{},[1011],{"type":44,"tag":59,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":50,"value":1016},"NO LOGS",{"type":44,"tag":339,"props":1018,"children":1019},{},[1020,1025,1029],{"type":44,"tag":366,"props":1021,"children":1022},{},[1023],{"type":50,"value":1024},"No errors found",{"type":44,"tag":366,"props":1026,"children":1027},{},[1028],{"type":50,"value":1007},{"type":44,"tag":366,"props":1030,"children":1031},{},[1032],{"type":44,"tag":59,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":50,"value":1037},"ERRORS NOT FOUND",{"type":44,"tag":339,"props":1039,"children":1040},{},[1041,1046,1050],{"type":44,"tag":366,"props":1042,"children":1043},{},[1044],{"type":50,"value":1045},"LLM failure",{"type":44,"tag":366,"props":1047,"children":1048},{},[1049],{"type":50,"value":1007},{"type":44,"tag":366,"props":1051,"children":1052},{},[1053],{"type":44,"tag":59,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":50,"value":1058},"LLM FAILURE",{"type":44,"tag":96,"props":1060,"children":1061},{},[],{"type":44,"tag":100,"props":1063,"children":1065},{"id":1064},"prerequisites",[1066],{"type":50,"value":1067},"Prerequisites",{"type":44,"tag":1069,"props":1070,"children":1071},"ul",{},[1072,1099],{"type":44,"tag":111,"props":1073,"children":1074},{},[1075,1081,1083,1089,1091,1097],{"type":44,"tag":59,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":50,"value":1080},"LLM_API_KEY",{"type":50,"value":1082}," set (env var, ",{"type":44,"tag":59,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":50,"value":1088},"LLM_API_KEY_FILE",{"type":50,"value":1090},", or ",{"type":44,"tag":59,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":50,"value":1096},"~\u002F.llm_api_key",{"type":50,"value":1098},")",{"type":44,"tag":111,"props":1100,"children":1101},{},[1102,1108,1110,1116],{"type":44,"tag":59,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":50,"value":1107},"langchain-openai",{"type":50,"value":1109}," and ",{"type":44,"tag":59,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":50,"value":1115},"logsage",{"type":50,"value":1117}," packages installed",{"type":44,"tag":1119,"props":1120,"children":1121},"style",{},[1122],{"type":50,"value":1123},"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":1125,"total":1281},[1126,1144,1161,1172,1184,1196,1209,1223,1236,1247,1261,1270],{"slug":1127,"name":1127,"fn":1128,"description":1129,"org":1130,"tags":1131,"stars":1141,"repoUrl":1142,"updatedAt":1143},"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},[1132,1135,1138],{"name":1133,"slug":1134,"type":15},"Documentation","documentation",{"name":1136,"slug":1137,"type":15},"MCP","mcp",{"name":1139,"slug":1140,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1145,"name":1145,"fn":1146,"description":1147,"org":1148,"tags":1149,"stars":1158,"repoUrl":1159,"updatedAt":1160},"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},[1150,1153,1156],{"name":1151,"slug":1152,"type":15},"Containers","containers",{"name":1154,"slug":1155,"type":15},"Deployment","deployment",{"name":1157,"slug":198,"type":15},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1162,"name":1162,"fn":1163,"description":1164,"org":1165,"tags":1166,"stars":1158,"repoUrl":1159,"updatedAt":1171},"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},[1167,1170],{"name":1168,"slug":1169,"type":15},"CI\u002FCD","ci-cd",{"name":1154,"slug":1155,"type":15},"2026-07-14T05:25:59.97109",{"slug":1173,"name":1173,"fn":1174,"description":1175,"org":1176,"tags":1177,"stars":1158,"repoUrl":1159,"updatedAt":1183},"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},[1178,1179,1180],{"name":1168,"slug":1169,"type":15},{"name":1154,"slug":1155,"type":15},{"name":1181,"slug":1182,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1185,"name":1185,"fn":1186,"description":1187,"org":1188,"tags":1189,"stars":1158,"repoUrl":1159,"updatedAt":1195},"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},[1190,1191,1192],{"name":21,"slug":22,"type":15},{"name":1181,"slug":1182,"type":15},{"name":1193,"slug":1194,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1197,"name":1197,"fn":1198,"description":1199,"org":1200,"tags":1201,"stars":1158,"repoUrl":1159,"updatedAt":1208},"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},[1202,1205],{"name":1203,"slug":1204,"type":15},"Best Practices","best-practices",{"name":1206,"slug":1207,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1210,"name":1210,"fn":1211,"description":1212,"org":1213,"tags":1214,"stars":1158,"repoUrl":1159,"updatedAt":1222},"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},[1215,1218,1221],{"name":1216,"slug":1217,"type":15},"Machine Learning","machine-learning",{"name":1219,"slug":1220,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1224,"name":1224,"fn":1225,"description":1226,"org":1227,"tags":1228,"stars":1158,"repoUrl":1159,"updatedAt":1235},"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},[1229,1232],{"name":1230,"slug":1231,"type":15},"QA","qa",{"name":1233,"slug":1234,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1237,"name":1237,"fn":1238,"description":1239,"org":1240,"tags":1241,"stars":1158,"repoUrl":1159,"updatedAt":1246},"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},[1242,1243],{"name":1154,"slug":1155,"type":15},{"name":1244,"slug":1245,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1248,"name":1248,"fn":1249,"description":1250,"org":1251,"tags":1252,"stars":1158,"repoUrl":1159,"updatedAt":1260},"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},[1253,1256,1257],{"name":1254,"slug":1255,"type":15},"Code Review","code-review",{"name":1181,"slug":1182,"type":15},{"name":1258,"slug":1259,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1262,"name":1262,"fn":1263,"description":1264,"org":1265,"tags":1266,"stars":1158,"repoUrl":1159,"updatedAt":1269},"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},[1267,1268],{"name":1230,"slug":1231,"type":15},{"name":1233,"slug":1234,"type":15},"2026-07-14T05:25:54.928983",{"slug":1271,"name":1271,"fn":1272,"description":1273,"org":1274,"tags":1275,"stars":1158,"repoUrl":1159,"updatedAt":1280},"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},[1276,1279],{"name":1277,"slug":1278,"type":15},"Automation","automation",{"name":1168,"slug":1169,"type":15},"2026-07-30T05:29:03.275638",496,{"items":1283,"total":249},[1284,1299,1312,1319],{"slug":1285,"name":1285,"fn":1286,"description":1287,"org":1288,"tags":1289,"stars":23,"repoUrl":24,"updatedAt":1298},"fault-injection-loop","run closed-loop fault injection benchmarks","Closed-loop fault injection and attribution accuracy benchmark. Draws from a prioritized pool of (fault_type, rank, iter, nodes) experiments and submits them 2 at a time via sbatch — waiting for each pair to finish before submitting the next — to bound filesystem load. GPU-related faults are front-loaded in the pool. After all jobs complete, runs \u002Flog-analysis and \u002Ffr-analysis on every experiment, scores attribution vs. ground truth, aggregates gaps, and iterates on attribution modules to close them.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1290,1293,1294,1297],{"name":1291,"slug":1292,"type":15},"Benchmarking","benchmarking",{"name":9,"slug":8,"type":15},{"name":1295,"slug":1296,"type":15},"Simulation","simulation",{"name":1233,"slug":1234,"type":15},"2026-07-14T05:35:12.409884",{"slug":1300,"name":1300,"fn":1301,"description":1302,"org":1303,"tags":1304,"stars":23,"repoUrl":24,"updatedAt":1311},"fr-analysis","analyze NCCL flight-recorder dumps","Analyze PyTorch NCCL flight-recorder (FR) dumps to identify collective operation hangs and isolate the responsible ranks using CollectiveAnalyzer. Use when a distributed training job hangs due to an NCCL collective timeout and FR dump files are available. Detects the wavefront process group where collectives diverge and returns the root-cause suspect ranks.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1305,1306,1307,1308],{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1309,"slug":1310,"type":15},"Performance","performance","2026-07-14T05:35:13.703056",{"slug":4,"name":4,"fn":5,"description":6,"org":1313,"tags":1314,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1315,1316,1317,1318],{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":1320,"name":1320,"fn":1321,"description":1322,"org":1323,"tags":1324,"stars":23,"repoUrl":24,"updatedAt":1331},"nvrx-attr","analyze attribution quality for Megatron-LM","Orchestration layer over nvidia_resiliency_ext attribution modules. Provides log-analysis, fr-analysis, and a Megatron-LM-oriented fault-injection feedback loop for benchmarking attribution quality on SLURM workloads.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1325,1328,1329,1330],{"name":1326,"slug":1327,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1291,"slug":1292,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:36:19.02075"]