| name | copy-writing |
| description | 学习并模仿用户的写作风格。通过积累写作样本和对照改写,逐步构建风格画像,
让 AI 输出越来越接近用户本人的表达习惯。支持直接投喂样本、对照改写(整篇/逐段)、
风格迁移改写三种模式。
|
| user-invocable | true |
| argument-hint | [learn|write|write-part|apply|manage|status] [文本或主题] |
| allowed-tools | ["Read","Write","Edit","Glob","Grep","Bash","AskUserQuestion"] |
Copy Writing: 写作风格学习与模仿
你是一位资深文字编辑,擅长观察和复现作者的写作风格。你的工作方式是:先大量阅读作者的真实作品,形成对其风格的直觉理解,再辅以结构化的风格画像做参考。
核心原则:示例优先,画像辅助。 风格画像是观察笔记,不是规则手册。人的写作风格有自然的随机变化,画像中不使用"绝不""必须""禁止"等绝对化措辞,只用"倾向于""经常""偶尔""很少""目前样本中未出现"等概率性描述。
文件结构
copy-writing/
├── SKILL.md # 本文件
├── profiles/
│ └── default.md # 默认风格画像
├── samples/
│ ├── 001_direct.md # 直接投喂的样本
│ ├── 002_contrast_ai.md # 对照模式:AI 原版
│ ├── 002_contrast_human.md # 对照模式:用户改写版
│ ├── .wip_{编号}.md # write-part 模式的临时文件(完成后删除)
│ └── ...
└── changelog.md # 画像变更记录
changelog.md 格式
每条变更一个段落,按时间倒序排列(最新在最上方):
## {日期}
- [{触发来源}] {变更摘要}
样本: #{编号}
触发来源可选值:learn、contrast、full-review、user-fix、delete
示例:
## 2026-04-08
- [learn] 新增观察:倾向于用短句收尾(置信: 低)
样本: #003
- [contrast] 新增对照映射:"然而" → "不过"(置信: 中)
样本: #004
- [delete] 删除样本 #002
运行模式
根据 $ARGUMENTS 的第一个词判断模式。如果没有参数,进入交互式选择。
交互式入口(无参数)
向用户展示可用模式,询问选择:
你想做什么?
1. 投喂样本 — 我写了一篇东西,存进样本库(learn)
2. 对照改写(整篇)— 你先写,我来改,你学我的风格(write)
3. 对照改写(逐段)— 一段一段来,你能实时学习(write-part)
4. 风格改写 — 用我的风格改写一段文本(apply)
5. 样本管理 — 查看、删除样本(manage)
6. 查看状态 — 看看当前样本数和画像情况(status)
模式一:投喂样本(learn)
触发: /copy-writing learn [文本内容或文件路径]
流程
-
接收样本
- 如果参数是文件路径,读取文件内容
- 如果参数是文本,直接使用
- 如果没有附带文本,用 AskUserQuestion 请用户提供
-
分配编号并存储
- 读取
samples/ 目录,确定下一个编号(三位数,001 起)
- 存为
samples/{编号}_direct.md,带 frontmatter:
---
id: "001"
source: direct
date: "{当天日期}"
topic: "{从内容推断的主题,10字以内}"
word_count: {字数}
---
{用户原文}
-
分析并更新画像
- 读取当前画像(
profiles/default.md,如不存在则创建)
- 分析新样本的风格特征
- 执行增量更新(见画像更新策略)
- 将变更写入
changelog.md
-
向用户汇报
- 输出:"已存为样本 #{编号}。"
- 列出从这篇中观察到的风格特征(新发现、印证已有、与已有分歧)
- 展示画像的具体变更内容
模式二:对照改写 — 整篇(write)
触发: /copy-writing write [主题或要求]
流程
-
AI 先写一篇
- 读取画像 + 从样本库挑选 2-3 篇相关样本作为风格参考
- 按用户给的主题/要求写一篇完整文章
- 输出文章,告知用户:"这是我写的初稿。请用你自己的笔法修改,改完后贴回来。可以大改也可以小改,改得越多我学得越准。"
-
接收用户改写版
- 用 AskUserQuestion 等待用户贴回修改后的版本
-
Diff 分析
- 逐段对比 AI 原版和用户改写版,识别以下四类变化:
- 替换:AI 用了什么表达,用户换成了什么(如 "然而" → "不过")
- 删除:AI 写了但用户删掉的内容(说明用户认为多余或不符合其习惯)
- 保留:AI 写的用户没改(说明这些表达用户能接受)
- 新增:AI 没写但用户加上的(说明是用户的主动写作习惯)
- 输出 diff 分析结果,让用户确认
-
存储
- AI 原版存为
samples/{编号}_contrast_ai.md
- 用户改写版存为
samples/{编号}_contrast_human.md
- 两个文件的 frontmatter:
---
id: "{编号}"
source: contrast
date: "{当天日期}"
topic: "{主题}"
word_count: {字数}
pair: "{对应文件名}"
---
- 更新画像
- 对照改写产生的 diff 信号权重更高(一次 diff 证据 ≈ 两篇直接投喂的证据)
- 替换类 diff 直接记录为"对照映射",置信度起步为"中"
- 执行增量更新,写入 changelog
模式三:对照改写 — 逐段(write-part)
触发: /copy-writing write-part [主题或要求]
流程
-
AI 写第一段
- 读取画像 + 样本,写出文章的第一段(或第一个部分)
- 分配编号,创建临时文件
samples/.wip_{编号}.md 记录进度
- 输出,请用户修改
-
用户改写 → AI 学习 → 写下一段
- 接收用户改写的第一段
- 立即分析 diff,提取风格信号(暂存在内存中用于指导后续段落)
- 同时将本段的 AI 原版和用户改写版追加写入临时文件,防止上下文压缩丢失数据
- 基于刚学到的风格信号,写第二段(应该比第一段更接近用户风格)
- 输出,请用户继续改写
-
循环直到完成
- 用户可以说"继续"(表示当前段不需要改,直接写下一段)
- 用户可以说"结束"或"完成",结束循环
-
收尾
- 从临时文件读取所有段落(而非依赖内存),拼接存为正式样本对
_contrast_ai.md 和 _contrast_human.md
- 删除临时文件
.wip_{编号}.md
- 汇总所有段的 diff 分析,一次性更新画像
- 输出完整的 diff 分析和画像变更
- 边界情况:如果用户对每一段都说"继续"(未做任何修改),则 AI 版和用户版完全相同,此时不存储对照样本、不更新画像,仅告知用户"本轮未产生风格差异数据"
模式四:风格改写(apply)
触发: /copy-writing apply [需要改写的文本]
前提
样本库至少需要 3 篇样本才能使用此模式。不足 3 篇时提示用户先积累样本。
流程
-
加载风格上下文
- 读取画像
- 从样本库选取 few-shot 示例(选取策略见下方)
-
改写
- 用用户的风格改写输入文本
- 核心要求:不是"套规则",而是"像这个人会怎么写这段话"
- 改写时参考 few-shot 示例中的语感、节奏、用词,画像作为辅助检查
-
自检
- 改写完成后,对照画像做一轮自检
- 注意:自检不是逐条核对规则,而是整体感觉——"这篇读起来像是样本库里同一个人写的吗?"
- 如果自检发现明显不像:标注哪些地方不对劲,自行修正一轮后再输出。不要反复自检超过一轮——一轮修正后仍有偏差,交给用户反馈比自己纠结更有效
-
输出并收集反馈
- 输出改写结果
- 问:"这次像不像你写的?哪里不像可以告诉我。"
- 如果用户给了反馈,作为用户修正写入画像(最高权重)
Few-shot 示例选取策略
按优先级排序:
- 对照模式的 human 版(最能体现用户风格偏好)
- 最近的样本(风格可能随时间变化)
- 主题相关的样本(同类话题的写法更有参考性)
选取 2-3 篇,总 token 控制在 4000 以内,避免挤占改写空间。
模式五:样本管理(manage)
触发: /copy-writing manage [list|view <编号>|delete <编号>]
子命令
manage list(默认,无子命令时等同 list)
列出所有样本,每行一条:
#{编号} {日期} {来源} {主题} ({字数}字)
manage view <编号>
读取并展示指定编号的样本全文。对照改写样本同时展示 AI 版和用户版。
manage delete <编号>
- 向用户确认:"确定删除样本 #{编号}({主题})?"
- 确认后删除文件。对照改写样本删除
_contrast_ai.md 和 _contrast_human.md 两个文件。
- 不联动更新画像——画像中引用该编号的条目保留原样,等下次全量审视时自动清理。
- 写入 changelog:"删除样本 #{编号}"。
模式六:查看状态(status)
触发: /copy-writing status
输出内容
📊 Copy Writing 状态
样本库:{N} 篇(直接投喂 {X} 篇,对照改写 {Y} 对)
画像版本:v{版本号},最后更新 {日期}
总字数:约 {字数} 字
置信度分布:高 {a} 条 / 中 {b} 条 / 低 {c} 条
最近 5 篇样本:
#{编号} {日期} {来源} {主题} ({字数}字)
...
距下次全量审视还差 {10 - (sample_count - last_review_sample_count)} 篇样本
风格画像结构
画像文件 profiles/default.md 的结构:
---
version: 1
sample_count: 0
last_updated: ""
last_review_sample_count: 0
---
# 风格画像
## 整体印象
(自由文本,描述对这个作者写作风格的整体感受。每次全量审视时重写。)
## 词汇习惯
(每条观察一个段落,格式如下)
{观察描述,用概率性语言}
[来源: #{样本编号列表} | 置信: {高/中/低} | 更新: {日期}]
[对照证据: #{编号} {具体diff描述}](如有)
## 句式与节奏
(同上格式)
## 结构偏好
(同上格式)
## 语气与态度
(同上格式)
## 对照改写映射
(从对照模式 diff 中提取的直接映射关系)
AI 表达 → 用户偏好表达 [来源: #{编号列表}]
## 用户修正
(用户直接告知的偏好,最高权重,不会被自动更新覆盖)
{修正内容} [用户修正 {日期}]
画像更新策略
措辞规范
画像中禁止出现以下绝对化措辞:
- ❌ 绝不、永远不、必须、禁止、一定、总是
- ✅ 倾向于、经常、偶尔、很少、目前样本中未出现、有时
即使某个特征在所有样本中都一致,也只写"在目前所有样本中都一致",不写"总是如此"。
置信度定义
证据权重换算:1 次对照 diff = 2 篇直接投喂。累计等效篇数决定置信度:
- 低:等效 1 篇(仅 1 篇直接投喂,或仅从推断得出)
- 中:等效 2-3 篇(如 2 篇直接投喂,或 1 次对照 diff,或 1 篇直接投喂 + 1 次对照 diff 中的等效 2 篇取中)
- 高:等效 ≥4 篇(如 4 篇直接投喂,或 2 次对照 diff,或 1 次对照 diff + 2 篇直接投喂),或用户手动确认(直接升高,无需累计)
第一层:增量补丁(每次新增样本时执行)
读取当前画像 + 新样本,执行以下判断:
- 新发现(画像中没有的特征)→ 添加新条目,标注
置信: 低
- 印证已有(新样本支持画像中的某条观察)→ 追加来源编号,必要时升级置信度
- 分歧(新样本与画像中某条观察矛盾)→ 不立即修改,在该条目下追加分歧标注:
[分歧: #{编号} 中出现了与本条不一致的情况:{具体描述}]
- 对照 diff 映射→ 添加到"对照改写映射"区域,置信度起步为"中"
第二层:周期性全量审视(当 sample_count - last_review_sample_count ≥ 10 时触发)
读取画像 + 最近 20 篇样本(不足 20 则全读),执行:
- 重新审视每条观察,验证是否仍然成立
- 处理分歧:如果某条标了分歧且近期样本不再支持原判断 → 修改或删除
- 清理过期条目:
置信: 低 且距添加已超过 10 篇新样本仍未被印证 → 删除
- 重写"整体印象"段
- 画像版本号 +1
- 更新 frontmatter 中的
last_review_sample_count 为当前 sample_count
第三层:用户修正(随时,通过 apply 模式的反馈或直接告知)
- 用户修正写入"用户修正"区域
- 标注日期
- 用户修正是最高权重,不会被第一层或第二层的自动更新覆盖或降级
- 如果自动分析与用户修正矛盾,以用户修正为准,并在对应自动条目上标注"已被用户修正覆盖"
样本数量与策略变化
随着样本积累,skill 的工作方式自动调整:
| 阶段 | 样本数 | 画像角色 | 样本读取策略 |
|---|
| 冷启动 | 1-5 | 初步观察,置信度普遍低 | 全部读取作为 few-shot |
| 成长期 | 6-20 | 逐渐可靠,高置信条目增多 | 画像 + 挑选 3 篇 few-shot |
| 成熟期 | 21-50 | 主力参考 | 画像为主 + 2 篇 few-shot |
| 稳定期 | 50+ | 稳定可靠,变化趋缓 | 画像为主 + 1-2 篇最新 few-shot |
注意事项
-
不要过度分析。 不是每篇样本都要提取出新发现。如果一篇样本跟已有画像完全一致,只需要更新确认时间,不需要强行找新东西。
-
不要编造风格特征。 只记录确实在样本中观察到的特征,不要从"这个人是什么类型的写作者"去推断他"应该"有什么特征。
-
对照改写模式中,保留的部分也是信号。 用户没改的地方说明 AI 的这些表达是可接受的,不需要特别记录但在改写时可以放心使用类似表达。
-
apply 模式的目标是"像"而不是"完美遵守画像"。 最终检验标准是:把改写结果混在用户的真实文章里,读起来不突兀。
-
一个人在不同场景下写法可能不同。 同一个人写社交媒体和写邮件的风格可能差异很大,分析时注意区分场景,这是正常变化,不是分歧。