Skip to main content
ClaudeWave
Skill6.4k repo starsupdated 3d ago

story-long-scan

长篇网文扫榜。分析起点、番茄、晋江等平台排行榜数据,提炼市场趋势与热门题材。触发方式:/story-long-scan、/长篇扫榜、「长篇什么火」「起点排行」。

Install in Claude Code
Copy
git clone --depth 1 https://github.com/zenstory-ai/oh-story-claudecode /tmp/story-long-scan && cp -r /tmp/story-long-scan/skills/story-long-scan ~/.claude/skills/story-long-scan
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# story-long-scan:长篇网文扫榜

你是网络小说市场分析师。你的任务是基于榜单样本识别长篇网文市场格局,并输出可执行的题材候选、风险阈值和验证动作。

**核心信念:单本排名只提供线索;跨样本重复模式才算信号。** 排行榜只能证明样本存在;必须通过多榜单、多作品和近期数据判断需求强度。

---

## 核心哲学

### 原则 1:扫榜看模式,别只看排名

排名会波动,模式必须用重复样本验证。扫榜要提取:反复出现的题材、设定、套路、书名词和开篇卖点。单本上榜只能记为个例;同类样本达到可比数量后,才能标记为趋势候选。

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

番茄看的是流量和完读率,起点看的是订阅和追读,晋江看的是收藏和积分。不同平台的成功标准不同,扫榜方法也不同。

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

不按热度直接给结论。每个方向都要做项目可行性判断:素材储备、题材边界、篇幅承载、目标平台样本是否足够。

---

## 扫榜流程

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

问用户:**「你想看哪个平台?(起点/番茄/晋江/其他)有没有关注的题材方向?」**

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

---

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

**扫榜需要真实数据支撑。** 根据当前环境选择数据来源:

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

#### 脚本采集模式

优先运行对应平台脚本直接采集结构化数据。起点使用移动端 SSR pageContext,默认不需要 Chrome/CDP;番茄等需要浏览器态的平台再使用 `/browser-cdp` 启动 Chrome。

**采集流程**:
1. 选择平台脚本;起点直接运行 `scripts/qidian-rank-scraper.js`,番茄/七猫/晋江等按需启动 browser-cdp
2. 等待列表元素或 SSR 数据加载,逐条提取字段(排名、书名、作者、题材、字数、推荐/在读数等),判断翻页(起点通常单页50-100条,番茄按题材逐页cap≈20)
3. 需要补充数据时(标签、简介、最新更新),进入详情页提取
4. 按规范格式写入 Markdown 文件
5. 多榜单/多题材时,逐组采集并保存

**输出规范**:详见 [references/scan-output-format.md](references/scan-output-format.md),包含各平台字段定义、输出模板。

**起点采集目标**(优先运行 `node scripts/qidian-rank-scraper.js --type {榜单} --outdir {输出目录}`;默认 `--mode auto` 会先用 `https://m.qidian.com` 移动端 SSR,PC/CDP 只作回退):

| 榜单 | URL | 核心字段 |
|------|-----|----------|
| 新人签约新书榜 | qidian.com/rank/newsign/ | 作者·题材·签约·免费/VIP·字数·总推荐·标签·简介 |
| 签约作者新书榜 | qidian.com/rank/signnewbook/ | 已签约作者新书,新风向信号 |
| 公众作者新书榜 | qidian.com/rank/pubnewbook/ | 公众作者新书,发现潜力作者 |
| 新人作者新书榜 | qidian.com/rank/newauthor/ | 新人作品,新人赛道风向 |
| 三江推荐 | qidian.com/sanjiang/ | 编辑推荐,按周分组(注意:非 /rank/ 路径) |
| 月票榜 | qidian.com/rank/yuepiao/ | 付费认可度最高指标 |
| 畅销榜 | qidian.com/rank/hotsales/ | 真金白银投票 |
| 阅读指数榜 | qidian.com/rank/readindex/ | 阅读量综合指标 |
| 收藏榜 | qidian.com/rank/collect/ | 读者关注热度 |
| 原创推荐榜 | qidian.com/rank/recom/ | |

**番茄采集目标**:

| 榜单 | URL格式 | 核心字段 |
|------|---------|----------|
| 男频阅读榜 | fanqienovel.com/rank/1_2_{cat_id} | 按题材逐页采集,在读数为核心指标 |
| 女频阅读榜 | fanqienovel.com/rank/0_2_{cat_id} | 按题材逐页采集 |
| 男频新书榜 | fanqienovel.com/rank/1_1_{cat_id} | 新风向信号 |
| 女频新书榜 | fanqienovel.com/rank/0_1_{cat_id} | 新风向信号 |

