---
name: story-long-scan
version: 1.0.0
description: "长篇网文扫榜。分析起点、番茄、晋江、七猫等平台排行榜与新书数据，提炼市场趋势与热门题材。触发方式：/story-long-scan、/长篇扫榜、「长篇什么火」「起点排行」「扫七猫新书」。"
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
---
# story-long-scan：长篇网文扫榜

你负责从长篇榜单的重复样本中识别题材候选，结合作者条件给出可行性、失败风险与验证动作。

**核心信念：单本排名提供线索，近期多榜单、多作品的重复模式才支持趋势判断。**

---

## 扫榜原则

### 原则 1：扫榜看模式，别只看排名

提取样本中重复的题材、设定、套路、书名词和开篇卖点，判断能否支持趋势候选。

### 原则 2：流量型平台和付费型平台看的东西不同

番茄重点看在读与流量，起点看付费榜表现，晋江看收藏、营养液和积分。完读率、追读、订阅转化等后台指标需作者另行提供，当前采集脚本不产出。

### 原则 3：扫榜的目的是找到你能写的爆款题材

每个方向都结合素材储备、题材边界、计划篇幅和目标平台样本判断可行性，再给选题建议。

---

## 扫榜流程

### Phase 1：确认平台和方向

沿用用户已给的平台和方向；缺少时再问：**「你想看哪个平台？（起点/番茄/晋江/七猫/刺猬猫/其他）有没有关注的题材方向？」**

关键判断：
- 用户已有方向 → 针对该方向做深度扫榜
- 用户没有方向 → 做全榜概览 + 找趋势
- 用户想跨平台比较 → 做平台对比分析

---

### Phase 2：确定数据来源

按当前环境选择数据来源：

| 优先级 | 模式 | 说明 | 何时用 |
|--------|------|------|--------|
| 1 | **脚本采集** | 直接抓取平台页面/SSR 数据，产出结构化文件 | 优先；起点默认不需要 Chrome |
| 2 | **用户提供** | 用户粘贴榜单截图/文字/链接 | 用户已有数据时 |
| 3 | **内置知识** | 基于知识库趋势数据做分析 | 无法联网、用户无数据时 |

#### 脚本采集模式

命令中的 `scripts/` 相对本 skill 根目录；`{输出目录}` 指本次工作目录里的扫榜目录。

1. 只读所选平台那一份：[起点](references/platform-qidian.md) / [番茄](references/platform-fanqie.md) / [七猫](references/platform-qimao.md) / [晋江](references/platform-jjwxc.md) / [刺猬猫](references/platform-ciweimao.md)。里面有榜单网址、命令、字段、默认组合、故障排查和该平台的分析维度；需要浏览器态的平台先 `/browser-cdp` 启动 Chrome。
2. 每次扫榜新建输出目录 `扫榜/{YYYYMMDD}/`（同日再扫加 `-2`），存本次榜单，不往旧目录追加（聚合会混进旧榜）；文件名 `{平台}{榜单}_{YYYYMMDD}.md`。脚本已做清洗和质量标注。
3. 聚合：`node scripts/aggregate-rank.js {输出目录} --out {输出目录}/扫榜聚合.md`（小平台加 `--sparse 10`）。**主会话先只读聚合**中的题材分布、去重本数、热度与字数中位、标签、书名词、多榜重合和代表作。刺猬猫混合各榜的「榜单值」不可用于热度比较，按平台参考回查单榜。
4. 看聚合的「采集情况」：标了问题（书名没解出来、没采到、只有书单）的榜单按平台参考排查重采；重采不了就在报告里说明结论不含它。同方向不到 15 本（小平台 10 本）标「少」，等同 `[数据稀疏]`。
5. 分析开篇卖点、新人设、新桥段时按需抽样：`node scripts/aggregate-rank.js {输出目录} --sample {题材/标签/书名词} --n 5`，一次一个方向。抽样命中条数含多榜重复，样本本数按同平台书名+作者去重。

#### 其他数据来源

**用户提供：** 已有扫榜结果文件 → 直接聚合；链接 → 用 WebFetch 抓取；粘贴/截图 → 整理成 `# {平台} · {榜单名}` 标题、每本一段 `### #{排名} {书名}` 加一行 `*作者 · 题材 · 连载中 · 120万字 · 3.5万收藏*`（热度写「数字+口径」；有标签再加 `**标签：** a、b`）存进输出目录，再同样聚合。

**内置知识：** 加载 `references/genre-trends.md`，明确标注「以下分析基于历史趋势数据；未完成实时榜单校验前只能作为候选假设。」并列出需要复扫的榜单。

---

### Phase 3：数据分析

以聚合结果为主，按所选平台参考里的「分析维度」看，再提取通用维度：

1. **题材分布**：题材表的本数、占比与热度中位
2. **新题材信号**：新书榜样本与多榜重合；同时采到新书榜和其他榜时，聚合才显示「新书榜」列。上次日期目录有 `扫榜聚合.md` 时，按相同平台、榜单与筛选范围对比
3. **经典题材变化**：老牌题材的走势（上升/稳定/下降），没有上期数据就只写现状
4. **字数**：字数分布与各题材字数中位
5. **书名模式**：书名常见词 + 代表作书名
6. **开头卖点**：标签热词 + 代表作简介
7. **新元素**：对候选方向抽样原始条目，标出新的人物设定、开篇切入点、桥段套路

