mcpbeat

���发 ���红书

lornshrimp/分发-小红书

用于将“小红书/”目录内指定章节批量上传到小红书创作者后台并暂存草稿。支持按 README.md 读取作者笔名、小说名称与合集映射信息,自动执行登录状态检查(需用户手动登录)、按新增/修改分流填写标题与正文并“暂存离开”,同时回写无章节Id场景下的草稿追踪记录。关键词:小红书上传、长文笔记、暂存离开、草稿箱、长文合集、批量传章。

6k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
148
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/lornshrimp/Lorn.NovelWriteSkills --skill 分发-小红书

The instruction itself

25 sections, as written by the author

<!-- ===== Layer 1: 永久缓存 ===== -->

上传指定章节到小红书并暂存草稿

用于把你指定的 1 章或多章,上传到小红书对应账号下,并全部执行“暂存离开”。

<!-- ===== Layer 3: 场景缓存 ===== -->

工作目录路由规则(强制)

本 Skill 执行前,必须按以下规则确定工作目录:

  • 读取项目根目录 Agents.md,检查其中 主输出平台 声明
  • 若当前平台(小红书)匹配 主输出平台 → 工作目录为 小说正文/
  • 若当前平台不匹配 主输出平台,或 Agents.md 不存在/未声明 主输出平台 → 工作目录为 小红书/

后续所有章节文件路径、README.md、分发记录.md 均基于此工作目录。明确说明

  • 本平台是主输出平台时 → 章节文件、README.md分发记录.md 均在 小说正文/
  • 本平台不是主输出平台时 → 章节文件、README.md分发记录.md 均在 小红书/

> 路径说明:以下各节中所有 小红书/ 形式的路经(如 小红书/README.md小红书/分发记录.md)均为工作目录的示例写法。实际目录由上方「工作目录路由规则」确定:本平台是主输出平台时,所有这些路径对应 小说正文/;不是主输出平台时,对应 小红书/

何时使用

  • 你已经把待上传章节放入 小红书/ 目录。
  • 你已经在 小红书/README.md 写好作者笔名、小说名称、合集映射等信息。
  • 你希望按固定流程自动完成:登录状态确认(用户手动登录)→ 进入长文管理页 → 判断新增/修改模式 → 填写标题与正文 → 暂存离开 → 回写草稿追踪记录。

不适用情形

  • 你只想做文本润色,不需要打开网站上传。
  • 你没有提供小说名称或合集映射信息。
  • 目标不是“暂存离开”,而是“直接发布”。

输入前置要求(强制)

1) 章节文件目录

  • 待上传文件必须放在 小红书/ 下。
  • 你会明确指定要上传哪些章节(可单章,可多章)。
  • 章节标题不以文件名直接照抄为准,必须从章节文件内容中提取并规范化后填写到页面标题框。

1.1) 章节标题提取与组装规则(强制)

  • 必须从章节文件中提取:章节号(阿拉伯数字)、章节标题、正文、作者有话说。
  • 若章节文件标题行为 # 1.1.3 三分钟,其中 1.1.3 表示 部号.卷号.章号;提取时必须只取最后一段 3 作为源章号,三分钟 作为“章节标题”。
  • 小红书最终上传时虽然使用绝对章节号口径,但绝对章节号只能基于最后一段章号再按本 Skill 的规则换算,不得把 1.1.32.4.17 这类三级编号原样带入标题输入框;最终只能写成 第95章 三分钟 一类格式。
  • 小红书章节号与章节标题共用一个标题输入框
  • 最终填入值必须是完整字符串:第{绝对章节号}章 {章节标题}
  • 章号标题 之间必须保留 1 个空格,例如:第1章 天降奇缘
  • 若提取到的标题行只有标题文本(如 天降奇缘),则必须自动组装成 第{绝对章节号}章 天降奇缘

2) 元数据来源

  • 必须读取 小红书/README.md,至少提取以下信息:
  • 作者笔名(用于元信息标记)
  • 小说名称(小说书名候选;最终以“书名判定规则”确定目标合集名)
  • 合集映射信息(书名与小红书“长文合集”名称的对应关系)
  • 不得要求在 README.md 中填写用户名和密码

2.1) 平台校验(强制)

读取 小红书/README.md 后,必须检查其第一行一级标题是否等于 # 小红书分发配置

  • 匹配 → 继续执行后续流程
  • 不匹配 → 立即停止上传,并向用户报错:README.md 平台标识与当前 Skill 不符:预期"小红书分发配置",实际读取到"{实际读取到的标题}"。请检查是否将其他平台的 README.md 误放到了当前工作目录。

