Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add crude-code/mcp-app --skill aries-to-valuationgit clone --depth 1 https://github.com/crude-code/mcp-appWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/crude-code/mcp-app/aries-to-valuation)<a href="https://agentmods.dev/skills/crude-code/mcp-app/aries-to-valuation"><img src="https://agentmods.dev/badge/skills/crude-code/mcp-app/aries-to-valuation.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00101 | $0.01784 |
| Opus 5 | $0.00051 | $0.00892 |
| Sonnet 5 | $0.00020 | $0.00357 |
| Haiku 4.5 | $0.00010 | $0.00178 |
Grade A, and why
aries-to-valuation scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
`export_data(kind="parameters", run_id=...)`, curl the CSV in the How it starts
The opening of the file, as written. The whole thing — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ARIES → Valuation
What you're doing
The user has an ARIES database (already read via aries-explorer) and has
explicitly asked to value the curves inside it. This skill translates
the section-4 decline forecasts into deal_forecast_wells assertions —
adopted-with-attribution, every rationale carrying the verbatim ARIES line —
and the normal valuation flow runs unchanged from there.
The result is a third number with its own name: the seller's curves
under Crude Code economics. It is not a replay (their prices, costs, and
econ-limit life are never used) and it is not our view (no independent
forecast was made). Say this plainly, label the deal sheet with it, and
offer the natural comparison — our own well-forecasting pass on the same
wells — as the follow-up.
Routing: reading/exploring the database → aries-explorer. An
independent valuation → well-forecasting. This skill only when the user
asks for the database's own curves in a valuation, in their own words.
What you need
- Code execution (hard requirement, same as the explorer).
- The
_aries/directory from the explorer'saries_triage.py. If it isn't in the sandbox yet, fetcharies-explorerand run triage first. - The translation math rides on the pinned conventions in the
explorer's
ARIES.md(declines are effective-annual; the engine wants nominal-monthly).aries_curves.pyimplements them — verified against a real database's own oneliner to ≤0.013% per stream. Never convert by hand.
Workflow
- Confirm the lane. The user asked to value the seller's curves — restate what that means (their volumes, our prices/costs/discounting) in one sentence before starting.
- Translate:
(qualifier defaults to BASE, else the most-used; say which was decoded). This writespython3 aries_curves.py _aries --qualifier <Q>forecast_payload.jsonand prints the coverage report. Read the whole report — it is the contract of what did and did not translate. - Resolve the wells. Check every payload API against the warehouse:
A well missing fromSELECT well_api, well_name, operator FROM public.wells WHERE well_api = ANY(ARRAY['42-227-41093', ...])public.wellscannot enter a run (deal_forecast_wellsbounces it) — remove its entry, and tell the user which wells fell out and why. Never fabricate or force an API. - Tie out against the oneliner when the room has one. Extract per-well
ultimates into
oneliner.json—{"<api>": {"ult_oil": bbl, "ult_gas": mcf, "life_yrs": yrs, "eff_offset_months": n}}. Get the life anchoring right: the oneliner's LIFE column is measured from the EFFECTIVE date, soeff_offset_months= months from the forecastSTARTto the effective date (START 01/2025, effective 08/2026 → 19). Then:
Residuals beyond ~0.1% on capped wells: check the life anchoring first — a wrong offset or a misread life moves the shortest-lived wells the most (in either direction) while long-lived wells still round to 0.000%, which looks exactly like "a few wells failed." The per-wellpython3 aries_curves.py _aries --qualifier <Q> --tieout oneliner.json[cap ...]annotations make the caps auditable. Only after anchoring is ruled out, treat the residual as a broken translation: stop and investigate; never value on top of an unexplained residual. (Withoutlife_yrsthe comparison overshoots by the seller's econ-limit truncation — explained, not wrong.) - Commit — machine-copied, never retyped. Hand-typed parameters have
corrupted in transit before (garbled digits inside rationale strings,
qi values drifting). Print the entries with code execution —
— and paste that output verbatim aspython3 -c "import json; print(json.dumps(json.load(open('forecast_payload.json'))['entries']))"deal_forecast_wells'forecastsargument. You may drop wells (step 3); you may not edit numbers or rationale text. Read the echo. Expect stale-anchor warnings when the ARIESSTARTpredates recent actuals — that is the seller's timing, and the user must see it, not have it smoothed over. - Verify the commit deterministically. Mint
export_data(kind="parameters", run_id=...), curl the CSV in the sandbox, and diff the committed/assertedqi/di/band anchor per well againstforecast_payload.jsonin code — any drift means a transcription error: re-commit the affected wells straight from the payload and verify again. Do not proceed to valuation on an unverified commit. - Confirm before valuing. Present the assumptions grid as usual, PLUS
the report's not-modeled items, each as a user decision:
- NGL yield (bbl/mcf per well) — the engine has no NGL stream; revenue is understated by roughly that share of the deck.
- Shrink — the engine models wellhead gas; realization rides the
BTU factor and differentials (
gas_btu_factoroverride is the lever). - Water opex (
OPC/WTR) — not modeled; aneconomics_overridesopex adjustment is the blunt instrument if the user wants it. - Tail policy — the report quantifies ARIES-tail vs engine-tail volumes per stream; surface the package-level difference.
- Value:
deal_valuationas normal. The deal sheet'sTLDRmust lead with the label: "Seller's ARIES curves (qualifier ) under Crude Code economics." Then offer the comparison: an independentwell-forecastingpass on the same wells, same economics — that two-run diff is usually what the user actually wants.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 126 lines · 101 tokens per session scan A 6e841b89cbf8
aries-to-valuation is a skill published in the GitHub repository crude-code/mcp-app (5 stars, last pushed 4d ago), licensed Apache-2.0. It adds 101 tokens to every session and 1,784 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
hithink-finance-data
A local data-management skill for the HiThink Finance command-line tool and its DuckDB database. DuckDB is a database stored in a local file.
multi-expert-analyzer
A method for examining complicated questions through several expert viewpoints, followed by fact-checking and criticism.
trading-manual-writer
A writing skill for creating sections of a trading manual for beginners and individual investors. It explains financial instruments or trading topics in Markdown and can include SVG illustrations.
industry-chain-analyst
An industry research skill that maps the stages of a supply chain and examines the public companies, business models, relationships, strengths, risks, and competition at each stage.
finance-weekly-outlook
Generate a source-backed weekly financial trading outlook from daily-finance, finance-core-analysis, and finance-explosive-article outputs plus fresh authoritative market data. Use when the user asks for future-one-week market outlook, weekly bullish/bearish sectors, stock picks, China A-share and US stock coverage…
retail-trading-manual-writer
A writing assistant for creating beginner-friendly Chinese sections of a paid manual about retail investing across different asset types. The manual follows a specified 17-chapter outline and appendix.