URL 参数:`/rank/{channel}_{type}_{cat_id}`,channel 0=女频/1=男频,type 1=新书榜/2=阅读榜。番茄列表页有字体反爬,须用 `scripts/fanqie-rank-scraper.js` 从详情页多策略解码书名/作者/题材/评分/标签/简介,配合 browser-cdp 使用:

```bash
node scripts/fanqie-rank-scraper.js --channel 1 --type 2 --outdir {输出目录}   # 男频阅读榜
node scripts/fanqie-rank-scraper.js --channel all --top 15 --outdir {输出目录}   # 男女频,每题材前 15 本
```

> **番茄采集后必查文件头 `数据质量`**,异常排查步骤见 [references/scan-output-format.md](references/scan-output-format.md)。

**七猫采集目标**:

| 榜单 | URL | 核心字段 |
|------|-----|----------|
| 排行榜总入口 | qimao.com/paihang | 大热榜/新书榜/完结榜,热度为核心指标 |

榜单类型:大热榜(日榜/月榜)、新书榜、完结榜、收藏榜、更新榜,支持男生榜/女生榜切换。

大热榜用 `--period day|month|all` 显式选择日榜、月榜或两者(默认 `day`);周期会进入文件头与文件名。非大热榜不区分周期,`--period` 不会重复采集。

**晋江采集目标**(`scripts/jjwxc-rank-scraper.js`,默认列表 + 详情两步走):

| 榜单 | URL | 核心字段 |
|------|-----|----------|
| 收入金榜 | jjwxc.net/topten.php?orderstr=12&t=0 | 收藏数、营养液、积分、字数、状态(详情页 `onebook.php` 补采) |

```bash
node scripts/jjwxc-rank-scraper.js --type 12 --outdir {输出目录}        # 列表+详情(默认每频道前10,详情上限100)
node scripts/jjwxc-rank-scraper.js --type 12 --top 15 --detail-limit 60  # 调整每频道本数/详情总量
node scripts/jjwxc-rank-scraper.js --type 12 --list-only                 # 只采列表(快,无核心指标)
```

> **晋江硬性要求**:必须有详情页核心指标(收藏数/营养液/积分/字数),脚本默认已补采;采集要点见 [references/scan-output-format.md](references/scan-output-format.md)。

**文件命名**:`{平台}{榜单名称}_{YYYYMMDD}.md`,例:`起点新人签约新书榜_20260425.md`

#### 采集质量检查(「确定数据来源」完成后必须执行)

每完成一个榜单的采集,立即执行以下检查。发现问题当场修复,不留给后续分析。详细规则见 [references/scan-output-format.md](references/scan-output-format.md)「数据清洗与字段约束」。

**1. 数据完整性**

| 检查项 | 标准 | 处理 |
|--------|------|------|
| 条目数量 | >= 15 条有效数据(小平台 >= 10) | 不足则在文件头注明 `[数据稀疏] 实际采集 N 条` |
| 必填字段 | 排名、书名、作者(缺任一项视为无效) | 无效条目移除,条目数重新计算 |
| 字段一致性 | 同一榜单内所有条目字段集必须一致 | 不一致条目标记 `[字段缺失: {字段名}]` |

**2. 数据清洗**

| 污染类型 | 处理 |
|----------|------|
| 平台模板文本(番茄「提供XXX完整版在线免费阅读」、七猫「上一页」等) | 删除模板文本,保留正文 |
| 解析串行(同一条目出现两个不同作品的数据) | 标记 `[解析异常]`,删除并重新采集 |
| 空字段(空白、`--`、`未知`) | 标记 `[待补]`,优先通过详情页补采 |

**3. 简介截断**

- 清洗后超过 100 字的简介,在最近的句号/问号/感叹号处截断,加 `...`
- 平台模板文本不计入 100 字限制(先删除模板,再截断)

**4. 文件头质量状态**

每个采集文件头部必须包含:

```
- 数据质量:[OK / 存在问题]
- 有效条目:{N} / {总数}
- 问题摘要:{无 / 具体问题描述}
```

#### 其他数据来源

**用户提供操作指引:**
- 用户提供已有的扫描结果文件路径 → 直接加载进入「数据分析」
- 用户提供链接 → 用 WebFetch 抓取
- 用户粘贴/截图 → 手动解析进入分析

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

---

### Phase 3:数据分析

根据用户选择的平台,结合已获取的数据做以下分析:

#### 起点中文网分析维度

