mcpbeat

Wjs Distilling Style

jianshuo/wjs-distilling-style

Use when the user wants to capture a writer's voice from a few sample articles and rewrite text to sound like that author — "蒸馏文风", "提炼XX的风格", "把这篇改成XX的味儿", "学某某笔法改写", "mimic this writer", "match this author's style", "style transfer". Works for any author, 王建硕 included.

9k tokens
context cost
the whole folder, loaded on every use
7
files
instructions only
0
copies elsewhere
how many repositories repackaged it
112
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jianshuo/claude-skills --skill wjs-distilling-style

What comes with it

23 381 bytes besides the instruction
DESIGN.md
references/ai-tells.md
references/judge-prompt.md
references/oneshot-prompts.md
references/style-card-template.md
references/turing-blindtest.md

What it tells the agent to use

found in the instruction text
Task spawns other agents

The instruction itself

3 sections, as written by the author

蒸馏文风 · Style Fingerprint

核心原则

> 风格不是形容词,是指纹。能照着复现的,才叫蒸馏出来了。

裸模型做这件事会犯三个错(已实测):(1) 风格观察临时拼凑、混入内容立场、不可复用;(2) 改写后没人盲测,自己既当运动员又当裁判,悄悄滑回平庸 AI 腔;(3) 改写时擅自加料删料,把原文事实改没了。这个 skill 用结构化指纹 + 独立判官盲测 + 事实骨架纪律钉死这三点。

两个模式:蒸馏(样本 → Style Card 文件)和改写(目标文章 + Style Card → 改写稿,带盲测闭环)。

> 默认走精简版(用户约定):日常蒸馏 / 改写任务优先用 references/oneshot-prompts.md 的一次性 prompt(Prompt A 改写 / Prompt B 蒸馏)——9 轴指纹 + 锚点 + 事实骨架纪律 + AI 露馅 6 反制都在,只把多轮判官盲测 / 图灵测 / 回炉换成一轮内联自检。够用、一把过。只有要硬验一张卡到底像不像(发布级、批量伪造)时,才回到下面的完整闭环(判官 subagent + 图灵盲测)。

何时用

  • 用户给几篇某作者的文章,想提炼他怎么写
  • 用户想把一段话 / 一篇稿 / 一份 AI 生成的文本改成某作者的味儿
  • 不适用:用户要的是这个人怎么思考(心智模型、世界观、角色扮演)→ 那是 huashu-nuwa,不是这里;本 skill 只管怎么写

存储(独立库,不进公开 repo)

~/code/style-cards/<author-slug>/
  samples/          # 喂进来的原始样本
  style-card.md     # 蒸馏出的 Style Fingerprint(真源,人可读可手改)
  rewrites/         # 历史改写稿(可选)

wjs-* skill 会自动同步到公开 repo,所以别人的稿子和卡片放这个独立库,不外泄。库或作者目录不存在就先建。

Style Fingerprint — 9 轴

每一轴写三件事:观察(样本里看到什么)、可执行规则(改写时怎么照做)、锚点原句(从样本摘 2–3 句真实原句)。规则会骗人,原句不会——没有锚点的轴等于没蒸馏。

| # | 轴 | 抓什么 |

|---|---|---|

| 1 | 句子节奏 | 长短句分布、长短交替的拍子、标点签名(破折号/省略号/问句/感叹) |

| 2 | 段落长度 | 平均段长、有没有单句成段、长段密度 |

| 3 | 词汇 | 高频词、口头禅、自造词、人称、成语/网络语倾向、中英混用、用词雅俗 |

| 4 | 语气腔调 | 自信度、距离感(亲密 vs 客观)、正式度、幽默 |

| 5 | 论证结构 | 断言先行 vs 层层铺垫、是否用小标题/列表/表格、推进路径 |

| 6 | 比喻运用 | 家常 vs 抽象、频率、抽象↔具体之间怎么架梯子 |

| 7 | 情绪强度 | 情绪温度、克制 vs 喷发、感叹密度 |

