CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

polymarket

Query Polymarket: markets, prices, orderbooks, history.

60

Quality

75%

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 ./optional-skills/finance/polymarket/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

78%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 an exemplary lean overview: it captures only Polymarket-specific gotchas (double-encoded fields, token IDs, probability semantics, rate limits) and delegates the endpoint reference appropriately. Its main gap is navigation — the bundled scripts/polymarket.py is never referenced, and the workflow lacks empty-results/pagination handling.

Suggestions

Mention scripts/polymarket.py in the body (e.g. a one-line "Ready-made queries: scripts/polymarket.py") so Claude knows it exists and when to use it instead of hand-rolling requests.

Add a brief step for empty or paginated search results (e.g. "if no results, refine the query; if hasMore is true, page with offset"), matching the pagination fields documented in the reference.

Include one inline example GET request (curl or Python) for the search step so the core path is executable without opening the reference file.

DimensionReasoningScore

Conciseness

Every section carries Polymarket-specific knowledge Claude cannot infer (double-encoded outcomePrices/clobTokenIds, prices-as-probabilities, USDC volume, rate limits) with zero padding or explanation of known concepts. Matches anchor 5: lean and efficient, every token earns its place.

5 / 5

Actionability

Concrete hostnames, named endpoints, field semantics, an executable parse line (json.loads(market['outcomePrices'])), and a concrete output format example ("65.2% Yes ($1.2M volume)"). Falls short of anchor 5 because the body contains no complete copy-paste example request — an actual GET/curl example is delegated entirely to the reference file.

4 / 5

Workflow Clarity

The 4-step workflow (Search → Parse → Present → Deep dive) is clearly sequenced with the correct API/field mapped to each step (clobTokenIds for orderbook, conditionId for history). Not anchor 5 because there are no checkpoints for error/edge cases — e.g. empty search results or the hasMore pagination shown in the reference; read-only usage means the destructive-operation cap does not apply.

4 / 5

Progressive Disclosure

The body is well-sectioned and clearly signals references/api-endpoints.md (which exists, one level deep), but the actual bundle also contains scripts/polymarket.py (284 lines, over half the bundle) that is never mentioned anywhere in the body, making it undiscoverable. This falls between anchor 3 (organization gaps around references) and anchor 4 (mostly appropriate placement) — the orphaned script keeps it below 4.

3 / 5

Total

16

/

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 concise and concrete about what the skill does, and the brand name makes it highly distinct. Its main weaknesses are the complete absence of a "Use when..." trigger clause and the omission of natural synonyms like "prediction markets" and "betting odds" that users would say when they need this skill.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks about prediction markets, betting odds, event probabilities, or Polymarket specifically."

Include the natural synonyms users say — "prediction markets", "betting odds", "odds of X happening" — alongside the current object nouns (markets, prices, orderbooks).

Broaden the action coverage slightly (e.g. mention searching/discovering markets and checking trade history) to reach comprehensive capability coverage.

DimensionReasoningScore

Specificity

Names the domain and four concrete query targets ("markets, prices, orderbooks, history") with the action "Query". Not anchor 5 because coverage has gaps (no mention of probabilities, trades, or event discovery as actions); clearly above anchor 3's 1-2 concrete actions.

4 / 5

Completeness

The "what" is clear ("Query Polymarket: markets, prices, orderbooks, history"), but there is no "Use when..." clause or equivalent trigger guidance, which caps completeness at 3 per the rubric guideline. Not anchor 2 because the "what" half is concrete and specific.

3 / 5

Trigger Term Quality

"Polymarket", "markets", "prices", "orderbooks" are relevant keywords, but the natural phrases users actually say — "prediction markets", "betting odds", "what are the odds of X" — are entirely missing. This matches anchor 3 (missing common variations or synonyms) rather than anchor 4's good coverage.

3 / 5

Distinctiveness Conflict Risk

"Polymarket" is a distinctive brand name that anchors a clear niche; no other plausible skill would trigger on it, and the scoped objects (orderbooks, price history) are unambiguous. Matches anchor 5 (clear niche, minimal conflict risk).

5 / 5

Total

15

/

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

NousResearch/hermes-agent

Path

optional-skills/finance/polymarket/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.