nook-xhswrite · diff
v2.1 to v2.1
138 added, 138 removed. Audit A to A.
- ---
- name: nook-xhswrite
- version: 2.1
- description: 小红书图文的内容层。把粗糙素材(文章、逐字稿、新闻、一句话念头)提炼成事实清单、一句话核心、框架和逐页提纲,写出能交给 nook-xhspage 渲染的方案 JSON,并写图文下方的标题、标签和正文。流程有强制停止点:品牌要先设置,事实和核心要用户确认,截图和成果图必须由用户提供;交付前用脚本检查方案、正文和去 AI 味。图里只放标题、框架、事实、数据、流程,长文写进正文。用户要做小红书图文、把素材拆成小红书卡片、写小红书标题和正文时使用。不画图,不发布,不采集。
- ---
-
- # 1 nook-xhswrite
-
- 小红书图文的内容层。上游是粗素材,下游是 `nook-xhspage`(把方案渲染成 3:4 图片)。本 skill 决定图上放什么、分几页、每页用哪种页型,并写图文下方的标题、标签和正文。
-
- 2.0 是重写,沿用旧名字。旧版的“一句话直出整篇成稿”和 5 类型爆款公式已移除;保留三条:每页是一个可单独收藏的信息单元,页数由内容决定,平台风控规则。
-
- ## 1.1 四条根本原则
-
- 1. **提炼框架,不压缩字数。** 图的任务是让读者看清结构。图上只放标题、框架、事实、数据、流程和逻辑;论述、背景、体会写进图文下方的正文。
- 2. **事实只来自素材。** 数字、引语、名称、步骤,素材里没有就不写。框架的位置可以推理,事实不可以编。
- 3. **图片只由用户提供。** 截图和成果图是事实类材料,agent 不自己找、不去本机翻、不用占位图、不用生成图冒充。
- 4. **每一步都要过检查。** 脚本查得出的(字数、素材 id、去 AI 味、正文格式)交给脚本;脚本查不出的(有没有锚点、节奏是不是太顺)按 1.8 的自检清单读一遍。
-
- ## 1.1b 用户只给一句话时怎么做(默认行为)
-
- 用户通常只会说“把这篇做成小红书图文”,不给路径,不提关卡。这时不要求用户补任何说明,按下面的默认来:
-
- 1. 先读本文件和 `nook-xhspage/SKILL.md`(1.5 硬规则)。两个 skill 在同一个 `skills/` 目录下。
- 2. 工作文件夹:在素材文件旁边新建 `xhs_<素材文件名里的期号或主要词,去掉空格,不超过 12 个字>/`(例如 `xhs_261016谷歌Pro`),所有关卡文件和 plan.json、post.md 都放这里。用户没指定位置就用它,不要问。
- 3. 关卡照常走,每个关卡写完文件就停下;停下时只说三件事:写好了什么、哪里是推理不是素材、请用户回复“继续”或提修改。不要一次问多个问题。
- 4. 用户的回复只有“好”“继续”“行”也算确认;用户直接提了修改,改完再停一次。
- 5. 用户问的是别的事(比如只要标题、只要封面),只做那一件,别拉出整套流程。
- 6. 如果环境里读不到本 skill(agent 没有注册它),用户只需把 skill 文件夹路径告诉 agent,其余按本节执行。
-
- ## 1.2 流程:关卡 0 加五个关卡,每关停下等用户
-
- 每个关卡的输出格式固定,见 `references/templates.md`,文件放在方案文件旁边。
-
- **关卡 0:品牌设置(只在第一次)。**
- 运行 `nook-xhspage` 的 `python xhs.py setup --status`。未设置时,先问用户四件事:有没有自己的 IP 人物形象,有没有自己的 Logo,账号名叫什么,默认用哪种视觉风格;也可以用默认品牌。用户答完,按 `nook-xhspage` 的 1.3 节运行一次 `setup`。已经设置过的,不再询问,直接进关卡 1。没有人物形象的用户,封面不用 cover_person。
-
- **关卡 1:事实清单加一句话核心。**
- 读素材,判断类型。长素材按 `references/extract.md` 分段抽。列事实清单(每条带原文位置)、一句话核心(给谁,获得什么)、1 到 4 个主题词。素材里没有可用事实时,直接告诉用户“这条素材只有观点,没有事实”,让用户决定是否补素材。输出 `facts.md`,停下,等用户确认。
-
- **事实边界(弱模型最容易出错的地方)。**
- - 每条事实写“素材原句”加“位置”,素材里的猜测单独标“推测”,图上带“可能”“据说”这类语气,不能写成定论,也不用“真相”“内幕”做标题。
- - 素材没给具体日期和数字,就不写。时间轴的 time 字段只能用素材里出现的说法(如“2月”“八个月后”);素材里没有时间线,就改用 list、cycle、compare,不要编日期。
- - 版面放不下,把原句缩短,不换内容;不能因为“压字”就把一个数字换成另一个数字。
- - 一页上的每句话,包括脚注、页脚、小注,都必须能在事实清单里找到对应条目,找不到的整句删掉。脚本只能查数字和日期,没有数字的编造(比如“旗舰都换了两轮”)只能靠你自己逐句核对。
- - 页面上的主语要和事实一致:断更的是 Pro,不是整个 Gemini;写之前回看事实原句。
- - 每个关卡的确认只能来自用户,自己不能代为确认。
- - 汇报只写命令真实的输出和退出码,不写没有逐项核对的“全部通过”。
-
- **关卡 2:框架和逐页提纲。**
- 按 `references/frameworks.md` 选一个主框架。输出 `outline.md`:页序、页型、这一页的一句话、事实来源(事实清单的编号,或“推理,无数据”)、视觉元素(按 1.3 的判断,写“放:贴纸 id”或“不放:原因”)、风格建议和理由。
-
- - **封面加第 2 页合起来必须回答:这是什么、给谁、得到什么。**主题词要出现在封面或第 2 页的文字里。图文靠封面决定点不点开,悬念留给正文。
- - 风格:先看品牌的默认风格(`xhs.py setup --status`),没有特别理由就用默认;内容明显属于另一类时可以改,并说明理由。工具、技术、Agent 类可用深色(dark);人物、观点、清单、入门类可用手账(paper);船票风(ticket)是 nook 的品牌款。
- - 相邻两页页型不同,一篇至少 3 种页型,3 到 9 页。
-
- 输出后停下,等用户确认。
-
- **关卡 3:素材需求清单。**
- 输出 `needs.md`:每页需要用户提供的截图或成果图,写清哪一页、要什么、为什么、什么格式。没有需要时写“无”。**停下**,等用户把文件放进 `inputs/`,或明确说“这页换成不用图的页型”。没有收到之前,不继续,不替用户找,不填占位。
-
- **关卡 4:封面候选。**
- 输出 `covers.md`:2 到 3 个封面方案(页型、封面字、钩子类型、风格),钩子类型从 `references/hooks.md` 选。让用户选一个。
-
- **关卡 5:方案、正文包、交付。**
- 1. 按 `nook-xhspage` 的词表写 `plan.json`,`meta` 里写 `facts`(事实清单)和 `subject_terms`。示例见 `references/plans/`(12 个框架各一份)。
- 2. 写 `post.md`(标题 3 个、标签、正文、删除测试记录、事实对照,格式见 `references/templates.md`)。正文写完调用 `nook-alive` 做删除测试,只删不改,把删掉的内容记进“删除测试记录”。
- 3. 运行 `python xhs.py deliver plan.json post.md`。方案校验、正文检查、出图三项都过才算完成,缺一项就按报错改。
- 4. 逐页看图,把图和正文交给用户,按意见改。
-
- ## 1.3 贴纸放不放
-
- 贴纸不是必填,也不是越多越好。每一页按七步判断,任何一步答“不放”就停:
-
- 1. 页型没有贴纸位(toc、pyramid、stats、shots)→ 不放。
- 2. 页型自带贴纸(compare、cycle、matrix)→ 不再加。
- 3. 页面主体是用户的截图、成果图或数据图(step、result、bar、line、funnel)→ 不放。
- 4. 内容严肃或负面(风险、事故、损失、违规、隐私、健康、金融、法律)→ 不放。
- 5. 页面已经满(文字超过 70 字,或清单条目 4 个以上)→ 不放。
- 6. 素材库里找不到贴切的 → 不放,宁缺毋滥。
- 7. 都通过才放:每页最多 2 个,同一个贴纸全篇不重复,有贴纸的页不超过 60%。
-
- `python xhs.py suggest-assets plan.json` 按这七步逐页给出结论和候选。候选只按关键词匹配,放之前自己判断是否贴切。
-
- ## 1.4 图上的文字
-
- - 标题写内容本身,不写口号。“做封面,差在哪”可以,“一图看懂封面”不行。
- - 清单项、步骤名、层名写名词或动宾短语,说明一行以内。
- - 数字写真实数字,带单位;没有数据就不写,图表没有真实数据时写“示例数据”。
- - 高亮词每个字段最多一处,用 `[[词]]` 标,选这一页最关键的词。
- - 字数以版面放得下为准:`validate` 报超限就删,`render` 报“留白不足”或“贴纸压住文字”就删条目;不缩字号。
- - 页面不画页码,平台界面自带。
-
- ## 1.5 正文、标题和标签
-
- - 正文是第三人称,呈现事实和数据,不立人设,不写“我觉得”式的感悟,除非素材里本来就是作者的原话,原话原样保留。
- - 400 到 800 字,自然段,不用粗体,不用列表;第一句直接说内容。
- - 标题 3 个(搜索型、结果型、清单型),每个 15 到 25 字,写法见 `references/hooks.md`。
- - 标签 5 到 8 个,写成 `#关键词`,不堆无关热词。
- - 结尾用站内的收藏或评论钩子,见 `references/hooks.md` 第 4 节。
-
- ## 1.6 选题
-
- 选题不归本 skill。上游的选题由 `nook-topic` 等 skill 负责;用户给的一个选题或一句话,按“一句话念头”当素材走关卡 1,事实清单里写“素材只有选题,没有事实”,提纲里标“推理,无数据”,再由用户补事实。
-
- ## 1.7 平台规则(硬规则)
-
- - 不放二维码、联系方式、站外指向;不做“扣 X 领 X”“加微信”式的诱导互动。
- - 结尾用站内的评论或收藏钩子,不抽奖。
- - 不使用任何自动发布、自动评论、自动采集小红书的工具,发布全人工。
- - 不在图里使用他人品牌 Logo。
-
- ## 1.8 人工自检清单
-
- 脚本查不出来的几项,交付前读一遍:
-
- 1. 每页单独发出去,读者还知道它在讲什么吗?
- 2. 删掉任何一个词,这页会少信息吗?不会就删。
- 3. 每个数字、名称、步骤,能在事实清单里找到出处吗?
- 4. 有没有同义句凑页?
- 5. 有没有复述前文的结尾、号召式的假结尾?
- 6. 封面加第 2 页,读者能不能知道这是讲什么、给谁、得到什么?
- 7. 每个贴纸,和这一页的意思贴切吗?
- 8. 正文里有没有“没有锚点”的段落(只有概念,没有具体动作、数字、名称)?
-
- ## 1.9 文件
-
- ```
- nook-xhswrite/
- SKILL.md
- references/
- frameworks.md 12 个内容框架(选框架表、页序、页型、封面)
- templates.md 关卡 1 到 5 的输出模板,包括 post.md
- hooks.md 封面钩子、标题写法、结尾和评论钩子
- extract.md 长素材怎么抽事实
- plans/ 12 个框架各一份可校验的方案示例(含 inputs/)
- agent-prompt.md 给 agent 的提示词:用户一句话版和验收用完整版
- ```
+ ---
+ name: nook-xhswrite
+ version: 2.1
+ description: 小红书图文的内容层。把粗糙素材(文章、逐字稿、新闻、一句话念头)提炼成事实清单、一句话核心、框架和逐页提纲,写出能交给 nook-xhspage 渲染的方案 JSON,并写图文下方的标题、标签和正文。流程有强制停止点:品牌要先设置,事实和核心要用户确认,截图和成果图必须由用户提供;交付前用脚本检查方案、正文和去 AI 味。图里只放标题、框架、事实、数据、流程,长文写进正文。用户要做小红书图文、把素材拆成小红书卡片、写小红书标题和正文时使用。不画图,不发布,不采集。
+ ---
+
+ # 1 nook-xhswrite
+
+ 小红书图文的内容层。上游是粗素材,下游是 `nook-xhspage`(把方案渲染成 3:4 图片)。本 skill 决定图上放什么、分几页、每页用哪种页型,并写图文下方的标题、标签和正文。
+
+ 2.0 是重写,沿用旧名字。旧版的“一句话直出整篇成稿”和 5 类型爆款公式已移除;保留三条:每页是一个可单独收藏的信息单元,页数由内容决定,平台风控规则。
+
+ ## 1.1 四条根本原则
+
+ 1. **提炼框架,不压缩字数。** 图的任务是让读者看清结构。图上只放标题、框架、事实、数据、流程和逻辑;论述、背景、体会写进图文下方的正文。
+ 2. **事实只来自素材。** 数字、引语、名称、步骤,素材里没有就不写。框架的位置可以推理,事实不可以编。
+ 3. **图片只由用户提供。** 截图和成果图是事实类材料,agent 不自己找、不去本机翻、不用占位图、不用生成图冒充。
+ 4. **每一步都要过检查。** 脚本查得出的(字数、素材 id、去 AI 味、正文格式)交给脚本;脚本查不出的(有没有锚点、节奏是不是太顺)按 1.8 的自检清单读一遍。
+
+ ## 1.1b 用户只给一句话时怎么做(默认行为)
+
+ 用户通常只会说“把这篇做成小红书图文”,不给路径,不提关卡。这时不要求用户补任何说明,按下面的默认来:
+
+ 1. 先读本文件和 `nook-xhspage/SKILL.md`(1.5 硬规则)。两个 skill 在同一个 `skills/` 目录下。
+ 2. 工作文件夹:在素材文件旁边新建 `xhs_<素材文件名里的期号或主要词,去掉空格,不超过 12 个字>/`(例如 `xhs_261016谷歌Pro`),所有关卡文件和 plan.json、post.md 都放这里。用户没指定位置就用它,不要问。
+ 3. 关卡照常走,每个关卡写完文件就停下;停下时只说三件事:写好了什么、哪里是推理不是素材、请用户回复“继续”或提修改。不要一次问多个问题。
+ 4. 用户的回复只有“好”“继续”“行”也算确认;用户直接提了修改,改完再停一次。
+ 5. 用户问的是别的事(比如只要标题、只要封面),只做那一件,别拉出整套流程。
+ 6. 如果环境里读不到本 skill(agent 没有注册它),用户只需把 skill 文件夹路径告诉 agent,其余按本节执行。
+
+ ## 1.2 流程:关卡 0 加五个关卡,每关停下等用户
+
+ 每个关卡的输出格式固定,见 `references/templates.md`,文件放在方案文件旁边。
+
+ **关卡 0:品牌设置(只在第一次)。**
+ 运行 `nook-xhspage` 的 `python xhs.py setup --status`。未设置时,先问用户四件事:有没有自己的 IP 人物形象,有没有自己的 Logo,账号名叫什么,默认用哪种视觉风格;用户没有特别说明时,直接用通用款:`setup --default`(IP 人物薄荷加薄荷风格)。用户答完,按 `nook-xhspage` 的 1.3 节运行一次 `setup`。已经设置过的,不再询问,直接进关卡 1。没有人物形象的用户,封面不用 cover_person。
+
+ **关卡 1:事实清单加一句话核心。**
+ 读素材,判断类型。长素材按 `references/extract.md` 分段抽。列事实清单(每条带原文位置)、一句话核心(给谁,获得什么)、1 到 4 个主题词。素材里没有可用事实时,直接告诉用户“这条素材只有观点,没有事实”,让用户决定是否补素材。输出 `facts.md`,停下,等用户确认。
+
+ **事实边界(弱模型最容易出错的地方)。**
+ - 每条事实写“素材原句”加“位置”,素材里的猜测单独标“推测”,图上带“可能”“据说”这类语气,不能写成定论,也不用“真相”“内幕”做标题。
+ - 素材没给具体日期和数字,就不写。时间轴的 time 字段只能用素材里出现的说法(如“2月”“八个月后”);素材里没有时间线,就改用 list、cycle、compare,不要编日期。
+ - 版面放不下,把原句缩短,不换内容;不能因为“压字”就把一个数字换成另一个数字。
+ - 一页上的每句话,包括脚注、页脚、小注,都必须能在事实清单里找到对应条目,找不到的整句删掉。脚本只能查数字和日期,没有数字的编造(比如“旗舰都换了两轮”)只能靠你自己逐句核对。
+ - 页面上的主语要和事实一致:断更的是 Pro,不是整个 Gemini;写之前回看事实原句。
+ - 每个关卡的确认只能来自用户,自己不能代为确认。
+ - 汇报只写命令真实的输出和退出码,不写没有逐项核对的“全部通过”。
+
+ **关卡 2:框架和逐页提纲。**
+ 按 `references/frameworks.md` 选一个主框架。输出 `outline.md`:页序、页型、这一页的一句话、事实来源(事实清单的编号,或“推理,无数据”)、视觉元素(按 1.3 的判断,写“放:贴纸 id”或“不放:原因”)、风格建议和理由。
+
+ - **封面加第 2 页合起来必须回答:这是什么、给谁、得到什么。**主题词要出现在封面或第 2 页的文字里。图文靠封面决定点不点开,悬念留给正文。
+ - 风格:先看品牌的默认风格(`xhs.py setup --status`),没有特别理由就用默认;内容明显属于另一类时可以改,并说明理由。工具、技术、Agent 类可用深色(dark);人物、观点、清单、入门类可用手账(paper);船票风(ticket)是 nook 的品牌款。
+ - 相邻两页页型不同,一篇至少 3 种页型,3 到 9 页。
+
+ 输出后停下,等用户确认。
+
+ **关卡 3:素材需求清单。**
+ 输出 `needs.md`:每页需要用户提供的截图或成果图,写清哪一页、要什么、为什么、什么格式。没有需要时写“无”。**停下**,等用户把文件放进 `inputs/`,或明确说“这页换成不用图的页型”。没有收到之前,不继续,不替用户找,不填占位。
+
+ **关卡 4:封面候选。**
+ 输出 `covers.md`:2 到 3 个封面方案(页型、封面字、钩子类型、风格),钩子类型从 `references/hooks.md` 选。让用户选一个。
+
+ **关卡 5:方案、正文包、交付。**
+ 1. 按 `nook-xhspage` 的词表写 `plan.json`,`meta` 里写 `facts`(事实清单)和 `subject_terms`。示例见 `references/plans/`(12 个框架各一份)。
+ 2. 写 `post.md`(标题 3 个、标签、正文、删除测试记录、事实对照,格式见 `references/templates.md`)。正文写完调用 `nook-alive` 做删除测试,只删不改,把删掉的内容记进“删除测试记录”。
+ 3. 运行 `python xhs.py deliver plan.json post.md`。方案校验、正文检查、出图三项都过才算完成,缺一项就按报错改。
+ 4. 逐页看图,把图和正文交给用户,按意见改。
+
+ ## 1.3 贴纸放不放
+
+ 贴纸不是必填,也不是越多越好。每一页按七步判断,任何一步答“不放”就停:
+
+ 1. 页型没有贴纸位(toc、pyramid、stats、shots)→ 不放。
+ 2. 页型自带贴纸(compare、cycle、matrix)→ 不再加。
+ 3. 页面主体是用户的截图、成果图或数据图(step、result、bar、line、funnel)→ 不放。
+ 4. 内容严肃或负面(风险、事故、损失、违规、隐私、健康、金融、法律)→ 不放。
+ 5. 页面已经满(文字超过 70 字,或清单条目 4 个以上)→ 不放。
+ 6. 素材库里找不到贴切的 → 不放,宁缺毋滥。
+ 7. 都通过才放:每页最多 2 个,同一个贴纸全篇不重复,有贴纸的页不超过 60%。
+
+ `python xhs.py suggest-assets plan.json` 按这七步逐页给出结论和候选。候选只按关键词匹配,放之前自己判断是否贴切。
+
+ ## 1.4 图上的文字
+
+ - 标题写内容本身,不写口号。“做封面,差在哪”可以,“一图看懂封面”不行。
+ - 清单项、步骤名、层名写名词或动宾短语,说明一行以内。
+ - 数字写真实数字,带单位;没有数据就不写,图表没有真实数据时写“示例数据”。
+ - 高亮词每个字段最多一处,用 `[[词]]` 标,选这一页最关键的词。
+ - 字数以版面放得下为准:`validate` 报超限就删,`render` 报“留白不足”或“贴纸压住文字”就删条目;不缩字号。
+ - 页面不画页码,平台界面自带。
+
+ ## 1.5 正文、标题和标签
+
+ - 正文是第三人称,呈现事实和数据,不立人设,不写“我觉得”式的感悟,除非素材里本来就是作者的原话,原话原样保留。
+ - 400 到 800 字,自然段,不用粗体,不用列表;第一句直接说内容。
+ - 标题 3 个(搜索型、结果型、清单型),每个 15 到 25 字,写法见 `references/hooks.md`。
+ - 标签 5 到 8 个,写成 `#关键词`,不堆无关热词。
+ - 结尾用站内的收藏或评论钩子,见 `references/hooks.md` 第 4 节。
+
+ ## 1.6 选题
+
+ 选题不归本 skill。上游的选题由 `nook-topic` 等 skill 负责;用户给的一个选题或一句话,按“一句话念头”当素材走关卡 1,事实清单里写“素材只有选题,没有事实”,提纲里标“推理,无数据”,再由用户补事实。
+
+ ## 1.7 平台规则(硬规则)
+
+ - 不放二维码、联系方式、站外指向;不做“扣 X 领 X”“加微信”式的诱导互动。
+ - 结尾用站内的评论或收藏钩子,不抽奖。
+ - 不使用任何自动发布、自动评论、自动采集小红书的工具,发布全人工。
+ - 不在图里使用他人品牌 Logo。
+
+ ## 1.8 人工自检清单
+
+ 脚本查不出来的几项,交付前读一遍:
+
+ 1. 每页单独发出去,读者还知道它在讲什么吗?
+ 2. 删掉任何一个词,这页会少信息吗?不会就删。
+ 3. 每个数字、名称、步骤,能在事实清单里找到出处吗?
+ 4. 有没有同义句凑页?
+ 5. 有没有复述前文的结尾、号召式的假结尾?
+ 6. 封面加第 2 页,读者能不能知道这是讲什么、给谁、得到什么?
+ 7. 每个贴纸,和这一页的意思贴切吗?
+ 8. 正文里有没有“没有锚点”的段落(只有概念,没有具体动作、数字、名称)?
+
+ ## 1.9 文件
+
+ ```
+ nook-xhswrite/
+ SKILL.md
+ references/
+ frameworks.md 12 个内容框架(选框架表、页序、页型、封面)
+ templates.md 关卡 1 到 5 的输出模板,包括 post.md
+ hooks.md 封面钩子、标题写法、结尾和评论钩子
+ extract.md 长素材怎么抽事实
+ plans/ 12 个框架各一份可校验的方案示例(含 inputs/)
+ agent-prompt.md 给 agent 的提示词:用户一句话版和验收用完整版
+ ```