Install
$ agentstack add skill-jskherman-engg-skills-caustic-merox-extraction ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Caustic / Merox Mercaptan Extraction Screening
Overview
Thin mass-balance helpers built around the chemistry of mercaptan extraction with aqueous NaOH:
RSH + NaOH → RS-Na + H2O
and the subsequent regeneration (oxidation):
2 RS-Na + 0.5 O2 + H2O → RSSR + 2 NaOH
Provides:
- Stoichiometric RS-Na loading at steady extraction.
- Kremser-style stage performance with a user-supplied distribution
coefficient K = C_LPG / C_caustic.
- Risk-score heuristic for disulfide carryback to product LPG (caustic
disulfide loading + caustic age + separator dP).
These are screening and troubleshooting tools, not licensor design calculations.
Prerequisites
uvavailable.- On first use, the script writes
LICENSE_NOTIFICATION.txt.
When to Use
- Troubleshooting a Merox unit (rising RSH slip, caustic age question,
carryback suspicion).
- Sanity-checking caustic circulation rate vs RS-Na uptake.
- Order-of-magnitude operator discussion.
Don't use for
- Licensor design (UOP Merox package and successors are proprietary; use
the licensor's calculations).
- Amine treating: use
sour-gas-amine-treating. - Exact prediction of product disulfide concentration — the carryback
score is directional, not quantitative.
Utility Scripts
uv run scripts/merox.py loading --rsh-ppmw 500 --lpg-kg-s 10 --caustic-kg-s 0.5 --naoh-wt 0.12 --output /tmp/load.jsonuv run scripts/merox.py kremser --K 0.02 --lpg-vol 0.014 --caustic-vol 0.0006 --stages 3 --rsh-in 500 --output /tmp/k.jsonuv run scripts/merox.py carryback --caustic-disulfide-ppmw 300 --caustic-age-days 60 --separator-dp-kpa 8 --output /tmp/risk.json
Procedure
- Compute RS-Na loading from inlet RSH and current caustic circulation.
- Compare with the bound-alkalinity available in lean caustic (total
alkalinity − free alkalinity).
- If loading is approaching available bound alkalinity, regeneration is
not keeping pace — investigate the oxidizer / separator side.
- Use the Kremser estimate to bracket required stages for a given RSH
removal.
- Use the carryback risk score to triage process data when product
disulfide is rising.
Pitfalls
- Treating
Kas a constant when it depends on caustic concentration, T,
and RSH chain length.
- Confusing "free alkalinity" with "total alkalinity" — RS-Na consumption
reduces free alkalinity.
- Ignoring water carryover between the LPG and caustic phases (and the
reverse): the coalescer / sand filter is part of the design envelope.
- Treating the carryback heuristic score as quantitative.
- Treating disulfide rise in product solely as a Merox issue when it could
be feed (DMS / DEDS / DMDS passthrough).
- Forgetting that caustic age increases mercaptide loading even at constant
RSH inlet; bound alkalinity climbs over time.
- Sizing without considering the disulfide-separator (Stelter/Hsu-style)
performance.
Fallback Strategies
- If the Kremser estimate predicts unachievable removal at any reasonable
stage count, the dominant problem is likely K (poor distribution) rather than stages; revisit caustic strength and contactor design.
- If disulfide carryback score is "high" but product disulfide is low,
there may be a strong DMS feed passthrough; surface to vle-flash-calculations or product-sulfur speciation skill.
Verification
- Run the listed script with representative inputs and an
--outputfile when a deterministic calculation is available. - Confirm the JSON result contains
ok: true, expected units, and no unhandled warnings. - Check result magnitudes against the stated assumptions, references, and a hand calculation or known operating range before reporting them.
References
references/merox_chemistry.md— chemistry, regeneration, and the
practical role of free alkalinity.
- Kohl & Nielsen, Gas Purification.
- UOP Merox descriptive literature (public).
Anti-Patterns
- Reporting "Merox is the cause" without considering feed sulfur
speciation.
- Treating the carryback score as a value to optimise on rather than a
triage indicator.
- Using these helpers for licensor design or rerate.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jskherman
- Source: jskherman/engg-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.