pulse-deliverlisted
Install: claude install-skill Huanyu-Hibiki/Huanyu-Skills
# pulse-deliver · 交付报告
把一批 `Opportunity` 对象渲染成用户**可以直接行动的可点击 Markdown 报告**。
本 skill 是 4 段流水线的**第 4 段**,也是最终输出——用户看到的就是它。
## 何时使用
- 手里有一个或多个 `Opportunity` 对象要展示给用户
- 用户说"**给我一份待评论清单**"
- 用户说"**今天有什么值得互动的**"
- `pulse-enrich` 跑完,需要呈现结果
触发词:**deliver, report, list, show, format, 输出, 报告, 清单, 列表**
## 何时不用
- 用户要**原始 JSON** → 直接打印 Opportunity 对象
- 用户想**发现更多** → 回 `pulse-discover`
- 用户想**重新评分** → 回 `pulse-enrich`
## 工作流
### Step 1 · 接收 Opportunities
输入:`Opportunity` 对象数组(`pulse-enrich` 的输出)。
### Step 2 · 去重
对照本地历史逐条检查:
```bash
# 状态库:~/.pulsehub/state/seen-urls.db (SQLite)
# 表结构:(platform, workId, firstSeenAt, lastShownAt)
```
跳过最近 7 天内已展示过的 URL(窗口可配置)。
保留的 URL 更新 `lastShownAt`。
**Fallback(DB 不可用时)**:SQLite DB 不存在 / 无法写 → 改用文本去重:扫描 `~/.pulsehub/reports/*.md` 历史报告里的 URL,按 (platform, workId) 手动比对。首次运行无历史 → 提示用户"本次未去重(首次运行)",从本次开始积累报告作为去重依据。
### Step 3 · 计算时间窗口
对每个机会计算"最佳评论窗口",依据:
- 元数据里的 `publishedAt`
- 平台互动曲线(发布后前 30 分钟内的评论曝光约 10 倍)
- 当前时间
输出:`bestWindowMin`(距发布时间的分钟数,如 30 = "发布后 30 分钟内最佳")。
已过窗口 → 标记 "late",但仍然列出。
### Step 4 · 建议评论角度
对每个机会生成一个**建议**(不是成品评论):
```text
opportunity: {
title: "想买个无线耳机求推荐",
signals: { purchaseIntent: true }
}
suggestedAngle: "提你产品的降噪+续航。问对方预算来确认线索质量。
不要甩裸链接——让对方先追问。"
```
**关键**:建议只是角度,不是成品评论。用户必须用自己的口吻重写。
### Step 5 · 渲染 Markdown
按下面的模板渲染(**渲染由 AI 按模板直接完成,无独立 renderer 程序**):
```markdown
# 待评论清单 — 2026-07-27
> 找到 12 个机会(高 3 / ��� 6 / 低 3)。已去重,未展示 2 个最近 7 天看过的。
## 🔥 高价值(3)
### 1. 小红书:想买个无线耳机求推荐
- **URL**: [