iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
翻訳待ち
Claude Code / Codex / OpenCode agent skills for writing Chinese web novels (网文): 扫榜、拆文、写作、去AI味、封面全流程,长篇短篇都支持 | 13 skills for novel writing and long-form fiction with file-based continuity tracking. MIT.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
网文写作 skill 包:扫榜、拆文、写作、去AI味、封面图一套流程,装进你正在用的编程 Agent。 Oh Story 覆盖长篇与短篇网络小说的全流程:扫榜选材 → 拆解爆款 → 搭大纲写正文 → 去AI味 → 生成封面图。 它以 13 个 skill 的形式装进你已经在用的编程 Agent,写作用的模型就是该 Agent 的模型,不需要 GPU,也不需要另外配模型。 • 用文件系统当记忆 — 设定、大纲、正文、追踪各自独立维护。几百章的长篇不靠对话记忆硬撑,压缩上下文也不会丢伏笔。 • 确定性检查与门禁 — 写正文前没有细纲会被拦下;写完自动扫截断、工程词和常见 AI 句式。7 个专业 Agent、8 个自动化 hook、100+ 份写作方法论按需加载。 • 装进 8 款编程 Agent — Claude Code · Codex CLI · Google Antigravity · OpenCode · ZCode · OpenClaw · Reasonix,以及能读取项目文件的通用 Web AI / Agent 环境。 • 面向的平台 — 起点、番茄、晋江、七猫、知乎盐言等长短篇平台。 -g 全局安装,所有目录可用;去掉 -g 则只装到当前目录。更新时重新执行同一条命令即可。Read the full README ↗
https://github.com/user-attachments/assets/8f9cc11b-1fb8-4cc5-a084-e0deb05ec791
Oh Story 覆盖长篇与短篇网络小说的全流程:扫榜选材 → 拆解爆款 → 搭大纲写正文 → 去AI味 → 生成封面图。 它以 14 个 skill 的形式装进你已经在用的编程 Agent,写作用的模型就是该 Agent 的模型,不需要 GPU,也不需要另外配模型。
套路 = 确定性的情绪满足
先扫榜摸清题材风口、人设与开篇切入点,再拆文扒出爆款的黄金三章、爽点节奏与钩子写法,最后用钩子、爽点和期待感搭自己的书。 设定、正文和追踪各自落盘,剧情方向由作者拍板,Agent 按敲定的方案推进。
npx skills add zenstory-ai/oh-story-claudecode -y -g
-g 全局安装,所有目录可用;去掉 -g 则只装到当前目录。更新时重新执行同一条命令即可。
也可以直接对 Agent 说一句话(支持导入 GitHub 仓库 / skill 的平台都适用,例如 WorkBuddy,见社区写的开书实操):
安装这个 skill https://github.com/zenstory-ai/oh-story-claudecode
装好后,在写作项目根运行 /story-setup(Codex 用 $story-setup)部署当前宿主支持的 hooks / agents / references,然后新开会话。
也可通过 ClawHub 查找;本仓库的发布范围见 ClawHub 发布清单。
各 Agent 的部署差异、已知限制与安装排查(Windows
ENOENT、Antigravityagy -p、目录残留等)见 各编程 Agent 的部署与安装排查。 版本与变更见 CHANGELOG.md 和 Releases,已有项目的更新步骤见升级指南。
下面每一份都是 skill 跑出来的真实文件(外加一段专门构造的 AI 腔反例),完整文件在 demo/。
下面这本是项目作者自己的长篇,用 /story-import 把已发的前 20 章反向重建成可续写工程。
下面是开写第 21 章之前的状态卡。/story-long-write 靠
追踪/上下文.md 记账(固定 7 栏、上限 12 KiB),动笔前只挑本章用得上的状态交给写手,不把整张卡硬塞进正文提示词;本章细纲、相关设定和出场角色卡按需读取:
## 当前位置
- 当前章:第20章 卷:第一卷·军宣整顿 故事时间:《如愿》点击破亿后的第二天
## 长期约束
- 军宣爽点必须通过作品效果、传播数据和围观反应链兑现,不能只靠系统播报。
- 钟嘉嘉未公开的军方培养安排属于作者真相,正文揭示前不能当成读者已知。
## 活跃伏笔
- F016|钟嘉嘉并非普通军报实习生,她的军方家庭背景仍未完全公开|埋第7章|回收章未定|高
- F049|吴伟收到寻衅滋事公诉通知,最终法律结果尚未落地|埋第18章|回收章未定|高
- F054|一位老兵邀请江晨上门听当年的故事,为后续创作提供入口|埋第20章|回收章未定|高
## 下一章承诺
- 先补第21章细纲,再承接老兵邀请、新歌伴奏和钢琴能力。
「作者真相」和「读者已知」分开记录——避免角色提前知道未公开的设定,或把还没揭晓的伏笔提前写破。
完整文件:demo/长篇/.../追踪/上下文.md
上面的视频录的就是这一段。/story-long-write 写第21章 在一次真实会话里的产出与每一道检查:
细纲 细纲_第021章.md 追踪里写着「第21章尚无细纲」,skill 先补纲:单元 L1-03、目标情绪、本章标价、闭环状态、10 个情节点四列表格(外加可选的展开粒度列)
章级检查 storyctl.py chapter check ready · 字数 2068 / 目标 2300
├ check-ai-patterns.js 0 命中
├ check-degeneration.js 0 命中
└ normalize-punctuation 0 命中
追踪提交 storyctl.py chapter commit tracking_committed=true · state_revision 0 → 1
追踪文件 tracking_commit.py check 上下文.md / 伏笔.md / 角色状态/ / 时间线/ / 逐章记录/ 全部由 state 重生成,逐字一致
动笔前先过细纲与追踪门禁,细纲验收通过后,由 narrative-writer 分两段写正文。单章交稿前核对设定与伏笔(日更连写则在整批写完后集中核对),读感发虚或 AI 味重时再做去味润色,最后跑完本地收尾脚本与 chapter check。
提交之后,追踪状态是工具从 _tracking-state.json 整份重新生成的,手改自动生成的追踪文件会被 check 拒绝。
对照上面的状态卡,回写实际改了什么(节选,省略了同批滚动的近三章速记与角色状态):
## 当前位置
-- 当前章:第20章 场景:火箭军文工团,钟嘉嘉送来老兵书法礼后
+- 当前章:第21章 场景:火箭军文工团办公室,江晨收到谭守义地址回信后
## 活跃伏笔
-- F054|一位老兵邀请江晨上门听当年的故事,为后续创作提供入口|埋第20章|回收章未定|高
+- F054|谭守义已给邻市地址,江晨定次日上门听故事|埋第20章|第22章|高
+- F057|谭守义有个讲了五十年没人听全过的故事,内容未揭示|埋第21章|第22章|高
+- F058|任务三:离别主题作品、开放日当天热度1000万+、限时14天|埋第21章|第27章|高
## 下一章承诺
-- 先补第21章细纲,再承接老兵邀请、新歌伴奏和钢琴能力。
+- 江晨向周薄森请假出营,赴邻市听谭守义讲完整故事并录音,揭示F057。
## 连贯性风险
-- 第21章尚无细纲,不能直接写正文。
+- 谭守义故事的作者真相为候选(E015),作者可在第22章细纲前改;揭示前不当读者已知。
新角色谭守义有了自己的设定卡和角色状态文件;他那个「讲了五十年没人听全过」的故事,真相候选(E015)记在
时间线/作者真相.md 并标为未揭示,读者已知.md 那一栏只有江晨看到的那句话。被退役的那条风险写进了
逐章记录/第021章.md 的「本章退役登记」——状态不会无声漏掉。
成品:正文/第021章_离别怎么会开花.md
· 大纲/细纲_第021章.md
· 设定/角色/谭守义.md
· 追踪/逐章记录/第021章.md
/story-long-analyze 拆《盘龙》开篇 23 章(约 6.2 万字,起点经典,仅作拆解素材),按番茄男频升级流读者口味打分:
| 维度 | 评分 | 说明(节选) |
|---|---|---|
| 开篇钩子 | 2 | 前 500 字纯地理定位 + 晨练群像,无悬念 / 冲突 / 反差,靠「平民努力出头」慢渗。代入扎实但即时拉力弱。 |
| 主角塑造 | 4 | 延迟点名(第 60 段才点名)+ 他人惊叹引出,「衰败贵族 + 六岁神童」反差立人设。三章里最强项。 |
| 爽点设计 | 1 | 三章零传统爽点,爽感被刻意延迟到第 18 章金手指登场,赌代入复利。 |
综合:三章是「立人设强、给爽点零」的极端结构。直接照搬会劝退番茄读者, 但拆出来的局部技法(导师代言设定、延迟点名、身体反应外化)高度可复用。
完整报告:demo/拆文库/盘龙/拆文报告.md
/story-short-analyze 拆《曾将爱意私藏》(作者自己的短篇,约 8,500 字,追妻火葬场 · 死遁),
产出 54 个情节节点、11 项写作手法。每个节点都锚定原文,并标注情绪类型与强度(−9~+9):
| 原文 | 抽出的结构 |
|---|---|
| 「霍总还不打算让沈暮月母子进门吗?」「没必要,私生子而已。」我正准备推门而入,听到这话,手停在了半空。 | N1 门口偷听到「私生子而已」类型{信息} · 情绪{震惊}{−7}手法{开篇即冲突+信息差} |
| 霍庭煜对我没有爱。我默然抽回了手。该放弃自己的执念了。 | N2 认清对方无爱,决意放弃执念类型{情绪} · 情绪{心酸}{−5} |
同一份产出里,写作手法.md 直接点出原作的代价:
POV 代价:男主的转变缺乏过程展示,N47 的内心独白集中倒出「早就原谅、夜不能寐、深爱」, 略显直白说明(tell 多于 show)——这是第一人称追妻文的通病。
下游 /story-short-write 结合报告、情节节点、写作手法和原文构思新篇。
完整产出:demo/拆文库/曾将爱意私藏/
/story-deslop 的本地检查是写作 lint:逐条匹配已知句式模板,
给出行号、命中片段和改写方向。拿一段人工构造的 AI 腔样例扫描,8 处命中(7 blocking):
改前.md:7:20 [blocking] em-dash (么叫做命运的安排——不是巧合,而是一)
改前.md:7:22 [blocking] not-is-comparison (不是巧合,而是一种冥冥之中的注定)
改前.md:11:1 [blocking] negation-parade (没有犹豫,没有生涩,)
改前.md:19:3 [blocking] voice-contrast (声音不大,却)
改前.md:21:2 [blocking] not-is-comparison (不是一次简单的弹奏,而是一场蓄谋已久的惊艳亮相)
改前.md:3:1 [advisory] cliche-density-tic (仿佛 一丝 深吸一口气 缓缓 微微)
取第 21 章正文中的同一场戏跑同一个扫描:零命中,exit 0。 两段字数几乎一样,差别在于改前用抽象判词替读者定性,改后把同一件事落回现场的动作、对话和反应。
完整对照与全部 8 条命中:demo/去AI味对照/
运行 /story dashboard(Codex 用 $story dashboard)打开本地工作台,浏览拆文库与长短篇项目文件树,支持搜索、Markdown 预览、文本编辑、冲突保护保存和确认删除。顶栏可切换浅色、深色;服务仅监听 127.0.0.1,小说内容不会上传。
| 工作台 | /story-cover 生成的封面 |
|---|---|
复制下面对应的一条,把〈括号里的内容〉换成你的书即可开始:
This is the beginning of the README. Read the rest at the original. Read the full README ↗