3) 分发记录来源(强制)

  • 必须读取 小红书/分发记录.md
  • 若文件不存在,先创建后再执行分发。
  • 用于查询“章节 -> 草稿定位信息”映射,判定该章是“新增模式”还是“修改模式”。

4) 书名判定规则(强制)

  • 小红书目录中的“小说名称”即小说书名。
  • 若小说无分部:小说书名使用该平台目录 README.md 中的“小说名称(小说书名)”。
  • 若小说有分部(多部):小说书名使用该章节所在分部的分部名。

5) 无章节Id场景的草稿追踪方案(强制)

> 小红书长文流程无法稳定获得章节Id,因此使用“章节唯一键 + 标题定位键 + 内容指纹”三元组跟踪是否已上传草稿。

  • 章节唯一键小红书合集名|分部名|绝对章号|章名(无分部时分部名填 NA)。
  • 草稿定位键:固定为 长文笔记::{标准标题},其中标准标题为 第{绝对章节号}章 {章节标题}
  • 内容指纹:对正文执行“去首尾空白 + 连续空白归一 + 去零宽字符”后计算哈希(建议 SHA-1)。

判定规则:

  • 分发记录.md 中无该 章节唯一键:走新增模式
  • 若有该键:
  • 先在“草稿箱 → 长文笔记(x)”列表按 草稿定位键 精确查找同名草稿;
  • 其中 x 为数字,表示当前“长文笔记”分类下草稿箱内的草稿数量;
  • 找到则走修改模式
  • 找不到则回退到新增模式,并在备注写明“台账存在但草稿箱未定位到同名草稿”。
  • 暂存后若重新计算的 内容指纹 与台账不同,必须覆盖更新记录并标记“内容已更新”。

6) 分发记录.md 模板(首次创建直接使用)

# 小红书分发记录

> 用途:记录“章节唯一键 -> 草稿定位键/内容指纹”映射,供分发流程判断“新增模式/修改模式”。

## 字段说明

- `章节唯一键`:固定格式 `小红书合集名|分部名|绝对章号|章名`(无分部时分部名填 `NA`)
- `小红书合集名`:对应 `小红书/README.md` 中目标合集名(按书名判定规则映射)
- `草稿定位键`:固定格式 `长文笔记::{标准标题}`
- `内容指纹`:规范化正文的哈希值(建议 SHA-1)
- `最近操作`:`新增` 或 `修改`
- `更新时间`:`YYYY-MM-DD HH:mm:ss`
- `备注`:可选

## 记录表

|章节唯一键|小红书合集名|草稿定位键|内容指纹|最近操作|更新时间|备注|
|:--|:--|:--|:--|:--|:--|:--|

6) README.md 模板(首次创建直接使用)

小红书/README.md 不存在时,必须按以下模板创建:

# 小红书分发配置

> 用途:存储作者信息与合集映射。分发流程需要用户手动登录,不读取密码。

## 作者信息

- 作者笔名:`笔名`

## 书籍与合集映射

### 无分部小说

| 小说名称 | 目标长文合集名 |
|:--|:--|
| 作品名 | 合集名称 |

### 有分部小说

| 分部号 | 分部名 | 目标长文合集名 |
|:--|:--|:--|
| 第1部 | 分部一书名 | 合集名称一 |
| 第2部 | 分部二书名 | 合集名称二 |

## 卷名映射

### 分部一书名

| 卷号 | 卷名 |
|--:|:--|
| 1 | 第一卷 卷标题 |
| 2 | 第二卷 卷标题 |

### 分部二书名

| 卷号 | 卷名 |
|--:|:--|
| 1 | 第一卷 卷标题 |
| 2 | 第二卷 卷标题 |

## 字段说明

- `小说名称` / `分部名`:必须精确匹配 SKILL 中的"书名判定规则"
- `分部号`:必须使用 `第N部` 规范格式(如 `第1部`、`第2部`),并与 `分部名` 一一对应,不得错位或复用
- `目标长文合集名`:小红书创作者中心已创建的长文合集名称
- `作者笔名`:用于元信息标记

## 登录方式

- **本文件不存储密码**。分发流程将在浏览器打开小红书,需要你在浏览器中**手动登录**。
- 确保登录账号拥有上述合集的写入权限。

## 注意事项