| 8 | 开头与收尾 | 怎么起(断言/场景/钩子)、怎么落地收束 |

| 9 | 雷区 | 他绝不会做的事(如不用小白提问钩子、不写没验证过的、不用某类书面词) |

模板见 references/style-card-template.md,直接照着填。

别把内容立场写进指纹:「他爱唱反调」「他三观是 X」是*想法*不是*文风*。指纹只抓「怎么写」——同一个观点换了他来写会长什么样。

「调料不是公式」校准注(写进每张卡):签名动作(造词 / 家常比喻 / 单句成段 / 破折号)是工具不是清单。短内容就短写,别把每个签名动作都堆满——堆满就是拙劣模仿,不是那个人。

9 轴 → 几十个细颗粒维度(推荐成卡形态):9 轴是起手拆解的脚手架。成卡时拆成 ~30–45 个细颗粒可执行维度,分组放表格(句子与标点 / 段落 / 词汇 / 语气 / 论证 / 比喻 / 开头 / 结尾 / 锚点纪律 / 雷区…),每维一句「怎么样的」规则。蒸馏过程靠锚点原句校准(必须,否则规则空转),但成卡里例子要精简——例子不一定典型、容易被当公式照搬,规则才有通用性。这是给「别的模型批量照着写」用的形态。

蒸馏流程

  • 样本入库 samples/。建议 3–6 篇,覆盖不同主题 / 长度。少于 3 篇要明确提示用户:指纹会不稳、容易把一篇的偶然写法当成签名。
  • 长样本起一个 subagent 做 9 轴拆解,避免污染主上下文,只回收结构化结果。
  • 逐轴分析,每轴必须摘锚点原句
  • 写出 style-card.md(照模板),让用户过目 / 手改。

改写流程(带盲测闭环)

digraph rewrite {
  "抽事实骨架" [shape=box];
  "按9轴改写" [shape=box];
  "独立判官盲测" [shape=box];
  "达标?" [shape=diamond];
  "拿判官具体意见回炉" [shape=box];
  "对照骨架查事实" [shape=box];
  "交稿" [shape=box];
  "抽事实骨架" -> "按9轴改写" -> "独立判官盲测" -> "达标?";
  "达标?" -> "拿判官具体意见回炉" [label="否, 最多2-3轮"];
  "拿判官具体意见回炉" -> "独立判官盲测";
  "达标?" -> "对照骨架查事实" [label="是"];
  "对照骨架查事实" -> "交稿";
}
  • 抽事实骨架:先把目标文章的论点 / 信息 / 结论列成几条 bullet。这是「保事实」的锚——改写不增不减这些事实,只换怎么说。
  • 按 9 轴改写:允许调开头 / 收尾 / 节奏 / 小标题 / 段落切分,但事实骨架原样保留。
  • 独立判官盲测(必做,不可跳):起一个 subagent,只给它 Style Card 的锚点 + 改写稿,不给原文、不告诉它这是 AI 改的。判官 prompt 见 references/judge-prompt.md。它输出:逐轴相似度评分(1–5)、具体出戏句列表、缺失/过载的签名动作。
  • 不达标回炉:默认阈值平均 ≥4/5 且无单轴 ≤2。不过标就拿判官的具体出戏句回炉重改,再测,最多 2–3 轮。
  • 判官报「缺某签名动作」≠ 授权加料。常见的是判官说「缺他招牌的『带数字亲历账』」——如果原文事实骨架里没有这个事实,绝不能为了凑分替作者编一段。那一轴宁可拿 4 不拿 5。风格满分和事实纪律冲突时,事实纪律赢。能补的只有「换说法」,不能补「新事实」。
  • 对照骨架查事实:交稿前比对第 1 步的骨架,有没有篡改 / 丢失 / 新增事实。改写可以换说法,不能换事实。

判官子 agent 是「同一个模型既当运动员又当裁判」的唯一解药。自己读一遍觉得挺像 ≠ 像——这正是裸模型滑回平庸的入口。

