CtrlK
BlogDocsLog inGet started
Tessl Logo

finnhub

Finnhub integration. Manage data, records, and automate workflows. Use when the user wants to interact with Finnhub 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

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/finnhub/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 strong, actionable CLI guide with a real connection-state feedback loop and concrete commands throughout. Its main weaknesses are mild conceptual padding in the intro, unresolved placeholders that prevent a fully end-to-end runnable example, and slightly loose step numbering.

Suggestions

Trim the introductory paragraph and the Finnhub Overview bullet list, which restate common knowledge and duplicate the Popular actions table.

Add one end-to-end example that resolves the placeholders — e.g. run `get-quote` for a real symbol via `membrane action run <actionId> --connectionId=<id> --input '{"symbol":"AAPL"}'`.

Replace the loose "skip to Step 2" / "1b" references with explicitly numbered steps (1. Install, 2. Authenticate, 3. Connect, 4. Search, 5. Run) so the workflow sequence is unambiguous.

DimensionReasoningScore

Conciseness

Most of the body is concrete commands, but the intro paragraph ("Finnhub is a financial data API providing real-time stock, forex, and crypto prices... used by developers and investors...") and the duplicate Finnhub Overview bullet list explain context Claude already knows or restate the actions table. This is mostly efficient with some removable padding, matching anchor 3.

3 / 5

Actionability

Concrete, copy-paste-ready bash commands cover install, login, connection ensure, action list/run, and proxy requests with real flags. Minor gaps keep it at 4: placeholders like <actionId> and CONNECTION_ID are never resolved into an end-to-end example, and the popular-actions keys aren't shown wired into an actual `action run` call.

4 / 5

Workflow Clarity

There is a clear Install → Authenticate → Connect → poll-for-READY → search → run sequence with real validation checkpoints (state polling, CLIENT_ACTION_REQUIRED recovery, CONFIGURATION_ERROR handling). It stays at 4 because step labels are loose — "skip to Step 2" is referenced but no step is explicitly labeled "Step 2", and the "1b" subsection has no matching numbered steps.

4 / 5

Progressive Disclosure

The single-file body is well-organized into clearly headed sections with no nested references (no bundle files exist). It does not reach 5 because the ~160-line body inlines content that could live in a separate reference (the 12-row actions catalog and detailed clientAction field documentation), which is a minor organization gap per anchor 4.

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 identifies the Finnhub domain and includes a 'Use when' clause, but its action language is generic integration boilerplate rather than concrete Finnhub-specific capabilities. Trigger coverage is narrow, relying almost entirely on the single term 'Finnhub'.

Suggestions

Replace generic verbs with concrete Finnhub capabilities, e.g. "Fetch real-time stock quotes, company profiles, earnings calendars, and market news from Finnhub."

Broaden trigger terms to include natural phrasings users say: "stock prices", "quotes", "financial/market data", "company news", "earnings".

Tighten the 'Use when' clause to reference specific tasks, e.g. "Use when the user wants real-time stock quotes, company financials, earnings data, or market news from Finnhub."

DimensionReasoningScore

Specificity

"Manage data, records, and automate workflows" names the Finnhub domain but the actions are generic boilerplate rather than concrete capabilities (e.g., fetching quotes, company profiles, or candles). It does not reach anchor 3 because the listed actions are not truly concrete or specific to the API.

2 / 5

Completeness

It states what ("Finnhub integration. Manage data, records, and automate workflows.") and when ("Use when the user wants to interact with Finnhub data."). Both are present, but the 'when' trigger is generic and could be more specific, matching anchor 4 rather than 5.

4 / 5

Trigger Term Quality

"Finnhub" and "interact with Finnhub data" are relevant natural keywords, but coverage is thin — missing common variations a user might say (stock prices, quotes, market data, financial news). This matches anchor 3: some relevant keywords but missing synonyms.

3 / 5

Distinctiveness Conflict Risk

"Finnhub" is a distinctive proper-noun trigger with minimal conflict risk, but the generic action phrasing ("Manage data, records, and automate workflows") is template boilerplate shared across many integration skills, leaving minor overlap risk — anchor 4 rather than 5.

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.