用途:在代码迁移或调优协作流程中,将真实仓库(通过 od project import 克隆或用户提供的路径)转换为磁盘上的规范化记录,作为后续 design-extract、rewrite-plan、patch-edit 等原子的输入。核心目的是让智能体只读取一次 code/index.json 并信任该快照,直到下一次显式重新导入,从而避免每轮重新遍历目录树。
输入:repoPath 必填,为仓库根目录的绝对路径,可由 od project import 或上游 od.context.assets[] 引用提供;targetStack 必填,包含 framework、packageManager、styleSystem、componentLibrary,通过对应的表单 GenUI 界面填写。
输出:在 project-cwd/code/ 下生成 index.json(含 files 列表,每项有 path、size、language、imports[],以及 packageJson、lockfileKind、framework、styleSystem)、components.json(检测到的组件及其文件路径与 props 快照)、routes.json(检测到的路由模型,如 next/app、react-router、vite-router 等)、meta.json(含 repoPath、gitSha、walkedAt、atomDigest、walkBudgetMs)。code/index.json 是 Phase 7 其他原子读取的输入。遍历受预算限制,环境变量 OD_CODE_IMPORT_BUDGET_MS 默认 60 秒,避免大型 monorepo 耗尽整次运行。
完成条件:code/index.json 存在且至少包含一个条目;空仓库会以明确的错误事件中止,提示用户重新导入。
限制与禁止事项:不得遍历 node_modules、.git、.next、dist、build(需在 code/index.json.skipped[] 中记录原因);不得仅凭单个文件推断框架,需至少同时具备 package.json 中声明的依赖与构建配置(如 next.config.、vite.config.);不得把被注释掉的 import 当作有效依赖边。
状态:该 id 为预留,v1 中仅为提示词片段;遍历器与框架检测器计划在 spec §16 Phase 7 落地。其余实现细节暂未提供。