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.

68

Quality

85%

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

SKILL.md
Quality
Evals
Security

Quality

Content

82%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, code-complete reference for the X API with good security and rate-limit hygiene and a clear approval-gated posting workflow. Weak points are minor: a near-duplicate search example, no per-step error handling in thread posting, and all content packed into one file rather than split references.

Suggestions

Add per-tweet failure handling in post_thread (e.g. resp.raise_for_status() and a retry/abort note) so a mid-thread failure doesn't leave a partial thread silently.

Remove or merge the 'Pull Recent Original Posts for Voice Modeling' section into the 'Search Tweets' example — they differ only in query params.

Move the content-engine integration workflow and related-skills detail into a one-level-deep reference file to keep SKILL.md a lean overview.

DimensionReasoningScore

Conciseness

The body is code-first and lean — it never explains what OAuth or a rate limit is — but includes minor redundancy: the 'Pull Recent Original Posts for Voice Modeling' section is nearly identical to 'Search Tweets', and the error-handling example repeats rate-limit logic. Anchors re-checked: this sits between 'efficient; minor instances of over-explanation' (4) and 'every token earns its place' (5) — the duplicated search example is trimmable, so 4.

4 / 5

Actionability

Every operation ships copy-paste-ready executable code with real endpoints and parameters: OAuth session setup, posting, threaded posting, timeline reads, search, v1.1 media upload, and runtime rate-limit header handling. The related-skill mentions are the only non-executable parts, appropriately so.

5 / 5

Workflow Clarity

The content-engine integration workflow is a clear 7-step sequence with explicit checkpoints ('Validate length and thread structure', 'Return the draft for approval', 'Post via X API only after approval'), and the error-handling section provides a status-code feedback loop. Not 5: the post_thread function never checks raise_for_status between steps, so a mid-thread failure leaves a silent partial thread — a minor validation gap.

4 / 5

Progressive Disclosure

The single file is well-sectioned with clear headers and no nested references, and no bundle files exist to misorganize. However, at ~230 lines everything is inline (the under-50-lines exception doesn't apply), and the voice-modeling / content-engine integration guidance plus related-skill mentions could live in a one-level-deep reference, so it fits 'good structure; minor organization gaps' (4) rather than the fully split anchor (5).

4 / 5

Total

17

/

20

Passed

Description

80%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 that names concrete capabilities across posting, reading, search, and analytics with an explicit 'Use when' clause. The main improvement opportunity is making the trigger guidance more specific with natural user phrasings.

Suggestions

Add concrete trigger phrases to the 'Use when' clause, e.g. 'Use when the user says \"post to X\", \"tweet\", \"X API\", or wants to read or search X programmatically'.

Include a few natural synonym triggers users actually say — 'post to X', 'my X timeline', 'Twitter handle' — to broaden keyword coverage.

Tighten distinctiveness by scoping analytics/content-posting mentions explicitly to X (e.g. 'X engagement analytics') to avoid overlap with crosspost/content skills.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'posting tweets, threads, reading timelines, search, and analytics' plus 'OAuth auth patterns, rate limits, and platform-native content posting' — giving comprehensive coverage of the domain with no vague filler.

5 / 5

Completeness

The 'what' is explicit and concrete, and a 'Use when...' clause is present ('Use when the user wants to interact with X programmatically'), but the 'when' is generic rather than naming specific trigger phrases, so it falls between the explicit-trigger 5 anchor and the weakly-implied-when 3 anchor.

4 / 5

Trigger Term Quality

Includes natural terms like 'X/Twitter API', 'tweets', 'threads', and 'interact with X programmatically', but misses common phrasings users would say such as 'post to X', 'my timeline', or 'X handle' that appear only in the body, not the description.

4 / 5

Distinctiveness Conflict Risk

X/Twitter API work is a clear, mostly distinct niche, but 'analytics' and 'platform-native content posting' create minor overlap risk with the crossposting and content-generation skills this bundle references.

4 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

affaan-m/ECC

Path

.agents/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.