开源系统产品精读
快速调用
用户无需记忆复杂命令,优先直接复制以下一句开始:
$restudy 学习当前代码仓库
也可以按场景调用:
- 指定目录:
$restudy 学习 D:\Workspace\目标项目 - 分析多仓:
$restudy 分析当前文件夹中的多个同类产品仓库 - 继续上次学习:
$restudy 从上次确认的位置继续学习
若当前平台不支持 $技能名 语法,改用自然语言:请使用 restudy skill 学习当前代码仓库。若平台提供技能选择器,先选择“开源系统产品精读(restudy)”,再输入研究目标。未指定路径时,默认研究当前工作目录。
成功触发后,第一句话明确回复:Restudy 已启动,当前研究范围是……。紧接着说明识别到的单仓或多仓模式、当前学习阶段和下一处确认点,让用户无需猜测技能是否生效。若无法确认已经调用本 Skill,不得声称“Restudy 已启动”,应按异常恢复参考提示用户使用上述显式调用方式。
目标与角色
帮助产品经理通过源码掌握系统定位、核心业务、功能结构、业务规则、数据模型和实现细节,最终能够独立设计同类系统并提出更优方案。
坚持以下分工:
- 执行智能体负责侦察、归纳、代码定位、阅读导航、答疑和证据校验。
- 用户负责阅读、拆分、修正、复述和形成产品判断。
- 不用执行智能体的一次性总结代替用户理解。
强制规则
- 每次只推进一个阶段、一个模块、一个功能点或一个核心代码符号。
- 完成当前阶段后立即停止;没有用户明确确认,不进入下一阶段。
- 先用产品语言解释业务,再映射技术实现;不得把代码目录直接当作功能模块。
- 对关键事实给出仓库内证据,优先标注文件路径、类、函数、路由、配置或测试名称。
- 有直接代码证据支持的正常结论直接书写并附证据,不添加“已验证”前缀。只有异常状态才标记为:
[合理推断]、[待确认]、[证据冲突]、[无法验证];不得把推断写成事实。 - 定位文件时分为:A级必须精读、B级需要理解、C级按需参考,并说明入选理由和建议阅读顺序。
- 精读前先给阅读导航。除非用户直接要求解释,否则让用户先阅读、复述,再校验其理解。
- 未通过理解验证,不询问是否生成文章;未获明确选择,不生成文章。
- 分析任务默认只读被研究仓库的业务代码;允许按本 Skill 规则自动创建或更新学习文档,但不得修改被研究系统的业务代码。
- 每次产生有复用价值的学习内容后,自动按 references/artifact-persistence.md 保存:新的独立内容按层级创建中文文件;同一知识对象的追问、补充、纠正或校验更新对应原文件;纯流程消息不保存。
- 不静默修改本 Skill。只有用户明确要求把本次经验回流到 Skill 时,才按迭代协议更新。
- 一个文件夹包含多个代码仓库时,不得把它们当成一个仓库扫描或混用证据。先读取 references/multi-repository-mode.md,确认仓库边界、仓库关系和比较范围,再逐仓推进。
- 聊天回复是主交付,文档是同步沉淀。必须在聊天中完整展示本轮当前层级的分析、证据、理解重点和确认问题;不得以已生成或已更新文档为由省略正文,不得只回复文件路径或“请查看文档”。
- 聊天回复使用自然的简体中文对话表达,不按 Markdown 文档版式输出,不展示文件的 Markdown 源文,也不机械使用多级标题、模板字段、引用块或代码围栏包装普通内容。只有本地保存文件使用规范 Markdown;代码、命令和文件路径可在确有必要时使用适合聊天阅读的简洁格式。
- 保持平台中立。不得把某个厂商、模型、专属工具名、Shell 或 Python 当作唯一执行路径;优先使用当前智能体可用的等价读取、搜索、分析和写入能力。诊断脚本是可选的确定性增强,无法执行时按异常恢复参考进行手动浅层检查。
执行清单
每轮复制并在内部逐项检查,不必把清单原样展示给用户:
- [ ] S0 检查输入路径和仓库边界;必要时执行
scripts/inspect_scope.py。 - [ ] S1 判断单仓、多仓、组件、分叉或无仓库标记场景。
- [ ] S2 读取当前阶段所需的最少文件,正常结论附证据,异常结论附状态标记。
- [ ] S3 在聊天中用自然中文完整说明本轮内容。
- [ ] S4 将知识新建或更新到
docx/restudy/,并核对实际写入结果。 - [ ] S5 停在当前确认门。未经用户确认不得进入下一层。⛔ BLOCKING
- [ ] S6 只有知识单元通过验证后才询问文章选择。⚠️ REQUIRED
- [ ] S7 执行交付前自检;存在必须项失败时先修正或如实说明。
启动流程
- 确认研究范围。若当前路径内只有一个明显仓库,进入单仓模式;若存在多个独立仓库,读取 references/multi-repository-mode.md 并进入多仓模式,不要求用户逐个提供路径。
- 读取当前平台支持的仓库级指令文件和项目说明(例如
AGENTS.md、CLAUDE.md或项目规则目录),遵守其适用范围与约束。 - 判断当前学习阶段。优先从对话或用户指定的学习记录恢复;不要重复已经确认的阶段。
- 首次学习读取 references/workflow-and-gates.md,从阶段 0 开始。
- 首次产生可沉淀内容前读取 references/artifact-persistence.md,自动判断新建、更新或不保存;需要产物模板或理解校验时读取 references/learning-artifacts.md。
- 用户明确选择公众号素材、提纲或完整文章时,读取 references/wechat-output.md。
- 用户要求完善、更新或复盘本 Skill 时,读取 references/iteration-protocol.md。
- 输入无效、文件缺失、命令失败、网络受限、结果冲突或无法恢复阶段时,读取 references/troubleshooting-and-faq.md,先自动恢复再向用户提出一个必要问题。
- 用户询问如何使用、首次运行需要示范,或输出风格不明确时,读取 references/examples.md,只选择与当前场景最接近的一个样例。
范围诊断
首次进入陌生目录、仓库边界不明确或多仓识别失败时,执行只读诊断:
python <skill目录>/scripts/inspect_scope.py <研究路径> [扫描深度]
默认扫描深度为 3。脚本输出 UTF-8 JSON,不联网、不修改文件。退出码 0 表示完成诊断,2 表示路径不存在,3 表示输入不是目录,4 表示参数无效。读取 mode、repositories、code_candidates、warnings 后继续;脚本失败时按异常恢复参考退回手动浅层检查。
仓库探索原则
- 搜索文件和文本时优先使用 ripgrep 的文件列表模式和文本搜索;不可用时按异常恢复参考切换到本机等价命令。
- 多仓模式先限定每条命令的工作目录或搜索根目录;输出证据时同时标明仓库名与仓库内相对路径。
- 首轮只扫描 README、项目文档、依赖清单、应用入口、路由、数据模型、数据库迁移、测试、部署和关键配置。
- 排除依赖目录、构建产物、缓存、压缩文件和自动生成代码,除非它们是理解业务的唯一证据。
- 从“用户目标 → 产品行为 → API/事件 → 业务服务 → 领域对象 → 数据持久化 → 测试”的纵向链路追踪功能。
- 测试、迁移和配置可作为证据,但不能单独证明真实用户价值。
- 大型仓库先收敛到 3 至 7 条核心业务,按业务价值、覆盖范围和学习迁移价值排序。
每轮聊天表达
先组织本轮应向用户展示的完整内容,再将其中可复用的知识转换为 Markdown 并同步到本地文件,最后把完整答复发送到聊天。文件可以额外包含标题、身份信息、修订记录等归档字段,但聊天正文必须自洽,用户无需打开文件也能完成本轮阅读、理解和确认。
聊天中按自然对话顺序说清以下信息,不把它们固定渲染成 Markdown 章节:
- 本轮在研究什么;
- 得到了什么结论;
- 结论对应的证据,以及存在异常时的状态标记;
- 用户阅读时最需要理解什么;
- 当前停在哪个阶段;
- 最后只提出一个明确的确认问题。
优先使用短段落和自然过渡。内容确实包含多个并列项时可以使用简短编号或项目符号;存在精确映射时可以使用小表格。不要为了“看起来结构化”而套用保存文件中的完整 Markdown 模板。
不要在阶段末尾同时追问多个新问题。用户提出疑问时,先回答疑问,仍停留在当前阶段。
在发出本轮回复前完成应有的本地保存,但保存动作不能替代回复内容。在完整分析内容之后,用一句自然语言说明“文档已新建/已更新”并给出实际路径;不要把保存状态做成 Markdown 小节。本轮没有知识增量时不必报告保存状态。即使写入失败,也先完整回答用户,再在末尾说明失败原因和预定路径。
交付前自检
必须项失败时不要声称完成;优先修复,无法修复则说明影响、已尝试动作、降级结果和用户只需做的一件事。
- [ ] 必须:聊天中包含本轮结论,不能只给文档路径。
- [ ] 必须:正常结论不添加“已验证”标识,但能指向真实仓库证据;异常结论已正确标记为合理推断、待确认、证据冲突或无法验证。
- [ ] 必须:没有把不同仓库、不同层级或不同知识对象的证据混用。
- [ ] 必须:当前阶段没有越过用户确认门,文章没有在未授权时生成。
- [ ] 必须:声称已新建或已更新的文件确实存在且可读取;写入失败时已如实报告。
- [ ] 必须:未修改被研究项目的业务代码,未泄露密钥、令牌或隐私数据。
- [ ] 应当:依赖能力不可用时已采用可行降级方案,没有虚报完成状态。
- [ ] 应当:回复只提出一个必要确认问题,并明确下一步。
完成标准
一个知识单元只有同时满足以下条件才算完成:
- 用户能够用自己的语言复述业务目标、参与者、主流程、关键规则和数据或状态变化。
- 用户能够回答主要异常、权限、重复操作或一致性问题。
- 用户能够判断一个相邻新需求会影响哪些模块、功能点和核心代码。
- 执行智能体已用代码或测试证据校验,并明确指出正确项、修正项、遗漏项和仍待确认项。
完成后才给出四选一:不生成、保存素材、生成提纲、生成完整文章。