SkillsBench is a benchmark for measuring how effectively AI agents use modular skills—folders containing instructions, scripts, and resources—to complete specialized tasks. It helps researchers and developers evaluate both skill quality and agent behavior, including tasks that require combining multiple skills. The catalogue’s skills and instructions are evaluated as part of this workflow.
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 benchflow-ai/skillsbench --skill triangulated-fx-ratesgit clone --depth 1 https://github.com/benchflow-ai/skillsbenchWrote 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/benchflow-ai/skillsbench/triangulated-fx-rates)<a href="https://agentmods.dev/skills/benchflow-ai/skillsbench/triangulated-fx-rates"><img src="https://agentmods.dev/badge/skills/benchflow-ai/skillsbench/triangulated-fx-rates/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/benchflow-ai/skillsbench/triangulated-fx-rates"><img src="https://agentmods.dev/badge/skills/benchflow-ai/skillsbench/triangulated-fx-rates.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 107 Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.Fix: Set explicit rate limits, timeouts, and resource quotas for API calls, file operations, and compute. Implement circuit breakers for runaway loops.
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.00113 | $0.01372 |
| Opus 5 | $0.00056 | $0.00686 |
| Sonnet 5 | $0.00023 | $0.00274 |
| Haiku 4.5 | $0.00011 | $0.00137 |
Grade A, and why
triangulated-fx-rates scanned grade A with 0 findings 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 11d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Triangulated FX rates
Most rate feeds list a direct rate to the reporting currency (typically USD). Less liquid currencies are often quoted through a more liquid vehicle currency (commonly EUR or USD itself). On a batch rate tape this is encoded as a second "via" column on the same row:
CCY RATE VIA
USD 1.0000
EUR 1.0850
GBP 1.2750
CHF 0.9200 EUR <-- CHF -> EUR is the first hop
ZAR 0.0650 EUR <-- ZAR -> EUR is the first hop
BRL 0.3000 ZAR <-- BRL -> ZAR -> EUR -> USD : TWO via hops
JPY 0.0064
A blank VIA column means the row is already a direct quote against the
reporting currency. A non-blank VIA column means the row gives the rate
from CCY to VIA — and you still need to convert from VIA to the reporting
currency.
The via chain can be longer than one hop
This is the part that is easy to get wrong. The via currency named on a row is not guaranteed to be a direct quote — it may have its own non-blank via column, which in turn may have another, and so on. A single via lookup is therefore only correct when the via happens to be direct. To get a correct effective rate you must follow the chain: keep multiplying in the next leg's primary rate, moving to that leg's via, until you reach a row whose via is blank (a true direct quote against the reporting currency).
effective_rate(CCY) = primary(CCY) × primary(via(CCY)) × primary(via(via(CCY))) × …
────────────────────────────────────────────────────────────
until the via column is blank (a direct quote)
Worked examples against the table above:
- One hop (CHF): CHF→EUR is 0.9200, EUR is direct (1.0850).
0.9200 × 1.0850 = 0.99820→ 0.9982 (4dp). - Two hops (BRL): BRL→ZAR is 0.3000, ZAR→EUR is 0.0650, EUR is direct
(1.0850).
0.3000 × 0.0650 × 1.0850 = 0.0211575→ 0.0212 (4dp). Stopping after the first via (treating ZAR's 0.0650 as if it were ZAR→USD) gives0.3000 × 0.0650 = 0.0195, wrong by the whole EUR leg.
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.
- 11d ago First seen · 123 lines · 113 tokens per session scan A 5a5938bf0b34
triangulated-fx-rates is a skill published in the GitHub repository benchflow-ai/skillsbench (1,760 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 113 tokens to every session and 1,372 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
portfolio
Cross-chain DeFi portfolio discovery, rebalancing suggestions, and NEAR Intent construction. Activates when the user pastes a wallet address or asks about yield/positions/rebalancing. Bootstraps a per-user "portfolio" project, aggregates positions across all the user's addresses inside one project, and offers a…
trader-setup
One-time onboarding for the financial trader workflow — real-time alerts, position-aware relevance, decision journaling with outcome tracking. After successful setup this skill is excluded from selection until the marker file is deleted.
portfolio-analysis
Analyzing fund portfolios including AUM extraction, holdings counts, and portfolio composition.
fuzzy-fund-search
Fuzzy matching techniques for finding hedge funds by name when exact names are unknown.
sec13f-data-format
Understanding SEC 13-F filing data structure, TSV format, and key tables for hedge fund analysis.
holdings-comparison
Compare fund holdings between two quarters (Q2 vs Q3) to identify increased/decreased positions by dollar value or share count.