CtrlK
BlogDocsLog inGet started
Tessl Logo

the-odds-api

The Odds API integration. Manage data, records, and automate workflows. Use when the user wants to interact with The Odds API 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/the-odds-api/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 content is a well-structured, command-driven integration guide with a clear workflow and explicit connection-state validation. Its main weaknesses are background prose Claude already knows, placeholder-laden examples, and inconsistent step numbering that breaks the otherwise clear sequence.

Suggestions

Cut the introductory background paragraph and trim explanatory filler (e.g. "so you can focus on the integration logic rather than auth plumbing") to assume Claude's competence.

Fix the step numbering: label "1a" (connection ensure) and "1b" (wait for ready) consistently, and either add a labeled "Step 2" section or remove the "skip to Step 2" reference.

Add a concrete worked example with realistic values (e.g. a real sportKey and connection id) for `membrane action run` so the common case is fully copy-paste ready.

DimensionReasoningScore

Conciseness

The body is mostly command-focused and efficient, but the opening paragraph ("The Odds API provides real-time sports odds data... Developers and businesses... use it...") and a few explanatory sentences ("so you can focus on the integration logic rather than auth plumbing") are background Claude does not need and could be trimmed.

3 / 5

Actionability

It provides concrete, real executable commands (npm install, membrane login, connection ensure, action list/run, request) covering the common workflow, but placeholders like CONNECTION_ID, <agentType>, and QUERY require user substitution, leaving minor gaps from fully copy-paste-ready.

4 / 5

Workflow Clarity

There is a clear install → authenticate → connect → poll-until-ready → search → run/proxy sequence with an explicit state-machine checkpoint (READY / CLIENT_ACTION_REQUIRED / CONFIGURATION_ERROR) and a re-poll feedback loop, but step numbering is inconsistent ("1b" with no "1a", references to an unlabeled "Step 2") and there is no post-action verification.

4 / 5

Progressive Disclosure

The single-file body is well organized into clear sections (Overview, Working with, Install, Auth, Connecting, Searching, Popular actions, Proxy, Best practices) with no broken or nested references; it stops short of 5 only because, at ~140 lines with no bundle files, some reference-grade detail (e.g. the proxy flag table, full state-machine) lives inline rather than split out.

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 includes an explicit "Use when" trigger and names the specific API, giving it solid completeness and distinctiveness. It is held back by generic, non-concrete action verbs and missing natural trigger synonyms like "sports odds" or "betting odds".

Suggestions

Replace generic verbs with concrete API capabilities, e.g. "Fetch live sports odds, list sports and bookmaker markets, and query event odds".

Add natural trigger terms users actually say, such as "sports odds", "betting odds", or "bookmaker odds", not just "The Odds API data".

Tighten the "Use when" clause to name concrete intents, e.g. "Use when the user wants live sports odds, bookmaker lines, or event/market odds data."

DimensionReasoningScore

Specificity

It names the domain ("The Odds API integration") but the actions — "Manage data, records, and automate workflows" — are generic verbs rather than concrete, API-specific operations, matching the anchor where actions are minimal or generic.

2 / 5

Completeness

Both a "what" ("Manage data, records, and automate workflows") and an explicit "when" ("Use when the user wants to interact with The Odds API data") are present, but the trigger could be more specific and concrete.

4 / 5

Trigger Term Quality

It includes the product keyword "The Odds API" and "interact with The Odds API data" but misses the natural variations users would say ("sports odds", "betting odds", "bookmaker odds"), so keyword coverage is partial.

3 / 5

Distinctiveness Conflict Risk

Naming a specific third-party product ("The Odds API") gives it a clear niche with minimal conflict risk, though the generic "manage data, records, and workflows" phrasing leaves minor overlap with adjacent sports-data 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.