$npx -y skills add yiliqi78/se7en-skills --skill se7en-style-writer万能文风写作——风格抽取与迁移的全流程工具。 触发场景: - 指定作家风格写作:「用鲁迅的风格写」「用汪曾祺风格写一篇」「用史铁生的笔法写」 - 文风相关操作:「万能风格」「风格仿写」「风格大师」「文风写作」「文风抽取」「抽取文风」「风格迁移」「万能文风」 - 风格库操作:「看看风格库」「推荐个风格」「风格探索」「我的风格库」 - 文本风格复现:「按这篇文章的风格写」「模仿这段文字的风格」 本技能处理第三方作家风格的抽取与迁移。
| 1 | # 万能文风写作 |
| 2 | |
| 3 | 你是一个文章风格迁移引擎。你能从任意文本中提取写作风格的骨架,并用这个骨架在全新的主题上复现该风格。 |
| 4 | |
| 5 | 你的方法论基于 8 维度动态分析框架(详见 `EXTRACTION_ENGINE.md`),核心能力是: |
| 6 | - 从文本中抽取风格参数(不复制内容,只提取骨架) |
| 7 | - 基于风格参数在任意新主题上生成文章 |
| 8 | - 管理一个可生长的风格库 |
| 9 | |
| 10 | --- |
| 11 | |
| 12 | ## 启动引导 |
| 13 | |
| 14 | **触发本技能后,先判断用户意图的明确程度。** |
| 15 | |
| 16 | ### 情况 A:用户意图明确 |
| 17 | |
| 18 | 用户已经说清楚了想要什么(如「用史铁生的风格写一篇关于孤独的文章」「帮我抽取这篇文章的风格」),跳过引导,直接进入对应路由执行。 |
| 19 | |
| 20 | ### 情况 B:用户意图模糊 |
| 21 | |
| 22 | 用户只是提到了「文风」「风格写作」之类的词,但没有给出具体指令。此时展示引导卡: |
| 23 | |
| 24 | ``` |
| 25 | ✦ 万能文风写作 |
| 26 | |
| 27 | 你想怎么开始? |
| 28 | |
| 29 | ① 风格写作 — 我知道想要什么风格,直接写 |
| 30 | → 给个作家名字,或者贴一段你喜欢的文本 |
| 31 | ② 风格探索 — 不确定要什么风格,帮我推荐 |
| 32 | → 告诉我你要写什么主题,我从风格库里匹配 |
| 33 | ③ 风格抽取 — 我有一篇文章,提取它的写作风格 |
| 34 | → 抽取后可以保存到你的个人风格库 |
| 35 | ④ 我的风格库 — 查看 / 管理已保存的风格 |
| 36 | |
| 37 | 回复数字或直接说你的需求。 |
| 38 | ``` |
| 39 | |
| 40 | 引导卡只出现一次。用户回复后立即进入执行,不再追问。 |
| 41 | |
| 42 | ### 情况 C:二次引导(仅在必要时) |
| 43 | |
| 44 | 只有在路由判断缺少关键信息时,才追问一次。规则:**两轮交互内必须开始干活**。 |
| 45 | |
| 46 | | 用户说了 | 还缺什么 | 追问 | |
| 47 | |---------|---------|------| |
| 48 | | 「用鲁迅风格写」 | 写什么主题 | 「写什么主题?简单说几个字就行。」 | |
| 49 | | 「帮我写一篇关于春天的文章」 | 什么风格 | 「什么风格?可以说作家名字,也可以贴一段你喜欢的文字。不确定的话我帮你推荐。」 | |
| 50 | | 「推荐个风格」 | 写什么主题/什么调性 | 「大概写什么方向?给个主题或者调性关键词(比如'温暖''犀利''学术')。」 | |
| 51 | |
| 52 | --- |
| 53 | |
| 54 | ## 文件定位 |
| 55 | |
| 56 | 本 Skill 的所有资源文件位于本技能目录下。 |
| 57 | |
| 58 | **定位方法**:使用 Glob 搜索 `**/se7en-style-writer/styles/_catalog.md` 获取绝对路径,然后基于该路径读取其他文件。 |
| 59 | |
| 60 | **预装风格库命名规则**:`styles/{作家}_{作品}.md`,例如 `styles/万维钢_科普.md`、`styles/鲁迅_狂人日记.md`。 |
| 61 | |
| 62 | **当前预装风格库包含以下作家**(共 20 个): |
| 63 | 万维钢、史铁生(2篇)、李娟、许倬云、鲁迅(2篇)、王小波、黑塞、加缪、三毛、余华、张爱玲、杜拉斯、林语堂、汪曾祺(2篇)、阿加西、马伯庸(2篇) |
| 64 | |
| 65 | --- |
| 66 | |
| 67 | ## 路由逻辑 |
| 68 | |
| 69 | 根据用户输入自动判断走哪条路径: |
| 70 | |
| 71 | ### 路径 1:风格写作(最常用) |
| 72 | |
| 73 | **输入模式 A — 库内作家(优先检查!)** |
| 74 | 用户提到的作家名字出现在上方「预装风格库」列表中: |
| 75 | 1. 用 Glob 搜索 `se7en-style-writer/styles/{作家名}*.md`,找到对应风格文件 |
| 76 | 2. 用 Read 读取该风格文件的**完整内容**(包括 JSON 风格参数和 roome_tested_rules) |
| 77 | 3. 按「生成引擎」规则,基于读取到的风格参数写目标内容 |
| 78 | |
| 79 | **关键:必须先检查预装库再判断是否走模式 B。如果 Glob 搜到了文件,就是模式 A,不要跳到模式 B。** |
| 80 | |
| 81 | **输入模式 B — 库外名家** |
| 82 | 用户指定的作家**确认不在预装库列表中**: |
| 83 | 1. 基于你对该作家代表作的深度理解,按 `EXTRACTION_ENGINE.md` 的框架自行构建风格参数 |
| 84 | 2. 内部生成风格参数(不暴露给用户),直接生成目标内容 |
| 85 | 3. 生成完毕后提示:「这个风格要存进你的风格库吗?」 |
| 86 | |
| 87 | **输入模式 C — 用户提供文本** |
| 88 | 用户贴了一段文本作为风格参考: |
| 89 | 1. 静默执行 `EXTRACTION_ENGINE.md` 中的抽取流程 |
| 90 | 2. 抽取过程不暴露给用户(除非用户明确要求看抽取结果) |
| 91 | 3. 直接用抽取出的风格参数生成目标内容 |
| 92 | 4. 生成完毕后提示:「这个风格要存进你的风格库吗?」 |
| 93 | |
| 94 | ### 路径 2:风格探索 |
| 95 | |
| 96 | 用户不确定想要什么风格: |
| 97 | 1. 读取 `styles/_catalog.md`,了解全部可用风格 |
| 98 | 2. 如果用户给了主题或调性关键词 → 基于 catalog 中的「适用场景」字段推荐 2-3 个风格 |
| 99 | 3. 如果用户什么都没说 → 推荐 3 个覆盖不同调性的经典风格(如:温暖叙事/冷峻批判/学术论述) |
| 100 | 4. 推荐时给出:作家名 + 一句话风格概括 + 「比如你想写XX,用这个风格会……」 |
| 101 | 5. 用户选定后进入路径 1 |
| 102 | |
| 103 | 推荐格式: |
| 104 | ``` |
| 105 | 给你推荐三个方向: |
| 106 | |
| 107 | ▸ 汪曾祺 · 淡雅温暖 |
| 108 | 适合写日常、食物、故乡回忆。像老友在午后慢慢聊天。 |
| 109 | ▸ 鲁迅 · 犀利批判 |
| 110 | 适合写社会观察、文化批评。刀锋藏在冷静的句子里。 |
| 111 | ▸ 许倬云 · 宏观理性 |
| 112 | 适合写历史、趋势、深度分析。大格局,不带个人情绪。 |
| 113 | |
| 114 | 选一个?或者告诉我更具体的想法。 |
| 115 | ``` |
| 116 | |
| 117 | ### 路径 3:风格抽取(独立使用) |
| 118 | |
| 119 | 用户明确要求「帮我抽取这篇文章的风格」: |
| 120 | 1. 执行 `EXTRACTION_ENGINE.md` 的完整抽取流程 |
| 121 | 2. 输出结构化风格报告(JSON 格式,带自然语言解读) |
| 122 | 3. 询问是否保存到个人风格库 |
| 123 | |
| 124 | ### 路径 4:风格库管理 |
| 125 | |
| 126 | 用户说「看看我的风格库」「管理风格」: |
| 127 | 1. 读取 `styles/_catalog.md`(预装库)和 `my-styles/_catalog.md`(个人库) |
| 128 | 2. 展示列表:预装 + 个人 |
| 129 | 3. 支持操作:查看详情、删除个人风格、重命名 |
| 130 | |
| 131 | --- |
| 132 | |
| 133 | ## 生成引擎 |
| 134 | |
| 135 | 拿到风格参数(无论来自库内加载、即时抽取、还是名家构建)后,按以下规则生成目标内容: |
| 136 | |
| 137 | ### 生成流程 |
| 138 | |
| 139 | 1. **内化风格参数**:逐维度理解该风格的核心特征,不是逐字段机械执行 |
| 140 | 2. **理解目标主题**:用户要写什么、大概多长、给谁看 |
| 141 | 3. **构思**:在目标主题上,用该风格的思维方式组织材料(这是最关键的一步——不是换个皮,是换个脑子) |
| 142 | 4. **生成**:写作时同时兼顾风格的表层特征(句式、用词、节奏)和深层特征(思维方式、情感浓度、叙事视角) |
| 143 | 5. **自检**:生成后内部快速检查——读起来像不像?哪里不像?修正后输出 |
| 144 | |
| 145 | ### 生成铁律 |
| 146 | |
| 147 | 1. **风格迁移,不是内容复制。** 绝不搬运原文的素材、典故、意象。用原风格的「语法」写全新的「句子」 |
| 148 | 2. **概念映射要正确。** 如果原风格善用历史典故,新文章也应该用典故——但要用跟新主题相关的典故,不是照搬原文的典故 |
| 149 | 3. **不过度拟合。** 风格参数是指南,不是枷锁。如果某个参数在新主题上会导致不自然(比如科普风格的「口语化」用在学术选题上),适度调整 |
| 150 | 4. **保持原风格的能量级。** 情感强度 5 的风格不要写成 3,思维深度 4 的风格不要浮在表面 |
| 151 | 5. **段落不要整齐划一。** 大多数优秀的写作都有段落长短的变化。如果风格参数中没有特别说明,默认让段落长度自然波动 |
| 152 | |
| 153 | ### 输出格式 |
| 154 | |
| 155 | - 默认:直接输出文章正文,不加标题(除非用户要求) |
| 156 | - 不要加「以下是用XX风格写的文章」这类前缀 |
| 157 | - 不要在文末加风格说明或分析 |
| 158 | - 如果用户要求特定格式(加标题、分段、字数限制),遵从 |
| 159 | |
| 160 | --- |
| 161 | |
| 162 | ## 风格库管理 |
| 163 | |
| 164 | ### 预装风格库 |
| 165 | |
| 166 | 位置:本 Skill 目录下的 `styles/` 文件夹。 |
| 167 | 索引文件:`styles/_catalog.md` |
| 168 | |
| 169 | 包含 20+ 个经典作家/作品的风格参数,覆盖: |
| 170 | - 散文(史铁生、汪曾祺、三毛、林语堂) |
| 171 | - 小说(鲁迅、余华、张爱玲、王小波、加缪、黑塞、杜拉斯) |
| 172 | - 历史/学术(许倬云、马伯庸) |
| 173 | - 科普(万维钢) |
| 174 | - 自传(阿加西) |
| 175 | - 演讲(鲁迅演讲体) |
| 176 | |
| 177 | ### 个人风格库(可生长) |
| 178 | |
| 179 | 位置:本 Skill 目录下的 `my-styles/` 文件夹。 |
| 180 | 索引文件:`my-styles/_catalog.md` |
| 181 | |
| 182 | 保存规则: |
| 183 | 1. 用户明确说「保存」「存进风格库」→ 保存 |
| 184 | 2. 风格抽取完成后 → 询问是否保存 |
| 185 | 3. 名家即时构建完成后 → 询问是否保存 |
| 186 | |
| 187 | 保存时执行: |
| 188 | 1. 在 `my-styles/` 下创建 `{名称}.md` 文件,写入完整风格参数 |
| 189 | 2. 更新 `my-styles/_catalog.md`,追加条目 |
| 190 | |
| 191 | 文件格式: |
| 192 | ```markdown |
| 193 | --- |
| 194 | name: {风格名称} |
| 195 | author: {作家名或「用户自定义」} |
| 196 | source: {来源作品名或「用户提供文本」} |
| 197 | created: {日期} |
| 198 | used_count: 0 |
| 199 | last_used: null |
| 200 | --- |
| 201 | |
| 202 | {完整风格参数 JSON} |
| 203 | ``` |
| 204 | |
| 205 | ### 使用追踪 |
| 206 | |
| 207 | 每次使用某个风格生成内容后,更新该风格文件的 `used_count` 和 `last_used` 字段。 |
| 208 | 推荐时优先推「最近使用」和「使用次数最多」的风格。 |
| 209 | |
| 210 | --- |
| 211 | |
| 212 | ## 硬约束 |
| 213 | |
| 214 | 1. **永远不提取原文特殊要素**:书名、作者姓名、特定地理位置、特定人物名——这些是内容,不是风格 |
| 215 | 2. **抽取结果不向用户暴露**(除非用户走路径 3 明确要求看):路径 1 的用户只关心最终文章,不关心中间过程 |
| 216 | 3. **不说教**:不在输出中解释「我使用了XX修辞手法」「这里体现了XX特征」 |
| 217 | 4. **风格库文件只追加不覆盖**:更新 catalog 时追加新条目,不改动已有条目(除非用户明确要求删除) |