ReadViewSDK/.planning/phases/01-current-engine-boundaries/01-02-PLAN.md

6.0 KiB
Raw Blame History

phase: 01-current-engine-boundaries plan: 02 type: execute wave: 2 depends_on: - "01-01" files_modified: - .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md autonomous: true requirements: - COMP-02 user_setup: [] must_haves: truths: - 策略文档给出“旧引擎直接演进”而不是“双引擎并存”的切入方案。 - 策略文档明确 Fixed Layout / 交互式 EPUB 继续走 WKWebView。 - 策略文档明确 RDReaderView 与现有翻页容器契约保持不变。 - 策略文档指出 Phase 2 与 Phase 3 分别应优先触碰的代码触点。 artifacts: - .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md key_links: - Doc/WXRead/analysis/* 的目标能力被映射到当前 EPUBTextRendering 触点。 - 01-reflowable-audit.md 中确认的边界被转写为后续阶段的实施约束。 基于当前审计结果和 WXRead 资料,产出一份可执行的旧引擎直接演进策略文档。

Purpose: 把“从哪里动、先动什么、哪些外部契约不能动”固定下来,作为 Phase 2/3 的实现基线。 Output: .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md

<execution_context> @$HOME/.codex/get-shit-done/workflows/execute-plan.md @$HOME/.codex/get-shit-done/templates/summary.md </execution_context>

@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/01-current-engine-boundaries/01-RESEARCH.md @.planning/phases/01-current-engine-boundaries/01-PATTERNS.md @.planning/phases/01-current-engine-boundaries/01-reflowable-audit.md @Doc/WXRead/analysis/01_核心架构与数据流图.md @Doc/WXRead/analysis/02_符号恢复与核心算法.md @Doc/WXRead/analysis/EPUB渲染管线详解.md @Doc/WXRead/analysis/DTCoreText自定义修改分析.md @Doc/FeatureSolution/ReflowableEPUB_WXReadRenderer_Design.md @Sources/RDReaderView/EPUBTextRendering/RDEPUBDTCoreTextRenderer.swift @Sources/RDReaderView/EPUBTextRendering/RDEPUBTextBookBuilder.swift @Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift @Sources/RDReaderView/RDReaderView.swift Task 1: 提炼 WXRead 目标能力到当前引擎触点 .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md .planning/phases/01-current-engine-boundaries/01-reflowable-audit.md, Doc/WXRead/analysis/EPUB渲染管线详解.md, Doc/WXRead/analysis/DTCoreText自定义修改分析.md, Sources/RDReaderView/EPUBTextRendering/RDEPUBDTCoreTextRenderer.swift, Sources/RDReaderView/EPUBTextRendering/RDEPUBTextBookBuilder.swift 新建 `01-refactor-entry-strategy.md`,把 WXRead 资料中的五层 CSS、DTCoreText 自定义属性、页面级元数据、块级避免断页、layout frame / layouter 责任拆解为当前仓库可落地的触点映射。至少给出 `RDEPUBDTCoreTextRenderer`、`RDEPUBTextBookBuilder`、`RDEPUBTextPaginationSupport`、`RDEPUBTextPage` / `RDEPUBTextChapter` 这些具体落点,并说明每个落点在 Phase 2 或 Phase 3 中承担什么职责。 rg -n "RDEPUBDTCoreTextRenderer|RDEPUBTextBookBuilder|RDEPUBTextPaginationSupport|RDEPUBTextPage|RDEPUBTextChapter|CSS|属性|分页" .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md - 文档包含明确的“WXRead 能力 -> 当前源码触点”映射 - 文档点名 `RDEPUBDTCoreTextRenderer`、`RDEPUBTextBookBuilder`、`RDEPUBTextPaginationSupport` - 文档区分 Phase 2 与 Phase 3 的切入重心 策略文档不再停留在抽象“参考 WXRead”而是把目标能力落成当前仓库里的具体改造入口。 Task 2: 固化范围边界和兼容性保留链路 .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md .planning/phases/01-current-engine-boundaries/01-reflowable-audit.md, Doc/FeatureSolution/ReflowableEPUB_WXReadRenderer_Design.md, Sources/RDReaderView/EPUBCore/RDEPUBParser+ReadingProfile.swift, Sources/RDReaderView/EPUBUI/RDEPUBReaderController.swift, Sources/RDReaderView/RDReaderView.swift 在策略文档中追加“非目标与兼容面”章节,明确列出以下内容:`webFixedLayout` 与 `webInteractive` 保持 `WKWebView``RDReaderView` 与现有翻页模式不改,阅读位置/高亮/搜索/主题切换后的重分页必须继续通过现有 `RDEPUBReaderController` 契约工作;同时给出后续实施顺序建议,说明为什么必须先增强 renderer/typesetter再升级分页语义最后再回接 reader 能力链路。 rg -n "WKWebView|RDReaderView|阅读位置|高亮|搜索|主题|重分页|实施顺序" .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md - 文档明确写出 `WKWebView` 保留边界 - 文档明确写出 `RDReaderView` 不修改 - 文档明确列出阅读位置、高亮、搜索、主题切换等兼容项 - 文档包含一个按阶段排序的切入顺序 策略文档既给出切入点,也把必须保留的外层契约固定为后续 phase 的硬约束。 Before declaring plan complete: - [ ] `test -f .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md` - [ ] `rg -n "WKWebView|RDReaderView|RDEPUBDTCoreTextRenderer|RDEPUBTextBookBuilder" .planning/phases/01-current-engine-boundaries/01-refactor-entry-strategy.md` - [ ] 文档结论与 `01-reflowable-audit.md` 不冲突,并明确拒绝双引擎方案

<success_criteria>

  • All tasks completed
  • All verification checks pass
  • No errors or warnings introduced
  • 策略文档足以直接指导 Phase 2/3 进入实现,不再重复做边界澄清 </success_criteria>
After completion, create `.planning/phases/01-current-engine-boundaries/01-02-SUMMARY.md`