强校验:图灵判别盲测(验卡到底硬不硬)

上面的相似度判官问「像不像」;要量化验证整张卡,再上一关图灵判别盲测:把 AI 仿写混进真迹里,让一个崭新、不同模型的判官盲猜每篇是「真迹」还是「AI 仿的」,正确率 ≤ 50%(瞎猜)算过。完整操作(选样 / 只给标题+30字从零写 / 剥光元信息归一化 / 异模型判官读整批 / 算分回炉 / 部署到 jianshuo.dev profile)见 references/turing-blindtest.md

跑这一关前,先读 references/ai-tells.md——9 轮实测逼出的 AI 最易露馅的 6 处(缺真实专名 / 结尾太圆 / 推进太顺 / 鸡汤教科书化 / 批次指纹 / 文章原型不匹配)+ 逐条反制。把这 6 条反制写进每张风格卡的尾部(裸模型照 9 轴写仍会稳定踩这 6 个坑)。

诚实的天花板(别给用户画大饼):平衡盘里判官对真迹召回近 100%,正确率地板就是 50%,「稳定压到 50% 以下」基本做不到。但单篇经常蒙混(纯记叙/观察型常 4/6 骗过很毒的判官,一点题落金句就被抓)。所以卡的主场是润色/改写作者已有真实素材,不是凭空批量伪造整本文集。

红旗——出现就是要回到正轨

  • 「这段我自己看挺像的,不用再起判官了」→ 自评不算数,盲测必做
  • 「直接列几条风格特点就开始改」→ 没填 9 轴模板、没摘锚点 = 没蒸馏
  • 「原文这句不够味儿,我给它补一句」→ 停,事实骨架不增不减,加料是改内容不是改风格
  • 「判官说缺他招牌的某个动作,我加段亲历账/数字凑上去」→ 停,原文没这事实就不能编,那一轴拿 4 也认
  • 「把造词、比喻、小标题全用上更像」→ 堆满是拙劣模仿,看调料校准注
  • 「样本就两篇,够了」→ 提示用户指纹会不稳
  • 「给 AI 详细骨架/多句要点让它改写」→ 那是复述原文,等于作弊;图灵测从零生成只给标题+30字(turing-blindtest.md)
  • 「拿 AI 润色过的稿当真迹基准」→ 人/AI 界限糊了,测了白测;要纯手写真迹
  • 「盲测直接把文章丢给判官」→ 没剥元信息/没抹 markdown/段间空行没统一 = 判官靠格式取胜,无效
  • 「6 篇 AI 都用同一个招牌崩裂/收尾」→ 批次指纹,判官一锅端;每篇换花样
  • 「向用户保证能压到 50% 以下」→ 平衡盘地板就是 50%,别承诺,讲清单篇能蒙混即可

常见错误

| 错误 | 后果 | 修正 |

|------|------|------|

| 指纹只有抽象规则,没锚点原句 | 改写时规则空转,套不出味儿 | 每轴强制摘 2–3 句真实原句 |

| 把内容立场当文风 | 改写跑偏成换观点 | 指纹只问「怎么写」 |

| 跳过判官盲测 | 滑回平庸 AI 腔自己不知道 | 判官必做,盲、独立 |

| 改写顺手加料删料 | 原意被改 | 先抽事实骨架,改写不增不减 |

| 签名动作堆满 | 拙劣模仿 | 短内容短写,调料不是公式 |

| 图灵测给写手太多信息 | AI 复述原文,测了个寂寞 | 只给标题 + ≤30 字中心思想,从零写 |

| 盲测不归一化格式 | 判官靠格式而非文风取胜 | 剥元信息 + 抹 markdown + 统一段间空行 |

| 一批 AI 同款签名动作 | 批次指纹被一锅端 | 每篇换不同的崩裂/收尾,原型与真迹对齐 |

| AI 文末非要升华点题 | 落「可迁移金句」最招判官 | 纯记叙不点题,结尾散开不收口 |

How to use it

Copy the folder

Take jianshuo/wjs-distilling-style from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.