story-publish
小说发布准备:为发布平台整理并核对书名、简介、主角名、分类和标签,定稿后保存发布资料。触发方式:/story-publish、/发布资料、「填写平台建书资料」「建书表单」「起书名/写简介/选标签用于发布」;正文累计约 2 万字、准备上架时也适用。当前仅适配番茄(长篇与短故事),不代替后台填表或实际发布。
How do I install this agent skill?
npx skills add https://github.com/zenstory-ai/oh-story-claudecode --skill story-publishIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill automates the preparation of publishing materials for novel platforms. It operates by reading local project files and generating a metadata document, which is then validated via a local Python script. The primary security considerations are the use of local command execution for validation and the processing of user-controlled text files, both of which are managed within the skill's specific functional scope.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
story-publish:发布资料准备
把作品已有的设定、大纲和作者的决定,整理成发布平台建书表单要填的资料,按平台规则核对后存成 发布资料-<平台>.md。剧情规划和正文写作归 story-long-write 等写作 skill,作者只说“开书”时也走那边;本 skill 也不替作者登录后台、填表或发布。
原则
- 只有作者确认的才是定稿。 每个字段标一种状态:
已确认(作者明确指定或接受)、建议(从作品材料推导或新拟)、待确认(缺失、含糊、矛盾)、待平台核实(平台规则不明或与界面不符)。沉默不算确认;作者接受整套候选方案,算确认其中列出的每一项。作者给的故事简介、大纲是素材,不自动当成平台“作品简介”。 - 作者已定的值不擅自改。 书名、简介、笔名有问题时指出并给建议,保留原值。
- 平台候选只取自本 skill 的平台参考文件。 不凭记忆,不从扫榜、拆文、选题材料里挪用,平台之间不共享。没有故事事实时先问,不编人物、情节或卖点。
- 准备完成不等于已发布。 资料齐了只说“发布资料准备完成”,不说“已提交”“审核中”“已发布”。
读取作品材料
书目录:作者指定的优先,其次 .active-book;指向不明或多本书分不清时问作者,不从目录名猜。只读,不改设定、不启动写作阶段。
- 长篇:
设定/题材定位.md的基本信息和“作者已定”;需要核对主角时读设定/角色/的角色卡;简介需要剧情支撑时读大纲/大纲.md及相关卷纲、细纲。 - 短篇:
设定.md与小节大纲.md。投稿导语是正文开头,不当平台简介。 选题决策.md、拆文、扫榜材料只能支撑建议;暂定书名、角色卡姓名不自动成为定稿。设定里没写书名时,以书目录名为现用书名。
平台
当前支持番茄小说,读 references/fanqie.md,候选文件按它的指引按需读。
其他平台:明确说“当前未适配”,请作者提供带日期的建书表单截图或官方说明;拿到前只给不针对平台的书名、简介草案,不套用番茄规则。新增平台时照 fanqie.md 的结构写参考文件,注明核验日期和范围。
工作流程
- 确认目标平台和作品类型(长篇/短故事),在回复开头写明平台、适配状态,以及平台参考里的核验日期与范围。
- 读作品材料,记下作者已定的值,只为作者要求的字段生成候选;候选书名先按平台参考的书名规则自查字数和符号,并标出字数。
- 按平台参考逐字段核对允许值、数量上限和长度;参考没写的限制标“资料未说明”。
- 书名和简介确认后,按「封面」一节处理。
- 本轮要的字段都有了结论(已确认,或作者决定不填)时保存文件;还没保存时,在回复里给出完整草案。保存后的回复只说这次写进了什么、还差什么,并给出文件路径,不重贴全文。
- 发布资料是平台填写值的依据。确认的书名与
设定/题材定位.md(短篇为设定.md)里的不一致时,保存后告诉作者;改设定和书目录交给写作 skill,本 skill 不改。
封面
先看当前会话实际能调用的生图工具(不凭模型名判断),再请作者选“直接生成”“仅提示词”或“暂缓”;作者已经选过且仍可执行的不再问。不因缺工具自动改用付费 API。
把已确认的书名、简介、笔名、平台、题材和角色/场景事实交给 story-cover,缺笔名时补问:直接生成走它的完整流程,仅提示词走它的 Step 1-3。两种都把完整提示词原文写进「封面」小节,生图成功另记图片路径。story-cover 不可用(如 OpenClaw 缺 Key 时发现不到)、失败或作者暂缓时,把原因写进「待作者确认」,不阻塞其他字段;生图失败后改仅提示词要作者同意。只有提示词或未保存的图片,不说“封面已备妥”。story-cover 的风格、尺寸建议不替代平台规格。
发布资料文件
文件名是 发布资料-<目标平台>.md,目标平台用平台参考元信息里的 platform 原文(如 发布资料-番茄小说.md)。放在书目录:长篇是 正文/ 的上一级,短篇是 正文.md 所在目录;还没有正文时直接放书目录下。已有同名文件时先读,和作者手改的内容冲突就先问,不覆盖;旧文件按下面的格式重排,保留作者手写内容。
这份文件以后会被程序读来填后台表单,格式是固定契约:
- 开头每行一项元信息,依次为
> 格式版本:1、> 目标平台:<platform>、> 作品类型:长篇或短故事、> 核验:<核验日期与范围>。 - 元信息后紧接
# 书本名称:<书名>,然后是基础字段、## 封面、平台的标签或分类小节、## 作品简介、## 待作者确认、## 待平台核实、## 来源说明。基础字段和标签小节以平台参考元信息里该作品类型的basics、tag_sections为准,每个字段一行- 字段:值,同一字段多个值用顿号分隔。 - 字段值只有三种:已确认的值;
(不填),表示作者决定不填;留空,表示还没定,并在「待作者确认」里列出。书名未定时标题写成# 书本名称:,简介未定时小节留空。建议、说明、占位词一律不写进字段值。 - 候选书名、简介、标签等建议草案,以及要作者到后台界面上看的事项,都放「待作者确认」;规则缺失或适用范围不明的放「待平台核实」;两节没有事项写“无”。来源和核验依据放最后的「来源说明」。
长篇示例(番茄):
> 格式版本:1
> 目标平台:番茄小说
> 作品类型:长篇
> 核验:2026-10-29;标签对照 Web 创建作品弹窗,App 与提交结果未核验
# 书本名称:<书名>
- 作者/笔名:
- 签约模式:
- 目标读者:
- 主角1:
- 主角2:
## 封面
- 模式:<直接生成/仅提示词/暂缓;未选时留空>
- 状态:<提示词与图片的状态分开写>
- 提示词:<完整提示词原文>
- 图片:<已保存的图片路径>
## 阅读标签
- 主分类:
- 主题:
- 角色:
- 情节:
## 内容标签
- 情节:
- 情感:
- 人设:
- 世界观:
## 作品简介
## 待作者确认
## 待平台核实
## 来源说明
长提示词可以放进代码块。不列完整候选清单,除非作者要。
格式检查
保存后依次探测 python3、python、py,运行本 skill 根目录下的 scripts/check-publish-format.py <发布资料文件>。脚本只读:FAIL 是文件不合契约,或填了平台没有的选项和标签,要修正后重跑;WARN 是已确认的值可能被平台拒收(如书名、长度),转告作者,不替作者改。环境不能运行脚本时,重读文件逐项核对,并告诉作者没跑自动检查。
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/zenstory-ai/oh-story-claudecode/story-publish">View story-publish on skillZs</a>