browser-cdp
Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions.…
小说发布准备:为发布平台整理并核对书名、简介、主角名、分类和标签,定稿后保存发布资料。触发方式:/story-publish、/发布资料、「填写平台建书资料」「建书表单」「起书名/写简介/选标签用于发布」;正文累计约 2 万字、准备上架时也适用。当前仅适配番茄(长篇与短故事),不代替后台填表或实际发布。
Claude Code
$ npx -y skills add zenstory-ai/oh-story-claudecode --skill story-publish --agent claude-code
Codex
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a codex -y
Cursor
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a cursor -y
Gemini CLI
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a gemini-cli -y
GitHub Copilot
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a github-copilot -y
OpenCode
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a opencode -y
Windsurf
$ npx skills add zenstory-ai/oh-story-claudecode --skill story-publish -a windsurf -y
name: story-publish
description: "小说发布准备:为发布平台整理并核对书名、简介、主角名、分类和标签,定稿后保存发布资料。触发方式:/story-publish、/发布资料、「填写平台建书资料」「建书表单」「起书名/写简介/选标签用于发布」;正文累计约 2 万字、准备上架时也适用。当前仅适配番茄(长篇与短故事),不代替后台填表或实际发布。"
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}把作品已有的设定、大纲和作者的决定,整理成发布平台建书表单要填的资料,按平台规则核对后存成 `发布资料-<平台>.md`。剧情规划和正文写作归 `story-long-write` 等写作 skill,作者只说“开书”时也走那边;本 skill 也不替作者登录后台、填表或发布。
书目录:作者指定的优先,其次 `.active-book`;指向不明或多本书分不清时问作者,不从目录名猜。只读,不改设定、不启动写作阶段。
当前支持番茄小说,读 `references/fanqie.md`,候选文件按它的指引按需读。
其他平台:明确说“当前未适配”,请作者提供带日期的建书表单截图或官方说明;拿到前只给不针对平台的书名、简介草案,不套用番茄规则。新增平台时照 `fanqie.md` 的结构写参考文件,注明核验日期和范围。
1. 确认目标平台和作品类型(长篇/短故事),在回复开头写明平台、适配状态,以及平台参考里的核验日期与范围。 2. 读作品材料,记下作者已定的值,只为作者要求的字段生成候选;候选书名先按平台参考的书名规则自查字数和符号,并标出字数。 3. 按平台参考逐字段核对允许值、数量上限和长度;参考没写的限制标“资料未说明”。 4. 书名和简介确认后,按「封面」一节处理。 5. 本轮要的字段都有了结论(已确认,或作者决定不填)时保存文件;还没保存时,在回复里给出完整草案。保存后的回复只说这次写进了什么、还差什么,并给出文件路径,不重贴全文。 6. 发布资料是平台填写值的依据。确认的书名与 `设定/题材定位.md`(短篇为 `设定.md`)里的不一致时,保存后告诉作者;改设定和书目录交给写作 skill,本 skill 不改。
先看当前会话实际能调用的生图工具(不凭模型名判断),再请作者选“直接生成”“仅提示词”或“暂缓”;作者已经选过且仍可执行的不再问。不因缺工具自动改用付费 API。
把已确认的书名、简介、笔名、平台、题材和角色/场景事实交给 `story-cover`,缺笔名时补问:直接生成走它的完整流程,仅提示词走它的 Step 1-3。两种都把完整提示词原文写进「封面」小节,生图成功另记图片路径。`story-cover` 不可用(如 OpenClaw 缺 Key 时发现不到)、失败或作者暂缓时,把原因写进「待作者确认」,不阻塞其他字段;生图失败后改仅提示词要作者同意。只有提示词或未保存的图片,不说“封面已备妥”。`story-cover` 的风格、尺寸建议不替代平台规格。
文件名是 `发布资料-<目标平台>.md`,目标平台用平台参考元信息里的 `platform` 原文(如 `发布资料-番茄小说.md`)。放在书目录:长篇是 `正文/` 的上一级,短篇是 `正文.md` 所在目录;还没有正文时直接放书目录下。已有同名文件时先读,和作者手改的内容冲突就先问,不覆盖;旧文件按下面的格式重排,保留作者手写内容。
这份文件以后会被程序读来填后台表单,格式是固定契约:
长篇示例(番茄):
> 格式版本:1 > 目标平台:番茄小说 > 作品类型:长篇 > 核验:2026-10-29;标签对照 Web 创建作品弹窗,App 与提交结果未核验 # 书本名称:<书名> - 作者/笔名: - 签约模式: - 目标读者: - 主角1: - 主角2: ## 封面 - 模式:<直接生成/仅提示词/暂缓;未选时留空> - 状态:<提示词与图片的状态分开写> - 提示词:<完整提示词原文> - 图片:<已保存的图片路径> ## 阅读标签 - 主分类: - 主题: - 角色: - 情节: ## 内容标签 - 情节: - 情感: - 人设: - 世界观: ## 作品简介 ## 待作者确认 ## 待平台核实 ## 来源说明
长提示词可以放进代码块。不列完整候选清单,除非作者要。
保存后依次探测 `python3`、`python`、`py`,运行本 skill 根目录下的 `scripts/check-publish-format.py <发布资料文件>`。脚本只读:FAIL 是文件不合契约,或填了平台没有的选项和标签,要修正后重跑;WARN 是已确认的值可能被平台拒收(如书名、长度),转告作者,不替作者改。环境不能运行脚本时,重读文件逐项核对,并告诉作者没跑自动检查。
Claude Code / Codex / OpenCode agent skills for writing Chinese web novels (网文): 扫榜、拆文、写作、去AI味、封面全流程,长篇短篇都支持 | 14 skills for novel writing and long-form fiction with file-based continuity tracking. MIT.
Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions.…
小说封面生成与提示词设计。根据书名、作者名和题材构建封面提示词;用户只要提示词时不生图,要求封面图时调用 GPT-Image-2,Codex CLI 优先使用内置…
网文去AI味。从表达、叙事用笔、故事因果三层诊断并修复文本,保留作者文风与已定剧情。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。
逆向导入已有小说。将已写好的小说(半成品或完本)反向解析为标准项目目录结构,兼容 story-long-write / story-short-write 后续写作流程;内部复用 story-long-analyze /…
长篇网文拆文。保留黄金三章、逐章摘要、剧情、情绪、节奏、角色、设定和文风接口,以连续章节块完成因果、双时间线、关系与三维节奏分析;兼容旧成果直接使用、按需增强和断点续跑。含可选三层灵感库管道(灵感库、跨书灵感聚合、更新灵感库)。触发方式:/story-long…
长篇网文扫榜。分析起点、番茄、晋江、七猫等平台排行榜与新书数据,提炼市场趋势与热门题材。触发方式:/story-long-scan、/长篇扫榜、「长篇什么火」「起点排行」「扫七猫新书」。
Rewrite AI-sounding text so it reads like the writer without changing what it says. Use when editing or reviewing prose for AI…
Edit drafts into sharper, more human writing while preserving the writer's personal voice, or detect AI-slop patterns without…
Use when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent…