重新修整的原版 REODE 角色:戴著海軍藍耳機與青色鏡片、面帶微笑的奶油色與粉紅色六角恐龍臉
返回展廳

REODE

Code migration

修正之前,先找出共同原因。

Java/Spring 程式碼遷移代理。

2026.03 — 2026.04

工作專案 · 遷移與驗證系統

  • CLI已實作 · 工作專案

REODE vocabulary

Lens
Migration Graph
Read First
Change and Check
Run Harness
Toolchain
Run Control
  1. assess
  2. plan
  3. explore
  1. transform
  2. validate
  3. fix
  4. measure
  1. recipes
  2. docker isolation
  3. equivalence
  1. escalation
  2. checkpoint
  3. 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 工具。

修復迴圈架構圖 · 依據非公開實作記錄
REODE 遷移修復迴圈原始建置狀態保留為基準線,套用規則式轉換,再以 build 與 test 驗證結果。失敗時,在任何修正前先收集原始碼、標註與 POM 證據,並以確定性方式修正已知模式後重新建置。重新建置通過則不呼叫模型;失敗時,模型以收集的證據與修復指示進行修復,再重新驗證結果。結束於迭代上限或停滯的執行會進入測量,但不算成功;計分卡只在五項驗收關卡全部通過時才給予等級。原始碼 · POM非公開的遷移輸入計分卡 · 等級並非部署失敗 · 停滯回報不算成功原始檢查原始狀態 · 編譯執行狀態基準線 · 未知值不測量復原記錄修正前檢查點同一錯誤的先前修正轉換計畫 → 規則式轉換修正前探索原因證據 · 3 個原始碼 · POM確定性修正修正已知模式重新建置檢查模型修復以證據 · 指示修正驗證build · test · 迭代 +1下一步繼續 · 測量 · 最多 3 次測量規則占比 · 測試 · 覆蓋率5 項驗收關卡輸入 · 基準線復原記錄轉換 · 修復驗證 · 結束1原始碼 · POM2原始編譯3規則轉換4build · test5結果 · 迭代次數6通過 · 上限 · 停滯7基準線比較8評等1結果 · 迭代次數2失敗 · 重試3修正前儲存4證據 · 錯誤分組5通過 · 略過 LLM6重新建置失敗7先前修正8重新驗證1通過 · 上限 · 停滯2基準線比較3評等4刪除 · 排除 · 失敗5上限 · 停滯結束

規則轉換

原始狀態保留為基準線;規則轉換後以 build 與 test 驗證,執行接著進入測量。

  1. 原始碼 · POM資料: 原始碼 · POM原始狀態 · 編譯原始檢查

    接收要遷移的 Java/Spring 原始碼與 POM。不顯示客戶程式碼與畫面。

  2. 原始狀態 · 編譯原始檢查資料: 原始編譯基準線 · 未知值不測量執行狀態

    轉換前先選定執行環境並編譯原始碼,因此原本就已損壞的建置會保留在基準線中。基準線中 test 與 coverage 的預設值不是測量值。

  3. 原始狀態 · 編譯原始檢查執行 · 判定: 規則轉換計畫 → 規則式轉換轉換

    執行圖依序為原始檢查 → 轉換計畫 → 規則式轉換 → 驗證。能以規則處理的轉換優先套用。

  4. 計畫 → 規則式轉換轉換執行 · 判定: build · testbuild · test · 迭代 +1驗證

    以 build 與 test 驗證轉換後的程式碼,迭代次數加一。結果回到執行狀態。

  5. build · test · 迭代 +1驗證資料: 結果 · 迭代次數繼續 · 測量 · 最多 3 次下一步

    build 成功與否、test 通過率與迭代次數決定下一步。

  6. 繼續 · 測量 · 最多 3 次下一步執行 · 判定: 通過 · 上限 · 停滯規則占比 · 測試 · 覆蓋率測量

    當 build 與 test 都通過、達到迭代上限,或偵測到停滯(若尚未嘗試,先再嘗試一次復原)時,執行進入測量。進入測量不代表成功。

  7. 基準線 · 未知值不測量執行狀態資料: 基準線比較規則占比 · 測試 · 覆蓋率測量

    測量讀取保留在執行狀態中的基準線。不是新的基準線執行。

  8. 5 項驗收關卡測量資料: 評等計分卡 · 等級

    build 成功、test 通過率 100%、覆蓋率變化 −5 以上(僅在基準線已知時)、刪除的測試為零、surefire 排除為零。五項全部通過才給予等級。

依原因修復

