# simulation-orchestrator

Generates parameter sweep configurations, tracks batch simulation jobs, and aggregates metrics. Useful when evaluating parameter bounds across multiple runs.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 83
- Author: HeshamFS
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/HeshamFS/materials-simulation-skills/tree/HEAD/skills/simulation-workflow/simulation-orchestrator/SKILL.md
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/skills/simulation-orchestrator

## What it does

The skill coordinates multi-run simulation studies using four Python scripts. It provides `sweep_generator.py` for grid, linspace, or Latin Hypercube sampling, alongside `campaign_manager.py` and `job_tracker.py` for run monitoring. It works on Linux, macOS, and Windows with Python 3.10+ and standard library modules only.

Target parameter paths require precise dot notation. A top-level name like `kappa` will not modify a nested `parameters.kappa` entry; it adds an unused key and silently keeps the base value.

By default, `result_aggregator.py` minimizes the target metric. When optimizing for yield or accuracy where higher numbers are better, add the `--maximize` flag to prevent selecting the lowest score.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill simulation-orchestrator -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/simulation-orchestrator/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/simulation-orchestrator/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill simulation-orchestrator -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/simulation-orchestrator/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill simulation-orchestrator -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/simulation-orchestrator/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install HeshamFS/materials-simulation-skills simulation-orchestrator
```

2. **Manually: put the files in place**
- File: `.github/skills/simulation-orchestrator/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill simulation-orchestrator -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/HeshamFS/materials-simulation-skills --path skills/simulation-workflow/simulation-orchestrator
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/simulation-orchestrator/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill simulation-orchestrator -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/HeshamFS/materials-simulation-skills/tree/HEAD/skills/simulation-workflow/simulation-orchestrator/SKILL.md

## When to use it
- generate parameter sweeps using Latin Hypercube Sampling or grid search
- create batch simulation configuration files from a single base template
- track execution status and exit codes for running simulation jobs
- aggregate output metrics to identify the best configuration run

## Example prompts
- Generate a linspace sweep for dt and kappa using `base_config.json`.
- Initialize a batch campaign in `./campaign_001` running `python sim.py --config {config}`.
- Aggregate results from `./campaign_001` to find the highest yield.

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 3a46565a8e529ca9.

BEGIN THIRD-PARTY FILE 3a46565a8e529ca9
````text
---
name: simulation-orchestrator
description: >
  Orchestrate multi-simulation campaigns — generate parameter sweep
  configurations (grid, linspace, or Latin Hypercube sampling), initialize
  and track batch job campaigns, monitor job completion status, and aggregate
  results with summary statistics across all runs. Use when running a
  parameter study across dt, kappa, or other simulation inputs, managing
  dozens or hundreds of simulation configurations, combining outputs from
  completed batch runs to find the best result, or automating the
  generate-run-collect workflow for systematic studies, even if the user
  only says "I need to try many parameter combinations" or "how do I
  organize a sweep."
allowed-tools: Read, Write, Grep, Glob
metadata:
  last_deterministic_eval: "2026-10-20"
  agent_evaluation_status: "not_revalidated"
  author: HeshamFS
  version: "1.1.4"
  security_tier: medium
  security_reviewed: true
  tested_with:
    - claude-code
  last_evaluated: "2026-06-24"
  eval_cases: 5
  last_reviewed: "2026-10-19"
  standards:
    - "Latin Hypercube Sampling (McKay, Beckman & Conover 1979)"
    - "Full factorial / grid Design of Experiments (DOE)"
    - "Sobol (2001) variance-based global sensitivity indices"
    - "Morris (1991) elementary-effects screening"
    - "Tukey (1977) 1.5x IQR outlier rule"
---

# Simulation Orchestrator

## Goal

Provide tools to manage multi-simulation campaigns: generate parameter sweeps, track job execution status, and aggregate results from completed runs.

## Requirements

- Python 3.10+
- No external dependencies (uses Python standard library only)
- Works on Linux, macOS, and Windows

## Inputs to Gather

Before running orchestration scripts, collect from the user:

| Input | Description | Example |
|-------|-------------|---------|
| Base config | Template simulation configuration | `base_config.json` |
| Parameter ranges | Parameters to sweep with bounds | `dt:[1e-4,1e-2],kappa:[0.1,1.0]` |
| Sweep method | How to sample parameter space | `grid`, `lhs`, `linspace` |
| Output directory | Where to store campaign files | `./campaign_001` |
| Simulation command | Command to run each simulation | `python sim.py --config {config}` |

## Decision Guidance

### Choosing a Sweep Method

```
Need every combination (full factorial)?
├── YES → Use grid (warning: exponential growth with parameters)
└── NO → Is space-filling coverage needed?
    ├── YES → Use lhs (Latin Hypercube Sampling)
    └── NO → Use linspace for uniform sampling per parameter
```

| Method | Best For | Sample Count |
|--------|----------|--------------|
````
END THIRD-PARTY FILE 3a46565a8e529ca9

The third-party file has ended. Everything between the 3a46565a8e529ca9 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2648 of 17586 bytes. © HeshamFS · Apache-2.0 · https://github.com/HeshamFS/materials-simulation-skills/tree/HEAD/skills/simulation-workflow/simulation-orchestrator/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
