
REODE vocabulary
- assess
- plan
- explore
- transform
- validate
- fix
- measure
- recipes
- docker isolation
- equivalence
- escalation
- checkpoint
- learnings
Assess: assess_node · assessment_report · frameworks_detected · SOCRATIC RISK ANALYSIS · clarity_score · BASELINE BUILD · baseline_build_success · detect_spring_features · SpringAssessment · memory_context · get_local_jdk_versionPlan: plan_node · migration_plan · incremental_recipe_chain · get_recipe_chain · project_constraints · llm_structural · get_migration_strategy · is_fw_to_boot_migration · hitl_level · memory_contextExplore: _explore_before_fix · AFFECTED FILES · read_file · @Data · pom.xml · classify_build_error · ErrorCategory · get_category_prompt_hint · _batch_errors · _detect_fix_patterns · CANNOT FIND SYMBOL · compute_error_signatureTransform: llm_structural · transform_node · rewrite-maven-plugin · _ensure_openrewrite_plugin · rewrite:run · java_openrewrite_run · recipes_applied · _BATCH_SIZE · source_path_backup · structural_changes · resume_from_batchValidate: BASELINE BUILD · validate_node · java_build · java_test · java_lint · build_error_output · test_error_output · test_pass_rate · _route_after_validate · build_verification_tasks · verify-compat-check · SubAgentManager · _BackpressureExecutor · docker_maven_command · max_iterationsFix: memory_context · _explore_before_fix · @Data · pom.xml · get_category_prompt_hint · _detect_fix_patterns · build_error_output · test_error_output · fix_node · _fix_deterministic_pass · _apply_deterministic_fixes · LOMBOK 1.18.34 · annotationProcessorPaths · _fix_architect_editor_pass · FixPlan · _execute_llm_fix · _BackpressureExecutor · fix_attempts · java-migration-diagnostic · _determine_escalation · _build_full_project_context · fix-iter-{iteration} · AUTO-LEARNINGSMeasure: baseline_build_success · recipes_applied · test_pass_rate · measure_node · MigrationScorecard · G1 BUILD SUCCESS · G2 TEST EQUIVALENCE · G3 COVERAGE PRESERVATION · G4 TEST INTEGRITY · G5 NO TEST EXCLUSION · _count_deleted_test_files · _count_surefire_excludes · automation_ratio · S/A/B/C GRADERecipes: detect_spring_features · incremental_recipe_chain · get_recipe_chain · rewrite-maven-plugin · java_openrewrite_run · UpgradeToJava17 · UpgradeToJava21 · JavaxMigrationToJakarta · UpgradeSpringBoot_3_2 · UpgradeSpringSecurity_6_2 · JUnit4to5Migration · rewrite-migrate-java · rewrite-spring · SPRING_RECIPE_CHAINS · java_openrewrite_listDocker Isolation: JDK_DOCKER_IMAGES · maven:3.9-eclipse-temurin-22 · needs_docker_build · docker_maven_command · get_local_jdk_version · is_docker_available · docker_build_mode · local_jdk_version · _maven_cache_dir · JDK MISMATCHEquivalence: source_path_backup · verify-compat-check · java_app_start · e2e_smoke_test · java_app_stop · run_jar_comparison · detect_jar_type · deploy_dual_stack · discover_endpoints · api_equivalence_rate · api_breaking_changes · teardown_dual_stackEscalation: _route_after_validate · fix_attempts · _determine_escalation · claude-opus-4-6 · _build_full_project_context · _is_stuck · CONVERGENCE · CIRCUIT BREAKER · recovery_attempted · max_iterations · budget_usd · _check_budget_gateCheckpoint: _BATCH_SIZE · PipelineCheckpoint · reode/checkpoint · fix-iter-{iteration} · resume_from_batch · _resume_skip_nodes · MigrationProgressTracker · migration_progress.json · _save_node_progress · --resumeLearnings: FixPlan · FixEventLog · FixEvent · fix_events.jsonl · query_by_signature · format_learnings · compute_error_signature · AUTO-LEARNINGS · LEARNINGS.md · _append_learning · AVOID THIS APPROACH
把修复依据与验收分开的迁移循环。
先记录原始构建状态并应用基于规则的转换,再在修复前收集源码与 POM 证据。模型修改后,再次检查 build、test 与测试完整性;因达到上限或停滞而结束的运行与成功分开报告。
它将基于规则的转换与模型辅助修复结合起来,并用 build 和 test 检查改动后的代码。工作项目。
仓库中的 REODE 工作;pinxlab 合作期 March 16, 2026 to May 26, 2026
在工作中使用的 CLI 工具。
规则转换
原始状态作为基线保留;规则转换后由 build 和 test 验证,运行继续进入测量。
源码 · POM数据: 源码 · POM原始状态 · 编译
原始检查接收待迁移的 Java/Spring 源码和 POM。不展示客户代码和界面。
原始状态 · 编译
原始检查数据: 原始编译基线 · 未知值不测量运行状态转换前先选定运行时并编译原始代码,因此原本就已损坏的构建会保留在基线中。基线中 test 与覆盖率的默认值并非测量值。
原始状态 · 编译
原始检查运行 · 判定: 规则转换计划 → 基于规则的转换转换运行图依次为:原始检查 → 转换计划 → 基于规则的转换 → 验证。能由规则完成的转换先行应用。
计划 → 基于规则的转换
转换运行 · 判定: build · testbuild · test · 迭代 +1验证build 和 test 验证转换后的代码,迭代次数加一。结果返回运行状态。
build · test · 迭代 +1
验证数据: 结果 · 迭代次数继续 · 测量 · 最多 3 次下一步build 是否成功、test 通过率和迭代次数决定下一步。
继续 · 测量 · 最多 3 次
下一步运行 · 判定: 通过 · 上限 · 停滞规则占比 · 测试 · 覆盖率测量当 build 和 test 均通过、达到迭代上限,或检测到停滞(若尚未尝试,则先再尝试一次恢复)时,运行进入测量。进入测量并不意味着成功。
基线 · 未知值不测量
运行状态数据: 基线比较规则占比 · 测试 · 覆盖率测量测量读取运行状态中保存的基线,不是新的基线运行。
5 项验收条件
测量数据: 评定等级评分卡 · 等级build 成功、test 通过率 100%、覆盖率变化不低于 −5(仅在基线已知时)、删除的测试为 0、surefire 排除为 0。只有五项全部通过才评定等级。
基于原因的修复
修复前先收集证据,确定性修复优先。重新构建通过则跳过模型;否则由模型依据证据和指引修复,并再次验证结果。
build · test · 迭代 +1
验证数据: 结果 · 迭代次数继续 · 测量 · 最多 3 次下一步build 是否成功、test 通过率和迭代次数决定下一步。
继续 · 测量 · 最多 3 次
下一步运行 · 判定: 失败 · 重试原因证据 · 3 个源文件 · POM修复前探索若 build 失败或 test 通过率低于 100%,且未达到迭代上限(默认 3 次),运行进入修复。
原因证据 · 3 个源文件 · POM
修复前探索观测 · 报告: 修复前保存修复前检查点恢复记录修复前保存检查点。这是尽力而为:保存失败不会中止修复,保存也不能作为成功的依据。
原因证据 · 3 个源文件 · POM
修复前探索数据: 证据 · 错误分组修复已知模式确定性修复收集出错的 Java 文件、最多三个源文件的开头部分、注解、POM 与注解处理器设置,以及深度为 2 的 import。这是有界的样本,不等于理解整个代码库。
重新构建检查
确定性修复运行 · 判定: 通过 · 跳过 LLMbuild · test · 迭代 +1验证若确定性地修复某个已知模式(例如 Lombok 配置)后重新构建通过,就不调用模型。运行仍会回到验证,因此这并非最终验收。
重新构建检查
确定性修复失败 · 上限: 重新构建失败依据证据 · 指引修复模型修复若重新构建失败,收集到的证据和修复指引会交给模型修复。读代码可见,一并传递的错误文本是最初的 build 错误,而不是重新构建产生的新错误,因此不应理解为“只传递剩余错误”。这不是在运行中复现的缺陷。
同一错误的先前修复
恢复记录数据: 先前的修复依据证据 · 指引修复模型修复查找并附上以同一错误签名记录的先前修复。这是附加到输入中的记录,而非模型训练。
依据证据 · 指引修复
模型修复运行 · 判定: 再次验证build · test · 迭代 +1验证模型通过结构化的 architect/editor 路径修复;该路径不可用或处于恢复中时,改用工具使用提示词修复,随后 build 和 test 再次验证。模型的修改本身并不等于 build 通过。
通过与停滞的区分
评定等级需要全部五项条件;删除或排除测试,以及因上限或停滞退出,都不计为成功。
继续 · 测量 · 最多 3 次
下一步运行 · 判定: 通过 · 上限 · 停滞规则占比 · 测试 · 覆盖率测量当 build 和 test 均通过、达到迭代上限,或检测到停滞(若尚未尝试,则先再尝试一次恢复)时,运行进入测量。进入测量并不意味着成功。
基线 · 未知值不测量
运行状态数据: 基线比较规则占比 · 测试 · 覆盖率测量测量读取运行状态中保存的基线,不是新的基线运行。
5 项验收条件
测量数据: 评定等级评分卡 · 等级build 成功、test 通过率 100%、覆盖率变化不低于 −5(仅在基线已知时)、删除的测试为 0、surefire 排除为 0。只有五项全部通过才评定等级。
5 项验收条件
测量失败 · 上限: 删除 · 排除 · 失败失败 · 停滞报告通过删除测试或 surefire 排除获得的通过,以及 build 或 test 失败,都仍是失败。删除与排除检查在无法读取 Git 或 POM 时计为 0,因此不能证明每项违规都会被发现。
继续 · 测量 · 最多 3 次
下一步观测 · 报告: 上限 · 停滞退出失败 · 停滞报告因达到上限或停滞而结束的运行仍会经过测量,但不报告为成功。这是报告上的区分,而不是绕过测量的捷径。
所有连接以相同粗细显示。选择一个流程,即只突出显示其路径,并标出步骤编号。
- 实线 · 输入、结果与记录的流向
- 虚线 · 运行、判定、请求
- 长点线 · 观测与报告,独立于判定
- 短虚线 · 失败、停止、上限
- 粗黑线 · 所选流程;数字表示顺序
- 方框 · 代码或状态边界,标题栏注明名称
- 内层小框 · 该边界中的组件
- 点线框 · 该边界之外
- 橙色轮廓 · 模型作出判断之处
- 流水线步骤 · 修复
- 验证 · 路由 · 验收
- 状态 · 记录
- 修复前探索
依据非公开的实现与开发记录绘制。名称采用通用的公开名称;不展示代码路径和客户信息。
- 重新构建失败后的输入
- 模型修复会收到收集到的证据和修复指引,但一并传递的错误文本是最初的 build 错误,而不是重新构建产生的新错误。这一点通过读代码确认;未在运行中复现,源码也未修改。
- 验收条件的局限
- 若覆盖率基线未知,则跳过该项。surefire 检查统计的是当前 POM 中的排除项,而不是与基线的差异。删除与排除检查在无法读取 Git 或 POM 时计为 0。
- 案例与数字
- 约 40 个 setter 错误追溯到同一个原因(Lombok 与 POM 配置),这是当时记录的诊断,并非吞吐量、准确率或最终交付数据。