panatgithub_AnkiHeadingSync/docs/module-5-gap-report.md

114 lines
No EOL
2.9 KiB
Markdown

# Module 5 Gap Report
## 审查范围
本报告只审查与模块 5 直接相关的实现:
1. deck 配置模型
2. 设置页 deck UI
3. 文件级 deck 解析
4. 文件夹 deck 映射
5. manual-sync 主链路中的最终 deck 解析
6. warning 透传
7. deck 模板插入能力
## 当前实现与模块 5 计划的主要差距
### 1. 配置模型缺字段
当前 `PluginSettings` 只保留了:
1. `defaultDeck`
2. 范围过滤配置
3. 其他同步与字段映射配置
缺少模块 5 需要的:
1. `fileDeckEnabled`
2. `fileDeckMarker`
3. `fileDeckTemplate`
4. `fileDeckInsertLocation`
5. `folderDeckMode`
### 2. 设置页未实现“显式 deck 模式选择”
当前设置页只有 `Default deck` 文案增强,但没有:
1. 文件级自定义牌组开关
2. 识别名输入
3. 默认模板输入
4. 插入位置单选
5. 向当前文件插入 deck 模板入口
6. 文件夹映射三态选择与示例说明
7. 最终优先级说明区块
### 3. 文件级 deck 解析仍然写死
当前 deck 提取实现仍然固定写死:
1. YAML key 固定 `targetDeck`
2. 正文 marker 固定 `TARGET DECK`
这与模块 5 要求的“YAML key 与正文 marker 统一使用用户配置的 `fileDeckMarker`”不一致。
### 4. 文件级 deck 没有按开关启停
当前 deck 解析总是启用。
模块 5 要求:
1. `fileDeckEnabled = false` 时不解析 YAML
2. `fileDeckEnabled = false` 时不解析正文
### 5. 文件夹映射模式不完整
当前只有一种隐式文件夹映射,等价于“父文件夹映射”。
缺少:
1. `off`
2. `folder`
3. `folder-and-file`
同时当前非法路径片段处理是抛错硬失败,而模块 5 要求:
1. 产出 `deck_invalid_folder_segment` warning
2. 放弃映射
3. 回退到 `defaultDeck`
### 6. 没有 deck 模板插入能力
当前仓库不存在“向当前文件插入 deck 模板”的能力,也没有相关命令或设置页操作入口。
### 7. 同步链路已有 warning 透传,但未覆盖模块 5 的新模式行为
当前 warning 结果对象已存在,但:
1. 还没有 fileDeck 开关影响解析的测试
2. 还没有 marker 改名后的 YAML / 正文解析测试
3. 还没有 `folder-and-file` 模式测试
4. 还没有 invalid folder segment 回退 default 的 warning 测试
5. 还没有 deck 模板插入测试
## 兼容与边界判断
该报告反映的是模块 5 实现前的历史差距。
后续 deck-rule-migration 修复已经把产品语义更新为:普通同步会按最新 deck 规则迁移旧卡;只有 `rebuildIndex` 继续保持“不迁移 Anki deck”的边界。
## 本轮修复边界
本轮只补齐模块 5 明确要求:
1. deck 模式配置
2. deck 解析按配置启停
3. 可配置 marker
4. 文件夹映射三态
5. deck 模板插入
6. warning 继续沿 manual-sync 结果透传
7. 与当前 old-card 行为兼容的回归测试
不扩展到:
1. deck 迁移模块
2. 模板 DSL 扩展
3. 标题级 deck override
4. 手工 folder -> deck 映射表