[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-simulationskill":3,"mdc--g16ml5-key":45,"related-repo-nvidia-simulationskill":1186,"related-org-nvidia-simulationskill":1259},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":40,"sourceUrl":43,"mdContent":44},"simulationskill","simulation_skill","run and monitor simulations","Run, monitor, and control simulations. Use when executing simulations, checking progress, or stopping running simulations. Supports foreground and background execution, progress monitoring, and process management.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[13,17,20,21],{"name":14,"slug":15,"type":16},"Monitoring","monitoring","tag",{"name":18,"slug":19,"type":16},"Automation","automation",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},"Simulation","simulation",4115,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FGenerativeAIExamples","2026-07-14T05:32:17.914931","Apache-2.0",1093,[30,31,32,33,34,35,36,37,38,39],"gpu-acceleration","large-language-models","llm","llm-inference","microservice","nemo","rag","retrieval-augmented-generation","tensorrt","triton-inference-server",{"repoUrl":25,"stars":24,"forks":28,"topics":41,"description":42},[30,31,32,33,34,35,36,37,38,39],"Generative AI reference workflows optimized for accelerated infrastructure and microservice architecture.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FGenerativeAIExamples\u002Ftree\u002FHEAD\u002Findustries\u002Fenergy\u002Fsimulation-workflow-agent\u002Fsim_agent\u002Fsrc\u002Fsimulator_agent\u002Fskills\u002Fsimulation_skill","---\nname: simulation_skill\ndescription: Run, monitor, and control simulations. Use when executing simulations, checking progress, or stopping running simulations. Supports foreground and background execution, progress monitoring, and process management.\nlicense: Apache-2.0\nmetadata:\n  author: sim-agent\n  version: \"1.0\"\n  category: simulator\ncompatibility: Requires simulator installed, Python environment with langchain and subprocess support\n---\n\n# Simulation Skill\n\nThis skill provides tools for executing and managing simulations.\n\n## Overview\n\nThe Simulation skill enables agents to:\n\n- **Run** simulations from simulator input files\n- **Run and heal** run + auto-fix on failure, it will launch both run and monitor in one go from user input files\n- **Monitor** simulation progress and status\n- **Stop** running simulations when needed\n- **Manage** simulation processes and output directories\n\n## Tools\n\n### run_and_heal\n\nRuns a simulation and, on failure, automatically parses PRT errors, optionally consults RAG (simulator_manual, simulator_examples), and produces a fixed DATA file. Implemented as a chain: run_simulation in parallel with PRT wait + error parsing; if errors are found, extract keyword, call RAG tools if config is available, then create a fixed DATA file (e.g. \\*_FIXED.DATA).\n\n**Implementation:** `simulator_agent\u002Ftools\u002Fself_heal_chain.py`\n\n**Usage (script):**\n```bash\npython -m simulator_agent.tools.self_heal_chain \\\n  --prt-loc-dir \u002Fpath\u002Fto\u002Foutput\u002F \\\n  --data-file \u002Fpath\u002Fto\u002FCASE.DATA \\\n  [--config \u002Fpath\u002Fto\u002Fconfig.yaml] \\\n  [--output-file \u002Fpath\u002Fto\u002Foutput\u002F]\n```\n\n**Parameters:** `data_file`, `output_dir` (optional), `num_mpi_processes` (default: 1, for MPI parallel runs with np>1).\n\n**When to use:**\n- When the user wants to run a case and automatically attempt to fix and re-run on simulation failure (run-and-heal flow).\n- Alternative to manual run_simulation → inspect failure → patch_simulation_input_keyword\u002Fmodify_simulation_input_file → run_simulation.\n\n\n### run_simulation\n\nRuns a simulation from a DATA file. Supports both foreground (wait for completion) and background (return immediately) execution.\n\n**Usage:**\n```python\nrun_simulation(\n    data_file: str,\n    output_dir: Optional[str] = None,\n    num_threads: int = 1,\n    num_mpi_processes: int = 1,\n    additional_args: Optional[str] = None,\n    background: bool = True\n) -> str\n```\n\n**Parameters:**\n- `data_file`: Path to the simulator input (DATA) file to run\n- `output_dir`: Optional output directory (default: same directory as DATA file)\n- `num_threads`: Number of threads for parallel simulation (default: 1)\n- `num_mpi_processes`: Number of MPI processes (np). When > 1, runs via `mpirun -np N flow ...` (default: 1). Set `OPM_MPI_LAUNCHER=mpiexec` to use mpiexec instead.\n- `additional_args`: Optional additional command-line arguments\n- `background`: If True, start and return immediately. If False, wait for completion and return full report including return code, stdout, stderr, and parsed PRT errors on failure.\n\n**Example:**\n```\nrun_simulation(\n    data_file=\"SPE1CASE1_AGENT_GENERATED.DATA\",\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    num_threads=4,\n    background=False\n)\n```\n\n**Returns:** \n- Background mode: Simulation start confirmation with PID, output directory, and log paths\n- Foreground mode: Full completion report with return code, stdout, stderr, and PRT errors (if failed)\n\n**When to use:** \n- Direct run (TOOL_DECISION_TREE.md Section 2.3) when user provides DATA file path + run intent\n- After scenario modifications (Section 2.4) to execute the modified case\n- HITL confirm run flow (Section 2.1) after user confirms\n- After auto-fix (Section 2.2) to re-run the fixed case\n\n### monitor_simulation\n\nMonitors the progress of a running simulation by reading the PRT file.\n\n**Usage:**\n```python\nmonitor_simulation(\n    output_dir: str,\n    tail_lines: int = 80,\n    use_llm_summary: bool = False,\n    llm_model: Optional[str] = None\n) -> str\n```\n\n**Parameters:**\n- `output_dir`: Directory containing simulation output files (must contain .PRT file)\n- `tail_lines`: Number of lines to read from end of PRT file (default: 80)\n- `use_llm_summary`: If True, use LLM to summarize the PRT tail (default: False)\n- `llm_model`: Optional LLM model override for summary\n\n**Example:**\n```\nmonitor_simulation(\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    tail_lines=100,\n    use_llm_summary=True\n)\n```\n\n**Returns:** Simulation status (running\u002Fcompleted\u002Ffailed) and PRT tail content, optionally with LLM summary.\n\n**When to use:** \n- When user asks to check simulation progress (Section 3.5, LLM choice)\n- For background runs to track completion\n- When debugging simulation issues\n\n### stop_simulation\n\nStops a running simulation by process ID.\n\n**Usage:**\n```python\nstop_simulation(\n    pid: int,\n    output_dir: Optional[str] = None,\n    force: bool = False\n) -> str\n```\n\n**Parameters:**\n- `pid`: Process ID of the simulation to stop\n- `output_dir`: Optional output directory with run metadata\n- `force`: If True, use SIGKILL (force kill). If False, use SIGTERM (graceful shutdown).\n\n**Example:**\n```\nstop_simulation(\n    pid=12345,\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    force=False\n)\n```\n\n**Returns:** Confirmation message with PID, signal used, and metadata update status.\n\n**When to use:**\n- When user requests to stop a running simulation (Section 3.5, LLM choice)\n- For process management and cleanup\n\n## Workflow Integration\n\nThis skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md):\n\n1. **Direct Run (Section 2.3):**\n   ```\n   run_and_heal (optionally after HITL confirm)\n   ```\n\n2. **Scenario Test Chain (Section 2.4):**\n   ```\n   parse_simulation_input_file → simulator_manual → simulator_examples → modify_simulation_input_file → run_and_heal\n   ```\n\n3. **HITL Confirm Run (Section 2.1):**\n   ```\n   User confirms → run_and_heal\n   ```\n\n4. **After run_and_heal (Section 3.3):**\n   ```\n   run_and_heal → (auto-fix if failed) → summarize\n   ```\n\n5. **Monitoring (Section 3.5):**\n   ```\n   monitor_simulation (via LLM choice)\n   stop_simulation (via LLM choice)\n   ```\n\n## Implementation Details\n\nTools are implemented as LangChain tools with Pydantic input schemas. The skill uses:\n\n- **Subprocess management**: For running Flow executables\n- **Process tracking**: PID and metadata stored in run.json\n- **Output parsing**: PRT file parsing for progress and errors\n- **Error handling**: Comprehensive error messages and failure reporting\n\n## Error Handling\n\nAll tools return descriptive error messages if:\n- DATA files are not found\n- Flow executable is not available\n- Output directories cannot be created\n- Processes cannot be stopped\n- PRT files cannot be read\n\n## Environment Variables\n\n- `OPM_PROJECT_ROOT`: Used to resolve paths in Docker environments\n- `OPM_FLOW_EXTRA_ARGS`: Additional arguments passed to Flow (e.g., `--CheckSatfuncConsistency=0`)\n\n## References\n\n- [Tool Decision Tree](references\u002FTOOL_DECISION_TREE.md) - Routing logic\n- [Simulation Tools README](..\u002F..\u002Ftools\u002FREADME.md) - Detailed tool documentation\n\n",{"data":46,"body":52},{"name":5,"description":7,"license":27,"metadata":47,"compatibility":51},{"author":48,"version":49,"category":50},"sim-agent","1.0","simulator","Requires simulator installed, Python environment with langchain and subprocess support",{"type":53,"children":54},"root",[55,64,70,77,82,138,144,150,155,172,180,288,321,329,342,347,352,360,435,442,524,532,542,550,563,570,593,598,603,610,664,671,717,724,733,742,749,767,772,777,784,829,836,871,878,887,896,903,916,922,927,1016,1022,1027,1070,1076,1081,1109,1115,1148,1154,1180],{"type":56,"tag":57,"props":58,"children":60},"element","h1",{"id":59},"simulation-skill",[61],{"type":62,"value":63},"text","Simulation Skill",{"type":56,"tag":65,"props":66,"children":67},"p",{},[68],{"type":62,"value":69},"This skill provides tools for executing and managing simulations.",{"type":56,"tag":71,"props":72,"children":74},"h2",{"id":73},"overview",[75],{"type":62,"value":76},"Overview",{"type":56,"tag":65,"props":78,"children":79},{},[80],{"type":62,"value":81},"The Simulation skill enables agents to:",{"type":56,"tag":83,"props":84,"children":85},"ul",{},[86,98,108,118,128],{"type":56,"tag":87,"props":88,"children":89},"li",{},[90,96],{"type":56,"tag":91,"props":92,"children":93},"strong",{},[94],{"type":62,"value":95},"Run",{"type":62,"value":97}," simulations from simulator input files",{"type":56,"tag":87,"props":99,"children":100},{},[101,106],{"type":56,"tag":91,"props":102,"children":103},{},[104],{"type":62,"value":105},"Run and heal",{"type":62,"value":107}," run + auto-fix on failure, it will launch both run and monitor in one go from user input files",{"type":56,"tag":87,"props":109,"children":110},{},[111,116],{"type":56,"tag":91,"props":112,"children":113},{},[114],{"type":62,"value":115},"Monitor",{"type":62,"value":117}," simulation progress and status",{"type":56,"tag":87,"props":119,"children":120},{},[121,126],{"type":56,"tag":91,"props":122,"children":123},{},[124],{"type":62,"value":125},"Stop",{"type":62,"value":127}," running simulations when needed",{"type":56,"tag":87,"props":129,"children":130},{},[131,136],{"type":56,"tag":91,"props":132,"children":133},{},[134],{"type":62,"value":135},"Manage",{"type":62,"value":137}," simulation processes and output directories",{"type":56,"tag":71,"props":139,"children":141},{"id":140},"tools",[142],{"type":62,"value":143},"Tools",{"type":56,"tag":145,"props":146,"children":148},"h3",{"id":147},"run_and_heal",[149],{"type":62,"value":147},{"type":56,"tag":65,"props":151,"children":152},{},[153],{"type":62,"value":154},"Runs a simulation and, on failure, automatically parses PRT errors, optionally consults RAG (simulator_manual, simulator_examples), and produces a fixed DATA file. Implemented as a chain: run_simulation in parallel with PRT wait + error parsing; if errors are found, extract keyword, call RAG tools if config is available, then create a fixed DATA file (e.g. *_FIXED.DATA).",{"type":56,"tag":65,"props":156,"children":157},{},[158,163,165],{"type":56,"tag":91,"props":159,"children":160},{},[161],{"type":62,"value":162},"Implementation:",{"type":62,"value":164}," ",{"type":56,"tag":166,"props":167,"children":169},"code",{"className":168},[],[170],{"type":62,"value":171},"simulator_agent\u002Ftools\u002Fself_heal_chain.py",{"type":56,"tag":65,"props":173,"children":174},{},[175],{"type":56,"tag":91,"props":176,"children":177},{},[178],{"type":62,"value":179},"Usage (script):",{"type":56,"tag":181,"props":182,"children":187},"pre",{"className":183,"code":184,"language":185,"meta":186,"style":186},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python -m simulator_agent.tools.self_heal_chain \\\n  --prt-loc-dir \u002Fpath\u002Fto\u002Foutput\u002F \\\n  --data-file \u002Fpath\u002Fto\u002FCASE.DATA \\\n  [--config \u002Fpath\u002Fto\u002Fconfig.yaml] \\\n  [--output-file \u002Fpath\u002Fto\u002Foutput\u002F]\n","bash","",[188],{"type":56,"tag":166,"props":189,"children":190},{"__ignoreMap":186},[191,220,238,256,274],{"type":56,"tag":192,"props":193,"children":196},"span",{"class":194,"line":195},"line",1,[197,203,209,214],{"type":56,"tag":192,"props":198,"children":200},{"style":199},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[201],{"type":62,"value":202},"python",{"type":56,"tag":192,"props":204,"children":206},{"style":205},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[207],{"type":62,"value":208}," -m",{"type":56,"tag":192,"props":210,"children":211},{"style":205},[212],{"type":62,"value":213}," simulator_agent.tools.self_heal_chain",{"type":56,"tag":192,"props":215,"children":217},{"style":216},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[218],{"type":62,"value":219}," \\\n",{"type":56,"tag":192,"props":221,"children":223},{"class":194,"line":222},2,[224,229,234],{"type":56,"tag":192,"props":225,"children":226},{"style":205},[227],{"type":62,"value":228},"  --prt-loc-dir",{"type":56,"tag":192,"props":230,"children":231},{"style":205},[232],{"type":62,"value":233}," \u002Fpath\u002Fto\u002Foutput\u002F",{"type":56,"tag":192,"props":235,"children":236},{"style":216},[237],{"type":62,"value":219},{"type":56,"tag":192,"props":239,"children":241},{"class":194,"line":240},3,[242,247,252],{"type":56,"tag":192,"props":243,"children":244},{"style":205},[245],{"type":62,"value":246},"  --data-file",{"type":56,"tag":192,"props":248,"children":249},{"style":205},[250],{"type":62,"value":251}," \u002Fpath\u002Fto\u002FCASE.DATA",{"type":56,"tag":192,"props":253,"children":254},{"style":216},[255],{"type":62,"value":219},{"type":56,"tag":192,"props":257,"children":259},{"class":194,"line":258},4,[260,265,270],{"type":56,"tag":192,"props":261,"children":262},{"style":216},[263],{"type":62,"value":264},"  [--config ",{"type":56,"tag":192,"props":266,"children":267},{"style":205},[268],{"type":62,"value":269},"\u002Fpath\u002Fto\u002Fconfig.yaml]",{"type":56,"tag":192,"props":271,"children":272},{"style":216},[273],{"type":62,"value":219},{"type":56,"tag":192,"props":275,"children":277},{"class":194,"line":276},5,[278,283],{"type":56,"tag":192,"props":279,"children":280},{"style":216},[281],{"type":62,"value":282},"  [--output-file ",{"type":56,"tag":192,"props":284,"children":285},{"style":205},[286],{"type":62,"value":287},"\u002Fpath\u002Fto\u002Foutput\u002F]\n",{"type":56,"tag":65,"props":289,"children":290},{},[291,296,297,303,305,311,313,319],{"type":56,"tag":91,"props":292,"children":293},{},[294],{"type":62,"value":295},"Parameters:",{"type":62,"value":164},{"type":56,"tag":166,"props":298,"children":300},{"className":299},[],[301],{"type":62,"value":302},"data_file",{"type":62,"value":304},", ",{"type":56,"tag":166,"props":306,"children":308},{"className":307},[],[309],{"type":62,"value":310},"output_dir",{"type":62,"value":312}," (optional), ",{"type":56,"tag":166,"props":314,"children":316},{"className":315},[],[317],{"type":62,"value":318},"num_mpi_processes",{"type":62,"value":320}," (default: 1, for MPI parallel runs with np>1).",{"type":56,"tag":65,"props":322,"children":323},{},[324],{"type":56,"tag":91,"props":325,"children":326},{},[327],{"type":62,"value":328},"When to use:",{"type":56,"tag":83,"props":330,"children":331},{},[332,337],{"type":56,"tag":87,"props":333,"children":334},{},[335],{"type":62,"value":336},"When the user wants to run a case and automatically attempt to fix and re-run on simulation failure (run-and-heal flow).",{"type":56,"tag":87,"props":338,"children":339},{},[340],{"type":62,"value":341},"Alternative to manual run_simulation → inspect failure → patch_simulation_input_keyword\u002Fmodify_simulation_input_file → run_simulation.",{"type":56,"tag":145,"props":343,"children":345},{"id":344},"run_simulation",[346],{"type":62,"value":344},{"type":56,"tag":65,"props":348,"children":349},{},[350],{"type":62,"value":351},"Runs a simulation from a DATA file. Supports both foreground (wait for completion) and background (return immediately) execution.",{"type":56,"tag":65,"props":353,"children":354},{},[355],{"type":56,"tag":91,"props":356,"children":357},{},[358],{"type":62,"value":359},"Usage:",{"type":56,"tag":181,"props":361,"children":364},{"className":362,"code":363,"language":202,"meta":186,"style":186},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","run_simulation(\n    data_file: str,\n    output_dir: Optional[str] = None,\n    num_threads: int = 1,\n    num_mpi_processes: int = 1,\n    additional_args: Optional[str] = None,\n    background: bool = True\n) -> str\n",[365],{"type":56,"tag":166,"props":366,"children":367},{"__ignoreMap":186},[368,376,384,392,400,408,417,426],{"type":56,"tag":192,"props":369,"children":370},{"class":194,"line":195},[371],{"type":56,"tag":192,"props":372,"children":373},{},[374],{"type":62,"value":375},"run_simulation(\n",{"type":56,"tag":192,"props":377,"children":378},{"class":194,"line":222},[379],{"type":56,"tag":192,"props":380,"children":381},{},[382],{"type":62,"value":383},"    data_file: str,\n",{"type":56,"tag":192,"props":385,"children":386},{"class":194,"line":240},[387],{"type":56,"tag":192,"props":388,"children":389},{},[390],{"type":62,"value":391},"    output_dir: Optional[str] = None,\n",{"type":56,"tag":192,"props":393,"children":394},{"class":194,"line":258},[395],{"type":56,"tag":192,"props":396,"children":397},{},[398],{"type":62,"value":399},"    num_threads: int = 1,\n",{"type":56,"tag":192,"props":401,"children":402},{"class":194,"line":276},[403],{"type":56,"tag":192,"props":404,"children":405},{},[406],{"type":62,"value":407},"    num_mpi_processes: int = 1,\n",{"type":56,"tag":192,"props":409,"children":411},{"class":194,"line":410},6,[412],{"type":56,"tag":192,"props":413,"children":414},{},[415],{"type":62,"value":416},"    additional_args: Optional[str] = None,\n",{"type":56,"tag":192,"props":418,"children":420},{"class":194,"line":419},7,[421],{"type":56,"tag":192,"props":422,"children":423},{},[424],{"type":62,"value":425},"    background: bool = True\n",{"type":56,"tag":192,"props":427,"children":429},{"class":194,"line":428},8,[430],{"type":56,"tag":192,"props":431,"children":432},{},[433],{"type":62,"value":434},") -> str\n",{"type":56,"tag":65,"props":436,"children":437},{},[438],{"type":56,"tag":91,"props":439,"children":440},{},[441],{"type":62,"value":295},{"type":56,"tag":83,"props":443,"children":444},{},[445,455,465,476,502,513],{"type":56,"tag":87,"props":446,"children":447},{},[448,453],{"type":56,"tag":166,"props":449,"children":451},{"className":450},[],[452],{"type":62,"value":302},{"type":62,"value":454},": Path to the simulator input (DATA) file to run",{"type":56,"tag":87,"props":456,"children":457},{},[458,463],{"type":56,"tag":166,"props":459,"children":461},{"className":460},[],[462],{"type":62,"value":310},{"type":62,"value":464},": Optional output directory (default: same directory as DATA file)",{"type":56,"tag":87,"props":466,"children":467},{},[468,474],{"type":56,"tag":166,"props":469,"children":471},{"className":470},[],[472],{"type":62,"value":473},"num_threads",{"type":62,"value":475},": Number of threads for parallel simulation (default: 1)",{"type":56,"tag":87,"props":477,"children":478},{},[479,484,486,492,494,500],{"type":56,"tag":166,"props":480,"children":482},{"className":481},[],[483],{"type":62,"value":318},{"type":62,"value":485},": Number of MPI processes (np). When > 1, runs via ",{"type":56,"tag":166,"props":487,"children":489},{"className":488},[],[490],{"type":62,"value":491},"mpirun -np N flow ...",{"type":62,"value":493}," (default: 1). Set ",{"type":56,"tag":166,"props":495,"children":497},{"className":496},[],[498],{"type":62,"value":499},"OPM_MPI_LAUNCHER=mpiexec",{"type":62,"value":501}," to use mpiexec instead.",{"type":56,"tag":87,"props":503,"children":504},{},[505,511],{"type":56,"tag":166,"props":506,"children":508},{"className":507},[],[509],{"type":62,"value":510},"additional_args",{"type":62,"value":512},": Optional additional command-line arguments",{"type":56,"tag":87,"props":514,"children":515},{},[516,522],{"type":56,"tag":166,"props":517,"children":519},{"className":518},[],[520],{"type":62,"value":521},"background",{"type":62,"value":523},": If True, start and return immediately. If False, wait for completion and return full report including return code, stdout, stderr, and parsed PRT errors on failure.",{"type":56,"tag":65,"props":525,"children":526},{},[527],{"type":56,"tag":91,"props":528,"children":529},{},[530],{"type":62,"value":531},"Example:",{"type":56,"tag":181,"props":533,"children":537},{"className":534,"code":536,"language":62},[535],"language-text","run_simulation(\n    data_file=\"SPE1CASE1_AGENT_GENERATED.DATA\",\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    num_threads=4,\n    background=False\n)\n",[538],{"type":56,"tag":166,"props":539,"children":540},{"__ignoreMap":186},[541],{"type":62,"value":536},{"type":56,"tag":65,"props":543,"children":544},{},[545],{"type":56,"tag":91,"props":546,"children":547},{},[548],{"type":62,"value":549},"Returns:",{"type":56,"tag":83,"props":551,"children":552},{},[553,558],{"type":56,"tag":87,"props":554,"children":555},{},[556],{"type":62,"value":557},"Background mode: Simulation start confirmation with PID, output directory, and log paths",{"type":56,"tag":87,"props":559,"children":560},{},[561],{"type":62,"value":562},"Foreground mode: Full completion report with return code, stdout, stderr, and PRT errors (if failed)",{"type":56,"tag":65,"props":564,"children":565},{},[566],{"type":56,"tag":91,"props":567,"children":568},{},[569],{"type":62,"value":328},{"type":56,"tag":83,"props":571,"children":572},{},[573,578,583,588],{"type":56,"tag":87,"props":574,"children":575},{},[576],{"type":62,"value":577},"Direct run (TOOL_DECISION_TREE.md Section 2.3) when user provides DATA file path + run intent",{"type":56,"tag":87,"props":579,"children":580},{},[581],{"type":62,"value":582},"After scenario modifications (Section 2.4) to execute the modified case",{"type":56,"tag":87,"props":584,"children":585},{},[586],{"type":62,"value":587},"HITL confirm run flow (Section 2.1) after user confirms",{"type":56,"tag":87,"props":589,"children":590},{},[591],{"type":62,"value":592},"After auto-fix (Section 2.2) to re-run the fixed case",{"type":56,"tag":145,"props":594,"children":596},{"id":595},"monitor_simulation",[597],{"type":62,"value":595},{"type":56,"tag":65,"props":599,"children":600},{},[601],{"type":62,"value":602},"Monitors the progress of a running simulation by reading the PRT file.",{"type":56,"tag":65,"props":604,"children":605},{},[606],{"type":56,"tag":91,"props":607,"children":608},{},[609],{"type":62,"value":359},{"type":56,"tag":181,"props":611,"children":613},{"className":362,"code":612,"language":202,"meta":186,"style":186},"monitor_simulation(\n    output_dir: str,\n    tail_lines: int = 80,\n    use_llm_summary: bool = False,\n    llm_model: Optional[str] = None\n) -> str\n",[614],{"type":56,"tag":166,"props":615,"children":616},{"__ignoreMap":186},[617,625,633,641,649,657],{"type":56,"tag":192,"props":618,"children":619},{"class":194,"line":195},[620],{"type":56,"tag":192,"props":621,"children":622},{},[623],{"type":62,"value":624},"monitor_simulation(\n",{"type":56,"tag":192,"props":626,"children":627},{"class":194,"line":222},[628],{"type":56,"tag":192,"props":629,"children":630},{},[631],{"type":62,"value":632},"    output_dir: str,\n",{"type":56,"tag":192,"props":634,"children":635},{"class":194,"line":240},[636],{"type":56,"tag":192,"props":637,"children":638},{},[639],{"type":62,"value":640},"    tail_lines: int = 80,\n",{"type":56,"tag":192,"props":642,"children":643},{"class":194,"line":258},[644],{"type":56,"tag":192,"props":645,"children":646},{},[647],{"type":62,"value":648},"    use_llm_summary: bool = False,\n",{"type":56,"tag":192,"props":650,"children":651},{"class":194,"line":276},[652],{"type":56,"tag":192,"props":653,"children":654},{},[655],{"type":62,"value":656},"    llm_model: Optional[str] = None\n",{"type":56,"tag":192,"props":658,"children":659},{"class":194,"line":410},[660],{"type":56,"tag":192,"props":661,"children":662},{},[663],{"type":62,"value":434},{"type":56,"tag":65,"props":665,"children":666},{},[667],{"type":56,"tag":91,"props":668,"children":669},{},[670],{"type":62,"value":295},{"type":56,"tag":83,"props":672,"children":673},{},[674,684,695,706],{"type":56,"tag":87,"props":675,"children":676},{},[677,682],{"type":56,"tag":166,"props":678,"children":680},{"className":679},[],[681],{"type":62,"value":310},{"type":62,"value":683},": Directory containing simulation output files (must contain .PRT file)",{"type":56,"tag":87,"props":685,"children":686},{},[687,693],{"type":56,"tag":166,"props":688,"children":690},{"className":689},[],[691],{"type":62,"value":692},"tail_lines",{"type":62,"value":694},": Number of lines to read from end of PRT file (default: 80)",{"type":56,"tag":87,"props":696,"children":697},{},[698,704],{"type":56,"tag":166,"props":699,"children":701},{"className":700},[],[702],{"type":62,"value":703},"use_llm_summary",{"type":62,"value":705},": If True, use LLM to summarize the PRT tail (default: False)",{"type":56,"tag":87,"props":707,"children":708},{},[709,715],{"type":56,"tag":166,"props":710,"children":712},{"className":711},[],[713],{"type":62,"value":714},"llm_model",{"type":62,"value":716},": Optional LLM model override for summary",{"type":56,"tag":65,"props":718,"children":719},{},[720],{"type":56,"tag":91,"props":721,"children":722},{},[723],{"type":62,"value":531},{"type":56,"tag":181,"props":725,"children":728},{"className":726,"code":727,"language":62},[535],"monitor_simulation(\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    tail_lines=100,\n    use_llm_summary=True\n)\n",[729],{"type":56,"tag":166,"props":730,"children":731},{"__ignoreMap":186},[732],{"type":62,"value":727},{"type":56,"tag":65,"props":734,"children":735},{},[736,740],{"type":56,"tag":91,"props":737,"children":738},{},[739],{"type":62,"value":549},{"type":62,"value":741}," Simulation status (running\u002Fcompleted\u002Ffailed) and PRT tail content, optionally with LLM summary.",{"type":56,"tag":65,"props":743,"children":744},{},[745],{"type":56,"tag":91,"props":746,"children":747},{},[748],{"type":62,"value":328},{"type":56,"tag":83,"props":750,"children":751},{},[752,757,762],{"type":56,"tag":87,"props":753,"children":754},{},[755],{"type":62,"value":756},"When user asks to check simulation progress (Section 3.5, LLM choice)",{"type":56,"tag":87,"props":758,"children":759},{},[760],{"type":62,"value":761},"For background runs to track completion",{"type":56,"tag":87,"props":763,"children":764},{},[765],{"type":62,"value":766},"When debugging simulation issues",{"type":56,"tag":145,"props":768,"children":770},{"id":769},"stop_simulation",[771],{"type":62,"value":769},{"type":56,"tag":65,"props":773,"children":774},{},[775],{"type":62,"value":776},"Stops a running simulation by process ID.",{"type":56,"tag":65,"props":778,"children":779},{},[780],{"type":56,"tag":91,"props":781,"children":782},{},[783],{"type":62,"value":359},{"type":56,"tag":181,"props":785,"children":787},{"className":362,"code":786,"language":202,"meta":186,"style":186},"stop_simulation(\n    pid: int,\n    output_dir: Optional[str] = None,\n    force: bool = False\n) -> str\n",[788],{"type":56,"tag":166,"props":789,"children":790},{"__ignoreMap":186},[791,799,807,814,822],{"type":56,"tag":192,"props":792,"children":793},{"class":194,"line":195},[794],{"type":56,"tag":192,"props":795,"children":796},{},[797],{"type":62,"value":798},"stop_simulation(\n",{"type":56,"tag":192,"props":800,"children":801},{"class":194,"line":222},[802],{"type":56,"tag":192,"props":803,"children":804},{},[805],{"type":62,"value":806},"    pid: int,\n",{"type":56,"tag":192,"props":808,"children":809},{"class":194,"line":240},[810],{"type":56,"tag":192,"props":811,"children":812},{},[813],{"type":62,"value":391},{"type":56,"tag":192,"props":815,"children":816},{"class":194,"line":258},[817],{"type":56,"tag":192,"props":818,"children":819},{},[820],{"type":62,"value":821},"    force: bool = False\n",{"type":56,"tag":192,"props":823,"children":824},{"class":194,"line":276},[825],{"type":56,"tag":192,"props":826,"children":827},{},[828],{"type":62,"value":434},{"type":56,"tag":65,"props":830,"children":831},{},[832],{"type":56,"tag":91,"props":833,"children":834},{},[835],{"type":62,"value":295},{"type":56,"tag":83,"props":837,"children":838},{},[839,850,860],{"type":56,"tag":87,"props":840,"children":841},{},[842,848],{"type":56,"tag":166,"props":843,"children":845},{"className":844},[],[846],{"type":62,"value":847},"pid",{"type":62,"value":849},": Process ID of the simulation to stop",{"type":56,"tag":87,"props":851,"children":852},{},[853,858],{"type":56,"tag":166,"props":854,"children":856},{"className":855},[],[857],{"type":62,"value":310},{"type":62,"value":859},": Optional output directory with run metadata",{"type":56,"tag":87,"props":861,"children":862},{},[863,869],{"type":56,"tag":166,"props":864,"children":866},{"className":865},[],[867],{"type":62,"value":868},"force",{"type":62,"value":870},": If True, use SIGKILL (force kill). If False, use SIGTERM (graceful shutdown).",{"type":56,"tag":65,"props":872,"children":873},{},[874],{"type":56,"tag":91,"props":875,"children":876},{},[877],{"type":62,"value":531},{"type":56,"tag":181,"props":879,"children":882},{"className":880,"code":881,"language":62},[535],"stop_simulation(\n    pid=12345,\n    output_dir=\"\u002Fpath\u002Fto\u002Foutput\",\n    force=False\n)\n",[883],{"type":56,"tag":166,"props":884,"children":885},{"__ignoreMap":186},[886],{"type":62,"value":881},{"type":56,"tag":65,"props":888,"children":889},{},[890,894],{"type":56,"tag":91,"props":891,"children":892},{},[893],{"type":62,"value":549},{"type":62,"value":895}," Confirmation message with PID, signal used, and metadata update status.",{"type":56,"tag":65,"props":897,"children":898},{},[899],{"type":56,"tag":91,"props":900,"children":901},{},[902],{"type":62,"value":328},{"type":56,"tag":83,"props":904,"children":905},{},[906,911],{"type":56,"tag":87,"props":907,"children":908},{},[909],{"type":62,"value":910},"When user requests to stop a running simulation (Section 3.5, LLM choice)",{"type":56,"tag":87,"props":912,"children":913},{},[914],{"type":62,"value":915},"For process management and cleanup",{"type":56,"tag":71,"props":917,"children":919},{"id":918},"workflow-integration",[920],{"type":62,"value":921},"Workflow Integration",{"type":56,"tag":65,"props":923,"children":924},{},[925],{"type":62,"value":926},"This skill integrates with the Simulator Agent's decision tree (TOOL_DECISION_TREE.md):",{"type":56,"tag":928,"props":929,"children":930},"ol",{},[931,948,965,982,999],{"type":56,"tag":87,"props":932,"children":933},{},[934,939],{"type":56,"tag":91,"props":935,"children":936},{},[937],{"type":62,"value":938},"Direct Run (Section 2.3):",{"type":56,"tag":181,"props":940,"children":943},{"className":941,"code":942,"language":62},[535],"run_and_heal (optionally after HITL confirm)\n",[944],{"type":56,"tag":166,"props":945,"children":946},{"__ignoreMap":186},[947],{"type":62,"value":942},{"type":56,"tag":87,"props":949,"children":950},{},[951,956],{"type":56,"tag":91,"props":952,"children":953},{},[954],{"type":62,"value":955},"Scenario Test Chain (Section 2.4):",{"type":56,"tag":181,"props":957,"children":960},{"className":958,"code":959,"language":62},[535],"parse_simulation_input_file → simulator_manual → simulator_examples → modify_simulation_input_file → run_and_heal\n",[961],{"type":56,"tag":166,"props":962,"children":963},{"__ignoreMap":186},[964],{"type":62,"value":959},{"type":56,"tag":87,"props":966,"children":967},{},[968,973],{"type":56,"tag":91,"props":969,"children":970},{},[971],{"type":62,"value":972},"HITL Confirm Run (Section 2.1):",{"type":56,"tag":181,"props":974,"children":977},{"className":975,"code":976,"language":62},[535],"User confirms → run_and_heal\n",[978],{"type":56,"tag":166,"props":979,"children":980},{"__ignoreMap":186},[981],{"type":62,"value":976},{"type":56,"tag":87,"props":983,"children":984},{},[985,990],{"type":56,"tag":91,"props":986,"children":987},{},[988],{"type":62,"value":989},"After run_and_heal (Section 3.3):",{"type":56,"tag":181,"props":991,"children":994},{"className":992,"code":993,"language":62},[535],"run_and_heal → (auto-fix if failed) → summarize\n",[995],{"type":56,"tag":166,"props":996,"children":997},{"__ignoreMap":186},[998],{"type":62,"value":993},{"type":56,"tag":87,"props":1000,"children":1001},{},[1002,1007],{"type":56,"tag":91,"props":1003,"children":1004},{},[1005],{"type":62,"value":1006},"Monitoring (Section 3.5):",{"type":56,"tag":181,"props":1008,"children":1011},{"className":1009,"code":1010,"language":62},[535],"monitor_simulation (via LLM choice)\nstop_simulation (via LLM choice)\n",[1012],{"type":56,"tag":166,"props":1013,"children":1014},{"__ignoreMap":186},[1015],{"type":62,"value":1010},{"type":56,"tag":71,"props":1017,"children":1019},{"id":1018},"implementation-details",[1020],{"type":62,"value":1021},"Implementation Details",{"type":56,"tag":65,"props":1023,"children":1024},{},[1025],{"type":62,"value":1026},"Tools are implemented as LangChain tools with Pydantic input schemas. The skill uses:",{"type":56,"tag":83,"props":1028,"children":1029},{},[1030,1040,1050,1060],{"type":56,"tag":87,"props":1031,"children":1032},{},[1033,1038],{"type":56,"tag":91,"props":1034,"children":1035},{},[1036],{"type":62,"value":1037},"Subprocess management",{"type":62,"value":1039},": For running Flow executables",{"type":56,"tag":87,"props":1041,"children":1042},{},[1043,1048],{"type":56,"tag":91,"props":1044,"children":1045},{},[1046],{"type":62,"value":1047},"Process tracking",{"type":62,"value":1049},": PID and metadata stored in run.json",{"type":56,"tag":87,"props":1051,"children":1052},{},[1053,1058],{"type":56,"tag":91,"props":1054,"children":1055},{},[1056],{"type":62,"value":1057},"Output parsing",{"type":62,"value":1059},": PRT file parsing for progress and errors",{"type":56,"tag":87,"props":1061,"children":1062},{},[1063,1068],{"type":56,"tag":91,"props":1064,"children":1065},{},[1066],{"type":62,"value":1067},"Error handling",{"type":62,"value":1069},": Comprehensive error messages and failure reporting",{"type":56,"tag":71,"props":1071,"children":1073},{"id":1072},"error-handling",[1074],{"type":62,"value":1075},"Error Handling",{"type":56,"tag":65,"props":1077,"children":1078},{},[1079],{"type":62,"value":1080},"All tools return descriptive error messages if:",{"type":56,"tag":83,"props":1082,"children":1083},{},[1084,1089,1094,1099,1104],{"type":56,"tag":87,"props":1085,"children":1086},{},[1087],{"type":62,"value":1088},"DATA files are not found",{"type":56,"tag":87,"props":1090,"children":1091},{},[1092],{"type":62,"value":1093},"Flow executable is not available",{"type":56,"tag":87,"props":1095,"children":1096},{},[1097],{"type":62,"value":1098},"Output directories cannot be created",{"type":56,"tag":87,"props":1100,"children":1101},{},[1102],{"type":62,"value":1103},"Processes cannot be stopped",{"type":56,"tag":87,"props":1105,"children":1106},{},[1107],{"type":62,"value":1108},"PRT files cannot be read",{"type":56,"tag":71,"props":1110,"children":1112},{"id":1111},"environment-variables",[1113],{"type":62,"value":1114},"Environment Variables",{"type":56,"tag":83,"props":1116,"children":1117},{},[1118,1129],{"type":56,"tag":87,"props":1119,"children":1120},{},[1121,1127],{"type":56,"tag":166,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":62,"value":1126},"OPM_PROJECT_ROOT",{"type":62,"value":1128},": Used to resolve paths in Docker environments",{"type":56,"tag":87,"props":1130,"children":1131},{},[1132,1138,1140,1146],{"type":56,"tag":166,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":62,"value":1137},"OPM_FLOW_EXTRA_ARGS",{"type":62,"value":1139},": Additional arguments passed to Flow (e.g., ",{"type":56,"tag":166,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":62,"value":1145},"--CheckSatfuncConsistency=0",{"type":62,"value":1147},")",{"type":56,"tag":71,"props":1149,"children":1151},{"id":1150},"references",[1152],{"type":62,"value":1153},"References",{"type":56,"tag":83,"props":1155,"children":1156},{},[1157,1169],{"type":56,"tag":87,"props":1158,"children":1159},{},[1160,1167],{"type":56,"tag":1161,"props":1162,"children":1164},"a",{"href":1163},"references\u002FTOOL_DECISION_TREE.md",[1165],{"type":62,"value":1166},"Tool Decision Tree",{"type":62,"value":1168}," - Routing logic",{"type":56,"tag":87,"props":1170,"children":1171},{},[1172,1178],{"type":56,"tag":1161,"props":1173,"children":1175},{"href":1174},"..\u002F..\u002Ftools\u002FREADME.md",[1176],{"type":62,"value":1177},"Simulation Tools README",{"type":62,"value":1179}," - Detailed tool documentation",{"type":56,"tag":1181,"props":1182,"children":1183},"style",{},[1184],{"type":62,"value":1185},"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":1187,"total":276},[1188,1204,1220,1236,1252],{"slug":1189,"name":1190,"fn":1191,"description":1192,"org":1193,"tags":1194,"stars":24,"repoUrl":25,"updatedAt":1203},"inputfileskill","input_file_skill","manage simulator input files","Parse, modify, validate, and patch simulator input files. Use when working with reservoir simulation input files, testing scenarios, or validating simulation configurations. This implementation supports reference format (.DATA); other simulators use different extensions (e.g., .afi, .DAT). Supports natural language modifications, keyword patching, and syntax validation.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1195,1198,1199,1200],{"name":1196,"slug":1197,"type":16},"Configuration","configuration",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},{"name":1201,"slug":1202,"type":16},"Validation","validation","2026-07-14T05:32:16.602719",{"slug":1205,"name":1206,"fn":1207,"description":1208,"org":1209,"tags":1210,"stars":24,"repoUrl":25,"updatedAt":1219},"plotskill","plot_skill","visualize simulation summary metrics","Plot and compare simulation summary metrics. Use when visualizing time-series results, comparing multiple cases, or analyzing production performance. Supports single and multi-metric plots, case comparisons, and automatic metric keyword resolution.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1211,1214,1217,1218],{"name":1212,"slug":1213,"type":16},"Charts","charts",{"name":1215,"slug":1216,"type":16},"Data Visualization","data-visualization",{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},"2026-07-14T05:32:19.171135",{"slug":1221,"name":1222,"fn":1223,"description":1224,"org":1225,"tags":1226,"stars":24,"repoUrl":25,"updatedAt":1235},"ragskill","rag_skill","retrieve simulator documentation and examples","Retrieve information from simulator manual and example DATA files. Use when answering keyword format questions, syntax queries, or when looking up official documentation and working examples. Essential for understanding keyword definitions, parameter tables, and concrete usage patterns.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1227,1230,1231,1234],{"name":1228,"slug":1229,"type":16},"Documentation","documentation",{"name":10,"slug":9,"type":16},{"name":1232,"slug":1233,"type":16},"Research","research",{"name":22,"slug":23,"type":16},"2026-07-14T05:32:15.32946",{"slug":1237,"name":1238,"fn":1239,"description":1240,"org":1241,"tags":1242,"stars":24,"repoUrl":25,"updatedAt":1251},"resultsskill","results_skill","analyze simulation binary output files","Read and analyze simulation binary output files. Use when extracting summary data, grid properties, or running flow diagnostics (time-of-flight, tracer, allocation, F-Phi, Lorenz) from completed simulations.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1243,1246,1247,1250],{"name":1244,"slug":1245,"type":16},"Data Analysis","data-analysis",{"name":10,"slug":9,"type":16},{"name":1248,"slug":1249,"type":16},"Performance","performance",{"name":22,"slug":23,"type":16},"2026-07-14T05:32:14.078951",{"slug":4,"name":5,"fn":6,"description":7,"org":1253,"tags":1254,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":9,"name":10,"logoUrl":11,"githubOrg":10},[1255,1256,1257,1258],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":10,"slug":9,"type":16},{"name":22,"slug":23,"type":16},{"items":1260,"total":1414},[1261,1277,1294,1305,1317,1331,1344,1358,1371,1382,1396,1405],{"slug":1262,"name":1262,"fn":1263,"description":1264,"org":1265,"tags":1266,"stars":1274,"repoUrl":1275,"updatedAt":1276},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1267,1268,1271],{"name":1228,"slug":1229,"type":16},{"name":1269,"slug":1270,"type":16},"MCP","mcp",{"name":1272,"slug":1273,"type":16},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1278,"name":1278,"fn":1279,"description":1280,"org":1281,"tags":1282,"stars":1291,"repoUrl":1292,"updatedAt":1293},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1283,1286,1289],{"name":1284,"slug":1285,"type":16},"Containers","containers",{"name":1287,"slug":1288,"type":16},"Deployment","deployment",{"name":1290,"slug":202,"type":16},"Python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1295,"name":1295,"fn":1296,"description":1297,"org":1298,"tags":1299,"stars":1291,"repoUrl":1292,"updatedAt":1304},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1300,1303],{"name":1301,"slug":1302,"type":16},"CI\u002FCD","ci-cd",{"name":1287,"slug":1288,"type":16},"2026-07-14T05:25:59.97109",{"slug":1306,"name":1306,"fn":1307,"description":1308,"org":1309,"tags":1310,"stars":1291,"repoUrl":1292,"updatedAt":1316},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1311,1312,1313],{"name":1301,"slug":1302,"type":16},{"name":1287,"slug":1288,"type":16},{"name":1314,"slug":1315,"type":16},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1318,"name":1318,"fn":1319,"description":1320,"org":1321,"tags":1322,"stars":1291,"repoUrl":1292,"updatedAt":1330},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1323,1326,1327],{"name":1324,"slug":1325,"type":16},"Debugging","debugging",{"name":1314,"slug":1315,"type":16},{"name":1328,"slug":1329,"type":16},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1332,"name":1332,"fn":1333,"description":1334,"org":1335,"tags":1336,"stars":1291,"repoUrl":1292,"updatedAt":1343},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1337,1340],{"name":1338,"slug":1339,"type":16},"Best Practices","best-practices",{"name":1341,"slug":1342,"type":16},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1345,"name":1345,"fn":1346,"description":1347,"org":1348,"tags":1349,"stars":1291,"repoUrl":1292,"updatedAt":1357},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1350,1353,1356],{"name":1351,"slug":1352,"type":16},"Machine Learning","machine-learning",{"name":1354,"slug":1355,"type":16},"Migration","migration",{"name":10,"slug":9,"type":16},"2026-07-17T06:07:11.777011",{"slug":1359,"name":1359,"fn":1360,"description":1361,"org":1362,"tags":1363,"stars":1291,"repoUrl":1292,"updatedAt":1370},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1364,1367],{"name":1365,"slug":1366,"type":16},"QA","qa",{"name":1368,"slug":1369,"type":16},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1372,"name":1372,"fn":1373,"description":1374,"org":1375,"tags":1376,"stars":1291,"repoUrl":1292,"updatedAt":1381},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1377,1378],{"name":1287,"slug":1288,"type":16},{"name":1379,"slug":1380,"type":16},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1383,"name":1383,"fn":1384,"description":1385,"org":1386,"tags":1387,"stars":1291,"repoUrl":1292,"updatedAt":1395},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1388,1391,1392],{"name":1389,"slug":1390,"type":16},"Code Review","code-review",{"name":1314,"slug":1315,"type":16},{"name":1393,"slug":1394,"type":16},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1397,"name":1397,"fn":1398,"description":1399,"org":1400,"tags":1401,"stars":1291,"repoUrl":1292,"updatedAt":1404},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1402,1403],{"name":1365,"slug":1366,"type":16},{"name":1368,"slug":1369,"type":16},"2026-07-14T05:25:54.928983",{"slug":1406,"name":1406,"fn":1407,"description":1408,"org":1409,"tags":1410,"stars":1291,"repoUrl":1292,"updatedAt":1413},"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":9,"name":10,"logoUrl":11,"githubOrg":10},[1411,1412],{"name":18,"slug":19,"type":16},{"name":1301,"slug":1302,"type":16},"2026-07-30T05:29:03.275638",496]