CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

Quality

79%

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/x-api/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A highly actionable, token-efficient API skill with concrete executable examples for all common operations. Its weaknesses are the missing validation checkpoints in multi-step/batch workflows (thread posting, media upload) and the absence of any progressive disclosure structure for the ~200-line inline API reference.

Suggestions

Add validation to the batch thread workflow: check resp.raise_for_status() (or handle the 429/403 branches from the Error Handling section) inside post_thread after each tweet, and stop or retry on failure so a mid-thread error doesn't orphan the remaining replies.

Verify each media upload step: check media_resp status before posting, and note the v1.1 upload size limits, since a failed upload currently propagates an undefined media_id into the post.

Move the per-endpoint examples (timeline, search, user lookup, media) into a references/ file (e.g., endpoints.md) and keep SKILL.md as a lean overview with one-level-deep pointers, removing the duplicated recent-search example.

DimensionReasoningScore

Conciseness

The body is code-dominant with almost no padding — comments carry non-obvious facts like "Media upload uses v1.1 endpoint" and "source before use". It is not a 5 because the recent-tweets search example appears twice (in the OAuth 2.0 section and again under Search Tweets) and the opening line restates the frontmatter description.

4 / 5

Actionability

Nearly all snippets are executable with real endpoints, params, and env vars (post tweet, thread function, timeline, search, user lookup, media upload, rate-limit handling). It falls short of 5 due to minor gaps: standalone fragments reference undefined variables ("content" in Error Handling, "user_id", "headers"/"resp" in Rate Limits), and the thread function never checks resp.raise_for_status().

4 / 5

Workflow Clarity

Sequences exist (media upload's labeled Step 1/Step 2, the 4-step content-engine integration list) but validation checkpoints are missing or implicit — no status check after media upload and no per-tweet error handling inside post_thread, so a failed middle tweet silently breaks the thread. Per the rubric's cap for batch operations without validation, this cannot exceed 3 even though single operations are unambiguous.

3 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but ~200 lines of API reference are inlined in SKILL.md with no bundle files or one-level-deep references — matching the anchor where content that could live in a separate file (e.g., an endpoints reference) is inline. It is above 2 because the structure is good and nothing is buried, but below 4 because nothing is split out.

3 / 5

Total

14

/

20

Passed

Description

86%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: specific capabilities, explicit "Use when..." trigger clause, good X/Twitter synonym coverage, and a clearly distinct niche. The only improvement would be making the when-clause more concrete with the actual trigger phrases users say.

DimensionReasoningScore

Specificity

The description lists several concrete actions — "posting tweets, threads, reading timelines, search, and analytics" plus "OAuth auth patterns, rate limits" — which matches the anchor for several specific actions with minor gaps (e.g., media upload, user lookup, DMs are absent). It falls short of the 5 anchor's comprehensive coverage and well above the 3 anchor's 1-2 actions.

4 / 5

Completeness

Both "what" (integration for posting, threads, timelines, search, analytics; OAuth, rate limits) and "when" ("Use when the user wants to interact with X programmatically") are explicitly present. It is not a 5 because the when-clause is generic rather than listing concrete trigger phrases like "when the user says tweet, post to X, or X API".

4 / 5

Trigger Term Quality

It comprehensively covers natural user phrasing including the platform synonym pair "X/Twitter", "API", "posting tweets", "threads", "search", and "interact with X programmatically" — the terms a user would naturally say when needing this skill. It does not fall to 4 because no meaningful natural synonym for this domain is missing.

5 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (X/Twitter API integration) with distinct triggers (tweets, threads, timelines, X API) and minimal conflict risk against unrelated skills. It clearly matches the 5 anchor rather than the 4 anchor's minor overlap risk.

5 / 5

Total

18

/

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

valeriibeck-star/claude-skills

Path

skills/x-api/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.