# Wjs Voicedrop Writing Explainary Book

> 「写一本书」时科普书（讲清一件事）的写法模块——读者画像、费曼式文风铁律、大纲怎么切、写手提示词、评审维度（准确度/新颖度/有趣度）、专属 HTML 约定（dfn 名词/大白话盒子）。由 wjs-voicedrop-writing-book 在第 0 步判定为科普类型后读入；骨架、build.mjs、发布、封面、断点续跑等通用机制都在 wjs-voicedrop-writing-book，本 skill 只管「怎么写科普」。触发词："科普书"、"讲清一件事"、"explainary book"、"/wjs-voicedrop-writing-explainary-book"。

- Skill: `jianshuo/wjs-voicedrop-writing-explainary-book` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jianshuo/wjs-voicedrop-writing-explainary-book`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jianshuo/wjs-voicedrop-writing-explainary-book/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: jianshuo (https://skillmd.com/u/jianshuo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jianshuo/wjs-voicedrop-writing-explainary-book

---


# 科普书写法 — 讲清一件事（explainary）

> 这是 `wjs-voicedrop-writing-book` 的写作模块之一（`type: explainary`）。工作目录、`book.json`、`build.mjs`、发布、封面、断点续跑、修书模式、编排、红线等**通用机制全部在 `wjs-voicedrop-writing-book`**，本文只规定科普书**怎么写**：读者画像、文风、大纲要求、写手/评审提示词、专属 HTML 约定。

**这类书解决的问题**：让一个好奇的人真正弄懂「它到底怎么运作 / 为什么是这样 / 如果不是会怎样」——科学、技术、历史、商业、制度背后的因果与规律。

**读者画像**：对世界有好奇心、想弄懂运作规律的人；默认理工背景 / 软件工程师——爱因果、爱类比、烦空话、烦面面俱到。

**文风铁律（费曼式，一票否决）**：
- 不用大词。每个专有名词第一次出现都**当场用大白话解释**。
- 宁可用一个**精准的类比**，也不用一句正确的废话。
- 讲因果链，不堆词条；讲「怎么运作」，不背「是什么的定义」。
- 宁少而深，拒绝百科口吻和面面俱到。

先例：`/a/jingangjing/`（金刚经·理工男读本）就是这个文风的样子。

---

## 建筑师：大纲怎么切

Spawn 一个 agent，产出书名、slug、subtitle、切入角度、**8–20 章**清单（每章 `no / title / 一句 brief`）、tint/dark 配色、一句 introTeaser。要求：

- 章节是**递进**的，不是并列词条；每章解决上一章留下的疑问。
- 每章可独立成篇（读者可能从中间进来），但合起来是一条线。
- 面向理工好奇者：多用「怎么运作 / 为什么是这样 / 如果不是会怎样」。
- 定一个**贯穿全书的问题**（读者读完能回答的那个），大纲围绕它推进。
- 拒绝百科口吻和面面俱到；宁少而深。
- `book.json` 写上 `"type": "explainary"`，`tagline` 建议 `"费曼式写法 · 由多个 AI 代理撰写与互相审校"`，`meta` 建议 `"面向理工背景的好奇者"`（随书调）。

---

## 写手 subagent：提示词要点

给写手：本章 `no / title / brief` + 全书大纲（知道上下文、别重复别的章节）+ 上面的读者画像与费曼铁律。要求：

- **输出格式**：一段 `<article>` 里面的 HTML 片段，只用这些标签：
  `<p> <h2> <h3> <ul>/<ol>/<li> <strong> <blockquote> <code> <figure><img><figcaption> <dfn>`。
- **科普专属 HTML 约定**：
  - 名词第一次出现，用 `<dfn>词</dfn>` 标记，并**紧跟一句大白话**解释。
  - 需要「翻译成人话」的地方，用大白话盒子：`<div class="plain"><p>……</p></div>`（`build.mjs` 的 CSS 会给它加「大白话」标签样式）。
  - `<strong>` 只标真正的重点（会被渲染成强调色）。
- 不写 `<h1>`（标题由模板出）；不写内联 `style`；不编造图片 URL（配图是最后一遍，见通用 skill 第 6 步）。
- **长度**：一章约 1200–2500 字，够把一件事讲透即可。
- 存到 `chapters/NN.html`。

---

## 评审 subagent：维度与判定

**独立 spawn**（不能是该章写手，不喂写手思路），只喂「该章成品 HTML + 全书大纲」。提示词：

> 你是独立评审，没参与写作。从三个维度打分（各 1–5，给一句理由），并给出必须修的问题清单：
> 1. **准确度**：有没有事实/因果/数字错误？可疑处**自己查证**（web / Explore）再下判断。列出每一处硬伤。
> 2. **新颖性**：有没有超出「维基百科第一段」的洞见？还是正确的废话？点出哪些段落是陈词滥调。
> 3. **有趣度 & 费曼度**：类比好不好？名词有没有当场讲人话？有没有大词/黑话没解释？读起来累不累？
>
> 判定 `pass`：**准确度必须 ≥4**，且新颖性、有趣度都 ≥3，且没有未解决的事实硬伤。否则 `fail`。
> 输出 JSON：`{"scores":{"accuracy":n,"novelty":n,"fun":n},"verdict":"pass|fail","must_fix":["…"],"note":"一句总评"}`

存 `reviews/NN.json`。不过就按通用 skill 的循环换新写手照 `must_fix` 重写，最多 3 轮。

---

## 导读页（建议有）

全书过半后写 `intro.html`（也走写→评）：用一个钩子把读者领进门——点出那个「贯穿全书的问题」，给一个反直觉的入口（先例：熵那本的「先别背公式，先想想一副新牌」）。在 `book.json` 填 `introTeaser`。

---

## 插图密度：默认不配

**默认整本不配插图。** 只有当**某个概念不画图就真的讲不清楚**（绝对必要）时，才配一张；纯粹「好看/点缀/帮气氛」一律不配。宁可一张都没有——大多数章节都不需要图。判断要克制。

真到了绝对必要时（每章至多 1 张，走通用 skill 的 paint 流程）：无字纯画面——**绝不放大标题、不放正文文字、不放乱码/水印**（说明写在 `<figcaption>` 里，不在图里）；风格随书 `tint/dark`、淡雅。

---

## 科普专属 Red Flags（通用红线见 wjs-voicedrop-writing-book）

- 正文出现没解释的大词/黑话 → 违反费曼铁律，回写手重写。
- 名词第一次出现没用 `<dfn>` + 大白话 → 补上。
- 章节像百科词条堆砌、彼此不递进 → 大纲没做好，回建筑师。
- 段落是「正确的废话」、没超过维基百科第一段 → 新颖性不合格，重写。
- 用类比只是为了花哨、反而更绕 → 类比要精准降低理解成本，否则删。
- 准确度评分 <4 或有未解决硬伤 → 一票否决，必须改到 ≥4 才放行。
- 为了好看/点缀加插图（非「不画就讲不清」）→ 违反默认不配，删掉。

