x-ai-topic-selector
Generates topic recommendation reports by analyzing tweets from Twitter using AI and data metrics for content creators.
Install this skill
Security score
The x-ai-topic-selector skill was audited on Jun 5, 2026 and we found 38 security issues across 3 threat categories, including 2 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 96 | ``` |
Template literal with variable interpolation in command context
| 142 | { label: `X 列表 (List)${config?.sourceType === 'list' ? ' (上次选择)' : ''}`, description: "扫描指定的 Twitter 列表,选择后需要输入列表 URL" }, |
Template literal with variable interpolation in command context
| 143 | { label: `推荐 (For You)${config?.sourceType === 'home' ? ' (上次选择)' : ''}`, description: "扫描 X 推荐的内容" }, |
Template literal with variable interpolation in command context
| 144 | { label: `书签 (Bookmarks)${config?.sourceType === 'bookmarks' ? ' (上次选择)' : ''}`, description: "扫描你收藏的推文(自动进入 AI 深度分析模式,全量提取)" } |
Template literal with variable interpolation in command context
| 152 | { label: `数据分析模式 (Recommended)${config?.scoreMode === 'data-only' ? ' (上次选择)' : ''}`, description: "基于互动数据评分,无需 API Key" }, |
Template literal with variable interpolation in command context
| 153 | { label: `AI 分析模式${config?.scoreMode === 'ai-only' ? ' (上次选择)' : ''}`, description: "基于 AI 内容分析,需要 Gemini API Key" } |
Template literal with variable interpolation in command context
| 161 | { label: `自动检测 (Recommended)${config?.aiProvider === 'auto' || !config?.aiProvider ? ' (上次选择)' : ''}`, description: "按优先级自动选择:Gemini → OpenAI 兼容接口" }, |
Template literal with variable interpolation in command context
| 162 | { label: `Gemini${config?.aiProvider === 'gemini' ? ' (上次选择)' : ''}`, description: "使用 Google Gemini API(需要 GEMINI_API_KEY)" }, |
Template literal with variable interpolation in command context
| 163 | { label: `OpenAI 兼容${config?.aiProvider === 'openai' ? ' (上次选择)' : ''}`, description: "使用 OpenAI 兼容接口(需要 OPENAI_API_KEY + OPENAI_MODEL)如 DeepSeek" } |
Template literal with variable interpolation in command context
| 171 | { label: `不限 (Recommended)${config?.topicCategory === 'all' ? ' (上次选择)' : ''}`, description: "显示所有类型的选题" }, |
Template literal with variable interpolation in command context
| 172 | { label: `AI 工具/产品发布${config?.topicCategory === 'ai-tools' ? ' (上次选择)' : ''}`, description: "新工具、新功能、产品更新" }, |
Template literal with variable interpolation in command context
| 173 | { label: `行业新闻/动态${config?.topicCategory === 'industry-news' ? ' (上次选择)' : ''}`, description: "公司动态、融资、并购等" }, |
Template literal with variable interpolation in command context
| 174 | { label: `技术突破/论文${config?.topicCategory === 'tech-breakthroughs' ? ' (上次选择)' : ''}`, description: "新研究、技术创新" }, |
Template literal with variable interpolation in command context
| 175 | { label: `教程/实用技巧${config?.topicCategory === 'tutorials' ? ' (上次选择)' : ''}`, description: "使用指南、最佳实践" }, |
Template literal with variable interpolation in command context
| 176 | { label: `争议/讨论话题${config?.topicCategory === 'controversial' ? ' (上次选择)' : ''}`, description: "行业争论、热点讨论" } |
Template literal with variable interpolation in command context
| 184 | { label: `100 条${config?.maxTweets === 100 ? ' (上次选择)' : ''}`, description: "快速扫描" }, |
Template literal with variable interpolation in command context
| 185 | { label: `200 条 (Recommended)${config?.maxTweets === 200 ? ' (上次选择)' : ''}`, description: "标准扫描" }, |
Template literal with variable interpolation in command context
| 186 | { label: `500 条${config?.maxTweets === 500 ? ' (上次选择)' : ''}`, description: "深度扫描" } |
Template literal with variable interpolation in command context
| 194 | { label: `5 条${config?.topN === 5 ? ' (上次选择)' : ''}`, description: "精选推荐" }, |
Template literal with variable interpolation in command context
| 195 | { label: `10 条 (Recommended)${config?.topN === 10 ? ' (上次选择)' : ''}`, description: "标准推荐" }, |
Template literal with variable interpolation in command context
| 196 | { label: `20 条${config?.topN === 20 ? ' (上次选择)' : ''}`, description: "扩展推荐" } |
Template literal with variable interpolation in command context
| 227 | ``` |
Template literal with variable interpolation in command context
| 248 | ``` |
Template literal with variable interpolation in command context
| 292 | ```bash |
Template literal with variable interpolation in command context
| 373 | 2. 脚本路径 = `${SKILL_DIR}/scripts/<script-name>.ts` |
Template literal with variable interpolation in command context
| 374 | 3. 将本文档中所有 `${SKILL_DIR}` 替换为实际路径 |
Access to hidden dotfiles in home directory
| 43 | 配置文件路径: `~/.x-topic-selector/config.json` |
Access to hidden dotfiles in home directory
| 84 | **必须执行**: Agent 先检查 `~/.x-topic-selector/config.json` 是否存在 |
Access to hidden dotfiles in home directory
| 87 | cat ~/.x-topic-selector/config.json 2>/dev/null || echo "NO_CONFIG" |
Access to hidden dotfiles in home directory
| 326 | cat > ~/.x-topic-selector/config.json << 'EOF' |
External URL reference
| 54 | "listUrls": ["https://x.com/i/lists/xxx"], |
External URL reference
| 231 | question: "请输入要扫描的 X 列表 URL 地址(支持多个,用逗号分隔)\n\n示例格式:https://x.com/i/lists/1234567890\n\n💡 推荐尝试使用「AI 精选」列表,可获取高质量 AI 领域内容。${config?.listUrls?.[0] ? `\n\n📌 上次使用: ${config.listUrls.join(', ')}` : ''}", |
External URL reference
| 234 | { label: "https://x.com/i/lists/2021198996157710621", description: "「AI 精选」推荐列表 — 优质 AI 内容源" } |
External URL reference
| 252 | question: "书签模式和 AI 模式需要 Gemini API Key\n\n获取方式:访问 https://aistudio.google.com/apikey 创建 API Key${config?.geminiApiKey ? '\n\n📌 检测到已保存的 API Key,可直接复用' : ''}", |
External URL reference
| 264 | - `OPENAI_API_BASE`(可选)— 自定义 API 端点(如 DeepSeek: `https://api.deepseek.com/v1`) |
External URL reference
| 300 | # export OPENAI_API_BASE="https://api.deepseek.com/v1" # OpenAI 兼容模式(可选) |
External URL reference
| 314 | "https://x.com/i/bookmarks" \ |
External URL reference
| 471 | - `export OPENAI_API_BASE="https://api.deepseek.com/v1"` (可选,自定义端点) |