- 分发流程会检查登录状态;如未登录,需要你手动完成登录后再继续。
- 小红书无稳定的章节ID获取方式,草稿追踪将使用"标题+内容指纹"方案。

执行流程(强制按序)

步骤 1:读取本地输入

  • 读取并解析 小红书/README.md
  • 确认已获得:作者笔名、目标小说名、目标合集名(按书名判定规则映射)。
  • 读取 小红书/分发记录.md,建立“章节唯一键 -> 草稿定位键/内容指纹”映射。
  • 读取你指定的章节文件,提取每章:卷号、章号(阿拉伯数字)、章节标题、正文、作者有话说。

步骤 1.5:计算绝对章节编号(不分卷口径)

  • 章节编号统一使用“绝对章节编号”口径,不使用卷内局部编号。
  • 计算方式:
  • 读取 分发记录.md 中同一目标合集下全部已记录章节;
  • 依据 绝对章号排序后,计算当前章节的绝对序号。
  • 小红书不分卷发布场景,章节号使用绝对章节号,计算公式为:
  • 绝对章节号 = 前面各卷章节数之和 + 该章节在所在卷的相对章号
  • 示例:
  • 若第1卷有90章、第2卷有100章:
  • 第1卷第5章 → 绝对章节号第5章;
  • 第2卷第5章 → 绝对章节号第95章;
  • 第3卷第5章 → 绝对章节号第195章。
  • 分发记录.md 不存在或无历史记录,则按上述公式从已知卷章结构计算;无法确定前卷章数时需先补齐台账后再发布。

步骤 2:进入小红书后台并处理登录

  • 必须新开一个浏览器标签页,并在该新标签页访问:
  • https://creator.xiaohongshu.com/new/home
  • 该新标签页仅用于本次小红书上传流程,不复用你当前正在进行其他任务的标签页。
  • 若出现未登录状态:
  • 小红书当前流程无用户名/密码输入位;
  • 必须等待用户手动完成登录后再继续。
  • 登录完成后,访问:
  • https://creator.xiaohongshu.com/publish/publish?from=menu&target=article

步骤 3:进入目标合集管理(点击链路)

  • 在“长文管理页”中定位“长文合集”区域。
  • 找到与目标小说名称匹配的合集。
  • 点击该合集的“管理”按钮进入合集管理页面。
  • 从这一步开始,不允许通过手工拼接 URL 跳转新增/修改页面,后续均必须通过页面点击完成。

步骤 4:新增/修改分流(点击链路)

  • 每章开始前,先查 小红书/分发记录.md
  • 若该 章节唯一键 无记录:走新增模式
  • 若有记录:先去草稿箱按 草稿定位键 查找,找到走修改模式,找不到回退新增。
  • 新增模式(合集管理页内点击):
  • 点击“添加长文笔记”;
  • 再点击“写长文笔记”。
  • 修改模式(长文管理页右侧草稿链路):
  • 访问 https://creator.xiaohongshu.com/publish/publish?from=menu&target=article
  • 在右侧点击“草稿箱”;
  • 点击“长文笔记(x)”(x 为数字,表示当前该分类草稿数量);
  • 在列表中找到对应章节名称(标准标题);
  • 点击该章节“编辑”。

步骤 5:填写标题与正文

  • 在标题输入框填写:第{绝对章节号}章 {章节标题}
  • 在正文编辑区粘贴该章正文。
  • 必须确保正文来自你指定的章节文件,不得错章串章。

步骤 6:暂存离开并回写记录

  • 点击“暂存离开”。
  • 等待页面反馈暂存成功(或等价成功提示)。
  • 计算并写回该章的草稿追踪信息到 小红书/分发记录.md
  • 章节唯一键
  • 小红书合集名
  • 草稿定位键长文笔记::{标准标题}
  • 内容指纹
  • 最近操作(新增/修改)
  • 更新时间
  • 备注(必要时记录“草稿箱未命中后回退新增”等)

步骤 7:多章循环

  • 创建或修改更多章节时,严格循环步骤 3~7。
  • 每章都必须重新校验:目标合集是否正确、当前章节是新增还是修改、草稿追踪记录是否已更新。

连续多章提效模式(推荐)

> 目标:在不放松现有强制规则的前提下,减少重复点击、重复粘贴与重复判定成本。