---

### Phase 4：输出扫榜报告

报告讲本次样本支持的结论和作者能写的方向；无可比上期时，趋势栏写「未比较」，不填涨跌。脚本名、命令和采集状态码不进报告；缺榜时说「XX 榜这次没拿到（原因），结论不含它」。

报告展示给作者，同时写进输出目录的 `选题决策.md`：文件不存在就先按 [references/topic-decision.md](references/topic-decision.md) 的模板写文件头，再把报告作为「扫榜结论」一节写入（已存在同名一节就整节替换）。作者只扫榜不选题，结论也已落盘。

<!-- author-report -->
```md
## 扫榜结论：{平台名称}

### 市场概况
- 扫榜时间：{日期}
- 核心发现：{一句话总结}

### 题材热度排行
| 排名 | 题材 | 榜上数量 | 趋势 | 代表作 |
|------|------|----------|------|--------|
| 1 | {题材} | {N本} | ↑/→/↓ | {书名} |

### 新题材信号
- {新出现或正在上升的题材，附依据}

### 经典题材动态
- {老牌题材的现状，附依据}

### 新元素提取
- 新人物设定：{新模式描述 + 代表作}
- 新开篇切入点：{新切入点描述 + 代表作}
- 新桥段/套路：{新桥段描述 + 代表作}

### 关键数据洞察
- 字数区间：上榜作品集中在 {X}-{Y} 万字
- 书名特征：{命名模式总结}
- 标签热词：{高频标签词}

### 值得关注的方向
1. {方向 + 为什么值得关注 + 可行性评估}
2. {方向 + 为什么值得关注 + 可行性评估}
3. {方向 + 为什么值得关注 + 可行性评估}

### 一句话
{犀利的总结}
```

---

### Phase 5：选题决策

按 [references/topic-decision.md](references/topic-decision.md) 的选题四步、可行性规则与模板补全 `选题决策.md`。

**从文件接上：** 先读 `{outdir}/选题决策.md` 的「扫榜结论」和 `扫榜聚合.md`，不靠对话记忆；两者都没有就回 Phase 2。

**如信息不足，向用户补齐项目条件：**「目标平台、已有素材、擅长题材/写作约束、计划篇幅是什么？」

按 `topic-decision.md` 的选题四步产出 2-3 个推荐选题（能爆的原因 → 市场验证 → 差异化定位 → 可行性+失败风险+验证动作），写入**本次扫榜输出目录** `{outdir}/选题决策.md` 的「推荐选题」一节，保留「扫榜结论」。

**硬规则：**
- 可行性上限：榜单标了 `[数据稀疏]`、聚合表标「少」或同方向样本 <15（小平台<10）时，最高给"中"并写明先验证；内置知识同样最高给"中"。素材、平台等条件不符时仍给"低"。
- 选题须由项目素材支撑，写清可行性与失败风险，并符合目标平台调性。

---

## 平台特性速查

| 平台 | 调性 | 核心指标 | 主力读者 | 适合类型 |
|------|------|----------|----------|----------|
| 起点中文网 | 男频为主，硬核爽文 | 月票/畅销榜名次 | 升级、成长与长线追读受众 | 玄幻、都市、科幻、游戏 |
| 番茄小说 | 下沉市场，免费阅读 | 在读数、阅读榜排名 | 大众读者 | 脑洞、快节奏、强爽感 |
| 晋江文学城 | 女频为主 | 收藏、营养液、积分 | 言情、纯爱与衍生受众 | 言情、纯爱、衍生 |
| 七猫小说 | 下沉市场，免费阅读 | 热度、大热榜排名 | 大众读者 | 快节奏爽文 |
| 刺猬猫 | 二次元、轻小说 | 各榜单值 | ACG 受众 | 同人、二次元、轻小说 |

---

## 流程衔接

**流水线：** 长篇
**位置：** 扫榜（第 1/3 步）

| 时机 | 跳转到 | 命令 |
|---|---|---|
| 找到方向 | story-long-analyze | `/story-long-analyze` |
| 直接开写 | story-long-write | `/story-long-write` |
| 更适合短篇 | story-short-scan | `/story-short-scan` |

## 参考资料

按需加载以下文件：

| 文件 | 何时加载 |
|------|----------|
| [references/topic-decision.md](references/topic-decision.md) | 「选题决策」：选题四步 + 可行性判断 + 选题决策.md 模板 |
| [references/reader-profiling.md](references/reader-profiling.md) | 需要分析目标读者画像时 |
| [references/genre-trends.md](references/genre-trends.md) | 查看题材趋势候选、切入约束和样本校验规则时 |
| [references/publishing-guide.md](references/publishing-guide.md) | 平台适配+推荐机制校验+数据指标+简介设计 |
| 五份平台参考（链接见「脚本采集模式」第 1 步） | 「确定数据来源」：只读所选平台那份——榜单网址、命令、字段、故障排查、平台分析维度 |
| [scripts/aggregate-rank.js](scripts/aggregate-rank.js) | 把输出目录里的原始榜单聚合成短表（`--out` 落盘，`--sample` 抽原始条目，`--json` 机读），主会话先读聚合表 |
| [scripts/cdp-utils.js](scripts/cdp-utils.js) 与各平台采集脚本 | CDP 公共工具与各平台采集脚本（`{平台}-rank-scraper.js`），命令见所选平台参考 |
