Converts X (Twitter) tweets and articles to markdown with YAML front matter. Uses reverse-engineered API requiring user consent. Use when user mentions "X to markdown", "tweet to markdown", "save tweet", or provides x.com/twitter.com URLs for conversion.
69
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Security
1 high severity finding. You should review these findings carefully before considering using this skill.
Detected sensitive credentials directly embedded within the skill content, such as API keys, access tokens, private keys, or service-specific secrets. Secrets should never be hardcoded in plain text within skill instructions.
I scanned the repository for literal credentials. I found a high-entropy bearer token hardcoded in scripts/constants.ts: - DEFAULT_BEARER_TOKEN = "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA" This is a long, random-looking authorization token (Bearer ...) that can be used in request headers — it meets the definition of a secret (high-entropy value that grants access). Even if this token is a common public/guest token often included in reverse-engineered X/Twitter tools, it is a literal bearer token present in code and therefore flagged. Other candidates were considered but not flagged: - Various query IDs (e.g., FALLBACK_QUERY_ID) and feature toggle strings: these are identifiers/config values, not credentials. - DEFAULT_USER_AGENT: a user-agent string (not a secret). - SHA512 integrity string in bun.lock: an integrity/hash value for package locking — not an access credential. - Environment variable names (X_AUTH_TOKEN, X_CT0, etc.) and simple example strings in tests or docs: these are placeholders or non-secrets per the ignore rules. Therefore I mark the presence of a real secret as positive due to the hardcoded bearer token.
Low
Low-risk findings.
1 low severity finding. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
The skill fetches outsider-authored free text from X at runtime (e.g., tweet/article content and referenced tweet text) via `fetchTweetResult`/`fetchXArticle` GraphQL calls, then passes that extracted prose into markdown formatting and ultimately into the agent’s output context; there is no LLM prompt-injection sanitization step shown.
6b7a2e4
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.