PDF 阅读器在慢速双指缩放、竖向滚动页高异步更新、页面请求超时和绘画橡皮擦等场景中,存在视口跳动、迟到结果被错误丢弃、缓存边界不明确及笔迹显示与持久化不同步的问题;同一本书的标注读取和并发写入也会产生不必要的磁盘访问或覆盖风险。\n\n调整缩放 inset 计算和竖向阅读锚点恢复,避免缩放变换被重复计入、真实页高到达时改变当前阅读位置。页面请求改为带 token 的超时重试机制,可在缓存窗口内接收有效迟到结果并提供失败重试入口;页面大图、OCR、笔迹和描述缓存统一按当前页前后两页收敛,PDF 标识改为完整内容 SHA-256,避免同名或相近文件复用错误阅读状态。\n\n绘画会话内按路径实时重绘,退出会话后使用按图层派生的位图缓存,确保橡皮擦即时作用于已提交笔迹;同时为笔迹持久化增加版本控制、为标注读写增加同步保护和内存快照,降低复用与并发场景下的状态错乱。\n\n将项目技能统一迁入 .agents/skills,并以 .claude/skills 相对软链接供 Claude Code 读取;新增详细 Git 提交技能,自动审查改动、生成中文提交说明并约束安全推送。 验证:所有项目技能通过 quick_validate;执行 xcodebuild -workspace ReadViewDemo/ReadViewDemo.xcworkspace -scheme ReadViewDemo -configuration Debug -sdk iphonesimulator CODE_SIGNING_ALLOWED=NO build,构建成功。
2.4 KiB
2.4 KiB
name, description
| name | description |
|---|---|
| start-sdk-feature-dev | 实现 ReadViewSDK 的跨层或跨阅读器改造、分页/缓存/持久化系统性重构、公共 API 演进、复杂联调,或严格执行用户提供的完整方案文档。单模块功能、UI 微调、Bug 修复和局部改动优先使用 start-sdk-feature-dev-lite。 |
SDK 完整开发
目标
对复杂任务建立可追溯计划,控制接口兼容、依赖、迁移和回滚风险,完成实现、联调、验证与文档同步。
工作流
- 检查工作区,区分本任务改动和用户已有改动。
- 明确主改动模块、受影响模块、In Scope、Out of Scope、联调依赖和完成标准。
- 按
AGENTS.md读取架构、公共 API、目标子系统和测试文档,并用源码复核。 - 用户提供方案时:
- 完整读取并提取锁定决定、任务清单、文件清单、限制和验收标准。
- 逐项执行,不自行替换技术路径、数据模型或文件布局。
- 方案与源码冲突时暂停,说明影响和最小修订建议。
- 没有方案时制定最小可落地计划,明确执行顺序、数据/状态流、风险、回滚点和验证。
- 实施时区分计划内修改、不可避免的“必要补齐”和可选后续项;会改变方案的偏差先确认。
- 做跨模块自检:
- EPUB 四层依赖方向和三种渲染路径
- PDF 自定义 Provider 与 PDFKit 直读路径
- 公共 API 的源码兼容与行为兼容
- Codable/磁盘格式迁移、缓存键、版本和失效策略
- 异步 token、取消、迟到回调、主线程和生命周期
- 大图、排版产物、章节窗口和内存警告处理
- CocoaPods source/resource/framework 配置和 Demo 集成
- 同步架构、API、子系统或测试文档;文档新增或移动时更新索引。
- 执行构建和与风险相称的定向回归,记录无法自动覆盖的联调项。
方案控制
- 用户确认的方案不能被“更简单的建议”静默覆盖。
- 不以顺手治理为由扩大重构范围。
- 涉及线上数据、缓存迁移或公共 API 时必须写明兼容、回滚或降级方式。
- 新增依赖、资源或公开类型前必须确认 podspec 和宿主集成影响。
交付
最终说明范围和计划完成情况、关键实现与偏差、改动模块、构建/测试结果、兼容与回滚策略、未覆盖风险和同步文档。