关于 recon
Recon 是用于绘制 Git 仓库结构并维护仓库外精简报告的 Skill,报告中的结论附有证据。它可读取、修补或重建地图,并核验仓库身份及提交变化。
主要功能
- 01读取、修补或重建仓库地图
- 02跨 worktree 核验仓库身份
- 03跟踪提交变化与未提交路径
- 04保存带证据的章节
- 05恢复中断的映射任务
适用场景
- 01查看已保存的仓库地图
- 02记录陌生代码库结构
- 03在提交变更后更新地图
- 04继续中断的映射任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ prathamdby/ skills --skill recon安装后在 Claude Code 中输入/recon确认已加载。
附带文件references/mapping.md
详细介绍
Recon
路由与记忆
默认:修补现有记忆,否则冷启动绘制地图。“读取现有报告”
或“显示已保存的地图”会选择读取,绝不刷新或重建。“刷新”、
“重建”或“从头开始”会选择重建。指定的区域是重点。
读取/重建或重建/修补的措辞相互冲突时,状态为 BLOCKED。
将 <anchor> 解析为此技能的绝对目录;记忆保存在
<anchor>/memory/ 中,位于目标仓库之外。解析仓库根目录、HEAD、脏路径和真实的绝对 Git 公共目录。共享检出键为
<label>-<hash8>.md:对公共目录计算 SHA-256;取八位数字。
对于 .git,标签是其父目录的基本名称,否则是其自身的基本名称。
先尝试该键,再尝试对当前根目录和 git worktree list --porcelain 中主检出根目录进行哈希计算得到的旧版键。对每个候选项,验证其 frontmatter 中的 repo 是否解析到同一公共目录。仅 SHA 匹配不能证明仓库身份。无法验证身份时,状态为 BLOCKED。
优先使用共享键;多个旧版候选项的 head 不同时,必须明确指定路径。
提供的报告路径也必须通过相同的身份检查。
Frontmatter:repo(主检出根目录)、完整提交 head、ISO 格式的 updated。
章节:布局、入口点、模块、数据流、命令、约定、
注意事项、证据。每项声明都要引用证据;每个章节最多十个项目,总计最多 200 行。验证后,写入同级 .tmp 文件,再通过重命名原子替换。
1. 定位
记录 route | memory | stored head | HEAD | dirty | current | pending | terminal。
对于读取,仅打开现有记忆:不创建目录、台账或快照。
对于绘制地图/重建,在 <memory>.ledger 中持久化台账;每处理一项后都通过原子重命名写入;成功后删除台账。路由和候选项确定后即完成。
2. 读取或绘制地图
**读取:**返回已保存的地图,并附上快照路径/日期/head、覆盖范围和脏状态叠加信息。比较存储的 head 与 HEAD;披露过时或无法解析的元数据,但不要修复元数据,也不要检查源代码来刷新声明。没有报告时,返回
NO_REPORT,并列出搜索过的路径。已展示已保存的地图及其局限,且未更改任何文件时,以 READ 完成。
**绘制地图:**冷启动/重建探索或已提交的热漂移情况,使用 references/mapping.md。head 缺失或无法解析时,采用冷启动流程。复用已验证的旧版记忆,但将新快照写入共享键;保留旧版文件不变。每个章节都有证据或标注 None found,且符合限制,并且存储的 head 等于当前 HEAD 时,即完成。
3. 恢复并报告
中断后,重新计算 HEAD 和更改路径;如果台账不同,则重新开始受影响的工作。从第一个待处理项目继续。在对话中展示地图,标明重建、修补或仅具代表性的章节;引用其路径、重点、漂移、未验证区域和脏状态叠加信息。热地图以
Drift since last recon 结尾。披露每项声明的覆盖范围后即完成。
终态:READ、NO_REPORT、SUCCESS、BLOCKED。写入时,存储的 head 始终指向一个真实提交。记忆是地图,不是清单或历史记录。