# Writer Distiller

> 作家蒸馏器：从项目历史章节中提取作者的写作风格特征，生成可执行的写手SKILL。 触发词：「蒸馏文风」「提炼风格」「生成写手skill」「文风分析」。

- Skill: `alpha-gou/writer-distiller` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add alpha-gou/writer-distiller`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alpha-gou/writer-distiller/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: alpha-gou (https://skillmd.com/u/alpha-gou)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/alpha-gou/writer-distiller

---


# 作家蒸馏器

## 角色定位

**作家蒸馏器**：从作家的历史章节中提取其写作风格——**不是"写了什么"，而是"怎么写"。**

**核心价值**：生成可执行的写手操作手册，而非写作理论文章。

**执行方式**：由用户主动触发，主控循环调用，通常只运行一次。

**主控传入参数**：

- `workspace`：工作区路径（必须）
- `projectPath`：项目路径（必须）
- `batchNo`：批次号
- `chapterRange`：章节范围

---

## ⚠️ 核心原则

| 原则 | 说明 |
|------|------|
| **独特性优先** | 提取"一眼认出是作者"的特征，而非高频特征 |
| **怎么写，而不是写了什么** | 提取写作的规则，而非具体写了什么 |
| **烂大街不提取** | "主角智力在线"等常见特征不提取 |
| 分批处理 | 每批5章，避免上下文溢出 |
| 直接写最终文件 | 第一批生成最终文件，后续批次增量合并 |
| **禁止原文示例** | SKILL中不得出现任何原文片段，只描述规则 |

---

## 🎯 独特性判断标准

**核心问题**：这个特征是否能让读者"一眼认出是作者写的"？

| 特征 | 频率 | 独特性 | 是否提取 |
|------|------|--------|----------|
| 主角智力在线 | 高 | ❌ 烂大街 | **不提取** |
| 快节奏 | 高 | ❌ 烂大街 | **不提取** |
| 幽默文风 | 高 | ✅ 比较独特 | **提取** |
| 章末钩子 | 高 | ⚠️ 较常见 | 酌情提取 |
| 特定标点习惯 | 低 | ✅ 独特 | **提取** |
| 某修辞偏好 | 中 | ✅ 独特 | **提取** |
| 打破第四面墙 | 极低 | ✅ 极独特 | **必须提取** |

---

## 📤 输出文件

| 文件 | 路径 | 内容 | 约束 |
|------|------|------|------|
| 写手SKILL | skills/mirror-writer/SKILL.md | 可执行写作规则 | **单一SKILL文件** |

### 输出约束

**写手SKILL**：
- ✅ 句式规则、标点规则、修辞规则、瑕疵提示
- ✅ 可执行的"怎么做"指令
- ✅ 项目特有的用词、格式描述（抽象描述，无原文）
- ❌ 写作理论、创作意图分析
- ❌ **任何原文示例、片段、引文**
- ❌ 角色名、专有名词（可用"主角""配角"等通用词）
- ❌ 超过3000字

---

## 🔄 Workflow

### 1. 读取现有文件

读取现有文件：`skills/mirror-writer/SKILL.md`

如果没有现有文件，则读取模板：`{workspace}/skills/writer-distiller/templates/skill-template.md`

### 2. 读取章节文件

> `{projectPath}/published/vol_{volume}/{N}.md ... {M}.md`

### 3. 提取风格特征

按提取维度识别作者"怎么写"（见下方提取维度）

### 5. 合并更新

**第一批**：直接写入
**后续批**：读取现有 + 新提取 → 合并 → 精简

### 6. 写入最终文件

- 覆盖 `skills/mirror-writer/SKILL.md`

---

## 📊 提取维度

### 1. 句式特征

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 句长分布 | 平均字数、短句占比 | "平均15字/句，短句占比60%" |
| 对白风格 | 标签使用、对话推进 | "无标签对话，对话占40%" |
| 断句习惯 | 句号/逗号使用频率 | "句号稀疏，长句连逗" |

### 2. 修辞特征

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 比喻偏好 | 类型、频率 | "生活化比喻，3次/章" |
| 夸张程度 | 频率、幅度 | "高频夸张，程度中等" |
| 排比使用 | 频率、位置 | "情绪高潮时必排比" |

### 3. 标点特征

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 感叹号 | 频率、位置 | "高潮时连续感叹号" |
| 省略号 | 频率、作用 | "留白用省略号，5次/章" |
| 破折号 | 频率、作用 | "强调用破折号" |

### 4. 用词特征

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 口头禅 | 高频词汇 | "主角口头禅：'有意思'" |
| 动词偏好 | 特定动词 | "高频动词：'冷笑''眯眼'" |
| 形容词 | 风格 | "形容词少，动作多" |

### 5. 瑕疵特征（必须提取）

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 错别字 | 类型、频率 | "'的/地/得'混用" |
| 语法问题 | 类型 | "主语省略过度" |
| 重复表达 | 类型 | "同一动作重复描述" |

### 6. 叙事特征

| 维度 | 提取内容 | 示例 |
|------|----------|------|
| 视角切换 | 频率、方式 | "单视角，不切换" |
| 节奏控制 | 快慢分布 | "开篇慢，高潮快" |
| 信息密度 | 描写/对话比例 | "对话70%，描写30%" |

---

## 📊 合并策略

### SKILL合并

| 内容类型 | 合并策略 | 数量上限 |
|----------|----------|----------|
| 句式规则 | 合并相似 → 追加新规则 | 每类≤5条 |
| 标点规则 | 合并相似 → 追加新规则 | 每类≤5条 |
| 修辞规则 | 合并相似 → 追加新规则 | 每类≤5条 |
| 瑕疵提示 | 不删除，只追加 | — |
| 项目特有用词 | 合并相似 → 追加 | — |
| 总字数 | — | ≤3000字 |

**独特性判断规则**：
```
新特征 vs 现有特征 →
  A. 烂大街特征 → 删除
  B. 更独特 → 保留/替换
  C. 同样独特 → 合并
```

---

## 📁 文件结构

```
skills/writer-distiller/
├── SKILL.md
└── templates/
    └── skill-template.md

skills/mirror-writer/
└── SKILL.md                    # 蒸馏器生成
```

---

## 📤 输出汇报

```
【蒸馏完成】批次N/M
- 章节：第A-B章
- 写手SKILL：X条规则，Y字
- 本次变更：新增X条，合并Y条，删除Z条（烂大街）
```

---

## 🚨 异常处理

| 异常 | 处理方式 |
|------|----------|
| 章节文件不存在 | 汇报「章节缺失」，跳过继续 |
| 章节少于5章 | 正常执行，提示「样本较少」 |
| 生成失败 | 汇报错误详情，保留现有文件 |
| 写手SKILL已存在 | 询问是否覆盖 |
| skills/mirror-writer目录不存在 | 自动创建 |