修正前先收集證據,確定性修正優先。重新建置通過則略過模型;否則由模型以證據與指示修復,再重新驗證結果。

  1. build · test · 迭代 +1驗證資料: 結果 · 迭代次數繼續 · 測量 · 最多 3 次下一步

    build 成功與否、test 通過率與迭代次數決定下一步。

  2. 繼續 · 測量 · 最多 3 次下一步執行 · 判定: 失敗 · 重試原因證據 · 3 個原始碼 · POM修正前探索

    若 build 失敗或 test 通過率低於 100%,且未達迭代上限(預設 3 次),執行即進入修復。

  3. 原因證據 · 3 個原始碼 · POM修正前探索觀測 · 回報: 修正前儲存修正前檢查點復原記錄

    修正前儲存檢查點。這是盡力而為:儲存失敗不會停止修復,儲存也不是成功的依據。

  4. 原因證據 · 3 個原始碼 · POM修正前探索資料: 證據 · 錯誤分組修正已知模式確定性修正

    收集失敗的 Java 檔案、最多三個原始碼的開頭幾行、標註、POM 與標註處理器設定,以及深度 2 的 import。這是有範圍的樣本,並非對整個程式碼庫的理解。

  5. 重新建置檢查確定性修正執行 · 判定: 通過 · 略過 LLMbuild · test · 迭代 +1驗證

    若已知模式(例如 Lombok 設定)的確定性修正讓重新建置通過,就不呼叫模型。執行仍會回到驗證,因此這不是最終驗收。

  6. 重新建置檢查確定性修正失敗 · 上限: 重新建置失敗以證據 · 指示修正模型修復

    重新建置失敗時,收集的證據與修復指示會交給模型修復。閱讀程式碼可知,一併傳遞的錯誤文字是最初的建置錯誤,而非重新建置的新錯誤,因此不能解讀為「只傳遞剩餘錯誤」。這不是在執行中重現的缺陷。

  7. 同一錯誤的先前修正復原記錄資料: 先前修正以證據 · 指示修正模型修復

    查詢並附上以同一錯誤簽章記錄的先前修正。這是加入輸入的記錄,不是模型訓練。

  8. 以證據 · 指示修正模型修復執行 · 判定: 重新驗證build · test · 迭代 +1驗證

    模型透過結構化的 architect/editor 路徑進行修正;該路徑無法使用或處於復原中時,改用工具使用提示詞,再由 build 與 test 重新驗證。模型的修改本身並不等於通過的建置。

通過與停滯

等級需要五項關卡全部通過;刪除或排除測試,以及上限或停滯結束,都不算成功。

  1. 繼續 · 測量 · 最多 3 次下一步執行 · 判定: 通過 · 上限 · 停滯規則占比 · 測試 · 覆蓋率測量

    當 build 與 test 都通過、達到迭代上限,或偵測到停滯(若尚未嘗試,先再嘗試一次復原)時,執行進入測量。進入測量不代表成功。

  2. 基準線 · 未知值不測量執行狀態資料: 基準線比較規則占比 · 測試 · 覆蓋率測量

    測量讀取保留在執行狀態中的基準線。不是新的基準線執行。

  3. 5 項驗收關卡測量資料: 評等計分卡 · 等級

    build 成功、test 通過率 100%、覆蓋率變化 −5 以上(僅在基準線已知時)、刪除的測試為零、surefire 排除為零。五項全部通過才給予等級。

  4. 5 項驗收關卡測量失敗 · 上限: 刪除 · 排除 · 失敗失敗 · 停滯回報

    靠刪除測試或 surefire 排除取得的通過,以及失敗的 build 或 test,都仍算失敗。無法讀取 Git 或 POM 時,刪除與排除檢查計為零,因此不能證明每項違規都會被攔下。

  5. 繼續 · 測量 · 最多 3 次下一步觀測 · 回報: 上限 · 停滯結束失敗 · 停滯回報

    結束於上限或停滯的執行仍會經過測量,但不回報為成功。這標示的是回報方式,不是繞過測量的捷徑。

所有連線以相同粗細顯示。選擇一個流程,即只突顯其路徑,並標出步驟編號。

  • 實線 · 輸入、結果與記錄的流向
  • 虛線 · 執行、判定、請求
  • 長點劃線 · 觀測與回報,與判定分開
  • 短虛線 · 失敗、停止、上限
  • 粗黑線 · 所選流程;數字表示順序
  • 方框 · 程式碼或狀態邊界,名稱在標題列
  • 內層小框 · 該邊界的元件
  • 虛線框 · 該邊界之外
  • 橘色外框 · 模型做出判斷之處
  • 管線步驟 · 修復
  • 驗證 · 路由 · 驗收
  • 狀態 · 記錄
  • 修正前探索

依據非公開的實作與開發記錄繪製。名稱為公開用的通用名稱;不顯示程式碼路徑與客戶資訊。

重新建置失敗後的輸入
模型修復會收到收集的證據與修復指示,但一併傳遞的錯誤文字是最初的建置錯誤,而非重新建置的新錯誤。這是閱讀程式碼確認的;未在執行中重現,原始碼也未修改。
關卡的限制
覆蓋率基準線未知時,略過該關卡。surefire 檢查計算的是目前 POM 中的排除,而非與基準線的差異。無法讀取 Git 或 POM 時,刪除與排除檢查計為零。
案例與數字
約 40 個 setter 錯誤追溯到同一個原因:Lombok 與 POM 設定,這是當時記錄的診斷。並非處理量、準確度或最終交付數字。