CtrlK
BlogDocsLog inGet started
Tessl Logo

ip2location

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

61

Quality

72%

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

Quality

Content

82%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 strong, command-driven integration guide: highly actionable and reasonably well-sequenced with state-based checkpoints. Its main gaps are minor conciseness trimming and the absence of an explicit readiness gate/error-recovery checklist in the connection workflow.

DimensionReasoningScore

Conciseness

The body is mostly lean command-driven prose that assumes Claude's competence, with only minor over-explanation ('Membrane handles authentication ... so you can focus on the integration logic rather than auth plumbing'), fitting the 4 'efficient; minor instances of over-explanation' anchor rather than 5's every-token-earns-its-place bar.

4 / 5

Actionability

It provides copy-paste-ready, fully executable commands for the full lifecycle (install, login, connection ensure, connection get --wait, action list, action run, request) with concrete flags and JSON-output usage, matching the 5 anchor for executable guidance covering common cases.

5 / 5

Workflow Clarity

There is a clear sequenced flow (install → authenticate → connect → poll for ready → search actions → run/proxy) with explicit state-based checkpoints (READY/BUILDING/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR) and a poll-again feedback loop, fitting the 4 'clear sequence with most checkpoints' anchor; it is not 5 because there is no explicit 'only proceed when READY' gate or error-recovery checklist after CONFIGURATION_ERROR.

4 / 5

Progressive Disclosure

Content is well-organized into clear sections with no nested references (no bundle files exist), fitting the 4 'good structure; most content appropriately placed' anchor; it is not 5 because at ~150 lines the proxy flag table and action-discovery details could arguably live in a separate reference file, and not 3 because structure is clean and not a monolithic wall.

4 / 5

Total

17

/

20

Passed

Description

62%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 is adequate and appropriately third-person with a 'Use when' clause, but its action list is generic and its trigger vocabulary is narrow. Strengthening it with concrete IP-geolocation capabilities and natural synonyms would lift it from mid-range to strong.

Suggestions

Replace generic verbs ('Manage data, records, and automate workflows') with concrete capabilities, e.g. 'Look up country, region, city, ISP, and proxy type for IP addresses; batch-look up many IPs at once.'

Broaden trigger terms with natural phrasings users actually say: 'IP geolocation', 'IP address location', 'IP to country/city', 'geolocate an IP'.

Make the 'when' clause more specific, e.g. 'Use when the user wants to geolocate IP addresses or batch-enrich IPs with location data.'

DimensionReasoningScore

Specificity

Names the domain ('IP2Location integration') and a few actions ('Manage data, records, and automate workflows'), but those actions are generic rather than concrete capabilities like lookups or geolocation queries, so it sits at the 'names domain and 1-2 actions, not comprehensive' anchor rather than 4's specific-action list.

3 / 5

Completeness

Both 'what' ('Manage data, records, and automate workflows') and 'when' ('Use when the user wants to interact with IP2Location data') are present, but the 'when' clause is generic rather than listing concrete trigger phrases, matching the 4 anchor where 'when' could be more explicit; it is not 5 because it lacks specific trigger phrases, and not 3 because an explicit 'when' is stated.

4 / 5

Trigger Term Quality

It surfaces the product name 'IP2Location' and 'IP2Location data' as triggers, but omits natural synonyms a user would say ('geolocate an IP', 'IP address location', 'IP to country/city'), so it matches the 'some relevant keywords but missing common variations' anchor and not the 4-level broader coverage.

3 / 5

Distinctiveness Conflict Risk

Naming the specific product 'IP2Location' gives it a clear niche with minimal conflict risk, fitting 'mostly distinct; minor overlap risk'; it is not 5 because the trigger relies almost entirely on the product name with little surrounding distinct trigger language.

4 / 5

Total

14

/

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.