story-publish について
story-publish は、既存の作品資料と作者の決定をもとに、書籍登録フォーム用の情報を Markdown ファイルにまとめるスキルです。作品の公開準備をする作者向けで、現在は番茄小说に対応し、ログインやフォーム入力、公開操作は代行しません。
主な機能
- 01公開情報ファイルの作成と更新
- 02確認済み・提案・保留の項目管理
- 03プラットフォーム資料に基づく値の確認
- 04作者が確定した値の保持
- 05表紙プロンプトまたは画像生成手順の準備
- 06出力ファイル形式の検証
活用シーン
- 01ストーリー概要から書籍登録情報を作成
- 02不明なプラットフォーム項目を確認まで空欄にする
- 03登録フォームへの入力前に公開情報を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zenstory-ai/ oh-story-claudecode --skill story-publishインストール後、Claude Code で/story-publishを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/fanqie-content-tags.mdfanqie-reading-female.mdfanqie-reading-male.mdfanqie-short.mdfanqie.mdscripts/check-publish-format.py詳細
プロジェクトの README より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。完整提示词写进「封面」,成功另记图片路径。入口不可用、失败或暂缓时写明原因,不阻塞保存;生图失败后改仅提示词须作者同意。仅有提示词不称“封面已备妥”,风格尺寸建议不替代平台规格。
发布资料文件
文件名是 发布资料-<目标平台>.md,目标平台用平台参考元信息里的 platform 原文(如 发布资料-番茄小说.md)。放在书目录:长篇是 正文/ 的上一级,短篇是 正文.md 所在目录;还没有正文时直接放书目录下。已有同名文件先读;有手改冲突先另存本轮草案,再请作者确认,不覆盖原文件。无冲突时直接补齐或保留已有资料,不为每次调用重复建文件。
平台未知先用 发布资料-待确认平台.md;书目录未知先存当前工作目录,位置列待确认。未知平台或类型不套平台字段,不宣称通过平台校验;确认后再迁移和补齐,目标文件已存在先核对。已有文件有冲突时保留原文件,本轮草案另存不重名文件并告知路径。
这份文件以后会被程序读来填后台表单,格式是固定契约:
- 开头每行一项元信息,依次为
> 格式版本:1、> 目标平台:<platform>、> 作品类型:长篇或短故事、> 核验:<核验日期与范围>。 - 元信息后紧接
# 书本名称:<书名>,然后是基础字段、## 封面、平台标签或分类、所需简介、## 待作者确认、## 待平台核实、## 来源说明。平台规则synopsis: false时不输出「作品简介」(番茄短故事);其余保留。基础字段和标签以basics、tag_sections为准,每个字段独立一行- 字段:值,多值用顿号分隔。 - 字段值只有三种:已确认的值;
(不填),表示作者决定不填;留空,表示还没定,并在「待作者确认」里列出。书名未定时标题写成# 书本名称:,简介未定时小节留空。建议、说明、占位词一律不写进字段值。 - 候选书名、简介、标签等建议草案,以及要作者到后台界面上看的事项,都放「待作者确认」;规则缺失或适用范围不明的放「待平台核实」;两节没有事项写“无”。来源和核验依据放最后的「来源说明」。
长篇示例(番茄):
> 格式版本:1
> 目标平台:番茄小说
> 作品类型:长篇
> 核验:2026-10-29;标签对照 Web 创建作品弹窗,App 与提交结果未核验
# 书本名称:<书名>
- 作者/笔名:
- 签约模式:
- 目标读者:
- 主角1:
- 主角2:
## 封面
- 模式:<直接生成/仅提示词/暂缓;未选时留空>
- 状态:<提示词与图片的状态分开写>
- 提示词:<完整提示词原文>
- 图片:<已保存的图片路径>
## 阅读标签
- 主分类:
- 主题:
- 角色:
- 情节:
## 内容标签
- 情节:
- 情感:
- 人设:
- 世界观:
## 作品简介
## 待作者确认
## 待平台核实
## 来源说明
长提示词可以放进代码块。不列完整候选清单,除非作者要。
格式检查
保存后依次探测 python3、python、py,运行本 skill 根目录下的 scripts/check-publish-format.py <发布资料文件>。脚本只读:FAIL 是文件不合契约,或填了平台没有的选项和标签,要修正后重跑;WARN 是已确认的值可能被平台拒收(如书名、长度),转告作者,不替作者改。环境不能运行脚本时,重读文件逐项核对,并告诉作者没跑自动检查。