| name | wjs-voicedrop-writing-chidrens-book |
| description | 「写一本书」时绘本 / 图画书的写法模块——读者画像(孩子及共读的大人)、童趣文风、每页一图一句的结构、写手提示词、评审维度(画面感/语言节奏/情感与安全)、专属约定(以图为主、每页配图、字极简)。由 wjs-voicedrop-writing-book 在第 0 步判定为绘本类型后读入;骨架、build.mjs、发布、封面、断点续跑等通用机制都在 wjs-voicedrop-writing-book,本 skill 只管「怎么写绘本」。触发词:"绘本"、"图画书"、"children's book"、"/wjs-voicedrop-writing-chidrens-book"。 |
绘本写法 — 图画故事(childrens)
这是 wjs-voicedrop-writing-book 的写作模块之一(type: childrens)。工作目录、book.json、build.mjs、发布、封面、断点续跑、修书模式、编排、通用红线等机制全部在 wjs-voicedrop-writing-book,本文只规定绘本怎么写。
⚠️ 初版草稿:绘本类型刚拆出来,下面的文风/结构是首版约定,实际用过几本后再收紧。核心机制(每页即发、独立评审、封面、两条硬约束)跟通用 skill 完全一致。
这类书解决的问题:给孩子(以及陪读的大人)一个温柔、好看、好读出声的图画故事——可以是一个小故事,也可以是一个概念的启蒙(数数、颜色、情绪、自然)。图是主角,字是配角。
读者画像:
- 第一读者:3–8 岁的孩子(按主题定更细的年龄段,写进
book.json 的 meta)。词汇简单、句子短、有重复和节奏,能被大人读出声。
- 第二读者:陪读的大人——他们要读得不尴尬、愿意重复读很多遍。
文风铁律:
- 每页字极少:一页只讲一个画面、一两句话;宁可少字,让图说话。
- 可朗读:句子有节奏、有重复句式(重复是绘本的魔法),读出来顺口、有停顿感。
- 具体、可感:写看得见摸得着的东西(毛茸茸的、红红的、慢慢地),不写抽象道理。
- 不说教:情感和道理藏在故事里,不在结尾贴一句「这个故事告诉我们」。
- 安全温柔:无暴力/恐吓/不适内容;就算有冲突也温柔收场。
结构:绘本用「页」不用「章」
绘本的「章」= 一个跨页(一个画面)。仍用 book.json 的 chapters 数组,但每一项是一页:title 用极短的页名或直接留白(如「第 1 页」),brief 写这一页的画面 + 那一两句话。
建筑师:故事怎么搭
Spawn 一个 agent,产出书名、slug、subtitle(一句话故事钩子)、配色、逐页清单(每页 no / 极短页名 / brief=画面+文字)。要求:
- 一条简单清晰的故事线:起(认识主角和它想要的)→ 承(一路上的小遭遇,可重复句式)→ 转(一个小转折/小困难)→ 合(温柔收场)。
- 重复与递进:绘本靠重复的句式和累积的画面推进(想想《好饿的毛毛虫》),每页在同一句式上加一点变化。
- 主角要可爱、可共情,动机要孩子能懂(想找朋友、想睡觉、肚子饿)。
- 一本书一个概念/一个故事,别塞多条线。
写手 subagent:提示词要点
给写手:本页 no / brief + 全书故事线(知道前后页,保持句式与主角一致)+ 读者画像与文风铁律。要求:
- 输出格式:一段
<article> 里的 HTML 片段,通常就是 一个 <figure><img> + 一到两句 <p>。可用标签:<p> <figure><img><figcaption> <strong>(拟声词/关键词可加粗)。
- 图片:绘本每页都要图,但正文片段里只写相对文件名占位(如
<img src="p01.png">),图在最后一遍统一 paint 生成(见下「插图」)。写手同时给出这一页的画面描述(写进 reviews 或单独记,供出图用)。
- 字数:一页通常 8–40 字,最多两句。
- 不写
<h1>、不写内联 style、不编造真实图片 URL。
- 存到
chapters/NN.html。
评审 subagent:维度与判定
独立 spawn,只喂「该页成品 + 全书故事线」。维度:
你是独立评审,没参与写作。从三个维度打分(各 1–5,给一句理由)+ 必须修清单:
- 画面感 & 图文配合:这一页有没有一个清晰、能画出来的画面?文字和画面是不是各说各的、还是互相补足?
- 语言与节奏:读出声顺不顺口?有没有重复/韵律?有没有超出年龄段的难词或长句?
- 情感与安全:孩子能不能共情?有没有说教味、恐吓、暴力或不适内容?结局温不温柔?
判定 pass:三项都 ≥3,且无安全问题、无说教硬伤、无超龄难词。否则 fail。
输出 JSON:{"scores":{"visual":n,"rhythm":n,"heart":n},"verdict":"pass|fail","must_fix":["…"],"note":"一句总评"}
存 reviews/NN.json。不过按通用 skill 的循环换新写手重写,最多 3 轮。
插图:绘本以图为主(每页都要,最后一遍统一出)
跟科普书相反,绘本几乎每页都要一张图。仍守通用 skill 的规矩:全部用 /opt/claude-agent/bin/paint(GPT 出图),timeout 600000ms,build.mjs asset 上传,内链相对,绝不用本地生图/叠字工具。
- 风格统一:全书用同一套画风关键词(同一句风格前缀 + 同一主角外形描述),逐页只换画面内容,让主角在每页看起来是同一个。把这套风格前缀固定下来,每页 paint 时都带上。
- 图文一体(2026-08-20 起):本页那一两句正文要用合适的字体画进图里,像真正印刷的绘本页。要求:
- 字体气质:温柔圆润的中文童趣手写体/圆体,颜色随该页画面配色(深色字配浅背景),大小适中可读;
- 位置:放在画面的留白处(天空/地面/水面的安静区域),绝不压角色的脸和主体;
- 内容:与 book.json 里该页的正文一字不差,提示词里把这句话原样引出并写明「画面上只允许出现这句文字,不要多余字符/水印」;
- 画完必须逐字检查图里的字——GPT 画中文偶有错字/乱码,错一个字就重画(字少,重画便宜);
- HTML 的
<p> 正文照旧保留(与图里文字一致)——有声书管线和搜索/复制靠 DOM 文字,不能只存在图里。
- 画面描述来自写手给的那一句;paint 提示词 = 统一风格前缀 + 主角/道具参照要点 + 本页画面 + 图内文字(引号原句)。
- 尺寸随版式(绘本图可用较方或横构图,
--size 1024x1024 或 1536x1024)。
- 流程:
paint "<统一风格 + 本页画面 + 无字>" book-<slug>/p01.png --quality high → build.mjs asset book-<slug> p01.png p01.png → 该页 HTML 已引用 p01.png → build.mjs done book-<slug> NN。
固定角色库(CRS,Character Reference Sheet)
本 skill 目录下 characters/ 放着固定角色的官方设定图。故事(种子或正文)里出现这些名字时,必须按 CRS 的形象画,绝不自创新形象:
| 名字 | CRS 文件 | 形象要点(写进 paint 提示词) |
|---|
| 嘟嘟(Dudu) | characters/dudu-crs.jpg | 浅棕色毛绒小熊,米白口鼻,头大圆润(约 1/2 身高)、身体短胖;穿灰色连帽卫衣(手工编织抽绳)+ 浅蓝牛仔裤,圆圆的毛绒尾巴。性格温和、好奇、爱冒险。配色:毛绒浅棕 #B7A18C / 米白 #F1E6D2 / 深棕 #8B6E4A / 卫衣灰 #9D9D9D / 牛仔浅蓝 #9D7FD6 |
| 小杰 | characters/xiaojie-crs.png | 米色卷绒泰迪熊,黑色珠子眼,深棕三角绒鼻;always 穿红白条纹针织毛衣、左肩深蓝底白点拼块。温柔安静,爱喝茶、看书、窗边发呆。配色:毛色米棕 #DB8692 标注为 beige / 毛衣红 #D52828 / 奶白条纹 #F2E9DB / 肩块深蓝 #1E2444 |
| 小达 | characters/xiaoda-crs.png | 白色绒毛小鸭玩偶,头部非常圆润、约占整体 60%,身体短小厚实(约 25%),大而蓬松的淡黄色脚掌(约 15%,是支撑坐姿的主要形体特征);淡黄色扁嘴,黑色珠光眼(位置偏上、间距较宽),淡淡腮红,头顶一小撮绒毛,粉色格子(gingham)领带打蝴蝶结,翅膀很小、贴在身体两侧。性格软萌、治愈、温柔、爱撒娇;喜欢被抱抱、坐在床上、陪伴主人。配色:白色绒毛 / 嘴与脚掌淡黄 pale yellow / 眼睛黑色珠光 / 领带粉色格子 |
| 米拉(Mira) | characters/mira-crs.jpg | 黑白花纹(奶牛猫)毛绒玩具猫,拟人站姿约 28cm;大头设计(头部约 1/2 身高),身体圆润饱满、四肢短小;粉色鼻子和肉垫,黄绿色圆眼睛(刺绣工艺),黑色耳朵与尾巴,背部黑色斑块。性格温柔、好奇、慵懒、亲人。姿势库:站立/挥手/行走/坐着/面包趴/蜷缩睡觉。配色:黑色毛绒 #0B0B0B / 白色毛绒 #F5F5F5 / 粉(鼻子肉垫)#F4B6C1 / 黄绿(眼睛)#A9B556 |
| 小饼干(Xiaobinggan) | characters/xiaobinggan-crs.png | 灰白色考拉毛绒玩偶,坐姿约 26cm(比嘟嘟略矮,高度比约 0.93:1);蓬松长绒毛、整体圆润安静,标志性的大白耳朵(蓬松柔软、白色长毛),圆润安静的脸型配黑色椭圆鼻子(刺绣/植绒质感),灰白配色自然过渡;近左手/侧身有**小黑蝴蝶结(黑色织带)**点缀。性格软萌、安静、治愈。配色:浅灰长毛 #D3D3D3 / 白色长毛 #FFFFFF / 黑色鼻子 #1A1A1A / 黑色织带蝴蝶结 #0F0F0F |
| 嘟嘟+小杰同框 | characters/both-crs.jpg | 双人合并设定图 |
用法(每一页都这样做,包括封面):
- 出图必须带
--image 参照:只有嘟嘟 → --image ~/.claude/skills/wjs-voicedrop-writing-chidrens-book/characters/dudu-crs.jpg;只有小杰 → xiaojie-crs.png;只有小达 → xiaoda-crs.png;只有米拉 → mira-crs.jpg;只有小饼干 → xiaobinggan-crs.png;嘟嘟+小杰同框 → both-crs.jpg。其他组合同框(如小达和小杰):--image 用戏份最重那位的 CRS,其余角色靠上表的形象要点在提示词里逐条文字锚定(每页同一段描述,一字不改)。
- 提示词里写明:「严格按参考图中角色的形象、配色、衣着来画(参考图是角色设定图,只取形象;不要把设定图的排版、标注文字、多视图网格画进画面)」,再接统一风格前缀 + 本页画面描述 + 上表的形象要点。
- 逐页都带同一张 CRS 参照 + 同一段形象描述,这就是绘本「主角每页长得一样」的锚——不要只在第一页用。
- 故事里没提这些名字时不要硬塞;但若种子只说「小熊」而语境明显指嘟嘟/小杰(比如直接点名),按点名的来。
- 衣着随情节走:CRS 上的衣服是日常装扮,不是长在身上的。泡温泉/洗澡/游泳时不穿衣服(就是毛绒熊本身,可以搭块小毛巾);睡觉可换睡衣;下雨加雨具。脱了衣服后毛色、体型、五官、尾巴仍严格按 CRS——变的只是衣服,熊不能变。提示词里明确写「此页角色不穿衣服(在泡温泉),身体按参考图的毛绒质感与配色」。
道具设定图(props 一致性——关键道具和角色一样要锚定)
故事里出现两次以上的关键道具(主角的水杯、雨伞、帽子、玩具、书包……尤其是情节围着它转的),不能每页现编——不同页画出来会走样。规矩:
- 开画第一页之前,先做一张「全书参照图」
refs.png:用 paint 改图模式,--image 喂角色 CRS(both/单人,见上),提示词让它输出一张设定图版式——左侧保留角色形象(每位角色画正面 + 背面两个姿态,把 CRS 的多视图价值带进来,后面画背影的页才有锚),右侧排一列道具特写格(每个道具一格、浅色底、正面清晰,外观描述一字一句写死:颜色 / 材质 / 关键细节,如「透明瓶身、红色瓶盖、红挂绳的水杯」)。存 book-<slug>/refs.png。refs.png 是工作文件,不用 build.mjs asset 上传、不进正文页。
- refs.png 生成后必须对照验收才准开画:view_image 同时看原 CRS 和 refs.png,按角色表逐条核对——配色、头身比、标志性细节(如嘟嘟的编织抽绳、小杰的左肩拼块、小达的粉格子领带蝴蝶结与腮红)。任何一条对不上就重新生成 refs.png,不许带着跑偏的参照开画——refs 是 CRS 的一跳复制品,它偏了全书会一致地偏,比随机走样更难发现。
- 之后每一页出图,
--image 一律带这张 refs.png(它已含角色+道具,替代裸 CRS 作参照图),提示词照常申明「只取形象,不画设定图排版」,并点名本页道具的外观要点。paint 只吃一张参照图——这就是必须把角色和道具合在一张里的原因。但角色的文字锚不因 refs.png 而省:每页提示词仍然带角色表的完整形象要点——图像跳变丢掉的细节,靠文字原样补上。
- 道具外观的文字锚(那句颜色/材质/细节描述)同时写进 book.json 顶层
"props" 字段(如 {"水杯":"透明瓶身、红盖、红挂绳"}),修书/续跑时新 session 一读就知道每个道具长什么样。
- 中途发现某页道具走样 → 用 refs.png 参照重画该页,别将错就错。
红线:同一道具在不同页颜色/形状/细节对不上 → 没带 refs.png 或提示词没点名外观,重画。
封面
同通用 skill 的封面规则(竖版 1024x1536、书名画进图、GPT 出字),但气质要童趣、明亮、可爱,和内页画风一致;主角可以出现在封面上。
绘本专属 Red Flags(通用红线见 wjs-voicedrop-writing-book)
- 一页字太多、超过两三句 → 违反「字极少」,砍到一两句。
- 出现超龄难词/长复句 / 抽象道理 → 降到目标年龄段能懂的具体词。
- 结尾贴「这个故事告诉我们……」的说教 → 删掉,让故事自己说。
- 主角在不同页画风/外形不一致 → 没用统一风格前缀,重出图。
- 故事里出现嘟嘟/小杰,出图却没带对应 CRS
--image 参照、或形象跑偏(衣着/配色/体型不对)→ 违反固定角色库,按 CRS 重画。
- 画面里出现 CRS 设定图的排版/标注/多视图网格 → 提示词没申明「只取形象」,重画。
- 图里的文字与该页正文不一致 / 有错字乱码 / 出现正文之外的多余字符或水印 → 逐字校对后重画。
- 图里没写本页正文(图文一体是 2026-08-20 起的硬规矩)→ 补上,用童趣字体放留白处。
- 有暴力/恐吓/不适内容、结局不温柔 → 一票否决,重写。
- 某页没有图 → 绘本每页都要图,补上。