代码库结构地图
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9e2ba202/codebase-exploration。
技能介绍
要解决的问题
刚接手陌生代码库时,最贵的成本不是写代码,而是建立结构认知:有哪些模块、各自干什么、从哪读起。但顶层包结构会骗人——ls 出来的目录不等于模块边界。伞形包把多个业务域揉在一起,扁平分层让多个模块共享 service/dao/po 同包,仅凭名字和目录数推断会一路踩坑。而读者手中没有可信的标准答案,拿到的往往是一份几周就过时的分析报告。
核心思路:慢变纪律
产物是一份活文档(docs/codebase-map.md),不是给分析师看的报告。它只写抗重构的慢变结构:模块边界与职责、依赖的形状与方向、入口与横切约定。行号、精确文件计数、随提交而变的 impact 一律排除——不是不重要,而是写进去会让地图快速过时。度量数字翻译成读者结论,全文不超过约 8 处。
怎么工作
- 信号配方层:不携带 16 份硬编码栈配方,而是通用信号槽模型(模块单元、导入依赖边、依赖装配、入口点、横切件……)加语言无关的入口名模式,换栈时按槽派生该栈的 grep 写法。
- 能力① 模块测绘:严格分步。
1.A机械采集依赖边(Bash grep);1.B智能归子模块(扁平分层靠类名前缀加锚实体交叉判定);1.C强度分档(Injected / Import-only / Adapter,@Lazy不降档);1.D标注反向异味。 - 能力⑤ 约定与横切机制:识别请求先过谁(AOP / middleware / 拦截器),测绘认证、错误、日志、配置、事务、缓存六类约定,每条给出定义锚点加一句遵守规则。
- 校准闸门:锚点路径落笔前必须整串反查;「无 X」类断言要过完整性闸逐项反证;拿不准的边界标低置信,并提示对该模块单独深入精读。
适用边界
地图测的是「广」。把某个模块逐行读透属于地图之外的事,技能只在地图里标出值得深读的模块,不替读者执行。机械采集可以脚本化,但归并、判强度、识别反向异味是 agent 的智能任务,不会被硬编码进脚本。它自包含闭环,不读写任何其它 Skill。
使用场景
- 接手陌生 Java/Spring 项目,想弄清 service、dao 各包分别负责什么业务、该从哪开始读
- 在新仓库改接口前,需要确认请求会先经过哪个拦截器、认证和全局异常在哪里定义
- 维护多年多次重构的代码库,怀疑存在底层模块反向依赖上层模块的问题,想找出并标注
- 让 AI 编码助手接手现有项目,先为其生成模块边界与上手顺序作为架构指引,避免凭空猜测
适合人员
- 刚入职、首次接触该代码库的后端开发:需要尽快建立模块结构认知,找到第一个可安全修改的模块
- 准备向现有项目提交首个补丁的开源贡献者:没有可信标准答案,想先弄清模块边界与约定再动手
- 负责带新人的架构师:需要一份能在多次重构后仍成立、可直接交给新人照读的结构地图
- 需要在现有代码库中接入 AI 编码助手的技术负责人:想为模型提供权威的架构指引,减少幻觉式修改