v1.0.0 to v1.0.0

52 added, 62 removed. Audit A to A.

---
name: story-short-scan
version: 1.0.0
description: "短篇网文扫榜。分析知乎盐言、七猫、黑岩、点众等平台热门短篇数据,捕捉风口题材。触发方式:/story-short-scan、/短篇扫榜、「短篇什么火」「知乎故事排行」。"
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
---
# story-short-scan:短篇网文扫榜
基于真实榜单样本分析短篇市场,给作者可写的情绪方向、题材候选和验证办法。
---
## 核心哲学
### 原则 1:短篇市场是情绪市场
- 扫榜从题材和简介中提取目标情绪、触发场景与情绪爆发点,说明这些内容如何吸引读者。仅凭题材名无法判断具体情绪体验。
+ 扫榜从题材和简介中判断读者读完的感受、触发场景与情绪爆发点,说明这些内容如何吸引读者。仅凭题材名无法判断具体情绪体验。
- ### 原则 2:短篇的生命力在传播
+ ### 原则 2:热度只按各平台自己的口径比
- 榜单提供完读、分享、收藏或点赞数据时,按各自口径比较。排名和互动量只说明样本受到的关注,不能据此断定故事质量或情绪拉扯效果。
+ 榜单给的收藏、赞同、在读、评分各有口径,只在同一口径内比较。排名和互动量只说明样本受到的关注,不能据此断定故事质量或情绪拉扯效果。
### 原则 3:短篇风口来得快去得快
报告写明样本日期、覆盖范围、结论可信度和复扫日期。题材信号可能在数周内失效,过期后只作候选参考。
---
## 扫榜流程
### Phase 1:确认平台和方向
- 用户已给出平台或方向时直接采用,只问缺项:**「想看哪个平台、哪类短篇?点众可直接采集,黑岩需要先登录作者后台;知乎盐言、番茄和七猫短篇请提供榜单截图、文字或链接。」**
+ 用户已给出平台或方向时直接采用,只问缺项:**「想看哪个平台、男频还是女频、哪类短篇?点众可直接采集;黑岩要有黑岩后台账号、先登录;知乎盐言、番茄和七猫短篇请发榜单截图、文字或链接。手里有编辑的征稿要求也可以一起发来。」**
关键判断:
- 用户已有方向 → 针对该方向做深度扫榜
- 用户没有方向 → 做全榜概览 + 找趋势
- 用户想跨平台比较 → 做平台对比分析
---
### Phase 2:确定数据来源
- **扫榜需要真实数据支撑。** 根据当前环境选择数据来源:
-
| 优先级 | 模式 | 说明 | 何时用 |
|--------|------|------|--------|
- | 1 | **脚本采集** | 点众、黑岩:直接抓取平台页面,产出结构化文件 | 有 Chrome 环境时(优先) |
+ | 1 | **脚本采集** | 点众、黑岩:抓取平台页面,产出结构化文件 | 有 Chrome 环境时(优先) |
| 2 | **作者提供** | 没有脚本的平台,或作者已有榜单 | 知乎盐言/番茄短篇/七猫短篇等 |
| 3 | **内置知识** | 用历史资料提出待验证的选题 | 无法联网、作者也没有数据时 |
- 1. 只读所选平台那一份:[点众](references/platform-dianzhong.md) / [黑岩](references/platform-heiyan.md) / [没有脚本的平台](references/manual-rank-input.md)。里面有网址、命令、字段、故障排查、平台分析维度,以及作者提供的榜单怎么整理成文件。
- 2. 每次扫榜新建输出目录 `扫榜/{YYYYMMDD}/`(同日再扫加 `-2`)存本次榜单,不往旧目录追加;文件名 `{平台}{类型}_{YYYYMMDD}.md`,某平台失败就跳过。对比读上个日期目录的 `扫榜聚合.md`。
- 3. 有榜单文件时运行聚合:`node scripts/aggregate-rank.js {输出目录} --out {输出目录}/扫榜聚合.md --sparse 10 --scale short`。**主会话只读这份聚合**,需要原始简介与人设信息时再抽样:`node scripts/aggregate-rank.js {输出目录} --sample {题材/标签/书名词} --n 5`。仅用内置知识时跳过聚合。
+ 命令中的 `scripts/` 相对本 skill 根目录。
- **内置知识:** 加载 `references/real-market-data.md`(跨平台写作差异对照),明确标注「以下分析基于历史趋势数据;未完成实时榜单校验前只能作为候选假设。」并列出需要复扫的平台页面。
+ 1. 只读所选平台那一份:[点众](references/platform-dianzhong.md) / [黑岩](references/platform-heiyan.md) / [没有脚本的平台](references/manual-rank-input.md)。其中有网址、命令、字段、故障排查、平台分析维度和作者榜单的整理格式。
+ 2. 每次扫榜新建输出目录 `扫榜/{YYYYMMDD}/`(同日再扫加 `-2`)存本次榜单,不往旧目录追加(聚合会混进旧榜)。脚本自动命名文件,作者榜单按平台参考命名;某平台失败就跳过。对比时读上个日期目录的 `扫榜聚合.md`。
+ 3. 聚合:`node scripts/aggregate-rank.js {输出目录} --out {输出目录}/扫榜聚合.md --sparse 10 --scale short`。**主会话只读这份聚合**,需要原始简介与人设信息时再抽样:`node scripts/aggregate-rank.js {输出目录} --sample {题材/标签/书名词} --n 5`。
+ 4. 看聚合的「采集情况」:标了问题(书名没解出来、没采到、详情没取到)的榜单按平台参考排查重采;重采不了就在报告里说明结论不含它。
+ 5. 作者发来征稿要求:原文存进输出目录的 `征稿要求.md`,题材、字数、截止日期当硬条件。
+ **内置知识:** 跳过聚合,加载 [references/real-market-data.md](references/real-market-data.md),明确标注「以下分析基于历史趋势数据;未完成实时榜单校验前只能作为候选假设。」并列出需要复扫的平台页面。
+
---
### Phase 3:数据分析
- 有真实样本时,以聚合结果和平台参考的「分析维度」为准,提取下列信息。趋势需对比同口径的多期样本;仅用内置知识时只给待验证候选,不填写当前数量、占比或涨跌。
+ 有真实样本时,以聚合结果和平台参考的「分析维度」为准。趋势需对比同口径的多期样本;仅用内置知识时只给待验证候选,不填写当前数量、占比或涨跌。
- 1. **情绪类型分布**:从题材和标签归并虐恋、反转、悬疑、治愈、打脸等类型,按样本数量比较
- 2. **题材热点**:具体什么设定/场景反复出现
- 3. **篇幅分布**:字数分布与各题材字数中位
- 4. **开头模式**:抽样内容含正文开头时分析首句;只有简介时只判断简介的写法
- 5. **结尾类型**:HE(好结局)/BE(坏结局)/开放式 的比例(抽样可见时)
- 6. **标题模式**:书名常见词 + 代表作标题
- 7. **人设模型**:反复出现的主角类型
+ 1. **情绪排行**:按本节末的情绪表把题材、标签归入六种写作情绪,按样本数量比较。每本书根据简介判断读者读完的感受,只归一类;标签只是线索,无法判断的计「待定」。悬疑题材按简介落点分:最后揭开真相的归反转震撼,留下寒意的归细思极恐
+ 2. **题材热点**:聚合的题材表和标签热词里反复出现的设定、场景
+ 3. **篇幅分布**:聚合的字数分布与各题材字数中位
+ 4. **简介与书名写法**:抽样简介怎么前置冲突、留悬念,书名常见词与代表作标题;可对照 [real-market-data](references/real-market-data.md) 的历史写法
+ 5. **结尾类型**:HE(好结局)/BE(坏结局)/开放式,只在作者提供的内容看得出结局时统计
+ 6. **人设模型**:抽样简介里反复出现的主角类型
+ | 情绪 | 归入的题材与标签 | 难度 |
+ |------|------------------|------|
+ | 意难平 | 虐恋、遗憾、错过、追妻、白月光 | 中 |
+ | 反转震撼 | 悬疑、身份错位、反转 | 高 |
+ | 爽感释放 | 打脸、逆袭、复仇、重生改命、宅斗 | 低 |
+ | 治愈温暖 | 成长、亲情、友情、甜宠 | 中 |
+ | 细思极恐 | 悬疑、心理、民俗怪谈 | 高 |
+ | 共鸣感动 | 现实、职场、婚姻、家庭 | 中 |
+
---
### Phase 4:输出扫榜报告
- 报告讲市场结论和能写的方向。脚本名、命令和 SKIP 等采集状态不进报告;未采到的平台用一句话说明原因。模板中缺数据的项直接省略;单期样本不填涨跌,历史资料不填当前热度排行。
+ 报告讲市场结论和能写的方向。脚本名、命令和采集状态不进报告;未采到的平台用一句话说明原因。模板中缺数据的项直接省略;单期样本不写「变化」一节,历史资料不填当前数量和热度。点众、黑岩采的是在架书目,并非热度榜:只有它们的数据时,「榜上数量」写「在架数量」,热度中位一列点众写「评分中位」、黑岩省略,不说哪篇火。
报告展示给作者,同时写进输出目录的 `短篇扫榜结论.md`:文件不存在就先按 [references/topic-match.md](references/topic-match.md) 的模板写文件头,再把报告作为「扫榜结论」一节写入(已存在就整节替换)。
<!-- author-report -->
```md
## 扫榜结论:{平台名称}
### 市场概况
- 扫榜时间:{日期}
- 核心发现:{一句话总结}
- 可信度:{样本多少篇、来自哪几个榜};建议 {日期} 前后再扫一次
- ### 情绪热度排行
- | 排名 | 情绪类型 | 榜上数量 | 趋势 | 代表作 |
- |------|----------|----------|------|--------|
- | 1 | {类型} | {N篇} | ↑/→/↓ | {标题} |
+ ### 情绪排行
+ | 排名 | 情绪 | 榜上数量 | 代表作 |
+ |------|------|----------|--------|
+ | 1 | {情绪} | {N篇} | {标题} |
### 题材热点
- | 题材 | 热度 | 竞争程度 | 门槛 | 代表作 |
- |------|------|----------|------|--------|
- | {题材} | 高/中/低 | 激烈/一般/蓝海 | 高/中/低 | {标题} |
+ | 题材 | 榜上数量 | 热度中位({口径}) | 代表作 |
+ |------|----------|--------------------|--------|
+ | {题材} | {N篇} | {数值} | {标题} |
### 关键数据洞察
- - 篇幅区间:热门短篇集中在 {X}-{Y} 字
- - 开头模式:{高频开头模式}
+ - 篇幅区间:样本集中在 {X}-{Y} 字
+ - 简介写法:{高频写法}
- 结尾偏好:{HE/BE/开放式的比例}
- 标题特征:{命名规律}
- 人设热词:{高频主角类型}
- ### 风口预警
- - 🔥 正在爆发:{题材} — {依据}
- - ⚡ 即将起风:{题材} — {依据}
- - ⚠️ 即将饱和:{题材} — {依据}
+ ### 变化(和 {上期日期} 比)
+ - 升温:{题材或情绪} — {本数或热度怎么变}
+ - 降温:{题材或情绪} — {本数或热度怎么变}
### 值得写的方向
- 1. {方向 + 情绪拉扯方式 + 可行性}
- 2. {方向 + 情绪拉扯方式 + 可行性}
- 3. {方向 + 情绪拉扯方式 + 可行性}
+ 1. {方向 + 情绪拉扯方式 + 同方向几篇}
+ 2. {方向 + 情绪拉扯方式 + 同方向几篇}
+ 3. {方向 + 情绪拉扯方式 + 同方向几篇}
### 一句话
{犀利总结}
```
---
### Phase 5:选题匹配
- 先读 `短篇扫榜结论.md` 的「扫榜结论」及同目录 `扫榜聚合.md`;内置知识模式没有聚合表,只读历史候选。结合项目素材与作者能力,按 [references/topic-match.md](references/topic-match.md) 写进同一文件的「选题匹配」一节:
+ 先读 `短篇扫榜结论.md` 的「扫榜结论」及同目录 `扫榜聚合.md` 和 `征稿要求.md`(有的话);内置知识模式没有聚合表,只读历史候选。
- - 低复杂度候选:反转类、打脸类(结构清晰、验证成本低)
- - 高复杂度候选:悬疑类、虐恋类(技术壁垒高,需要伏笔、反转和情绪控制证据)
- - 优先候选:样本信号明确,且项目素材与作者能力能够支撑的方向
+ 作者未提供的信息集中问一句:**「打算投哪个平台(还是自己发)?手里有什么素材、擅长写什么?计划写多少字?」** 作者不想答就按样本给方向,可行性最高写「中」。
+ 按 [references/topic-match.md](references/topic-match.md) 写进同一文件的「选题匹配」一节。优先选样本信号明确、作者素材和条件撑得住的方向,写作难度按 Phase 3 情绪表定。
+
**关键判断**:
- 先说明选题提供的情绪体验,再说明题材创新如何支持它
- 开头 3 句话是留存高风险区,必须建立冲突、身份差或情绪钩子
- 反转是短篇常见传播引擎;若不使用反转,必须用强共鸣、强话题或强余韵补足传播风险
---
- ## 平台特性速查
-
- 下表用于定位历史写法,当前题材分布与篇幅以本次样本为准;收费规则查平台说明。
-
- | 平台 | 历史样本特点 | 可比较的类型与写法 |
- |------|--------------|--------------------|
- | 知乎盐言故事 | 情感与认知变化,表达较克制 | 虐恋、反转、悬疑、现实 |
- | 七猫短篇 | 重生纠错、关系冲突,短章推进 | 总裁、现实、宅斗、年代、悬疑 |
- | 黑岩短篇 | 强刺激、虐恋与快节奏对抗 | 虐恋、复仇、身份反转 |
- | 点众短篇 | 事件集中,情绪兑现直接 | 家庭复仇、假千金、弹幕流 |
-
- ---
-
## 流程衔接
**流水线:** 短篇
**位置:** 扫榜(第 1/3 步)
| 时机 | 跳转到 | 命令 |
|---|---|---|
| 找到方向 | story-short-analyze | `/story-short-analyze` |
| 直接开写 | story-short-write | `/story-short-write` |
| 更适合长篇 | story-long-scan | `/story-long-scan` |
---
## 参考资料
- 按需加载以下文件:
-
| 文件 | 何时加载 |
|------|----------|
- | 三份平台参考(链接见 Phase 2 第 1 步) | 「确定数据来源」:只读所选平台那份 |
- | [references/topic-match.md](references/topic-match.md) | Phase 4/5:`短篇扫榜结论.md` 模板、可行性上限与交付 |
- | [scripts/aggregate-rank.js](scripts/aggregate-rank.js) | 把输出目录里的原始榜单聚合成短表(`--out` 落盘,`--sample` 抽原始条目),主会话只读它 |
- | [references/real-market-data.md](references/real-market-data.md) | **核心参考**:跨平台写作差异对照表、各平台简介公式速查、题材爆款公式速查表、各平台写作特征 |
- | [scripts/cdp-utils.js](scripts/cdp-utils.js) | CDP 公共工具函数(ab/sleep/evalJSON/safeStr/scrollLoad/getArg),各采集脚本共用 |
- | [scripts/dz-browse-scraper.js](scripts/dz-browse-scraper.js) | 点众短篇采集(男频/女频),用法见点众参考 |
- | [scripts/heiyan-booklist-scraper.js](scripts/heiyan-booklist-scraper.js) | 黑岩书库列表采集(需登录),用法见黑岩参考 |
+ | 三份平台参考(链接见 Phase 2 第 1 步) | 确定数据来源:只读所选平台那份 |
+ | [references/topic-match.md](references/topic-match.md) | 出报告和选题:`短篇扫榜结论.md` 模板、平台对照、可行性上限与交付 |
+ | [references/real-market-data.md](references/real-market-data.md) | 内置知识模式;有榜单时对照简介和书名的历史写法 |