Agent skill

Neqsim Autonomous Investigation

by equinor in equinor/neqsim

Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies.

Apache-2.0Auto-check passedDevelopment

Install Neqsim Autonomous Investigation

skills CLI
$ npx skills add equinor/neqsim --skill neqsim-autonomous-investigation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install equinor/neqsim neqsim-autonomous-investigation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/equinor/neqsim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/neqsim-autonomous-investigation .claude/skills/neqsim-autonomous-investigation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
neqsim-autonomous-investigation
GitHub stars
156
Token cost
~2.9k tokens
SKILL.md length
1,031 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies.

  • Works in 5 steps: Observe (no assumptions). Pull all… → Hypothesize (compete). Generate at least… → Predict (differentiate). For each… → …
  • : solving a PEPR action
  • SKILL.md covers When to Use, The Investigation Loop…, Unsupervised relationship… and External (non-historian)…, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Neqsim Autonomous Investigation is an agent skill from equinor/neqsim. Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies. USE WHEN: solving a PEPR action, root-cause or operational study where the symptom, driver or important relationships are NOT given up front. Uses neqsim.process.diagnostics.RelationshipGraph for lead-lag relationship discovery across historian tags, then hands off to neqsim-root-cause-analysis.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Root cause analysis. The repository describes itself as: NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. The licence is Apache-2.0.

When your agent uses it

  • : solving a PEPR action
  • Operational study where the symptom
  • Important relationships are NOT given up front

