CtrlK
BlogDocsLog inGet started
Tessl Logo

open-exchange-rates

Open Exchange Rates integration. Manage data, records, and automate workflows. Use when the user wants to interact with Open Exchange Rates data.

55

Quality

62%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/open-exchange-rates/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-structured, mostly actionable guide to driving Open Exchange Rates through the Membrane CLI, with a real feedback-loop state machine for connection setup. Its main weakness is conciseness: an opening paragraph and a few asides explain context Claude already knows, and a couple of sections (Popular actions) are thin or redundantly repeat earlier commands.

Suggestions

Trim the opening overview paragraph and the 'so you can focus on the integration logic rather than auth plumbing' aside to assume Claude's familiarity with what an exchange-rate API is.

Add at least one concrete worked example that runs a real Open Exchange Rates action or proxies a real endpoint (e.g. /latest.json with a base currency) so the guidance is copy-paste ready end-to-end.

Resolve the dangling 'skip to Step 2' reference and the unlabeled '1b' by numbering the connection steps consistently (1a ensure / 1b wait, 2 search actions, 3 run/proxy), or remove the 'Popular actions' section that only restates the search command.

DimensionReasoningScore

Conciseness

The opening paragraph ("Open Exchange Rates is an API that provides current and historical exchange rates... It's useful for e-commerce platforms, financial tools, and travel apps.") explains what the API is and who uses it — context Claude largely already knows — and phrases like "so you can focus on the integration logic rather than auth plumbing" add padding. Most of the CLI guidance is efficient, but these unnecessary explanations keep it at 'mostly efficient but includes some unnecessary explanation' rather than the lean 4-anchor.

3 / 5

Actionability

The body provides concrete, executable commands throughout (install, login, connection ensure/get with --wait, action list/run, request proxy) plus a flags table, matching 'mostly executable guidance; concrete code or commands with minor gaps'. It stops short of the 5-anchor because no worked example shows an actual Open Exchange Rates endpoint or action run with real parameters (e.g. fetching /latest.json with a base currency).

4 / 5

Workflow Clarity

The connection lifecycle has a clear sequence with genuine feedback loops — poll until READY, handle CLIENT_ACTION_REQUIRED by re-polling after the user acts, and inspect the error field on CONFIGURATION_ERROR/SETUP_FAILED — matching 'clear sequence with most checkpoints present'. It does not reach the 5-anchor because of minor gaps: the 'skip to Step 2' reference points to an unlabeled section, '1b' has no labeled '1a', and there is no consolidated checklist.

4 / 5

Progressive Disclosure

The body is organized into clear, well-labeled sections (Overview, Working with OER, Install, Authentication, Connecting, Searching/Running actions, Proxy, Best practices) with no external bundle files and dynamic action discovery, so inline placement is appropriate — matching 'good structure; most content appropriately placed'. It stays at the 4-anchor rather than 5 because the 'Popular actions' section is thin/redundant (it restates the action-list command without content) and the dangling 'Step 2' reference slightly hurts navigation.

4 / 5

Total

15

/

20

Passed

Description

57%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description correctly identifies the target service and includes an explicit 'Use when' trigger, but its capability language is generic boilerplate ("Manage data, records, and automate workflows") that fails to convey the concrete currency/exchange-rate operations the skill performs. Trigger terms rely almost entirely on the product name and miss natural synonyms like 'currency' or 'conversion'.

Suggestions

Replace the generic 'Manage data, records, and automate workflows' with concrete actions, e.g. 'Fetch current and historical exchange rates, list supported currencies, and convert amounts between currencies via the Open Exchange Rates API.'

Expand the 'when' clause with natural trigger phrases users actually say, e.g. 'Use when the user needs currency conversion, current or historical exchange rates, FX rates, or supported currency lists from Open Exchange Rates.'

Add the file/term synonyms (currency, currencies, conversion, fx, .json rates endpoints) so the skill triggers on natural phrasing rather than only the product name.

DimensionReasoningScore

Specificity

The description names the domain ("Open Exchange Rates integration") but the actions are generic boilerplate ("Manage data, records, and automate workflows") rather than concrete operations like fetching latest rates, converting currencies, or retrieving historical rates. It matches the anchor 'names the domain but actions are minimal or generic' and falls below the 3-anchor, which requires 1-2 concrete actions.

2 / 5

Completeness

It states both a 'what' ("Manage data, records, and automate workflows") and an explicit 'when' ("Use when the user wants to interact with Open Exchange Rates data"). The explicit 'Use when' clause keeps it above the 3-anchor (which requires a missing/weak 'when'), but the generic 'what' and unspecific trigger phrasing prevent the concrete-trigger quality of the 5-anchor.

4 / 5

Trigger Term Quality

The product name "Open Exchange Rates" carries a relevant natural keyword ("exchange rates" is embedded), but the surrounding language ("data", "records", "interact with... data") is generic and misses common synonyms a user would actually say, such as "currency", "currencies", "conversion", "fx", or "historical rates". This fits 'some relevant keywords but missing common variations or synonyms' rather than the 2-anchor, which requires nearly no natural terms.

3 / 5

Distinctiveness Conflict Risk

Being tied to the named "Open Exchange Rates" API gives it a clear niche with minimal conflict risk, matching 'mostly distinct; minor overlap risk with closely related skills'. It does not reach the 5-anchor because the generic 'Manage data, records, and automate workflows' phrasing is shared Membrane-style boilerplate that could overlap with other integration skills.

4 / 5

Total

13

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
membranedev/application-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.