
REODE
Code migration
Sebelum memperbaiki, temukan penyebab bersama.
Agen migrasi kode Java/Spring.
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
Loop migrasi yang memisahkan bukti perbaikan dari penerimaan.
Status build asli dicatat dan konversi berbasis aturan diterapkan, lalu bukti sumber dan POM dikumpulkan sebelum perbaikan. Setelah model mengedit, build, test, dan integritas test diperiksa lagi, dan eksekusi yang berakhir di batas atau macet dilaporkan terpisah dari keberhasilan.
Agen ini memadukan konversi berbasis aturan dengan perbaikan berbantuan model dan memeriksa kode yang berubah dengan build dan test. Proyek kerja.
Pekerjaan REODE di repositori; keterlibatan dengan pinxlab March 16, 2026 hingga May 26, 2026
Alat CLI yang dipakai di tempat kerja.
Konversi aturan
Status asli disimpan sebagai baseline; setelah konversi aturan, build dan test memverifikasi, dan eksekusi lanjut ke pengukuran.
Sumber · POMData: sumber · POMStatus asli · compile
Pemeriksaan asliMenerima sumber Java/Spring dan POM yang akan dimigrasikan. Kode dan layar pelanggan tidak ditampilkan.
Status asli · compile
Pemeriksaan asliData: compile asliBaseline · yang tidak diketahui tidak diukurStatus eksekusiSebelum konversi, runtime dipilih dan sumber asli di-compile, sehingga build yang sudah rusak sejak awal tetap tercatat di baseline. Nilai bawaan test dan cakupan di baseline bukan hasil pengukuran.
Status asli · compile
Pemeriksaan asliEksekusi · penilaian: konversi aturanRencana → konversi berbasis aturanKonversiGraf eksekusi berjalan pemeriksaan asli → rencana konversi → konversi berbasis aturan → verifikasi. Konversi yang dapat ditangani aturan diterapkan lebih dahulu.
Rencana → konversi berbasis aturan
KonversiEksekusi · penilaian: build · testbuild · test · iterasi +1VerifikasiBuild dan test memverifikasi kode hasil konversi dan jumlah iterasi bertambah satu. Hasilnya kembali ke status eksekusi.
build · test · iterasi +1
VerifikasiData: hasil · iterasiLanjut · ukur · maks 3Langkah berikutnyaKeberhasilan build, tingkat kelulusan test, dan jumlah iterasi menentukan langkah berikutnya.
Lanjut · ukur · maks 3
Langkah berikutnyaEksekusi · penilaian: lolos · batas · macetPorsi aturan · test · cakupanPengukuranBila build dan test sama-sama lolos, batas iterasi tercapai, atau kemacetan terdeteksi (setelah satu upaya pemulihan bila belum dicoba), eksekusi menuju pengukuran. Menuju pengukuran tidak berarti berhasil.
Baseline · yang tidak diketahui tidak diukur
Status eksekusiData: perbandingan baselinePorsi aturan · test · cakupanPengukuranPengukuran membaca baseline yang disimpan di status eksekusi. Ini bukan eksekusi baseline baru.
5 gerbang penerimaan
PengukuranData: pemberian nilaiScorecard · nilaiBuild berhasil, tingkat kelulusan test 100%, perubahan cakupan −5 atau lebih baik (hanya bila baseline diketahui), nol test yang dihapus, nol pengecualian surefire. Nilai hanya diberikan bila kelimanya lolos.
Perbaikan berbasis penyebab
Bukti dikumpulkan sebelum memperbaiki dan perbaikan deterministik didahulukan. Bila build ulang lolos, model dilewati; bila tidak, model memperbaiki dengan bukti dan instruksi lalu hasilnya diverifikasi lagi.
build · test · iterasi +1
VerifikasiData: hasil · iterasiLanjut · ukur · maks 3Langkah berikutnyaKeberhasilan build, tingkat kelulusan test, dan jumlah iterasi menentukan langkah berikutnya.
Lanjut · ukur · maks 3
Langkah berikutnyaEksekusi · penilaian: gagal · coba ulangBukti penyebab · 3 sumber · POMEksplorasi sebelum memperbaikiBila build gagal atau tingkat kelulusan test di bawah 100%, dan batas iterasi (bawaan 3) belum tercapai, eksekusi menuju perbaikan.
Bukti penyebab · 3 sumber · POM
Eksplorasi sebelum memperbaikiObservasi · laporan: simpan sebelum perbaikanCheckpoint sebelum perbaikanCatatan pemulihanCheckpoint disimpan sebelum perbaikan. Sifatnya best-effort: penyimpanan yang gagal tidak menghentikan perbaikan, dan penyimpanan bukan bukti keberhasilan.
Bukti penyebab · 3 sumber · POM
Eksplorasi sebelum memperbaikiData: bukti · kesalahan dikelompokkanPerbaiki pola yang dikenalPerbaikan deterministikMengumpulkan berkas Java yang gagal, baris-baris awal dari paling banyak tiga sumber, pengaturan anotasi, POM, dan annotation processor, serta import hingga kedalaman 2. Sampel terbatas, bukan pemahaman atas seluruh codebase.
Pemeriksaan build ulang
Perbaikan deterministikEksekusi · penilaian: lolos · LLM dilewatibuild · test · iterasi +1VerifikasiBila perbaikan deterministik untuk pola yang dikenal (misalnya penyiapan Lombok) membuat build ulang lolos, tidak ada model yang dipanggil. Eksekusi tetap kembali ke verifikasi, jadi ini bukan penerimaan akhir.
Pemeriksaan build ulang
Perbaikan deterministikKegagalan · batas: build ulang gagalPerbaiki dengan bukti · instruksiPerbaikan modelBila build ulang gagal, bukti yang dikumpulkan dan instruksi perbaikan diteruskan ke perbaikan model. Membaca kode menunjukkan bahwa teks kesalahan yang ikut diteruskan adalah kesalahan build awal, bukan kesalahan baru dari build ulang, sehingga ini tidak boleh dibaca sebagai “hanya kesalahan yang tersisa yang diteruskan”. Bukan cacat yang direproduksi dalam eksekusi.
Perbaikan sebelumnya, kesalahan sama
Catatan pemulihanData: perbaikan sebelumnyaPerbaiki dengan bukti · instruksiPerbaikan modelPerbaikan sebelumnya yang tercatat dengan tanda tangan kesalahan yang sama dicari dan dilampirkan. Catatan yang ditambahkan ke input, bukan pelatihan model.
Perbaiki dengan bukti · instruksi
Perbaikan modelEksekusi · penilaian: verifikasi lagibuild · test · iterasi +1VerifikasiModel memperbaiki melalui jalur architect/editor terstruktur, atau prompt tool-use bila jalur itu tidak tersedia atau sedang dalam pemulihan, lalu build dan test memverifikasi lagi. Editan model tidak dengan sendirinya merupakan build yang lolos.
Lolos versus macet
Peringkat memerlukan kelima gerbang; test yang dihapus atau dikecualikan serta keluar karena batas atau macet tidak dihitung sebagai keberhasilan.
Lanjut · ukur · maks 3
Langkah berikutnyaEksekusi · penilaian: lolos · batas · macetPorsi aturan · test · cakupanPengukuranBila build dan test sama-sama lolos, batas iterasi tercapai, atau kemacetan terdeteksi (setelah satu upaya pemulihan bila belum dicoba), eksekusi menuju pengukuran. Menuju pengukuran tidak berarti berhasil.
Baseline · yang tidak diketahui tidak diukur
Status eksekusiData: perbandingan baselinePorsi aturan · test · cakupanPengukuranPengukuran membaca baseline yang disimpan di status eksekusi. Ini bukan eksekusi baseline baru.
5 gerbang penerimaan
PengukuranData: pemberian nilaiScorecard · nilaiBuild berhasil, tingkat kelulusan test 100%, perubahan cakupan −5 atau lebih baik (hanya bila baseline diketahui), nol test yang dihapus, nol pengecualian surefire. Nilai hanya diberikan bila kelimanya lolos.
5 gerbang penerimaan
PengukuranKegagalan · batas: dihapus · dikecualikan · gagalLaporan kegagalan · macetKelulusan yang diperoleh dengan menghapus test atau dengan pengecualian surefire, serta build atau test yang gagal, tetap dihitung gagal. Pemeriksaan penghapusan dan pengecualian menghitung nol bila Git atau POM tidak dapat dibaca, jadi bukan bukti bahwa setiap pelanggaran tertangkap.
Lanjut · ukur · maks 3
Langkah berikutnyaObservasi · laporan: keluar karena batas · macetLaporan kegagalan · macetEksekusi yang berakhir di batas atau macet tetap melewati pengukuran tetapi tidak dilaporkan sebagai keberhasilan. Ini menandai cara pelaporan; bukan jalan pintas yang melewati pengukuran.
Setiap koneksi dengan bobot yang sama. Pilih alur untuk menyorot hanya jalurnya, dengan langkah bernomor.
- Garis utuh · arah input, hasil, dan catatan
- Garis putus · eksekusi, penilaian, permintaan
- Titik panjang · observasi dan pelaporan, terpisah dari penilaian
- Strip pendek · kegagalan, berhenti, batas
- Garis hitam tebal · alur yang dipilih; angka menunjukkan urutan
- Kotak · batas kode atau status, namanya di bagian kepala
- Chip dalam · komponen dari batas itu
- Kotak bertitik · di luar batas itu
- Garis tepi oranye · tempat model memutuskan
- Langkah pipeline · perbaikan
- Verifikasi · perutean · penerimaan
- Status · catatan
- Eksplorasi sebelum memperbaiki
Digambar dari catatan implementasi dan pengembangan privat. Nama-nama adalah nama publik umum; tidak ada path kode atau informasi pelanggan yang ditampilkan.
- Input setelah build ulang gagal
- Perbaikan model menerima bukti yang dikumpulkan dan instruksi perbaikan, tetapi teks kesalahan yang ikut diteruskan adalah kesalahan build awal, bukan kesalahan baru dari build ulang. Ditetapkan dengan membaca kode; tidak direproduksi dalam eksekusi, dan sumbernya tidak diubah.
- Batas gerbang
- Bila baseline cakupan tidak diketahui, gerbang itu dilewati. Pemeriksaan surefire menghitung pengecualian di POM saat ini, bukan selisih dari baseline. Pemeriksaan penghapusan dan pengecualian menghitung nol bila Git atau POM tidak dapat dibaca.
- Kasus dan angkanya
- Sekitar 40 kesalahan setter yang ditelusuri ke satu penyebab, penyiapan Lombok dan POM, adalah diagnosis yang dicatat saat itu. Ini bukan angka throughput, akurasi, atau penyerahan akhir.