Example prompts

  • “/neqsim-autonomous-investigation”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Observe (no assumptions). Pull all available tags, not just the ones the
  2. Hypothesize (compete). Generate at least three competing causal
  3. Predict (differentiate). For each hypothesis, state what it implies for
  4. Test. Use NeqSim (runProcess/runFlowAssurance/simulation verification
  5. Discriminate & iterate. Keep the hypothesis that best explains the *pattern

What it can do on your machine

Read from SKILL.md and the folder at commit c3b4216. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are java and python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Neqsim Autonomous Investigation loads about 2.9k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 1,031 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~104
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from equinor/neqsim at commit c3b4216, republished under its Apache-2.0 licence (© equinor). 1,031 words, ~2,865 tokens.

Download SKILL.mdSave it as .claude/skills/neqsim-autonomous-investigation/SKILL.md (or your agent's skills folder).
name
neqsim-autonomous-investigation
description
Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies. USE WHEN: solving a PEPR action, root-cause or operational study where the symptom, driver or important relationships are NOT given up front. Uses neqsim.process.diagnostics.RelationshipGraph for lead-lag relationship discovery across historian tags, then hands off to neqsim-root-cause-analysis.
version
1.1.0
last_verified
2026-07-19
requires.java_packages
neqsim.process.diagnostics, neqsim.process.automation

NeqSim Autonomous Investigation Skill

Make agents investigate instead of follow a checklist. Use this skill when a task (PEPR action, root-cause, operational study, digital-twin deviation) does not tell you the symptom, the driver, or which relationships matter. The goal is that the agent discovers the important relationships from the data and the flowsheet on its own, forms competing hypotheses, and tests them — reaching findings that were not spelled out in the task.

When to Use

  • A PEPR action or work order describes a problem but not a cause.
  • Historian data is available but no one has said "look at tag X vs tag Y".
  • A model-vs-plant deviation appears and the responsible variable is unknown.
  • Any "why is this happening?" question where spoon-feeding relations is wrong.

Do not use this to replace a known, well-scoped calculation — if the symptom and mechanism are already given, go straight to neqsim-root-cause-analysis or the relevant discipline skill.

The Investigation Loop (mandatory ordering)

Run this loop before fixing a scope. Never assume the task's stated classification is correct — treat it as a hypothesis to challenge.

  1. Observe (no assumptions). Pull all available tags, not just the ones the task names. Scan each tag against its own baseline and (when available) STID design envelope for what is abnormal. Discover cross-tag relationships with RelationshipGraph — including lead-lag direction, which distinguishes a driver from a follower.
  2. Hypothesize (compete). Generate at least three competing causal hypotheses, always including a "not a real problem / instrument or data artifact" hypothesis. Seed them from the discovered leaders (candidate causes), not from intuition alone.
  3. Predict (differentiate). For each hypothesis, state what it implies for other tags/streams. Two hypotheses that predict the same thing cannot be distinguished — find a prediction where they disagree (the discriminating test).
  4. Test. Use NeqSim (runProcess/runFlowAssurance/simulation verification via RootCauseAnalyzer) plus historian evidence (EvidenceCollector) to check each prediction.
  5. Discriminate & iterate. Keep the hypothesis that best explains the pattern across relationships, not a single number. Loop until one dominates or the data is exhausted; report residual ambiguity honestly.

Report the relationships you discovered, not just the answer. A finding without its supporting lead-lag relationships and discriminating test is not complete.

Unsupervised relationship discovery — RelationshipGraph

RelationshipGraph (in neqsim.process.diagnostics) scans every tag pair in a historian data set with no symptom and no hypothesis supplied, and reports which tags move together and, crucially, which moves first. Lead-lag directionality is the signal an agent uses to pick candidate causes on its own.

Java
java
import java.util.Map;
import neqsim.process.diagnostics.RelationshipGraph;

RelationshipGraph graph = new RelationshipGraph();
graph.setTimestamps(timestamps);      // optional: enables lag in seconds
graph.setMaxLagSamples(10);           // search +/- 10 samples
graph.setMinAbsCorrelation(0.5);      // only report |r| >= 0.5
List<RelationshipGraph.Relationship> edges = graph.analyze(historianData);
String relationshipReport = graph.toTextReport(edges);

for (RelationshipGraph.Relationship r : edges) {
  // r.getSource() leads r.getTarget() (candidate cause -> candidate effect)
  // r.getDirection(): LEADS or SYNCHRONOUS
  // r.getLagSamples() / r.getLagSeconds(): how far ahead the driver moves
  // r.getCorrelation(): strength & sign at the best lag
}
Python (task notebook / runner)
python
RelationshipGraph = ns.JClass("neqsim.process.diagnostics.RelationshipGraph")

graph = RelationshipGraph()
graph.setTimestamps(timestamps)     # java double[]; omit if unavailable
graph.setMaxLagSamples(10)
graph.setMinAbsCorrelation(0.5)
edges = graph.analyze(historian_map)  # Map<String, double[]>
for r in edges:
    print(r.getSource(), "->", r.getTarget(),
          "r=", round(r.getCorrelation(), 2),
          "lag_s=", r.getLagSeconds())
Reading the output
  • A -> B (r=+0.85, leads by 300 s) — A moves first; A is a candidate cause of B. Prioritise hypotheses about A.
  • A <-> B (r=+0.90, synchronous) — tightly coupled with no detectable lag; may share a common driver — look for a third tag that leads both.
  • A strong statistical edge that does not follow a physical process path (upstream -> downstream in the flowsheet) is a candidate common-cause or instrument artifact, not a direct cause.

External (non-historian) candidate signals: weather

RelationshipGraph only sees what is in the historian data set you hand it. For outdoor/topside equipment, ambient temperature, wind, or sea state can be a driver that is not tagged anywhere in the plant historian. Before concluding "no cause found" for an anomaly on weather-exposed equipment, pull the historical weather for the site and event window with the community neqsim-weather-data skill (WeatherDataService.get_historical) and add it as an extra column to the data handed to RelationshipGraph.analyze(...), exactly like any other tag. A lead-lag edge from an ambient-temperature or wind-speed series into the anomalous tag is then a discovered candidate cause, to be hypothesised and tested like any other RelationshipGraph finding — not asserted from correlation alone.

Show full SKILL.md (423 more words)Show less

Auto-detect the symptom — AnomalyScanner

You should not have to be told the symptom either. AnomalyScanner (in neqsim.process.diagnostics) scans every tag against its own robust baseline (median / MAD) and, when supplied, its STID design envelope, and reports abnormal tags plus a candidate symptom inferred from the tag name. Detection kinds: THRESHOLD_HIGH/LOW (crosses a design limit), SPIKE_HIGH/LOW (robust-z outlier), TREND_UP/DOWN (sustained drift).

java
AnomalyScanner scanner = new AnomalyScanner();
scanner.setDesignLimit("Compressor-1.vibration", Double.NaN, 7.1); // optional
List<AnomalyScanner.Anomaly> anomalies = scanner.scan(historianData);
Symptom candidate = scanner.suggestSymptom(anomalies); // e.g. HIGH_VIBRATION

Promote statistics to causes — CausalTopologyModel

A statistical lead-lag edge is not proof of causation. CausalTopologyModel overlays the flowsheet connectivity (which equipment feeds which) on the RelationshipGraph edges and classifies each: CAUSAL_CANDIDATE (leader is upstream of follower and moves first), LOCAL (same equipment), COUNTER_FLOW (lead-lag opposes process flow — feedback), or COMMON_CAUSE_OR_ARTIFACT (no process path — a shared hidden driver or an instrument artifact).

java
Map<String, Set<String>> adjacency = CausalTopologyModel.buildDownstreamAdjacency(processSystem);
CausalTopologyModel model = new CausalTopologyModel(adjacency, tagToEquipment);
List<CausalTopologyModel.CausalEdge> edges = model.classify(relationships);

One call — RootCauseAnalyzer.analyzeAutonomous()

The three steps above plus the Bayesian scoring are chained in a single entry point. No symptom is required — the analyzer scans anomalies, infers the symptom, discovers relationships, and classifies them against topology, then converts hypothesis-matched anomaly and physically consistent topology findings into weighted evidence used in ranking.

java
RootCauseAnalyzer rca = new RootCauseAnalyzer(processSystem, "Compressor-1");
rca.setHistorianData(historianData, timestamps);
rca.setDesignLimit("Compressor-1.vibration", Double.NaN, 7.1);

// Autonomous: no setSymptom() call needed.
RootCauseReport report = rca.analyzeAutonomous();                 // anomalies + relationships + RCA
// or, to also get causal-vs-artifact classification:
RootCauseReport report2 = rca.analyzeAutonomous(tagToEquipment);  // + CausalTopologyModel

rca.getLastAnomalies();     // what looked abnormal
rca.getLastRelationships(); // who leads whom
rca.getLastCausalEdges();   // causal candidate vs common-cause/artifact

Only LOCAL and CAUSAL_CANDIDATE edges matching a hypothesis fingerprint affect ranking. COUNTER_FLOW, COMMON_CAUSE_OR_ARTIFACT, and UNKNOWN findings remain reportable but are not treated as causal support. This conservative admission rule prevents correlation alone from inflating confidence.

Python: get the classes with ns.JClass("neqsim.process.diagnostics.AnomalyScanner"), ...RelationshipGraph, ...CausalTopologyModel, ...RootCauseAnalyzer.

Cooperation (chain both directions)

plant-data / enterprise-plant-data   (historian tags)
alarm-events / maintenance-api / STID (events, work orders, design limits)
        v
neqsim-autonomous-investigation      (this skill: discover relations + hypotheses)
        v
neqsim-root-cause-analysis           (Bayesian scoring + simulation verification)
        v
neqsim-process-safety / discipline   (consequence, if the cause is a hazard)
  • Gather ALL data first (do not spoon-feed one tag): pull the full historian tag map via neqsim-plant-data (community) or enterprise-plant-data (historian/Seeq); add alarm & event history (enterprise-alarm-events), maintenance work orders / notifications (enterprise-maintenance-api), and STID design limits when available. Feed the whole tag map (plus design limits) into AnomalyScanner / RelationshipGraph — the more context, the better the discovery.
  • Downstream: hand the discovered leaders and their lags to neqsim-root-cause-analysis as the candidate causes / expected signals, so the Bayesian scorer verifies them with a NeqSim simulation instead of relying on a fixed symptom.
  • The one-call path RootCauseAnalyzer.analyzeAutonomous(tagToEquipment) runs the whole chain (anomaly scan -> symptom inference -> relationship discovery -> topology classification -> Bayesian scoring) so the agent only supplies data + flowsheet.

Limitations

  • Correlation and lead-lag are screening signals, not proof of causation. Always confirm with the flowsheet topology and a NeqSim simulation.
  • Default correlation is linear (Pearson); enable rank/Spearman mode (RelationshipGraph.setUseRankCorrelation(true)) to catch strong monotonic non-linear couplings. Strongly non-monotonic couplings may still be under-reported — consider transforming variables (log, rate-of-change) first.
  • Lag resolution is limited by the sampling interval; sub-sample lags round to the nearest sample.
  • Common-cause structure (one hidden driver behind many tags) is flagged only indirectly — look for a tag that leads several others, or a COMMON_CAUSE_OR_ARTIFACT verdict from CausalTopologyModel.

© equinor, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/neqsim-autonomous-investigation of equinor/neqsim.

Open the folder on GitHubat commit c3b4216

Compare with similar skills

Neqsim Autonomous Investigation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Neqsim Autonomous Investigation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Neqsim Autonomous Investigation this skillequinor/neqsim156—~2.9kAutomated safety check: PassApache-2.0
OpenLogi macOS Permissions TriageAprilNEA/OpenLogi23k—~2.5kAutomated safety check: NotesApache-2.0
Bug Finder for daisyUIsaadeghi/daisyui43k—~2.3kAutomated safety check: PassMIT
Root Cause Debugginggarrytan/gstack136k—~1.4kAutomated safety check: PassMIT
Review PRapache/shardingsphere21k—~6.5kAutomated safety check: PassApache-2.0
Graph-Based Bug Tracingtirth8205/code-review-graph32k1 repos~287Automated safety check: PassMIT

Similar skills

  • Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.

    23k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check: notes
  • Bug Finder for daisyUI

    saadeghi/daisyui

    Investigates suspected bugs in the daisyUI monorepo through read-only analysis, then writes a decision-ready fix plan in tmp/bugs without changing any product code.

    43k GitHub stars~2.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Root Cause Debugging

    garrytan/gstack

    Investigates bugs, errors and stack traces in phases and requires a root-cause hypothesis to be confirmed before any fix is written.

    136k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Review PR

    apache/shardingsphere

    Review Apache ShardingSphere or user-authorized downstream pull requests and PR discussions from public or authorized repository evidence.

    21k GitHub stars~6.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Graph-Based Bug Tracing

    tirth8205/code-review-graph

    Traces a bug through a code knowledge graph, following callers, callees and execution flow before opening source files, within a small token budget.

    32k GitHub starsUsed in 1 repo~287 tokens
    DevelopmentAuto-check passed
  • Om Auto Fix Issue

    go-musicfox/go-musicfox

    Fix or implement a tracker issue end to end from a single command — takes an issue id or a plain problem description (filed first via om-prepare-issue), classifies, then drives the bug autofix chain…

    2.6k GitHub starsUsed in 1 repo~5k tokens
    DevelopmentAuto-check: notes

More from equinor/neqsim

All 11 skills in this repo
  • Guides NeqSim agents through acid-gas and contaminant removal with SimpleAmineAbsorber, SimpleAmineRegenerator, SystemKentEisenberg, SystemDesmukhMather, RateBasedAbsorber, MembraneSeparator, and…

    156 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Guides agents through ProcessLinkedMPC, ProcessLinearizer, ModelPredictiveController, VirtualFlowMeter, SoftSensor, and DataReconciliationEngine.

    156 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Neqsim Agent Handoff

    equinor/neqsim

    Agent-to-agent communication schema for NeqSim. An agent skill from equinor/neqsim.

    156 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Neqsim Ccs Hydrogen

    equinor/neqsim

    CO2 capture, transport, storage (CCS) and hydrogen systems patterns for NeqSim.

    156 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Neqsim Code Hygiene

    equinor/neqsim

    Fix formatting, Checkstyle, Spotless, and JavaDoc build failures in NeqSim Java code.

    156 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Guides agents in choosing equilibrium-stage versus rate-based packed columns, selecting solvers, sizing trays/packing, and checking hydraulic limits.

    156 GitHub stars~4.9k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Neqsim Autonomous Investigation

What does Neqsim Autonomous Investigation do?

Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies. Neqsim Autonomous Investigation is an agent skill from equinor/neqsim. Autonomous observe-hypothesize-predict-test-discriminate loop for operational anomalies.

When should I use Neqsim Autonomous Investigation?

Neqsim Autonomous Investigation fits situations like: : solving a PEPR action; operational study where the symptom; important relationships are NOT given up front.

How do I install Neqsim Autonomous Investigation in Claude Code?

Run `npx skills add equinor/neqsim --skill neqsim-autonomous-investigation -a claude-code`. Or copy the skill folder (.github/skills/neqsim-autonomous-investigation in equinor/neqsim) into .claude/skills/neqsim-autonomous-investigation in your project. Claude Code loads it when a task matches its description.

How do I install Neqsim Autonomous Investigation in Codex?

Run `npx skills add equinor/neqsim --skill neqsim-autonomous-investigation -a codex`. Or copy the skill folder (.github/skills/neqsim-autonomous-investigation in equinor/neqsim) into .agents/skills/neqsim-autonomous-investigation in your project. Codex loads it when a task matches its description.

Can I use Neqsim Autonomous Investigation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add equinor/neqsim --skill neqsim-autonomous-investigation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neqsim-autonomous-investigation, .gemini/skills/neqsim-autonomous-investigation, .github/skills/neqsim-autonomous-investigation and .opencode/skills/neqsim-autonomous-investigation in your project.

What does Neqsim Autonomous Investigation need to run?

SKILL.md names no scripts, command-line tools or credentials: Neqsim Autonomous Investigation is instructions for the agent only. Our summary lists: Python 3.

Does Neqsim Autonomous Investigation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Neqsim Autonomous Investigation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Neqsim Autonomous Investigation use?

Neqsim Autonomous Investigation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Neqsim Autonomous Investigation use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Neqsim Autonomous Investigation?

Skills that share tags, products or a category with Neqsim Autonomous Investigation: OpenLogi macOS Permissions Triage (AprilNEA/OpenLogi, 23k stars), Bug Finder for daisyUI (saadeghi/daisyui, 43k stars), Root Cause Debugging (garrytan/gstack, 136k stars) and Review PR (apache/shardingsphere, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Neqsim Autonomous Investigation?

equinor (a GitHub organization) maintains it in equinor/neqsim, which has 156 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 11, 2026.

Source: equinor/neqsim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.