CtrlK
BlogDocsLog inGet started
Tessl Logo

xai-financial-integration

Integrate xAI Grok sentiment with FinnHub, Twelve Data, Alpha Vantage, and FMP financial APIs. Use when combining social sentiment with price data, fundamentals, and news for comprehensive analysis.

56

Quality

70%

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 ./.claude/skills/xai-financial-integration/SKILL.md

The canonical home for this skill is xai-financial-integration in fernandezbaptiste/Skrillz

SKILL.md
Quality
Evals
Security

Quality

Content

57%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 concrete, executable cookbook of Grok + financial-API integration patterns with real endpoints and output schemas, and it avoids explaining concepts Claude already knows. Its weaknesses are repetition (seven variations of one boilerplate pattern), zero validation of API responses or Grok's JSON output, and a missed progressive-disclosure opportunity: the bundled scripts/financial_sentiment.py duplicates the inline code but is never mentioned.

Suggestions

Reference scripts/financial_sentiment.py from the body and move the repetitive per-use-case functions there, keeping one or two representative examples inline (e.g. "See scripts/financial_sentiment.py for the full FinancialSentimentAnalyzer covering earnings, news, and multi-asset variants").

Add a validation step for Grok output: parse with json.loads, check required keys, and retry once with a corrective prompt on parse failure; also guard against missing env keys and non-200 API responses before building prompts.

Consolidate the seven near-identical integration functions into one parameterized pattern (data-fetch call + sentiment prompt + JSON contract) showing only the differing endpoints and requested schemas.

DimensionReasoningScore

Conciseness

There is no concept-explanation padding (no "what is an API" prose), and the code is the useful kind. However, seven near-identical functions (price_sentiment, technical_sentiment, fundamental_sentiment, news_sentiment_validation, multi_asset_sentiment, earnings_reaction_analysis, full_stock_dashboard) each repeat the same requests.get → xai_client.chat.completions.create boilerplate, differing only in endpoint and requested JSON schema. Mostly efficient but could be tightened into one parameterized pattern, matching anchor 3 rather than 2 (no padded explanatory sections) or 4-5 (lean and trimmed).

3 / 5

Actionability

The guidance is mostly executable: real endpoints (finnhub.io/api/v1/quote, api.twelvedata.com/rsi, financialmodelingprep.com/stable/key-metrics), a real model id (grok-4-1-fast), and complete function bodies. Minor gaps keep it from 5: functions declare "-> dict" but return response.choices[0].message.content as a raw string, the Grok JSON output is never parsed (no json.loads or response_format), and there is no handling of failed API calls or missing keys. It is clearly above anchor 3, which expects pseudocode or missing key details.

4 / 5

Workflow Clarity

The implicit sequence is present (Quick Start's numbered steps: get price → get fundamentals → get sentiment → return combined dict) and sections are well-labeled, but validation checkpoints are entirely absent — no error handling for API failures or missing env keys, and no parsing/verification that Grok actually returned valid JSON despite every prompt asking for it. Fits anchor 3 (steps listed but validation gaps; checkpoints missing or implicit).

3 / 5

Progressive Disclosure

Scoring against the actual bundle: the body has clear sections (Architecture, Quick Start, Integration Functions, Complete Dashboard, Environment Setup, Related Skills, References) and links to external docs, but ~350 lines of per-use-case code are inlined that belong in a bundle file — and a 509-line scripts/financial_sentiment.py containing a full FinancialSentimentAnalyzer class already exists yet is never referenced anywhere in the body. This matches anchor 3 (some structure, content that should be separate is inline, references not clearly signaled) rather than 4, since the existing script duplicates the inlined code and gets no navigation.

3 / 5

Total

13

/

20

Passed

Description

70%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.

A solid description that clearly names the niche (xAI Grok sentiment fused with four specific financial APIs) and includes an explicit "Use when" clause, with good API-name triggers. Its main weakness is action specificity — "integrate" and "combining" are generic verbs that don't tell Claude what concrete analyses it performs.

Suggestions

Replace the generic verbs with concrete actions, e.g. "Fetch quotes, technicals, and fundamentals from FinnHub, Twelve Data, and FMP; correlate them with real-time X sentiment via Grok; generate trading dashboards and signals."

Make the when-clause name user-side triggers explicitly, e.g. "Use when the user wants to combine stock sentiment with price data, fundamentals, or news for a ticker, or mentions Grok alongside a financial API."

Remove Alpha Vantage from the description (or add actual Alpha Vantage usage to the skill), since the body only sets an ALPHAVANTAGE_API_KEY env var but never calls an Alpha Vantage endpoint.

DimensionReasoningScore

Specificity

The description names the domain precisely ("xAI Grok sentiment with FinnHub, Twelve Data, Alpha Vantage, and FMP financial APIs") but its verbs are generic — "Integrate" and "combining social sentiment with price data, fundamentals, and news" — with no concrete actions like fetching quotes, computing indicators, or generating dashboards. It matches anchor 3 (names domain and 1-2 concrete actions, not comprehensive) rather than 4, which requires several specific actions.

3 / 5

Completeness

Both parts are explicit: what — "Integrate xAI Grok sentiment with FinnHub, Twelve Data, Alpha Vantage, and FMP financial APIs"; when — "Use when combining social sentiment with price data, fundamentals, and news for comprehensive analysis". The when-clause largely mirrors the what and does not name user-side triggers (e.g., mentioning a specific API or ticker), so it fits anchor 4 (both present, when could be more explicit) rather than the concrete trigger phrases of anchor 5.

4 / 5

Trigger Term Quality

Good keyword coverage: "xAI Grok sentiment", "FinnHub", "Twelve Data", "Alpha Vantage", "FMP", "social sentiment", "price data", "fundamentals", "news" are terms a user needing this skill would naturally say. A few natural terms are missing ("stock", "ticker", "market data", "trading"), keeping it below the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The integration niche (combining Grok sentiment with those four financial APIs) is clearly distinct from generic skills, but the body's Related Skills section reveals six closely related siblings (xai-stock-sentiment, finnhub-api, twelvedata-api, fmp-api, alphavantage-api), so a request like "get stock quotes from FinnHub" has overlap risk. Fits anchor 4 (mostly distinct; minor overlap risk with closely related skills), not 5 (minimal conflict risk).

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