|
| 1 | +# v0.17.0:AI 精修可到达度——策略化提示词 + 笔记级 AI 能力 + 流式会话化 |
| 2 | + |
| 3 | +> 状态:已交付(2026-09-01,代码建设完成) |
| 4 | +> 依据:用户对话——①「AI 精修提示词可选项」(例子具体程度/概念学术通俗/原文保留程度等)②「笔记页编辑模式使用 AI 精修(手写刚需)+ 知识补充并入编辑模式入口」③「精修会话化:跳转 AI 对话、显示所发送提示词、流式返回、完成后回到会话/查看笔记」④观众视角价值体系分析(旋钮设计依据) |
| 5 | +> 设计:[spec 2026-09-01](../superpowers/specs/2026-09-01-ai-refine-strategy-flow-design.md) · [ADR-026](../adr/ADR-026-ai-refine-strategy-flow.md) · REQ-245/246/247 |
| 6 | +
|
| 7 | +## 一、目标 |
| 8 | + |
| 9 | +精修从「固定模板」升级为「用户可到达」:发起时选**目标/变化程度**(书面 chips + 四档阶梯 + 六旋钮),实时看到**提示词怎么变**(所见即所发),生成时**对话式流式呈现**(片级解析流),完成后**前后对比可溯源**(工作台溯源条)+ **回到会话/查看笔记双入口**;AI 能力从会话级扩展到**笔记级**(手写笔记刚需——编辑态 🤖 AI 统一入口)。 |
| 10 | + |
| 11 | +## 二、交付清单 |
| 12 | + |
| 13 | +| # | 项 | 说明 | |
| 14 | +|---|----|------| |
| 15 | +| 1 | **策略声明 v3** | `prompts/note_refine.json` v3:`strategy_dims`(6 旋钮)+ `ladder_presets`(四档)+ `intents`(五书面 chips + 关键词)+ `handwritten` 笔记式风格(仅笔记级,采集端零改动) | |
| 16 | +| 2 | **策略层** | `ai_strategy.rs` 纯函数(resolve 回退链/指令拼装/预览组装)+ 测试;**L2 标准精修与 v0.16.1 逐字节一致**(零变化回归) | |
| 17 | +| 3 | **提示词管线** | `core + style_system + strategy(策略段落) + few_shot + output_format`;`ai_refine_prompt_preview`(**与实发同一 build_system 路径**——所见即所发)+ `ai_refine_strategy_meta`(声明即事实源) | |
| 18 | +| 4 | **任务级覆盖** | `ai_refine_start(strategy)` / `ai_note_refine_start(strategy)`——全局默认(`AiSettings.refine_strategy`,serde default 零迁移)+ 任务覆盖;非法值回退默认(防御性铁律) | |
| 19 | +| 5 | **发起 UI** | `RefineLaunchDialog`(目标 chips/档位/旋钮 + 提示词只读实时预览 + 复制 + 成本/授权)+ `RefineStrategyPicker` + 记忆(localStorage 上次选择) | |
| 20 | +| 6 | **笔记级精修** | `ai_note_refine_estimate/start/apply` + `ai_note_refine_task.rs`——输入=编辑器当前内容**直接传参**(未保存所见即所修);基线=当前笔记版;采纳防覆盖(笔记已变拒绝);版本链 source=ai-refine 复用;工作台笔记级模式 | |
| 21 | +| 7 | **编辑态统一入口** | 笔记页「🤖 AI」按钮 → `NoteAiDialog`(AI 精修 / 知识补充——EnrichPanel 九子项内嵌复用);阅读态点击**直接进入编辑态**(用户裁决);阅读态侧栏独立 EnrichPanel 移除 | |
| 22 | +| 8 | **流式会话化** | 事件通道 `"ai:refine-stream"`(progress/block_done/slice_failed/done 帧——片完成 validate 后推渲染,中间态永不承诺);对话线程任务卡流式正文(`useRefineStream`,乱序按片序归集)+ 完成态 **[回到会话] [查看笔记]** 双入口;任务表语义(成本/审计/重试/轨迹终态)全保留 | |
| 23 | +| 9 | **工作台溯源条** | 档位名 + 非默认旋钮 chips(meta 声明解析——「按什么规则变的」可溯源);完整提示词走轨迹(REQ-230 既有可见性) | |
| 24 | +| 10 | **设置页偏好** | `AiPreferenceSettings`(AiServicePanel 增量小节):默认档位/目标 + 微调 → `ai_set_refine_strategy`(仅存偏离最小集) | |
| 25 | +| 11 | **协议扩展** | 唯一改动:image 块前缀白名单化(`session-images/` + `notes-images/`——笔记级配图,向后兼容) | |
| 26 | + |
| 27 | +## 三、REQ 登记 |
| 28 | + |
| 29 | +| REQ | 需求 | 状态 | 备注 | |
| 30 | +|-----|------|------|------| |
| 31 | +| REQ-245 | AI 精修策略层(声明 v3/纯函数/预览/meta/全局默认+任务覆盖) | 已实施 | 协议零改动;L2 零变化回归 | |
| 32 | +| REQ-246 | 笔记级 AI 能力(编辑态 🤖 AI 菜单/传参/手写档案/工作台笔记级/入口迁移) | 已实施 | 手写刚需;采纳防覆盖 | |
| 33 | +| REQ-247 | 精修流式会话化(事件帧/片级解析流/对话卡流式/双入口) | 已实施 | B+ 档;任务表语义保留 | |
| 34 | + |
| 35 | +## 四、测试 |
| 36 | + |
| 37 | +- Rust:策略解析回退链/每档指令/意图匹配/**L2 逐字节零变化**(golden 快照)+ 流式帧 serde 契约 + 手写档案契约 + 笔记级章节提取;全量 **1884/1886 通过**(2 例失败为 **dev 预存**:`note_filter` 的 `session29_live_ui_excluded_from_points`/`ocr_points_exclude_watermark_junk_and_dupes`——本批未触碰 note_filter 任何文件,经 git 工作区核对确认为早于本批的遗留红,另立排查项) |
| 38 | +- 前端:refineStrategy 纯函数 10 测全绿(档位联动/意图/偏离/契约往返);全量 vitest 待跑(构建验证见 CI/本地 tsc) |
| 39 | +- 已验证:`cargo test` 策略层+笔记级+流式全绿;`vitest` 新增用例全绿 |
| 40 | + |
| 41 | +## 五、遗留与后续 |
| 42 | + |
| 43 | +- `note_filter` 预存红 2 例(与本批无关,独立排查:`watermark/junk` 口径与断言漂移) |
| 44 | +- TaskLaunchDialog(对话页 `/refine`)接入策略区(当前任务发起走全局默认——对话发起的策略选择留待下一步,架构已通) |
| 45 | +- 「再来一版·更/少干预」未独立成 UI(重生成已接父级管线 + 全局偏好;档位透传下一批) |
| 46 | +- 块级增量 JSON 解析(C 档)留作升级桥(帧格式不变) |
| 47 | + |
| 48 | +## 六、文件 |
| 49 | + |
| 50 | +**Rust**:`ai_strategy.rs`(新)+ `ai_strategy_tests.rs`(新)· `ai_note_refine_task.rs` + 测试(新)· `commands_ai_note_refine.rs` + 测试(新)· `ai_note_refine.rs`(组装管线/适配器)· `ai_refine_task.rs`(骨架提取/流式帧/共享并发)· `ai_refine_protocol.rs`(image 白名单)· `ai_settings.rs`(refine_strategy)· `commands_ai_refine.rs`(start 参数/meta/preview/双形态)· `commands_ai_settings.rs`(ai_set_refine_strategy)· `lib.rs`(mod/注册)· `prompts/note_refine.json`(v3) |
| 51 | + |
| 52 | +**前端**:`RefineLaunchDialog.tsx` · `RefineStrategyPicker.tsx` · `NoteAiDialog.tsx`(新)· `useRefineStream.ts`(新)· `utils/refineStrategy.ts` + 测试(新)· `AiRefineCard.tsx`(接入对话框)· `RefineWorkbench.tsx`(笔记级模式+溯源条)· `TaskThreadCard.tsx`(流式+双入口)· `AiServicePanel.tsx`(产出偏好)· `NotesPage.tsx`(🤖 AI 入口)· `NoteEditView.tsx`/`RichEditorView.tsx`(getContent)· `ChatPage.tsx`(双入口接线)· `types/ai.ts`(策略契约) |
| 53 | + |
| 54 | +**文档**:spec 2026-09-01 · ADR-026 · REQ-245~247 登记 · 本版本文档 |
0 commit comments