CtrlK
BlogDocsLog inGet started
Tessl Logo

xai-stock-sentiment

Real-time stock sentiment analysis using Twitter/X data via Grok. Use when analyzing stock ticker sentiment, tracking retail investor mood, or gauging market reaction to events.

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-stock-sentiment/SKILL.md

The canonical home for this skill is xai-stock-sentiment in fernandezbaptiste/Skrillz

SKILL.md
Quality
Evals
Security

Quality

Content

50%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 delivers concrete, ready-to-adapt Python examples for every sentiment use case, but it pays for breadth with heavy repetition: the same API call scaffolding is duplicated seven times instead of factored out, and everything lives inline in SKILL.md with no progressive disclosure to reference files. There is also no response validation or error-handling guidance, leaving workflows without checkpoints.

Suggestions

Show the OpenAI-compatible client setup and the chat.completions.create call pattern once, then define each analysis type (single stock, comparison, earnings, sector, unusual activity, watchlist) as just its prompt template — eliminating the sevenfold duplicated scaffolding and cutting the body to a fraction of its length.

Move the per-use-case prompt/JSON schema library into a references/ file (e.g., references/prompts.md) and keep only the Quick Start example plus a one-line-per-function index in SKILL.md, adding real one-level-deep progressive disclosure.

Add response handling guidance: request JSON via response_format, parse and validate the returned structure (e.g., check sentiment score ranges and required keys), and define a fallback when the API returns malformed output.

DimensionReasoningScore

Conciseness

Seven near-identical client.chat.completions.create blocks (Quick Start, single stock, multi-stock, earnings, sector, unusual activity, watchlist) repeat the same Python scaffolding with only the embedded prompt JSON varying. This is noticeable verbosity/padding — the call pattern could be shown once with per-function prompt variations — matching anchor 2 (several unnecessary padded sections) rather than anchor 3's merely occasional looseness.

2 / 5

Actionability

Concrete, mostly executable Python with a real model ID ("grok-4-1-fast"), env-based key setup, and specific prompt schemas per use case. Minor gaps keep it below 5: functions annotated "-> dict" return the raw response string with no response_format/JSON parsing, later blocks implicitly depend on the client defined in Quick Start, and prompt schemas use bare "..." and "n" placeholders.

4 / 5

Workflow Clarity

The body is a function cookbook with clear section headers but no sequenced process and no checkpoints: there is no validation of API responses, no error handling, and no guidance on which function to choose when. This matches anchor 3 (sequence present but checkpoints missing or implicit); it is not 4 because validation is entirely absent rather than a minor gap, and not 2 because each function is individually well-defined and unambiguous.

3 / 5

Progressive Disclosure

Section headers are clear, but all ~385 lines — including seven repetitive API prompt templates — are inlined in SKILL.md with no bundle files; the function library is content that clearly belongs in a separate reference file. The "References" section links to external URLs rather than organized local files, fitting anchor 3 (some structure but content that should be separate is inline) rather than anchor 4.

3 / 5

Total

12

/

20

Passed

Description

78%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 strong description: concrete domain, third-person voice, and an explicit multi-trigger "Use when" clause covering what and when clearly. Its only weaknesses are limited enumeration of the skill's specific capabilities and mild overlap risk with adjacent xai sentiment skills.

DimensionReasoningScore

Specificity

The description names the domain and one concrete action ("Real-time stock sentiment analysis using Twitter/X data via Grok") but does not list several specific operations like earnings reaction, multi-stock comparison, or sector analysis that the skill actually provides. It matches anchor 3 (names domain and 1-2 concrete actions, not comprehensive) rather than anchor 4, which requires several specific actions.

3 / 5

Completeness

Both what ("Real-time stock sentiment analysis using Twitter/X data via Grok") and when ("Use when analyzing stock ticker sentiment, tracking retail investor mood, or gauging market reaction to events") are explicitly stated with concrete trigger phrases, matching the anchor 5 example structure exactly. Not below 5 since the when-clause is explicit and multi-trigger, not weakly implied.

5 / 5

Trigger Term Quality

Natural phrases users would say are present: "analyzing stock ticker sentiment", "tracking retail investor mood", "gauging market reaction to events". A few common variations are missing (e.g., plain "stock sentiment", "Twitter", "trading mood"), so it is good-but-not-comprehensive coverage, matching anchor 4 rather than anchor 5.

4 / 5

Distinctiveness Conflict Risk

The stock-sentiment-via-Grok niche is mostly distinct with clear triggers, but the skill's own body references overlapping siblings ("xai-sentiment - General sentiment", "xai-crypto-sentiment"), creating minor overlap risk on generic sentiment queries. This fits anchor 4 (mostly distinct, minor overlap with closely related skills) rather than anchor 5.

4 / 5

Total

16

/

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.