csml-rpi/ai-cfd-scientist/cfd-pipeline
Claude Code and agent skill by csml-rpi/ai-cfd-scientist
- community
Checking that the SKILL.md file is still in the repository.
Top-level CFD Scientist research pipeline. Chains the cfd-* sub-skills end-to-end — literature → hypothesis → mesh-gate → experiments → analysis → paper. Routes to code-mod / open-ended / general subflows based on intent. Self-contained — embeds MetricSetupAgent + MetricSetupVerifier prompts verbatim for the metric-setup stage.
Install
npx vskill@latest install csml-rpi/ai-cfd-scientist/cfd-pipelineSKILL.md
cfd-pipeline
End-to-end CFD research from topic to paper, in skill mode.
When to use
- User provides a CFD topic and wants the whole pipeline
- They prefer skill-driven (markdown) execution over
python scripts/orchestrator_run.py - They are integrating with a non-Claude-Code agent framework
If the user wants the standard Python orchestrator, send them to scripts/orchestrator_run.py instead — this skill is the markdown alternative.
Inputs
topic(required): research topic stringout-dir(required): run directory (will be created)starter-dir(optional): starter case directory (e.g.starter/); required for code-mod and OEDn_cases(optional, default 4): number of experiment cases for general flowoed_budget(optional): if set, route to open-ended discoveryprovider,model(optional): LLM provider/model hints (default: inherit from agent)enable_reference_verify(optional, default false): post-paper bibliography verification
Starter directory is READ-ONLY (perskills/cfd-orchestrator/SKILL.mdnon-negotiable constraints). Every stage that consumes the starter (baseline_setup,mesh_gate,code_mod,experiments) copies into<out-dir>/before editing. Neversed -i,> file, or otherwise mutate paths under the starter tree.
Routing — pick the subflow first
Read the topic and decide which pathway:
- Open-ended discovery — phrases like "open-ended", "discover", "find a novel", "beat baseline", "best model" → invoke
cfd-open-discovery. - Code-modification — phrases like "implement", "modify", "custom viscosity model", "Bingham", "power law", "Carreau", "source term", "fvOption", "turbulence model change" → run
cfd-literature→cfd-code-modify→cfd-mesh-gate→cfd-experiment(per case) →cfd-interpret→cfd-analyze→cfd-paper. - General — everything else → run
cfd-literature→cfd-hypothesis→cfd-requirements→cfd-mesh-gate→cfd-experiment× N →cfd-interpret× N →cfd-analyze→cfd-paper. - Analysis-only — keywords "analyze", "plot", "post-process", "visualize results" with an existing run dir → skip directly to
cfd-analyze. - Paper-only — keywords "write paper", "LaTeX", "manuscript", "draft the paper" with
analysis.jsonalready present → skip directly tocfd-paper. - Mesh-independence-only — keywords "mesh independence", "GCI", "grid convergence", "Richardson" → just
cfd-mesh-gate.
Confirm the routing decision in one sentence to the user before chaining.
Chain (general path)
- Create out-dir. Write
state.jsonwith{topic, mode, started_at}and an emptytimeline.json.
- `/cfd-literature topic out-dir` → produces
lit.json.
- (Optional) benchmark_plan — picks DNS / experimental reference datasets to score against. Only fires when the topic mentions a benchmark, validation target, or reference data:
``bash python scripts/benchmark_data_prepare.py \ --topic "<topic>" \ --literature <out-dir>/lit.json \ --output <out-dir>/benchmark_data.json ` Or do it agent-driven: feed lit.json + topic to the LLM and ask it to enumerate likely benchmark datasets (DNS by Le-Moin, ERCOFTAC, channel flow Moser/Kim/Mansour, NACA RAE2822, etc.); write the list as benchmark_data.json`.
- (Optional) reference_data_ingest — registers reference CSVs / DNS data from the starter into a manifest:
``bash python scripts/reference_data_ingest.py \ --topic "<topic>" \ --output <out-dir>/reference_data_manifest.json \ --starter-dir <starter_dir> \ --timeline <out-dir>/timeline.json ` Agent-driven alternative: walk <starter_dir>/reference_data/ (or the topic's likely subdir), inspect each file's first 30 lines to identify columns/units, and write a manifest: `json { "datasets": [ {"id": "dns_cf_ph_re5600", "path": "starter/reference_data/cf_dns.csv", "topic": "periodic hill Cf", "columns": ["x", "Cf"], "units": ["L/h", "dimensionless"], "source": "Frohlich et al 2005"} ] } ``
- baseline_setup (mandatory, fires for every mode) — runs the unmodified base case so subsequent comparisons have a true baseline:
``bash python scripts/baseline_setup.py \ --run-dir <out-dir> \ --topic "<topic>" \ --output <out-dir>/baseline_metrics.json \ --timeout 1800 \ --starter-dir <starter_dir> \ --reference-data-manifest <out-dir>/reference_data_manifest.json \ --objective-contract <out-dir>/open_ended_discovery/objective_contract.json ` --starter-dir, --reference-data-manifest, and --objective-contract are appended only if the corresponding files exist. The --objective-contract` only exists for OED runs.
Agent-driven alternative: invoke /cfd-experiment requirement_text=<baseline_req> case_dir=<out-dir>/baseline_case/case, then collect QoIs into baseline_metrics.json.
- metric_setup (mandatory, fires for every mode) — LLM enumerates the metrics worth tracking, authors a single comparator script that computes them all in one pass, and self-tests the script against the baseline before downstream cases use it.
This stage uses the embedded MetricSetupAgent and MetricSetupVerifier prompts below — agent-driven primary path. The script fast-path is just a wrapper around the same prompts. The four prompts are placed at column 0 (no indent) so the embedded text matches prompts/prompts.yaml byte-for-byte; treat them as the contents of step 6 even though markdown does not visually nest them inside the numbered list.
MetricSetupAgent system prompt (from prompts/prompts.yaml: MetricSetupAgent.metric_setup_system_prompt)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcfd-skills/cfd-pipeline/SKILL.md
Popularity
- Repository stars
- 51
- Repository forks
- 6
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/csml-rpi/ai-cfd-scientist/cfd-pipeline)