Install
$ agentstack add skill-jskherman-engg-skills-material-energy-balances ✓ 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
Material and Energy Balances
Overview
Steady-state helper calculations:
- Component totals from one or more
NAME=amountentries. - Conversion and yield from supplied limiting-reactant and product amounts.
- JSON envelopes that make the basis and assumptions explicit.
Prerequisites
uvavailable.
When to Use
- Summing component amounts from a hand-built stream table.
- Sanity-checking a single stream or component set on a consistent basis.
- Computing rough conversion and yield metrics from known feed/reacted/product
amounts.
Don't use for
- Transient (dynamic) balances; the math involves dC/dt and requires a
state-space approach.
- Rigorous flowsheet convergence; use a simulator.
- Detailed equilibrium / reactor design; this skill is balance-only.
- Full node closure with separate inlet and outlet stream tables.
- Degree-of-freedom counting.
- Selectivity calculations; only conversion and yield are exposed by the CLI.
Utility Scripts
uv run scripts/balance_solver.py component-total --stream A=10 --stream B=5 --output /tmp/total.jsonuv run scripts/balance_solver.py reaction-metrics --feed-limiting 10 --reacted-limiting 8 --desired-product 7.2 --theoretical-product 8 --output /tmp/reaction.json
Procedure
- Identify the stream, component set, or reaction metric you need.
- Keep all values on a consistent molar or mass basis.
- For totals, pass each component amount as a repeated
--stream NAME=amount. - For conversion/yield, supply limiting-reactant feed, reacted amount,
desired product amount, and theoretical product amount.
- Inspect the JSON assumptions before using the result in a larger balance.
Pitfalls
- Mixing mass and molar basis silently.
- Forgetting recycle streams.
- Reporting "conversion 97%" without naming the key reactant and the
basis (per pass vs overall).
- Using yield where you mean selectivity (yield is mol product / mol
reactant fed; selectivity is mol product / mol reactant reacted).
- Computing residuals only in absolute terms; relative residuals
(residual / inlet) are usually more useful.
- Using mass balance closure to justify a doubtful instrument when
energy balance also fails to close.
- Counting equations without subtracting redundant ones (a
total-balance plus all-component balances over-counts).
- Not propagating measurement uncertainty when judging closure ("looks
closed at 0.5%" might be within instrument noise).
Fallback Strategies
- If the residual is large but the data is suspect, suggest data
reconciliation (Crowe's method or similar).
- For dynamic balances, surface that this skill does not cover them.
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/workflow.md— detailed checklist for a node closure.
Anti-Patterns
- Reporting a balance that does not close as if it does.
- Hiding the basis in the report.
- Using component balances to detect bias without ruling out leakage,
recycle, or unmeasured purge.
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.