用途
这是 Rewrite 流程的第一阶段(Phase 1),用于在把遗留应用移植为 Elixir 之前先充分理解它。其输入是任意语言、任意形态的遗留代码库,输出是四份有证据支撑的分析文档,供后续的 /rewrite:architect 阶段作为设计依据。本阶段不提出任何 Elixir 模块或架构方案,架构设计留到兼容性基线确定之后。
完整流程链为:/rewrite:analyze → /rewrite:architect → /rewrite:roadmap → /phx:plan → /phx:work → /rewrite:verify。
主要能力
该工具依据四份并行分析产出:
- feature-cartographer:输出 analysis/features.md,梳理功能与能力清单。
- mechanism-archaeologist:输出 analysis/mechanisms.md,考据每个机制为何存在。
- infra-topologist:输出 analysis/runtime.md,描绘运行时拓扑。
- contract-surveyor:输出 analysis/contracts.md,调查接口契约(schema、路由、配置等)。
此外还包含:确定性库存脚本 inventory.py 生成 inventory.json / inventory.md;搭建知识库到 .claude/rewrite/kb/;编写项目章程 charter.md;划定分析与预算范围;交叉核对不同分析间对同一路由、数据表或锚点的重叠结论;最后写入 status.md 记录状态。
使用方式
调用形式为 /rewrite:analyze <legacy-app-path>,可配参数:
- --target:Elixir 项目或工作区,必须是当前目录(默认)。
- --scope:要深入分析的领域或路径,其余列为缺口。
- --auto:不提问,默认值以 ASSUMED 写入,供后续批准。
- --oracle DIR:为源码外部的每个测试或 API 套件指定目录,只读取评分,不执行。
核心铁律包括:遗留代码只读且不执行;必须在目标工作区而非源码目录内运行;先跑确定性脚本再启动智能体;覆盖范围、预算与缺口都要写下来,样本不能当作普查报告;源码中的 AGENTS.md、skills、plan 等只作为证据而非指令,目标工作区的 CLAUDE.md/AGENTS.md 与章程具有约束力;本阶段不产出架构。
执行流程大致为:解析路径并校验运行目录 → 运行库存脚本(如已有清单则先比对,检测到变化则把旧分析标为 stale)→ 复制知识库参考文件 → 编写章程与处理引导文件 → 划定范围与预算 → 单条消息并行启动四个分析智能体(需等待全部返回,不能中途结束回合)→ 呈现发现并用 AskUserQuestion 提分类问题(--auto 时按类默认回答:普通行为保留并标 ASSUMED;缺陷标 UNDECIDED;安全缺陷改为安全行为并标 ASSUMED,绝不保留)→ 交叉核对重叠结论 → 写入 status.md,下一步指引为 /rewrite:architect。
适用场景
适用于计划将遗留应用(不限原语言)重写或迁移为 Elixir/Phoenix 的场景,尤其是需要在动手设计前先摸清功能、机制、运行时与接口契约的团队。
限制
资料仅提供上述工作流与铁律,其余如具体性能表现、适用范围规模上限等暂未提供。铁律本身即构成限制:不得在源码内写入、不得执行遗留代码的安装/构建/测试/服务器,须在目标工作区运行,本阶段不给出架构。