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,构建成功。
1.5 KiB
1.5 KiB
name, description
| name | description |
|---|---|
| generate-sdk-code-style-doc | 基于 ReadViewSDK 当前 EPUB、PDF 和 Demo 源码生成或更新全局代码规范、目录职责、命名、分层、UIKit/SnapKit、并发、缓存、公共 API 与测试约定。用户要求项目级编码规范或更新 Doc/CONVENTIONS.md 时使用;单模块规范改用 generate-module-code-style-doc。 |
生成 SDK 全局代码规范
工作流
- 明确输出路径;未指定时增量更新
Doc/CONVENTIONS.md。 - 读取现有目标文档、
Doc/ARCHITECTURE.md、Doc/index.md和两个 podspec。 - 从 EPUBCore、EPUBTextRendering、ReaderView、EPUBUI、RDPDFReaderView 与 Demo/UITests 抽样真实源码。
- 把结论分为:
- 多模块源码验证的现行约定
- 仅适用于 EPUB、PDF 或 Demo 的局部模式
- 明确标记为建议、尚未成为项目事实的待统一项
- 覆盖目录职责、命名与可见性、公共 API、UIKit/SnapKit、异步与取消、缓存/持久化、错误处理、测试、注释和 CocoaPods 约定。
- 增量保留仍正确内容,删除失效描述;使用真实路径、类型和方法作为证据。
- 新增、移动或重命名文档时同步
Doc/index.md,最后检查链接和源码一致性。
边界
- 不把 EPUB 的局部模式提升为 PDF 的全局规范,反之亦然。
- 不以旧
.claude/skills或过期文档替代当前源码事实。 - 不把个人偏好写成现行规范。
- 文档任务默认不修改业务代码;发现缺陷时单独报告。