Route CEO-first multi-window work into owner-led role loops. Use for 总控/CEO、架构/CTO、内容主编、角色派发与复用、模型路由、来源窗口回调、role-windows 台账、skill 命中统计或 multi-window loop engineering。
日本語の概要は準備中です。原文の説明を表示しています。
从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。**绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙**。
触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
多 adapter 模式:读各 trend-sources adapter 的输出 → 去重 → 粗打分 → 写入 candidates.md。
[用户:抓热点]
↓
[Phase 0: 读 .cheat-state.json 拿 enabled adapters]
↓
[Phase 1: 对每个 adapter 调 fetch]
↓
[Phase 2: normalize 到 candidate-schema]
↓
[Phase 3: 去重(vs candidates / predictions / trends-history)]
↓
[Phase 4: 对每个新 item 粗打分(调 cheat-score 内联逻辑)]
↓
[Phase 5: 排序 + 询问用户哪些加入 candidates.md]
↓
[Phase 6: 写入 + 更新 trends-history.jsonl 缓存]
💡 调用时覆盖:
/cheat-trends — sources: manual-paste,hackernews,bilibili-popular — max-per: 10
| 必填 | 来源 |
|---|---|
.cheat-state.json | 默认 sources |
adapters/trend-sources/<name>.md | 各 adapter 的实现描述 |
candidates.md | 去重对照 |
predictions/*.md | 去重对照(已发的不再推) |
.cheat-cache/trends-history.jsonl | 历史抓取去重缓存 |
# 伪代码
state = read('.cheat-state.json')
enabled_adapters = args.sources or state.get('enabled_trend_sources', ['manual-paste'])
如 enabled_adapters 为空 → 输出引导:
你目前没有启用任何热点源。
最快配法:
- 临时跑:/cheat-trends — sources: manual-paste,hackernews
- 永久启用:编辑 .cheat-state.json 的 enabled_trend_sources 数组
可用 adapter(详见 adapters/trend-sources/):
- manual-paste(默认,永远能用)
- hackernews(HN Algolia API,无需 key)
- reddit-rising(公开 .json 端点)
- youtube-trending(需 YouTube Data API key)
- bilibili-popular(公开端点,偶有变动)
- xhs-explore / douyin-hot(fragile,需 cookie)
- thirdparty-paid(新榜 / 飞瓜,需自己接 API)
对每个 adapter,读其 adapters/trend-sources/<name>.md 中描述的 fetch 接口(实际是 Bash 调底层 Python / shell / WebFetch):
| Adapter | 实现机制 |
|---|---|
manual-paste | 询问用户:"粘贴你今天的候选 URL/标题列表(每行一条)" → 解析每行,对 URL 做 WebFetch 拓展 snippet |
hackernews | WebFetch HN Algolia API:https://hn.algolia.com/api/v1/search?tags=front_page&hitsPerPage={N} → 提取 title/url/snippet |
reddit-rising | WebFetch Reddit JSON:https://www.reddit.com/r/<subreddit>/rising.json?limit={N} |
youtube-trending | 需 API key 配置在 .env 或 .cheat-state.json,调 YouTube Data API v3 videos?chart=mostPopular |
bilibili-popular | WebFetch B 站 popular 接口 |
xhs-explore / douyin-hot | 需用户提供 cookie 路径,调对应 platform-stub 描述的接口;缺 cookie → skip 该 adapter |
thirdparty-paid | schema only——读 adapters/trend-sources/thirdparty-paid.md,让用户自己接 |
每个 adapter 输出符合 candidate-schema.md 的 items。
优雅降级:单 adapter 失败(API key 缺失 / 端点 503 / cookie 失效)→ skip 该 adapter,不抛异常,在汇总里说明:
✅ hackernews: 拉到 18 条
⚠️ youtube-trending: 跳过(缺 API key——配置见 adapters/trend-sources/youtube-trending.md)
✅ bilibili-popular: 拉到 15 条
❌ douyin-hot: 跳过(cookie 文件不存在)
按 candidate-schema.md 的"去重协议":
sha256(source_type + normalized_title + url_path)[:12])candidates.md 已含此 id → 跳过predictions/*.md 已含此 id → 跳过.cheat-cache/trends-history.jsonl 已含此 id 且 rejected_at != null → 跳过去重统计写到汇总报告里。
AUTO_SCORE=true 时,对每条新 item:
snapshot_text 作为输入/cheat-score 子 skill 走 IO;inline 复用打分逻辑)注意:粗打分 ≠ 正式预测。预测必须基于最终稿(用户改过的),这里的打分只是"是否值得展开写"的粗筛。
AUTO_SCORE=false 时,items 写入 candidates.md 时 composite=null,需要后续手动 /cheat-score。
按 composite 降序,过滤掉 composite < MIN_COMPOSITE_TO_SUGGEST 的:
🔥 抓热点完成。各源拉取统计:
- manual-paste: 5 条(用户输入)
- hackernews: 18 条
- bilibili-popular: 15 条
跳过 douyin-hot(缺 cookie)
去重后剩 27 条新 item。
粗打分后 12 条 composite ≥ 6.0:
| # | 标题 | source | composite | bucket | rationale |
|---|---|---|---|---|---|
| 1 | 为什么我们都讨厌主动联系朋友 | hackernews | 8.4 | 30-100w | ER+QL 双 5,AB 普适 |
| 2 | "她不一样"的一千种变体 | bilibili-popular | 8.1 | 30-100w | MS 候选维度高 |
| 3 | ...... |
哪些加入 candidates.md?
- 全部加 → 回 "all"
- 选几个 → 回 "1, 3, 5"
- 都不要 → 回 "none"(这些会被记到 trends-history 避免下次重复推)
用户响应后:
candidates.md.cheat-cache/trends-history.jsonl:
{"id": "...", "title": "...", "source": "...", "snapshot_at": "...", "rejected_at": null|"<ISO>", "fetched_at": "<ISO>"}
{
"last_trends_run_at": "<ISO>",
"last_trends_added_count": 5
}
composite (rough, snapshot-based),避免与 prediction 的精打分混淆AUTO_SCORE=false),但提示用户后续需要 /cheat-score 才能进 recommend 池.cheat-state.json 的 enabled_trend_sources 数组/cheat-recommend 直接读 candidates.md 排序——trends 写完,recommend 立刻看到/cheat-init:onboarding Q4 选"没有候选池"的用户被引导到这里/cheat-status:status 看板显示"上次抓热点:X 天前 / 待清理候选池:Y 条"每个 adapters/trend-sources/<name>.md 必须文档化以下:
详见 adapters/HOWTO.md(待批次 3 实现)。
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Route CEO-first multi-window work into owner-led role loops. Use for 总控/CEO、架构/CTO、内容主编、角色派发与复用、模型路由、来源窗口回调、role-windows 台账、skill 命中统计或 multi-window loop engineering。
日本語の概要は準備中です。原文の説明を表示しています。
Read-only first workflow for diagnosing application incidents by collecting service, log, network, configuration, and functional evidence before proposing any fix.
日本語の概要は準備中です。原文の説明を表示しています。
Run user-authorized black-box web security tests and evidence-based reports. Use for 黑盒安全测试、渗透测试、数据泄露、未授权访问、公开 JS/API、登录爆破防护、CORS 或安全响应头检查。
日本語の概要は準備中です。原文の説明を表示しています。
Choose the narrowest reliable browser surface across Codex Browser, signed-in Chrome, Playwright CLI, and platform scripts. Use for browser automation, logged-in workflows, UI inspection, screenshots, form filling, publish previews, or frontend QA.
日本語の概要は準備中です。原文の説明を表示しています。
提议并执行 rubric 或 bucket 升级。两种模式:**完整 rubric bump**(最高风险动作,5 步强制 + 跨模型审核)和 **--bucket-only 轻量重校**(只换 bucket 边界,不动 rubric 公式)。**Phase 2 强制走 cheat-score-blind sub-agent 给校准池重打分**——不接受 self-scored fallback。触发词:"升级 rubric"/"bump rubric"/"更新公式"/"我想加一个维度"/"调整权重"/"重校桶"/"recalibrate bucket"。
日本語の概要は準備中です。原文の説明を表示しています。
初始化 cheat-on-content 内容校准工作区。仅在用户明确开始该工作流,或其子 skill 确认缺少 .cheat-state.json 时使用;不响应一般项目初始化、安装诊断或 Codex 首次会话。
日本語の概要は準備中です。原文の説明を表示しています。