A. 先批量预处理,再进入浏览器连续执行
  • 在打开网页前,一次性完成以下预处理:
  • 章节号 / 章节标题提取;
  • 正文与平台扩展字段拆分(如作者的话 / 发布设置文本);
  • 平台限制预检(如标题字数、作者话字数、必选发布项);
  • 新建 / 修改模式预判(来自 分发记录.md)。
  • 产物建议统一放入临时队列(如内存对象或 {平台目录}/.cache/content_parts/no_part/v{卷号}/*.txt{平台目录}/.cache/content_parts/p{分部号}/v{卷号}/*.txt + 映射表),浏览器阶段只做“取数据→填写→保存”。
B. 浏览器阶段采用“固定入口 + 重复节拍”
  • 对于每一章,保持统一节拍:

1) 打开目标地址(按记录走新建或修改);

2) 填标题;

3) 填正文;

4) 填平台扩展字段(如作者话/发布设置);

5) 保存草稿;

6) 提取章节Id;

7) 回写记录。

  • 除“目标地址”和“填入文本”外,其余动作应尽量保持同一套定位器与顺序,避免每章临时切换策略。
C. 用“小批次提交”替代“整批一次性提交”
  • 推荐按 5–10 章为一个小批次执行:
  • 每个小批次完成后立刻回写 分发记录.md
  • 再进入下一个小批次。
  • 这样即使遇到限流、登录态波动或页面改版,也只影响当前小批次,不会让整批进度回滚。

> D / E / F 三节统一执行口径:优先保证批次连续性与可回滚性;安全验证类提示一律按阻断处理;数据通道异常必须可降级。

D. 对“高频弹窗”做一次性消噪
  • 对平台中反复出现的非阻塞提醒(字数提醒、教学浮层、引导弹窗),首次可消噪后继续主流程。
  • 仅当弹窗真实阻断“输入/保存/提交”关键路径时,才升级为失败处理或人工接管。
E. 失败分层:快跳过、可续跑
  • 对单章失败采用“记录原因并继续下一章”的策略(除非用户要求遇错即停)。
  • 失败章需记录最小必要信息:
  • 章节唯一键;
  • 失败步骤(打开页 / 标题 / 正文 / 平台扩展字段 / 保存 / 回写);
  • 页面关键提示。
  • 批量结束后按失败清单单独补传,避免在主循环里反复卡住。
F. 数据通道提效(可选)
  • 长批量自动化场景可选用 scripts/content_parts_server.mjs
  • 无分部:/parts/v/{卷号}/{章号}
  • 有分部:/parts/p/{分部号}/v/{卷号}/{章号}
  • 平铺 /parts/{章号} 仅限单批次临时使用。
  • 该方式是提效手段,不替代各平台 Skill 的书籍Id判定、章节唯一键、回写规则与失败处理要求。
G. 批量执行防误用补丁(建议默认开启)
  • “新建 / 修改模式预判”仅用于提效,不得替代每章执行前对 分发记录.md 的实时查询。
  • “高频弹窗消噪”仅限非安全类提示;涉及登录风控、验证码、实名校验、账号安全提示时,一律按阻断处理并暂停。
  • 失败分层需加入“致命错误即停”:书名/卷名(或作品)不匹配、书籍ID错误、登录态异常未解除时,不得继续下一章。
  • 使用数据通道(如 content_parts_server)时必须提供降级路径:服务不可用时自动回退到本地文件读取,不中断批次执行。
  • 每个小批次结束必须执行对账复核:计划章数 = 成功章数 + 失败章数,且成功章均完成 章节Id 回写。

关键边界与硬规则

  • 必须只上传用户明确指定的章节,不得擅自扩展范围。
  • 步骤 2 必须使用新标签页进入小红书后台,禁止占用用户正在使用的原标签页。
  • 作者后台入口固定为:https://creator.xiaohongshu.com/new/home
  • 登录必须由用户手动完成,流程中不得要求输入账号密码,也不得要求在 README.md 维护账号密码。
  • 长文管理入口固定为:https://creator.xiaohongshu.com/publish/publish?from=menu&target=article
  • 新增/修改除入口页外必须通过页面点击链路完成,不得依赖 URL 拼接跳转。
  • 标题必须使用合并格式:第X章 标题文本X 为绝对章节号,章号与标题之间有 1 个空格)。
  • 每章最终保存动作必须是“暂存离开”。
  • 小红书无稳定章节Id时,必须使用“章节唯一键 + 草稿定位键 + 内容指纹”回写并判定草稿状态。
  • 每章暂存成功后必须回写 小红书/分发记录.md

失败与回退处理

  • 未登录且等待超时:标记为“待用户登录”,暂停流程。
  • 登录过程中若出现人机验证、短信验证、扫码确认或其他安全验证:必须立即暂停流程,等待用户手动完成验证并明确反馈“登录完成”;在收到该反馈前不得继续任何后续步骤。
  • 页面元素缺失(如“长文合集”“管理”“草稿箱”“长文笔记(x)”改版):记录失败步骤并停止该章。
  • 目标合集未匹配:停止保存,提示先确认合集名称或创建合集。
  • 草稿箱未找到同名章节:按规则回退新增,并在备注写明。
  • “暂存离开”失败:本章标记失败;重试后仍失败则保留失败记录并继续下一章(除非用户要求遇错即停)。
  • 分发记录.md 写入失败:流程标记为“部分失败(记录未落盘)”,并提示人工补录。

实操经验沉淀(小红书)

  • 小红书登录链路依赖用户手动操作,先确认登录完成再进入长文管理页可减少中断。
  • 修改章节前先通过“草稿箱 → 长文笔记(x)”定位同名草稿,能降低误改风险。
  • 暂存后立即回写“草稿定位键 + 内容指纹”,可在无章节Id条件下稳定追踪是否已上传。
  • 每章结束以“暂存离开成功”提示为唯一完成信号,没有成功提示就不算完成。

本轮批量上传复盘(第1卷第1-40章)

成功做法(可复用)

  • 先做本地预处理再进浏览器循环:先统一提取 标准标题/正文/内容指纹,浏览器阶段只做“取数据→填写→暂存”,显著降低错章与漏填概率。
  • 小批次推进(10章一批):分批执行可以在页面抖动、弹窗打断时快速定位影响范围,避免整批回滚。
  • 固定节拍执行:每章严格走“合集管理 → 添加长文笔记 → 写长文笔记 → 标题 → 正文 → 暂存离开”,减少定位器切换带来的不稳定。
  • 台账及时落盘:当批次完成后立即回写 分发记录.md,确保“新增/修改”判定和指纹比对有据可依。

暴露问题(教训)

  • 标题提取存在边缘案例:第36章源文件首行不是 # 标题格式,曾被错误生成为 第36章 # 作者有话说
  • 教训:标题提取必须支持三类入口:

1) # 数字编号 标题

2) # 标题

3) 无 # 时使用“首个非空行/文件名回退”策略。

  • 批量过程中可能出现“暂无笔记标题”草稿:说明某些草稿在保存时标题未正确写入或被中断。
  • 教训:每个小批次结束后必须执行一次草稿箱巡检,重点排查:
  • 是否存在 暂无笔记标题
  • 是否存在 第X章 # 作者有话说 等异常标题;
  • 标题数量是否与计划章数一致。
  • “新增模式”易掩盖“修改模式”需求:即使台账已有记录,草稿箱未命中同名时也会回退新增,可能产生重复草稿。
  • 教训:回退新增必须在备注里写明“台账存在但草稿未命中”,并在批次后清理重复项。

防错补丁(建议固化)

  • 新增“标题预检函数”:保存前校验标题必须匹配 ^第\d+章\s.+,不符合则禁止暂存。
  • 新增“批次对账三连”:

1) 计划章数 = 成功章数 + 失败章数

2) 成功章都能在草稿箱命中标准标题;

3) 台账记录数与成功章数一致。

  • 新增“异常草稿修复流程”:发现异常标题后,按“草稿箱定位 → 编辑 → 正确标题/正文覆盖 → 暂存离开 → 台账标记修改”闭环处理。

完成检查清单

  • 已读取 小红书/README.md 并提取必需字段(不含账号密码)。
  • 已进入小红书后台并完成登录状态确认(若需登录,已等待用户手动完成)。
  • 已进入长文管理页并定位目标合集,点击“管理”进入合集管理页面。
  • 已在每章开始前查询 小红书/分发记录.md,正确区分新增/修改模式。
  • 新增章节均通过“添加长文笔记”→“写长文笔记”点击链路进入。
  • 修改章节均通过“草稿箱”→“长文笔记(x)”→“编辑”点击链路进入。
  • 每章均完成绝对章节号计算或校验(不分卷单序列口径)。
  • 每章均完成:标题、正文、点击“暂存离开”。
  • 每章暂存后均已回写 小红书/分发记录.md(含草稿定位键与内容指纹)。
  • 已输出每章结果(成功/失败及原因)。

How to use it

Copy the folder

Take lornshrimp/分发-小红书 from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.