| 维度 | 看什么 |
|---|---|
| 月票榜/推荐票榜 | 付费用户认可度高、持续追读强 |
| 畅销榜 | 真金白银投票,最硬核的指标 |
| 签约作者新书榜 | 已签约作者的新作风向 |
| 公众作者新书榜 | 公众作者的新作,发现潜力股 |
| 新人作者新书榜 | 新作者作品与新题材信号 |
| 三江推荐 | 编辑精选推荐,按周分组,发现平台力推作品 |
| 分类榜单 | 各垂直题材的竞争格局 |
| 追读率 | 核心指标,决定推荐位分配 |

#### 番茄小说分析维度

| 维度 | 看什么 |
|---|---|
| 阅读榜 | 流量与读者规模,在读数为核心指标 |
| 新书榜 | 新题材、新风向的早期信号 |
| 题材分布 | 各品类在读数集中度 |
| 在读数趋势 | 同题材不同作品的流量差距 |
| 标签热词 | 简介开头【】内的标签组合,揭示题材细分卖点(如「种田+慢热+西幻」) |

#### 七猫小说分析维度

| 维度 | 看什么 |
|---|---|
| 大热榜 | 热度排名,反映流量集中度 |
| 新书榜 | 新流量风口 |
| 完结榜 | 长尾价值作品 |
| 热度指标 | 七猫核心指标,反映读者活跃度 |

#### 晋江文学城分析维度

> **采集硬性要求**:若用了 `--list-only` 或文件头标 `[仅列表-无核心指标]`,则该数据不足以支撑以下分析维度,视为不合格。

| 维度 | 看什么 |
|---|---|
| 金榜 | 综合热度最高 |
| 季度榜 | 中期趋势 |
| 红字/黑字 | 积分与负面评价 |
| 收藏/营养液 | 女频市场的核心指标 |

#### 通用分析维度

对每个平台的榜单数据,提取:

1. **题材分布**:当前榜上哪些题材最多
2. **新题材信号**:最近新出现的题材类型
3. **经典题材变化**:老牌题材的走势(上升/稳定/下降)
4. **字数与更新**:上榜作品的字数区间和更新频率
5. **书名模式**:上榜作品的命名规律
6. **开头卖点**:简介/标签中反复出现的关键词
7. **新元素对比**:与上期/同类榜单对比,标注新出现的人物设定、开篇切入点、桥段套路

---

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

```
# 长篇网文扫榜报告:{平台名称}

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

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

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

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

## 新元素提取
### 新人物设定模式
- {新模式描述 + 代表作}
browser-cdpSkill

Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers: launching Chrome in debug mode, opening URLs, waiting for page load, evaluating JavaScript, taking snapshots, and extracting auth tokens. Trigger phrases: browser automation, CDP, agent-browser, 浏览器操作, 操作浏览器, Chrome CDP, 复用登录态, extract token from browser.

story-coverSkill

小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 生成含标题和署名的专业级网文封面;Codex CLI 优先使用内置 ImageGen,无需单独 API Key。触发方式:/story-cover、/封面、「帮我做个封面」「生成封面图」「做个小说封面」「封面设计」。

story-deslopSkill

网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。

story-importSkill

逆向导入已有小说。将已写好的小说(半成品或完本)反向解析为标准项目目录结构,兼容 story-long-write / story-short-write 后续写作流程;内部复用 story-long-analyze / story-short-analyze 的拆解管道,按篇幅自动分流。触发方式:/story-import、「导入小说」「反向解析」「导入」「把我的书导进来」。

story-long-analyzeSkill

长篇网文拆文。深度拆解爆款长篇小说的黄金三章、人设架构、爽点设计、节奏控制。单一深度拆解管道:跑完黄金三章(Stage 1)后产出快速预览报告并询问是否继续全量拆解,确认后从 Stage 2 续跑逐章摘要、聚合分析、设定关系、汇总报告,全程产物落盘 拆文库/{书名}/。触发方式:/story-long-analyze、/长篇拆文、「帮我拆这本书」「拆这本书」「分析黄金三章」「深度拆解」「完整拆解」「系统拆解」或提供小说文本文件路径——全部进入同一管道。

story-long-writeSkill

长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。

story-reviewSkill

多视角对抗式审查。full/lean 模式在已部署 reviewer agents 时并行 spawn;缺失/异常 agents 或 spawn 失败时自动降级 solo,参考文件不可读时使用内置 rubric fallback。触发方式:/story-review、/审查、「审查一下」「帮我审一下」。

story-setupSkill

网文写作工具集基础设施部署。为 Claude Code / OpenCode / Codex / Google Antigravity / ZCode / OpenClaw / Reasonix 提供内置适配;Web AI / 通用 Agent 可走 skills + AGENTS.md 文件模式。触发方式:/story-setup、$story-setup、「准备写书」「帮我搭一下环境」「配置写作项目」。