reddit-intel

install
source · Clone the upstream repo
git clone https://github.com/carrielabs/reddit-intel
Claude Code · Install into ~/.claude/skills/
git clone --depth=1 https://github.com/carrielabs/reddit-intel ~/.claude/skills/carrielabs-reddit-intel-reddit-intel
manifest: SKILL.md
source content

reddit-intel

Reddit 舆情情报 Skill


⚠️ Reddit API 限制说明(永久生效,必须在 Phase 1 告知用户)

这是 Reddit 的平台政策,不是工具的 bug。

Reddit 官方 API 限制(2023年收紧后):

① 单次请求:最多返回 100 条帖子
② 搜索总量:同一关键词+排序,分页后约 250-500 条上限
   (Reddit 故意截断,防止大规模数据抓取)
③ 评论获取:需要对每条帖子单独发请求(不含在搜索结果里)
④ 限流:请求过快会被封 IP,需每次间隔 2 秒

我们的策略(4种排序 × 多个版块 × 去重):
  → 可将单关键词可获取量扩展至 600-1500 条
  → 指定日期范围 = 按周分段请求,不突破单次上限,但总量可叠加

注意:Reddit 有数百万条相关帖子,API 只给你很小的窗口。
      这是平台限制,无法绕过。PullPush.io(第三方历史数据)可选接入,
      但该服务不稳定,随时可能关闭,不作为默认方案。

永久约束(任何阶段均有效)

① 禁止捏造数据。字段无法判断时,用兜底规则(见 CLASSIFY_RULES.md),
   不允许输出"无法判断"作为最终结果。

② 批处理强制执行。Phase 3 每批严格处理 10 条,禁止一次性处理全部。

③ 竞品只提取明确出现的品牌名。帖子原文没有的,一律不写。

④ 置信度诚实标注。文本不足以可靠判断时,强制标"低"。

⑤ 行动点必须具体,"值得关注""建议持续观察"直接删除重写。

⑥ 热评精华基于真实评论内容,无内容时留空。

⑦ 概览 Tab(Sheet 2)的统计数字由 Python 计算,不允许 Claude 估算。

架构说明

文件加载时序:
Phase 1:READ ${CLAUDE_SKILL_DIR}/SUBREDDIT_MAP.md(行业版块推荐)
Phase 3:READ ${CLAUDE_SKILL_DIR}/CLASSIFY_RULES.md
         READ ${CLAUDE_SKILL_DIR}/TRANSLATE_RULES.md
Phase 4:READ ${CLAUDE_SKILL_DIR}/OUTPUT_SCHEMA.md

Phase 1:参数确认

加载:

READ "${CLAUDE_SKILL_DIR}/SUBREDDIT_MAP.md"

向用户一次性问清以下参数:

① 关键词是什么?
   支持逻辑运算:
   - AND:"Binance AND scam"(同时含两个词)
   - OR: "ChatGPT, Claude, Gemini"(逗号分隔 = OR)
   - NOT:"cryptocurrency NOT Bitcoin"(排除词)

② 分析目的是什么?
   A. 品牌/产品研究
      (关键词是产品或公司名,如:Notion / Binance / ChatGPT)
      → 使用产品研究框架(P1-P5)
   B. 行业舆情监控
      (关键词是行业词或话题词,如:加密货币 / AI写作 / 电商退款)
      → 自动匹配行业框架,Claude 根据关键词推断
   C. 自定义分类
      → 追问:你想分哪几类?(3-6个为宜)

③ 时间范围?
   - 近 7 天(默认)
   - 近 30 天
   - 近 3 个月
   - 近一年
   - 自定义:[起始日期] 至 [结束日期]

④ 抓取数量?(默认 100,最多 500;超过 200 条耗时较长)

⑤ 评论模式?
   - 快速模式(默认):只抓帖子正文,3-5 分钟出结果
   - 深度模式:抓帖子 + 每条热评(耗时 10-15 分钟,数据更丰富)

⑥ 限定版块?(可跳过,跳过则全站搜索;不熟悉版块可说行业,我来推荐)

用户说不知道版块时: → 根据关键词和 SUBREDDIT_MAP.md 推荐 3-5 个版块,让用户确认或调整

完成后告知 API 限制:

"本次配置预计可获取约 X 条帖子。
 说明:Reddit API 对单关键词每种排序方式约返回 250-500 条,
 多排序合并去重后实际可用量约 [估算范围]。
 这是 Reddit 平台限制,与工具无关。"

