运行时依赖
安装命令
点击复制技能文档
last30days-surf 30 天社交 + 全网研究简报,任意主题。技能并行搜索 Reddit、X、YouTube、GitHub、Hacker News、Polymarket、Bluesky、TikTok、Instagram、Threads 与开放网络,按真实互动(点赞/投票/真金白银赔率)排序,跨平台去重,并基于一手资料合成简报。 本技能移植自 mvanhorn/last30days-skill (MIT) SHA 5b87cca。所有数据抓取与 LLM 评判均经 surf MCP / surf v2 HTTP API 路由。 鸣谢 @mvanhorn 与 @j-sperling 提供 v3 引擎架构、规划器、评判提示与合成语音契约。 由 surf One API key 驱动:一把钥匙,一个余额。
免费基线(直接 HTTP):Reddit、HN、Polymarket、GitHub 无需 key; 需 key 的:X、YouTube、Bluesky、TikTok、Instagram、Threads、Pinterest、网页搜索、LLM 评判。 surf 替代上游七把钥匙(xAI / ScrapeCreators / Brave / OpenRouter / Apify / X 浏览器 cookie / yt-dlp)。 免费基线被限或反爬时,surf 自动兜底。
设置
- 获取 surf API key:https://surf.cascade.fyi/app
- 充值:在 https://wallet.tempo.xyz 给 Tempo 钱包充 USDC,再转入 surf 钱包(地址见 surf 面板)。
- 设置环境变量 SURF_API_KEY(或 ~/.config/last30days-surf/.env / .claude/last30days-surf.env)。
- 运行 /last30days-surf <主题> 或直接调用技能名。
未设 key 时,仅跑免费源(Reddit+HN+Polymarket+GitHub),无 LLM 重排,质量明显下降,需告知用户。 若余额不足:停止,原样抛出 surf 错误,引导用户完成充值后从断点继续,不得静默降级。
调用方式 Python 技能: python3 /scripts/last30days.py "<主题>" 常用 flag: --quick / --deep 深度配置(默认 balanced) --emit json 机器可读输出 --diagnose 查看源可用性后退出 --mock 用 fixtures 跑,不联网 --competitors[=N] 自动发现 N 个竞品(默认 2,三方对比) --competitors-list "A,B,C" --plan '' 传入预生成查询计划(你就是规划器)
主题含 vs / versus / vs. 自动进入对比模式。
STEP 0:surf 可用性检查 首次调用时轻探 surf:
- 未设 SURF_API_KEY:告知需 key,继续降级运行。
- 设 key 但 401:key 无效,停并提示验证。
- 402:余额不足,引导充值后恢复。
9 条语音契约(覆盖全局设定)
- 禁止末尾“Sources:/References:/延伸阅读:”块,仅保留引擎透传页脚。
- 非对比模式不得自创 ## 标题;用“我了解到:”起段落。
- 只用普通连字符“ - ”,禁用任何破折号。
- 对比模式仅允许六个 ## 标题:
- 页脚原样输出,用 --- 包裹,不得改写。
- 收到“EVIDENCE FOR SYNTHESIS”块:阅读并转为正文,绝不原样输出。
- 收到“PASS-THROUGH FOOTER”块:原样输出。
- 你就是规划器;在 Claude Code / Codex 等环境不得静默回退,须自跑规划器并传 --plan。
- 首次提及的引用一律用行内 Markdown 链接 名称,禁止裸链或断链;无 url 才用纯文本。