بنقرة واحدة
yahoo-jp-roast
爬取 Yahoo!ニュース 热榜(top-picks),筛除体育类新闻,提取正文摘要+评论AI总结,输出中文深度锐评报告(每篇≥300字:正文→评论→毒舌点评),风格辛辣幽默。输出到对话+存档。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
爬取 Yahoo!ニュース 热榜(top-picks),筛除体育类新闻,提取正文摘要+评论AI总结,输出中文深度锐评报告(每篇≥300字:正文→评论→毒舌点评),风格辛辣幽默。输出到对话+存档。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
个股深度分析的核心工作流。当用户要求"深度分析 / 全面分析 / 帮我看看 / 值不值得买 / DCF / 机构建模 / 首次覆盖 / 投委会备忘录"等涉及个股研究的请求时触发。覆盖 A 股、港股、美股,产出 24 个报告维度(0-22,其中 `6_fund_holders` 与 `6_research` 分列)+ 51 位大佬量化评审 + 6 种机构级估值建模 (DCF/Comps/LBO/3-Stmt/Merger) + 7 种研究产物 (首次覆盖/财报解读/催化剂日历/投资逻辑追踪/晨报/量化筛选/行业综述) + 6 种决策方法 (IC Memo/DD/Porter/单位经济/VCP/再平衡) + 杀猪盘检测,最终生成 Bloomberg 风格 HTML 报告 + 社交分享战报。关键词:股票、个股、深度分析、估值、DCF、comps、首次覆盖、IC memo、杀猪盘、龙虎榜、akshare。
中港股行情追踪 — 双数据源(新浪实时 + Yahoo v8 收盘),覆盖 A 股芯片半导体 + 港股科技/LLM 概念。含大盘/板块/异动/52周位置分析 + 叙事生成。
抓取 5ch.io 实时热帖(ikioig 全板勢い)前100条,筛选20条最逆天帖子生成中日双语锐评报告,输出到 D:\hermes\5ch-reports\YYYY-MM-DD\。
生成 LoveLive / BanG Dream 未来一年 live 活动倒计时报表。当前只展示 BanG Dream! 与 LoveLive!,不展示偶像大师。
将单个 cron job 输出同时推送到 Telegram 和微信;QQ 仍不可用。
美股行情追踪 — 双数据源(新浪实时 + Yahoo v8 收盘),含大盘/板块/异动/52周位置分析。
| name | yahoo-jp-roast |
| description | 爬取 Yahoo!ニュース 热榜(top-picks),筛除体育类新闻,提取正文摘要+评论AI总结,输出中文深度锐评报告(每篇≥300字:正文→评论→毒舌点评),风格辛辣幽默。输出到对话+存档。 |
| category | research |
python3 ~/.hermes/skills/research/yahoo-jp-roast/scripts/yahoo_jp_roast.py --pages 3
自动爬取前3页→筛体育→按评论降序→分类输出带链接表格,并归档到 ~/.hermes/yahoo-reports/YYYY-MM-DD-roast.md;cron no-agent 安全日报使用 YYYY-MM-DD-roast-safe.md。
terminal: yahoo_jp_roast.py --pages 3 内部用 curl 抓取 top-picks HTML → /tmp/yahoo_p{1,2,3}.htmlid 后方匹配最近的 commentCount,并提取 title + articleUrl(静态 HTML 当前可取评论数)comment_count 降序排列for pid in pickup_ids:
curl pickup page → 提取 article_id(正则 /articles/([a-f0-9]+)/comments)
→ 提取 meta description
→ 判断类别(标题含 阪神/マラソン/有原/新庄 等标记为体育→跳过)
delegate_task 批量处理 (建议并发数不超过3),每个子任务负责:
browser_snapshot(full=True) 获取完整页面内容,然后使用正则表达式或字符串匹配来解析。如果存在“もっと見る”按钮,必须先 browser_click 展开,再重新 browser_snapshot(full=True)。browser_snapshot(full=True),并通过解析 HTML 结构 (如 <p> 标签内的文本) 来获取。注意过滤掉导航、广告、脚注等非正文内容。browser_click 页码或“次へ”可能无法可靠地加载新内容,因为有些网站会动态更新而不改变 URL。此时,应尝试重新获取 browser_snapshot 并解析,或接受仅获取首页内容。ai_summary、article_body、retry_count、failure_reason 字段。browser_snapshot 未匹配就直接写「AI总结未成功提取,请参照评论链接」。ai_summary 为空时必须在同一轮任务内重试,最多 3 次:
browser_navigate 到评论页,等待页面稳定后取 browser_snapshot(full=True);browser_console(expression='document.body.innerText') 作为备用通道提取页面可见文本;null,对该 article URL 再派发一次 delegate/browser 子任务复核,避免单 worker 瞬时加载失败。failure_reason;正文可简短写明「重试3次仍未取到(原因:…),请参照评论链接」,不要无原因地泛泛写失败。ai_summary/article_body;如果第一次失败,后续重复条目要触发同一 URL 的复核,而不是复制失败占位。curl 无法获取,必须使用 browser_navigate 和 browser_snapshot。browser_click,但并非每次点击都能在 browser_snapshot 中立即反映内容更新。browser_click 页码或“次へ”后,URL 可能不变或页面内容未实际更新。需要仔细检查 browser_snapshot 来判断内容是否变化,否则可能只抓取到第一页内容。net::ERR_CONNECTION_CLOSED 错误,导致无法获取内容。null,并记录原因。格式:
## #N 标题 — N💬
原文链接:
- Pickup: https://news.yahoo.co.jp/pickup/...
- 原文: https://news.yahoo.co.jp/articles/...
- 评论: https://news.yahoo.co.jp/articles/.../comments
📝 正文:[中文总结]
💬 评论:[风向+AI摘要]
🔍 锐评:[毒舌吐槽,120-180字]
报告正文要求:
标题含以下任一关键词则跳过: 阪神、タイガース、マラソン、新庄、有原、近本、甲子園、セ・リーグ、パ・リーグ、日本ハム、サッカー、Jリーグ、大相撲、プロ野球、野球、投手、打者、本塁打、ホームラン、大谷、山本由伸、佐々木朗希、ドジャース、巨人、西武、ソフトバンク、バレー、バスケ、フィギュア
但以下不算体育: 東方神起(演唱会)、フワちゃん(艺人)
last_status=ok 且 last_delivery_error=null,但用户反馈没收到,不能只看 cron 状态;必须读取 ~/.hermes/cron/output/<job_id>/YYYY-MM-DD_*.md 确认最终正文是否真实生成。no_agent=True + ~/.hermes/scripts/yahoo_jp_roast_safe_daily.sh,该 wrapper 调用 scripts/send_safe_daily_items.py:先生成并归档完整安全版报告,再把 20 条新闻分别渲染为 20 条独立消息,发送到 ~/.hermes/secrets/cron_delivery_targets.json 中配置的 Telegram 与微信目标;脚本成功时 stdout 为空,避免 cron 再投递一份聚合长文。WEIXIN_RATE_LIMIT_RETRIES=0(可用 HERMES_YAHOO_WEIXIN_RATE_LIMIT_RETRIES 覆盖),遇到 Weixin rate limited/ret=-2 后只跳过微信 worker 剩余条目并返回失败,Telegram worker 继续跑完。--dry-run --limit N 验证,不得把真实 chat_id 写入 skill/Git;真实目标只能来自环境变量 HERMES_DELIVERY_TELEGRAM_CHAT_ID/HERMES_DELIVERY_WEIXIN_CHAT_ID、HERMES_YAHOO_PER_ITEM_TARGETS,或本机私密文件 ~/.hermes/secrets/cron_delivery_targets.json。cron.script_timeout_seconds 需足够长(当前为 7200 秒);否则逐条发送被限流时会被 no_agent 默认 120 秒超时杀掉,造成部分新闻已发、后续新闻漏发。API call failed after 3 retries、Prompt blocked due to safety 等模型错误,说明任务触发和数据抓取可能正常,但最终生成被模型安全策略拦截;应改用已验证可用的 provider/model。delegate_task JSON、default_api、python、json、I will、The first step 等内部计划/代码,立即暂停该 cron job;不要继续用 LLM agent 直投。改为 no_agent=True 调用安全脚本 ~/.hermes/scripts/yahoo_jp_roast_safe_daily.sh,由脚本直接输出最终 Markdown,并用 forbidden marker 校验防止内部过程外泄。scripts/safe_daily_report.py。它会抓取 top-picks、必要时自动扩页到 --max-pages、加强体育过滤、按 article URL 去重、只输出 20 条、为每条保留 Pickup/原文/评论链接,并明确标注“安全版不冒充已抓到ヤフコメAI要約”。若扩页后仍不足 20 条,脚本非零退出,避免投递低质量日报。safe_daily_report.jst_now_label() / jst_date_key()(ZoneInfo("Asia/Tokyo")),不要直接用本机 datetime.now();send_safe_daily_items.py 的 aggregate/per-item 归档也必须复用同一 JST date key,避免凌晨跨时区漂移。scripts/send_safe_daily_items.py。修改后至少运行:python3 ~/.hermes/skills/research/yahoo-jp-roast/scripts/send_safe_daily_items.py --pages 3 --top 20 --dry-run --limit 2,确认可生成 20 条、预览消息无内部 marker,再更新/保留 cron job b566c03e4060。💬 评论 与 🔍 锐评 不能只按大类返回固定模板;必须把标题/摘要注入正文,并用稳定哈希挑选多套模板。修改后至少运行 ~/.hermes/scripts/yahoo_jp_roast_safe_daily.sh 或 pytest tests/test_news_roast.py -q 验证 20 条 评论/锐评 均为 item-specific。commentCount;若 Yahoo 页面结构变化,脚本会非零退出并提示 source shape changedscripts/yahoo_full.py 只允许作为 DEBUG_ONLY 的 legacy/helper 使用:import-safe,不在导入时读取 /tmp/yahoo_p*.html,只在 main guard 下读取本地缓存,并必须复用 yahoo_rules.is_sports();生产 cron 禁止调用它。~/.hermes/yahoo-reports/YYYY-MM-DD-roast.md;cron no-agent 安全日报 ~/.hermes/yahoo-reports/YYYY-MM-DD-roast-safe.md(安全日报日期以 JST 为准)