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,构建成功。
35 lines
1.8 KiB
Markdown
35 lines
1.8 KiB
Markdown
---
|
|
name: generate-module-implementation-logic
|
|
description: 从 ReadViewSDK 真实源码生成或更新指定模块或场景的入口、调用链、数据流、状态流、渲染流、缓存、持久化、异步回调和异常分支文档。用户要求梳理实现逻辑、调用链、分页或缓存流程时使用;代码风格规范改用对应 code-style Skill。
|
|
---
|
|
|
|
# 生成模块实现逻辑
|
|
|
|
## 工作流
|
|
|
|
1. 确定目标模块、用户场景和输出路径;优先复用 `Doc/` 中现有专题或 code reference。
|
|
2. 读取目标入口、现有文档,以及 `AGENTS.md` 路由出的架构、API 或测试资料。
|
|
3. 用引用搜索沿真实关系追踪:
|
|
- 页面、控制器、协议或服务入口及触发条件
|
|
- 数据模型、状态所有者和线程/队列
|
|
- EPUB 解析/排版/分页/章节窗口,或 PDF Provider/渲染/OCR/标注
|
|
- 内存与磁盘缓存、键、版本、驱逐和恢复
|
|
- 通知、回调、delegate、持久化和跨模块依赖
|
|
- 空值、失败、取消、重试、超时、迟到结果和兼容分支
|
|
4. 对关键链路至少双向核验一次:从入口跟到结果,再从结果或回调查回调用方。
|
|
5. 区分当前实现、历史兼容层、仅文档中的计划和待确认事实。
|
|
6. 增量更新文档,保留正确内容,删除或标记失效链路。
|
|
7. 结论引用真实文件、类型和方法;不确定信息明确标为待确认。
|
|
8. 文档新增、移动或重命名时同步 `Doc/index.md`。
|
|
|
|
## 推荐结构
|
|
|
|
- 适用范围与模块职责
|
|
- 入口和主要对象
|
|
- 主流程与数据/状态/渲染变化
|
|
- 缓存、持久化和并发模型
|
|
- 异常、取消、重试和兼容处理
|
|
- 维护风险与验证要点
|
|
|
|
纯文档任务不修改业务代码;源码暴露的缺陷应单独报告,不把建议写成已实现事实。
|