参数记录(工作记忆):

QUERY: [处理后的搜索字符串]
LOGIC: [AND / OR / NOT]
LIMIT: [数字]
TIMEFRAME: [week / month / 3month / year / custom:起止日期]
MODE: [fast / deep]
SUBREDDITS: [版块列表,空则全站]
FRAMEWORK: [A=产品研究 / B=行业舆情+行业名 / C=自定义类别列表]

Phase 2:数据抓取

执行脚本:

python3 "${CLAUDE_SKILL_DIR}/scripts/fetch_reddit.py" \
  --query "QUERY" \
  --limit LIMIT \
  --time TIMEFRAME \
  --mode MODE \
  --subreddits "版块1,版块2" \
  --output posts_raw.json

等待脚本完成后:

  1. 读取
    posts_raw.json
  2. 向用户报告:
    抓取完成:共 X 条帖子
    来源版块:N 个(列举前5个)
    时间跨度:[最早日期] 至 [最新日期]
    内容类型预判:图片帖/自动播报/营销推广 共约 X 条(可能影响分类质量)
    
  3. 如果 posts_raw.json 为空 → 告知用户并提示调整关键词或去掉版块限制
  4. 进入 Phase 3

Phase 3:批量认知处理

加载:

READ "${CLAUDE_SKILL_DIR}/CLASSIFY_RULES.md"
READ "${CLAUDE_SKILL_DIR}/TRANSLATE_RULES.md"

批处理规则:

  • 每次取 10 条,处理完追加到结果列表,向用户展示进度
  • 全部完成后写入
    posts_processed.json
  • 如果中途中断,记录已处理到第几条,告知用户可恢复

每条帖子必须先做内容质量预判(见 CLASSIFY_RULES.md 第一节),再做分类

处理后每条帖子的 JSON 格式:

{
  "id": "帖子ID",
  "content_type": "内容类型(图片帖/自动播报/营销推广/有效文字)",
  "title_original": "原始标题",
  "title_zh": "中文标题",
  "summary_zh": "中文摘要(≤500字)",
  "core_intent": "核心意图",
  "main_category": "主分类",
  "sub_tags": ["子标签1", "子标签2"],
  "sentiment": "情绪",
  "competitors_mentioned": ["品牌名"],
  "use_case": "使用场景",
  "top_comments_summary": "热评精华",
  "action_item": "行动点",
  "confidence": "置信度",
  "upvotes": 0,
  "num_comments": 0,
  "subreddit": "r/xxx",
  "created_date": "YYYY-MM-DD",
  "url": "https://reddit.com/..."
}

⚠️ 营销推广预警: 处理完全部帖子后,统计 content_type="营销推广" 的比例。 如果超过 40%,在进入 Phase 4 之前主动提示:

"⚠️ 本次结果中 X%(N条)为营销推广内容,有效数据偏少。
建议:在关键词后加 NOT "referral" 或指定更垂直的版块后重试。"

Phase 4:生成 Excel

加载:

READ "${CLAUDE_SKILL_DIR}/OUTPUT_SCHEMA.md"

执行脚本(Python 负责统计,Claude 负责写综合 Action Items):

第一步:让 Claude 基于 posts_processed.json 写出 3-5 条综合行动点, 存入变量 SUMMARY_ACTIONS(供脚本写入 Sheet 2)

第二步:执行导出:

python3 "${CLAUDE_SKILL_DIR}/scripts/export_excel.py" \
  --input posts_processed.json \
  --keyword "关键词" \
  --actions "综合行动点文字(换行分隔)"

完成后向用户报告:

✅ 完成

文件:reddit_intel_[关键词]_[日期].xlsx
Sheet 1「舆情数据」:X 条帖子,17 列
Sheet 2「概览」:情绪分布 / Top分类 / 高赞帖子 / 综合建议

置信度分布:高 X 条 / 中 Y 条 / 低 Z 条
(低置信度条目建议人工复核,主要来自图片帖和内容过短的帖子)

错误处理

错误情况处理方式
fetch 返回 0 条提示关键词过冷门或版块限制过严,建议扩展关键词
API 429 限流脚本自动等待 30 秒重试(最多 3 次),超出则保存已有数据
Phase 3 中途中断记录中断位置,告知用户可从中断点恢复,不删除已有结果
export 失败检查 openpyxl 是否安装(
pip install -r requirements.txt
营销推广占比 >40%提示用户调整关键词,询问是否继续或重新配置