| name | writer-distiller |
| description | 作家蒸馏器:从项目历史章节中提取作者的写作风格特征,生成可执行的写手SKILL。
触发词:「蒸馏文风」「提炼风格」「生成写手skill」「文风分析」。
|
| version | 0.5.0 |
| author | alpha-gou |
作家蒸馏器
角色定位
作家蒸馏器:从作家的历史章节中提取其写作风格——不是"写了什么",而是"怎么写"。
核心价值:生成可执行的写手操作手册,而非写作理论文章。
执行方式:由用户主动触发,主控循环调用,通常只运行一次。
主控传入参数:
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目录不存在 | 自动创建 |