Route CEO-first multi-window work into owner-led role loops. Use for 总控/CEO、架构/CTO、内容主编、角色派发与复用、模型路由、来源窗口回调、role-windows 台账、skill 命中统计或 multi-window loop engineering。
The English summary is being prepared. Showing the original description.
从配置的热点源(HN / Reddit / YouTube trending / B 站热门 / 等)抓今天的热门话题,去重 + 粗打分 + 写入 candidates.md。**绝大部分人没有候选池——这是让"我没素材"问题在 onboarding 第二步就消失的钥匙**。
触发词:"抓热点"/"fetch trends"/"今天有什么可做的"/"trending now"/"找选题"。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
多 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 实现)。
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Route CEO-first multi-window work into owner-led role loops. Use for 总控/CEO、架构/CTO、内容主编、角色派发与复用、模型路由、来源窗口回调、role-windows 台账、skill 命中统计或 multi-window loop engineering。
The English summary is being prepared. Showing the original description.
Read-only first workflow for diagnosing application incidents by collecting service, log, network, configuration, and functional evidence before proposing any fix.
The English summary is being prepared. Showing the original description.
Run user-authorized black-box web security tests and evidence-based reports. Use for 黑盒安全测试、渗透测试、数据泄露、未授权访问、公开 JS/API、登录爆破防护、CORS 或安全响应头检查。
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.
提议并执行 rubric 或 bucket 升级。两种模式:**完整 rubric bump**(最高风险动作,5 步强制 + 跨模型审核)和 **--bucket-only 轻量重校**(只换 bucket 边界,不动 rubric 公式)。**Phase 2 强制走 cheat-score-blind sub-agent 给校准池重打分**——不接受 self-scored fallback。触发词:"升级 rubric"/"bump rubric"/"更新公式"/"我想加一个维度"/"调整权重"/"重校桶"/"recalibrate bucket"。
The English summary is being prepared. Showing the original description.
初始化 cheat-on-content 内容校准工作区。仅在用户明确开始该工作流,或其子 skill 确认缺少 .cheat-state.json 时使用;不响应一般项目初始化、安装诊断或 Codex 首次会话。
The English summary is being prepared. Showing the original description.