CtrlK
BlogDocsLog inGet started
Tessl Logo

opencage

OpenCage integration. Manage Persons, Organizations, Deals, Leads, Projects, Activities and more. Use when the user wants to interact with OpenCage data.

50

Quality

55%

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/opencage/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 actionable with concrete Membrane CLI commands and a reasonable connection-state workflow, but it is padded with concepts Claude already knows, has incoherent cross-references (a missing 'Step 2' and an orphaned '1b' heading), and is a monolithic file with no progressive disclosure to separate reference files.

Suggestions

Remove the explanatory opener about what geocoding is and the 'Developers use it to...' sentence, which restate concepts Claude already knows.

Fix the broken cross-references: either add the missing 'Step 2' section or relabel the '1b' heading to a coherent numbered sequence so 'Skip to Step 2' resolves.

Move the detailed clientAction state machine and the proxy flag table into separate reference files (e.g. references/connection-states.md, references/proxy.md) and link to them from the body to improve progressive disclosure.

DimensionReasoningScore

Conciseness

It is mostly efficient CLI commands, but includes unnecessary explanation Claude already knows ('OpenCage is a geocoding API that converts geographic coordinates into places and vice versa. Developers use it to add location awareness to their applications...') and a sparse, low-value 'OpenCage Overview' list, matching 'mostly efficient but includes some unnecessary explanation' (score 3).

3 / 5

Actionability

It provides concrete, copy-paste-ready commands (npm install, membrane login, connection ensure, action list/run, request) plus a flag reference table, but lacks any OpenCage-specific example invocation with real parameters, fitting 'mostly executable guidance with minor gaps' (score 4) rather than fully-covered score 5.

4 / 5

Workflow Clarity

A sequence with explicit validation exists (poll connection state through BUILDING -> READY/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR with a retry feedback loop), but cross-references are incoherent — 'Skip to Step 2' with no Step 2 section and a '1b' heading with no '1a' — matching 'sequence present but checkpoints missing or implicit / gaps' (score 3).

3 / 5

Progressive Disclosure

It is a single ~140-line file with no bundle files (references/scripts/assets absent) and no external file references; it is well-sectioned but monolithic, with inline content (the detailed clientAction state machine, the proxy flag table) that could be split out, matching 'some structure but could be better organized; content that should be separate is inline' (score 3).

3 / 5

Total

13

/

20

Passed

Description

53%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 has both a 'what' and an explicit 'Use when' trigger, but the action language is generic ('Manage ... and more') and the entity keywords are CRM-style terms that do not match OpenCage's actual geocoding domain, creating overlap risk and weak trigger specificity.

Suggestions

Replace the generic 'Manage Persons, Organizations, Deals, Leads, Projects, Activities and more' with concrete geocoding actions that match the skill body, e.g. 'Geocode and reverse-geocode locations, convert coordinates to addresses, and look up place data'.

Make the trigger phrase specific to geocoding intents, e.g. 'Use when the user wants to geocode addresses, reverse-geocode coordinates, or convert between GPS coordinates and place names.'

Drop the filler 'and more' and align listed entities with what OpenCage actually returns (results, formatted addresses, coordinates) to reduce conflict with generic CRM skills.

DimensionReasoningScore

Specificity

Only one action verb ('Manage') is offered over a list of entity nouns ('Persons, Organizations, Deals, Leads, Projects, Activities and more'), and 'OpenCage integration' is generic — actions are minimal/generic per the score-2 anchor rather than 1-2 concrete actions per score 3.

2 / 5

Completeness

Both 'what' ('Manage Persons, Organizations, Deals, Leads, Projects, Activities and more') and an explicit 'when' clause ('Use when the user wants to interact with OpenCage data') are present; the trigger is explicit but could be more specific, fitting score 4 rather than the fully concrete score-5 anchor.

4 / 5

Trigger Term Quality

It lists several entity keywords plus the product name 'OpenCage', but the actual trigger phrase 'Use when the user wants to interact with OpenCage data' is generic and lacks common variations, matching 'some relevant keywords but missing natural phrases' (score 3) rather than score 4's good coverage.

3 / 5

Distinctiveness Conflict Risk

The 'OpenCage' product name anchors it, but the entity list ('Persons, Organizations, Deals, Leads, Projects, Activities') is generic CRM territory that overlaps heavily with other CRM skills, matching 'somewhat specific but could still overlap' (score 3) rather than mostly-distinct score 4.

3 / 5

Total

12

/

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.