用途
build-graph 用于为当前代码仓库构建或增量更新持久化的代码索引(codegraph)。索引数据保存在项目根目录的 .codegraph/ 目录中。它适合在 safe-code 审计、重构、代码评审、调试之前运行,或在索引可能已过期时使用。
主要能力
- 首次构建:当项目根目录不存在 .codegraph/ 时,从项目根目录执行 codegraph init -y 进行完整构建。仅在明确以构建为目的被调用时(如 /safe-code --codegraph,或 Step 3f 且图中包含相关证据)才执行;已存在的索引只做同步,绝不重新初始化。
- 增量同步:当 .codegraph/ 已存在时,执行 codegraph sync 进行增量更新。
- 完整重建:在传入 full 参数、发生分支切换,或结果明显错误时,执行 codegraph index 进行完整重建。
- 解锁:若因崩溃运行导致提示 "Index is locked",执行 codegraph unlock 后重试一次。
- 校验:通过 codegraph status 检查文件数、节点数、边数、语言覆盖,以及 "Index is up to date" 状态。
- 报告:输出构建状态与语言覆盖缺口。
使用方式
该技能依赖 codegraph CLI(npm 包 @colbymchenry/codegraph)。应先执行一次 codegraph --help 查看可用子命令;若某个子命令不存在则跳过,绝不臆造参数。
若缺少 CLI,不要在此处安装,而是报告 Graph: unavailable,并交由 /safe-code 处理一次性的安装询问(参见 safe-code 技能的 references/graph-integration.md)。只有在用户对 safe-code 的一次性安装询问回答“是”之后,才可运行 codegraph install,且仅限 --target <this agent> --location global --yes(绝不使用 --target all);绝不执行卸载。否则只打印相应命令。
遥测:在会话中首次使用时,打印一次提示:“codegraph sends anonymous usage stats; turn off with codegraph telemetry off or DO_NOT_TRACK=1.” 不要替用户设置。
若索引无法构建,不要阻塞父工作流,报告后继续以人工方式检查仓库。
输出格式
Graph: <ready | stale | unavailable | partial>(对应 safe-code Step 8 的词汇) Files: <数量> Nodes: <数量> Edges: <数量> Languages: <列表> Notes: <覆盖缺口,或使用的回退方式:manual>
适用场景
- 在 safe-code 审计、重构、代码评审、调试之前建立或刷新代码索引。
- 索引可能已过期、需要增量同步或完整重建时。
- 需要了解仓库语言覆盖情况与索引健康状态时。
限制
- 仅写入 <project-root>/.codegraph/(该目录自动 gitignore)。
- 缺少 CLI 时不在此处安装,需由 safe-code 处理一次性安装询问。
- 安装时仅允许 --target <this agent> --location global --yes,绝不使用 --target all,绝不卸载。
- 不替用户设置遥测开关。
- 索引无法构建时不阻塞父工作流,回退为人工检查。
- 具体支持的语言列表、节点与边的统计口径等细节,资料中暂未提供。