CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

api-sports

API Sports integration. Manage Sports. Use when the user wants to interact with API Sports data.

Quality

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/api-sports/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 solid, command-driven integration guide with executable Membrane CLI examples and a genuinely useful connection-state workflow. Its main weaknesses are padding around the commands, a dangling "Step 2" reference scheme, and no worked example of a real action invocation.

Suggestions

Cut the intro paragraph about who uses API Sports and tighten the best-practices prose to single-clause bullets.

Add one end-to-end example such as `membrane action run get-fixtures --connectionId=... --input '{"league": 39, "season": 2024}' --json` so placeholder commands become copy-paste ready.

Fix the internal navigation: replace "skip to Step 2" with the actual section name (Searching for actions) and renumber or drop the "1b" heading.

DimensionReasoningScore

Conciseness

Most of the body is lean commands and tables, but it includes unnecessary explanation: the marketing-style intro ("It's used by sports websites, mobile apps, and fantasy sports platforms..."), "This is the fastest way to get a connection. The URL is normalized to a domain...", and padded best-practice prose ("This will burn less tokens and make communication more secure"). Not score 4 because several sentences could be trimmed without losing actionable content; not score 2 because there is no extensive teaching of concepts Claude already knows.

3 / 5

Actionability

Concrete, executable commands throughout: install, login (including the headless completion flow), connection ensure with polling, action list/run with a JSON --input example, and a full proxy flag table. Not score 5 because key commands still use unresolved placeholders (<actionId>, /path/to/endpoint) with no worked example combining a real action key with real input (e.g. running get-fixtures with league/season parameters); not score 3 because the guidance is fully executable with only minor gaps.

4 / 5

Workflow Clarity

The sequence is clear (install → login → connect → wait/poll → search → run → proxy fallback) with explicit state-based checkpoints (READY, CLIENT_ACTION_REQUIRED, CONFIGURATION_ERROR) and re-polling instructions forming a feedback loop. Not score 5 because cross-references are broken — "skip to Step 2" and section "1b" point to a numbered step scheme that does not exist in the document; not score 3 because checkpoints are present and explicit, not merely implicit.

4 / 5

Progressive Disclosure

No bundle files exist, so all content is inline, but it is well organized with clear section headers, a popular-actions quick-reference table, and logically ordered subsections. Not score 5 because at ~175 lines it exceeds the simple-skill threshold and the 20-row actions table plus proxy flag reference could live in a separate reference file; not score 3 because the structure and navigation are clean, with no buried or duplicated content.

4 / 5

Total

15

/

20

Passed

Description

48%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 an explicit and well-formed trigger clause and names a specific service, but the capability statement is nearly vacuous ("Manage Sports") and lacks the natural user vocabulary (fixtures, standings, scores, player stats) that would make triggers effective. Overall it reads as a template-generated description with the specifics stripped out.

Suggestions

Replace "Manage Sports" with concrete capabilities, e.g. "Fetch leagues, fixtures, standings, player statistics, lineups, injuries, and betting odds from API Sports."

Expand the 'Use when' clause with natural user phrasings: "Use when the user asks about football/soccer fixtures, live scores, league tables, player stats, or transfers."

Include the sport coverage (the actions are football-centric) so the description does not over-claim for all sports.

DimensionReasoningScore

Specificity

The description names the domain ("API Sports integration") but the only action phrased is the generic "Manage Sports" — comparable to the anchor example "Processes PDF files" — with no concrete actions like fetching fixtures, standings, or player statistics. It is not score 1 because a real domain is named, and not score 3 because there is no concrete, specific capability listed.

2 / 5

Completeness

The "when" is explicit ("Use when the user wants to interact with API Sports data") but the "what" is vague — "Manage Sports" barely answers what the skill does, echoing anchor 2's vacuous 'what'. It sits between anchor 3 (clear 'what', missing 'when') and anchor 4 (both present, one improvable); the 'what' is too thin to merit 4, and the 'when' is too explicit for 2.

3 / 5

Trigger Term Quality

It includes relevant keywords "API Sports", "Sports", and "sports data", but misses the natural phrases a user would actually say — scores, fixtures, standings, leagues, player stats, live odds, match data. Not score 2 because more than one relevant keyword is present with a natural phrase ("sports data"); not score 4 because common synonyms and user-vocabulary variations are largely absent.

3 / 5

Distinctiveness Conflict Risk

The specific product name "API Sports" gives it a clear niche with distinct triggers, so it is unlikely to fire for unrelated skills. Not score 5 because "Manage Sports" / "interact with API Sports data" could still overlap with other sports-data skills; not score 3 because the named-service trigger is far more distinctive than the anchor's generic phrasing.

4 / 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.

Validation — 15 / 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

Path

skills/api-sports/SKILL.md

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.