Best for
- Mapping operating envelope (P, T, flow, composition window where the plant runs)
- Turndown analysis (10–100% capacity)
- Control valve sizing per ISA-75 / IEC 60534
equinor/neqsim/.github/skills/neqsim-controllability-operability/SKILL.md
Process controllability and operability — operating envelope mapping, turndown analysis, startup/shutdown sequencing, control valve sizing per ISA-75 (Fl, Fp, choked flow), rangeability, hunting/loop tuning, recycle stability. USE WHEN: a task involves operability assessment, turndown studies, control valve sizing, startup/shutdown procedures, or 'will this design operate?' questions. Complements neqsim-dynamic-simulation (transient solver) with steady-state operability framing.
Decision brief
The "can this plant be operated?" half of process design — operating envelopes, turndown, startup/shutdown sequencing, control valve sizing, and steady-state operability checks. Pairs with neqsim-dynamic-simulation which solves the transient response.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/equinor/neqsim --skill ".github/skills/neqsim-controllability-operability"Inspect the Agent Skill "neqsim-controllability-operability" from https://github.com/equinor/neqsim/blob/9e8d44a141bba600026d2229969b49af50f34237/.github/skills/neqsim-controllability-operability/SKILL.md at commit 9e8d44a141bba600026d2229969b49af50f34237. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
For P&ID-driven operational changes, load neqsim-pid-process-operations first to classify symbols, define the topology, bind plant tags, and turn each action into a NeqSim model delta.
Sweep two key handles (e.g. flow and composition) and check that every constraint is satisfied in the operating window:
Sizing rules: - Pick valve such that normal flow is at 60–70% open - Minimum flow must be at 20% open (rangeability check) - Maximum flow must be at < 90% open (margin) - For choked flow: use Fl × ΔPchoke instead of actual ΔP
To rank candidate valve tightness requirements (isolation/ESDV block valves vs throttling control valves), use the ValveSeatLeakageClass enum (neqsim.process.equipment.valve). It covers EN 12266-1 Rates A–G (isolation valves) and ANSI/FCI 70-2 Classes II–VI (control valves); Cla…
A process with strong recycles can have multiple steady states or be unstable:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 87/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 136 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
The "can this plant be operated?" half of process design — operating envelopes,
turndown, startup/shutdown sequencing, control valve sizing, and steady-state
operability checks. Pairs with neqsim-dynamic-simulation
which solves the transient response.
For P&ID-driven operational changes, load neqsim-pid-process-operations first
to classify symbols, define the topology, bind plant tags, and turn each action
into a NeqSim model delta.
For MCP or Java workflows that already have a ProcessSystem, use
neqsim.process.operations.envelope.OperationalEnvelopeEvaluator or MCP
runOperationalStudy with action="evaluateOperatingEnvelope". The evaluator
does not duplicate equipment physics; it ranks margins from
EquipmentCapacityStrategyRegistry, uses optional tagreader field data through
OperationalTagMap, and can turn margin history into simple time-to-limit
screening.
Standards: ISA-75.01 / IEC 60534-2-1, API 685 (control valves), NORSOK P-002 (operability).
Sweep two key handles (e.g. flow and composition) and check that every constraint is satisfied in the operating window:
double[] flows = linspace(0.1, 1.0, 10); // 10–100% turndown
double[] gors = linspace(50.0, 800.0, 8); // GOR variation
for (double f : flows) {
for (double g : gors) {
SystemInterface fluid = makeFluid(g);
feed.setFlowRate(f * design_kgh, "kg/hr");
process.run();
envelope.recordPoint(f, g, checkConstraints(process));
}
}
Constraints to check on every point:
| Constraint | Check | Source |
|---|---|---|
| Compressor surge | Q_actual > Q_surge × 1.10 | Vendor curve |
| Compressor stonewall | Q_actual < Q_choke × 0.95 | Vendor curve |
| Separator vapor velocity | v < K × √((ρL−ρV)/ρV) | NORSOK P-100 (K=0.107) |
| Separator residence time | t_res ≥ 3 min liquid, ≥ 30 s gas | API 12J |
| HX ΔTmin | ΔT > 5 °C everywhere | Pinch design |
| Column flooding | C_factor < 0.85 × C_flood | Souders–Brown |
| Column weeping | C_factor > 0.55 × C_flood | Tray vendor |
| Pump NPSHa | NPSHa > NPSHr + 1 m margin | API 610 |
| Control valve opening | 20% < travel < 80% | ISA-75 |
import neqsim.process.equipment.valve.ThrottlingValve;
ThrottlingValve cv = new ThrottlingValve("LV-1101", inletStream);
cv.setOutletPressure(P_downstream_bara);
cv.run();
double Cv_required = cv.getCv(); // ISA-75 sizing
double opening = cv.getPercentValveOpening();
double dpRatio = cv.getDeltaPressure() / cv.getInletPressure();
boolean choked = dpRatio > cv.getFL() * cv.getFL() * (1 - cv.getFf() * cv.getXt());
Sizing rules:
Rangeability:
| Trim type | Rangeability |
|---|---|
| Linear | 30:1 |
| Equal percentage | 50:1 |
| Quick opening | 10:1 |
If turndown ratio > rangeability, you need a split-range or two valves in parallel.
To rank candidate valve tightness requirements (isolation/ESDV block valves vs throttling control
valves), use the ValveSeatLeakageClass enum (neqsim.process.equipment.valve). It covers EN
12266-1 Rates A–G (isolation valves) and ANSI/FCI 70-2 Classes II–VI (control valves); Class IV
(0.01% of rated capacity) is the typical control-valve default, Class VI is the soft-seat
essentially-zero-leakage class:
import neqsim.process.equipment.valve.ValveSeatLeakageClass;
ValveSeatLeakageClass ctrl = ValveSeatLeakageClass.FCI_70_2_CLASS_IV;
boolean tight = ctrl.isEssentiallyZeroLeakage(); // false for Class IV, true for Class VI
// ANSI/FCI 70-2 Class V closed-form liquid leak-rate screening estimate (test medium water)
double leakRateMlPerMin =
ValveSeatLeakageClass.estimateFciClassVLeakRate(50.0e5 /* Pa */, 0.10 /* m port */);
This is screening-level only and not a substitute for a manufacturer seat-leakage test certificate. See docs/process/ValveMechanicalDesign.md for the full reference.
A process with strong recycles can have multiple steady states or be unstable:
ProcessSystem.RecycleConvergenceMonitor mon = process.getRecycleMonitor();
process.run();
double[] residual = mon.getMassResidualHistory();
// Plot residual vs iteration — should be monotone decreasing.
// If oscillating: recycle interactions; if diverging: bad initial guess or fundamental instability
Stabilization tactics:
ProcessModel so each area converges firstDocument each major mode as a state machine:
| State | P / T / flow | Active controllers | Active SIFs |
|---|---|---|---|
| Cold shutdown | atmospheric, ambient | none | all in OOS |
| Pressurization | ramp to design × 0.3 in 30 min | PIC slow ramp | HIPPS armed |
| Cold circulation | full rate, ambient (recycle to flare) | LIC, FIC | all armed |
| Heat-up | ramp 50 °C/h to design T | TIC, LIC, FIC | all armed |
| Normal | design point | all loops in AUTO | all armed |
| Emergency BD | depressurize per API 521 in 15 min | controllers tripped | BDV open |
Use neqsim-dynamic-simulation to validate the transient.
For each PID:
Common bad loops:
Operability Scorecard
=====================
Turndown : 25–110% of design PASS (target ≥ 25%)
Compressor : surge margin 18% @ low end PASS (≥ 10%)
Column : flooding margin 22% @ high end PASS (≥ 15%)
Recycle stab. : converges in 8 iters @ all loads PASS
Control valves : 4 valves outside 20–80% range — RESIZE
Startup time : 6.5 hr (cold→full) PASS (target ≤ 8 hr)
SD time : 12 min API 521 BD PASS (target ≤ 15 min)
| Mistake | Fix |
|---|---|
| Sizing CV with normal ΔP and forgetting choked flow | Always check σ = ΔP / Fl² × ΔP_max; if exceeded use choked formula |
| One CV across full 10–110% range | Rangeability > 30:1 needs split-range or two valves |
| Designing only at 100% flow | Min/max constraints often govern (surge, weeping, NPSH) |
| Ignoring recycle interactions until commissioning | Decompose with ProcessModel, verify convergence at each load |
| Aggressive Kp on level control | Causes throughput oscillation downstream; use P-only averaging |
| No startup BD path | Cold flare/atmospheric vent path required for trip-from-pressurized |
| Using "design rate" pump curve | Pumps often run at 60–80% Qbep at normal — pick BEP at normal |
results.json → operability section)neqsim-dynamic-simulation — solve the transientneqsim-process-safety — link operability gaps to safety scenariosneqsim-relief-flare-network — startup/SD blowdown loadsneqsim-platform-modeling — multi-area recycle decompositionAlternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
coreyhaines31/marketingskills
When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).