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.
85
85%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description that covers specific capabilities (tweets, threads, timelines, search, analytics, OAuth, rate limits), includes both platform names (X/Twitter) for broad trigger matching, and has an explicit 'Use when' clause. The description is concise, uses third person voice, and clearly carves out a distinct niche.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: posting tweets, threads, reading timelines, search, analytics, OAuth auth patterns, rate limits, and platform-native content posting. | 3 / 3 |
Completeness | Clearly answers both what (posting tweets, threads, reading timelines, search, analytics, OAuth patterns, rate limits) and when ('Use when the user wants to interact with X programmatically'), providing an explicit trigger clause. | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'X', 'Twitter', 'tweets', 'threads', 'timelines', 'search', 'analytics', 'OAuth', 'API'. Covers both the old name (Twitter) and new name (X), which is excellent for matching user queries. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive — X/Twitter API is a clear niche with specific platform references. Unlikely to conflict with other social media or generic API skills due to the explicit platform naming and specific feature set. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, actionable skill with excellent executable code examples covering the major X API operations. Its main weaknesses are some redundancy (duplicate search patterns, personal usernames hardcoded), missing validation/error recovery in multi-step operations like thread posting, and a somewhat monolithic structure that could benefit from better progressive disclosure. The security section and rate limit handling are well done.
Suggestions
Add error checking inside the post_thread function (raise_for_status or retry logic) since a failure mid-thread is a partial-write scenario that needs explicit recovery guidance.
Remove or generalize the hardcoded username 'affaanmustafa' in examples — use a placeholder like '{username}' to make the skill reusable.
Consolidate the two nearly-identical search examples (Search Tweets and Pull Recent Original Posts for Voice Modeling) into one example with a note about query variations.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Generally efficient with good code examples, but includes some unnecessary content like the legacy alias note, the 'When to Activate' section (which is more frontmatter-like), and the hardcoded username 'affaanmustafa' appearing multiple times suggests personal/project-specific content that doesn't belong in a general skill. The 'Pull Recent Original Posts for Voice Modeling' section is largely redundant with the search example above it. | 2 / 3 |
Actionability | Excellent executable code examples throughout — OAuth setup, posting tweets, threads, search, media upload, rate limit handling, and error handling are all copy-paste ready with real endpoints and proper Python code using requests/requests_oauthlib. | 3 / 3 |
Workflow Clarity | The 'Integration with Content Engine' section provides a clear 7-step workflow with an approval gate before posting (step 5-6), which is good for destructive/write operations. However, the core operations lack validation checkpoints — e.g., the thread posting function doesn't check resp.raise_for_status() between tweets, and there's no explicit error recovery loop for failed posts mid-thread. | 2 / 3 |
Progressive Disclosure | The Related Skills section provides good cross-references to other skills, but the main content is somewhat monolithic — the core operations section is long and could benefit from being split or summarized with references. The content is well-sectioned with headers but everything is inline in one file. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
Reviewed
Table of Contents