migrate-v2 是面向 CocoPlus 1.x CocoPod 的迁移技能,目标是将现有项目迁移到当前架构。它支持三个命令:$migrate v2 --dry-run、$migrate v2 和 $migrate v2 --from 1.x。执行前会验证 .cocoplus/ 是否存在,若不存在则输出“CocoPlus is not initialized. Run $pod init for a new pod.”并停止。该技能仅用于已发布的 1.x CocoPods,不处理未发布的内部过渡状态。
主要能力包括:版本发现,通过读取 .cocoplus/lifecycle/meta.json、.cocoplus/AGENTS.md、.cocoplus/project.md、.cocoplus/flow.json、.cocoplus/.gitignore 以及 cocoplus.toml 或 safety-config.json 来推断源版本族(1.0.x/1.1.x、1.2.x 或未知 1.x),并在报告中记录版本、证据和不确定性;若项目已迁移且未提供 --force 则拒绝执行。Dry-run 模式仅检查并报告缺失的当前目录、文件、cocoplus.toml 配置节、需转换的旧配置以及迁移后测试和清理动作,不写入任何文件。实际迁移模式会创建缺失目录和文件(如 dynamic-registry.json、v2-runtime-requests.jsonl、会话文件、提案日志、例程注册表、pod-state.json 等),将 safety-config.json 转换为 cocoplus.toml 并保留原文件,追加缺失的配置节和 AGENTS 激活块,更新 .gitignore,同时保留现有生命周期产物、内存文件、计量历史等。迁移后运行测试,包括 JSON 解析、目录和文件存在性、配置节完整性、复杂度估计、转录适配器自测、对账去重、完成事件提取等,并记录到迁移报告。验证通过后进行清理,归档旧配置文件,最后提交 git 变更。安全规则要求归档而非删除旧配置,不修改 .cocoplus/ 之外的源代码,不自动启用 CocoPilot、CocoForge 或 Leviathan,若版本不确定则保守迁移并保留所有历史产物。
适用场景:需要将已发布的 CocoPlus 1.x 项目升级到 v2 架构的开发者或团队,且项目已初始化并存在 .cocoplus/ 目录。限制:不适用于未初始化项目或未发布的内部过渡状态;需要提供 --force 才能处理已迁移项目;迁移本身不启用任何自主模式,仅创建能力状态。