Pārlūkot izejas kodu

docs: design de-ai skill library

Mochocyang 3 mēneši atpakaļ
vecāks
revīzija
aa7f370a45

+ 160 - 0
docs/superpowers/specs/2026-06-29-de-ai-skill-library-design.md

@@ -0,0 +1,160 @@
+# 去AI味技能库设计
+
+## 目标
+
+新增一级入口「技能库」,第一版只管理去AI味技能。用户可以使用内置预设,也可以为当前项目手动添加多个去AI味技能;在 AI 会话、整章去AI味、选中文本去AI味时选择并调用指定技能。
+
+本设计不实现通用 Skill 库,只解决多个去AI味 Skill 的管理和调用。
+
+## 成功标准
+
+- 左侧主导航新增「技能库」入口,并纳入现有排序和隐藏能力。
+- 技能库可管理内置去AI味技能和项目自定义去AI味技能。
+- 用户可通过模板创建项目技能,也可手动编辑名称、说明和规则正文。
+- 每个技能都有开关;关闭后不出现在 AI 会话和章节去AI味选择列表里。
+- 当前项目记住默认去AI味技能。
+- AI 会话输入框底部提供技能图标,选中技能后当前会话持续生效。
+- 普通聊天和写作工作流都会注入当前会话选中的去AI味技能。
+- 整章去AI味和选中文本去AI味点击后先选择技能,再调用模型,并继续走现有预览确认流程。
+- 保留旧版 `de-ai-skill.txt`,并兼容为一个项目技能来源。
+
+## 范围
+
+第一版包含:
+
+- 技能库一级页面。
+- 5 个内置模板:综合去AI味、减少解释腔、对话口语化、打破工整句式、保留文艺感。
+- 项目级去AI味技能增删改查。
+- 内置技能关闭、复制为项目技能。
+- 项目默认技能。
+- AI 会话技能选择和注入。
+- 章节整章与选中文本去AI味技能选择。
+
+第一版不包含:
+
+- 通用 Skill 库。
+- 润色、审稿、写作风格等其他技能类型。
+- Skill 市场、导入导出。
+- AI 自动生成 Skill。
+- 删除或迁移清理旧版 `de-ai-skill.txt`。
+
+## 界面设计
+
+左侧主导航新增「技能库」,和章节库、大纲、灵魂、小说图谱同级。它不是主题、设置、切换项目,因此应纳入现有左侧功能栏排序和隐藏设置。
+
+技能库页面采用左侧列表加右侧详情编辑:
+
+- 左侧列表展示所有去AI味技能。
+- 每项展示名称、简短说明、来源标记:内置或项目。
+- 每项提供开关;关闭后隐藏于调用入口。
+- 当前项目默认技能显示“默认”标记。
+- 左侧顶部提供“新建技能”按钮。
+- 右侧编辑当前选中技能的名称、说明、模板来源和规则正文。
+- 内置技能不可直接编辑正文,只能关闭或复制为项目技能。
+- 项目技能可编辑、设为默认和删除。
+
+新建技能时先选择模板。选择模板后自动填入名称、说明和规则正文,用户可修改后保存为项目技能。
+
+## 数据设计
+
+项目根目录新增配置文件:
+
+```json
+{
+  "version": 1,
+  "defaultSkillId": "built-in:comprehensive",
+  "disabledSkillIds": [],
+  "projectSkills": [
+    {
+      "id": "project:example",
+      "name": "我的去AI规则",
+      "description": "适合当前作品的去AI味处理",
+      "templateId": "reduce-explanation",
+      "content": "完整 Skill 规则正文",
+      "createdAt": 123456789,
+      "updatedAt": 123456789
+    }
+  ]
+}
+```
+
+内置技能由软件代码提供,不写入项目文件。项目文件只保存项目技能、默认技能和关闭状态。
+
+推荐内置技能 ID:
+
+- `built-in:comprehensive`
+- `built-in:reduce-explanation`
+- `built-in:dialogue-natural`
+- `built-in:break-regularity`
+- `built-in:literary-retain`
+
+兼容旧版:
+
+- 如果项目存在 `de-ai-skill.txt` 且没有 `de-ai-skills.json`,系统把它识别为一个项目技能。
+- 该技能可命名为“旧版自定义去AI味 Skill”。
+- 默认技能优先指向旧版自定义技能。
+- 不自动删除 `de-ai-skill.txt`。
+
+AI 会话数据增加:
+
+- `selectedDeAiSkillId?: string | null`
+
+含义:
+
+- 有值时,当前会话使用该技能。
+- `null` 表示本会话关闭去AI味技能。
+- 未设置时,使用项目默认技能。
+
+## 调用流程
+
+AI 会话:
+
+1. 输入框底部显示技能图标。
+2. 点击后展示已开启的去AI味技能,以及“关闭去AI味技能”。
+3. 用户选择技能后,当前会话持续使用。
+4. 换会话时,如果新会话没有单独选择过,则使用项目默认技能。
+5. 发送消息时,如果当前会话有可用技能,把技能正文作为系统规则注入。
+6. 普通聊天和章节生成、续写、改写等工作流都使用该技能。
+
+整章去AI味:
+
+1. 用户点击章节顶部“去AI味”。
+2. 弹出已开启技能列表。
+3. 用户点击技能后立即调用模型处理整章正文。
+4. 结果进入现有左右对比预览。
+5. 用户确认后替换正文,取消则不修改。
+
+选中文本去AI味:
+
+1. 用户选中文本并点击浮动工具栏“去AI味”。
+2. 弹出已开启技能列表。
+3. 用户点击技能后立即调用模型处理选中片段。
+4. 结果进入现有片段预览。
+5. 用户确认后只替换选中片段。
+
+## 回退规则
+
+- 没有项目配置时使用内置“综合去AI味”。
+- 项目默认技能被关闭或删除时,自动回退到第一个开启的内置技能。
+- 会话选中的项目技能被删除后,再次发送时回退到项目默认技能。
+- 所有技能都被关闭时,调用入口显示“暂无可用去AI味技能”,不发起模型调用。
+
+## 错误处理
+
+- 技能名称为空时禁止保存,提示“技能名称不能为空”。
+- 技能规则为空时禁止保存,提示“技能规则不能为空”。
+- 删除项目默认技能前弹出确认;删除后自动切换默认技能。
+- 关闭项目默认技能后自动选择下一个可用技能作为默认。
+- 内置技能不能删除。
+- 模型未配置时沿用现有模型不可用提示,不启动去AI味处理。
+- 整章或选中文本处理期间切换文件时,沿用现有文件保护,不把结果写入错误文件。
+
+## 测试计划
+
+- 配置读写:默认配置、旧版 `de-ai-skill.txt` 兼容、禁用技能、默认技能回退。
+- 技能库页面:新增、编辑、删除、开关、设为默认、内置复制为项目技能。
+- AI 会话:选择技能后普通聊天注入规则;换会话按项目默认恢复;关闭本会话技能后不注入。
+- 章节整章去AI味:选择技能后使用对应规则生成消息,预览确认后替换正文。
+- 选中文本去AI味:选择技能后只替换选区。
+- 左侧导航:技能库入口可排序、可隐藏。
+