
REODE
Code migration
Pred opravou nájsť spoločnú príčinu.
Agent na migráciu kódu 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
Migračná slučka, ktorá drží doklady opráv oddelene od prijatia.
Zaznamená sa stav pôvodného buildu a uplatní prevod založený na pravidlách, potom sa pred opravou zozbierajú doklady zo zdrojov a POM. Po úprave modelom sa znova kontrolujú build, testy a integrita testov a behy, ktoré skončia na limite alebo uviaznu, sa vykazujú oddelene od úspechu.
Spája prevod založený na pravidlách s opravou s pomocou modelu a zmenený kód kontroluje buildom a testami. Pracovný projekt.
Práca na REODE v repozitári; spolupráca s pinxlab od March 16, 2026 do May 26, 2026
Nástroj CLI používaný v práci.
Prevod podľa pravidiel
Stav originálu sa uchová ako baseline; po prevode podľa pravidiel build a testy výsledok overia a beh pokračuje k meraniu.
Zdroje · POMDáta: zdroje · POMStav originálu · kompilácia
Kontrola origináluPrijíma zdroje Java/Spring a POM na migráciu. Kód a obrazovky zákazníka sa nezobrazujú.
Stav originálu · kompilácia
Kontrola origináluDáta: kompilácia origináluBaseline · neznáme hodnoty nemeranéStav behuPred prevodom sa zvolí behové prostredie a skompiluje sa originál, takže build, ktorý bol pokazený už predtým, zostane v baseline. Predvolené hodnoty testov a pokrytia v baseline nie sú meraniami.
Stav originálu · kompilácia
Kontrola origináluSpustenie · rozhodnutie: prevod podľa pravidielPlán → prevod založený na pravidláchPrevodGraf behu ide: kontrola originálu → plán prevodu → prevod založený na pravidlách → overenie. Najprv sa uplatnia prevody, ktoré sa dajú vykonať pravidlami.
Plán → prevod založený na pravidlách
PrevodSpustenie · rozhodnutie: build · testbuild · test · iterácia +1OverenieBuild a testy overia prevedený kód a počet iterácií sa zvýši o jednu. Výsledky sa vracajú do stavu behu.
build · test · iterácia +1
OverenieDáta: výsledok · iteráciePokračovať · merať · najviac 3Ďalší krokO ďalšom kroku rozhoduje úspech buildu, podiel úspešných testov a počet iterácií.
Pokračovať · merať · najviac 3
Ďalší krokSpustenie · rozhodnutie: úspech · limit · uviaznutiePodiel pravidiel · testy · pokrytieMeranieKeď prejdú build aj testy, dosiahne sa limit iterácií alebo sa zistí uviaznutie (po jednom pokuse o obnovu, ak ešte neprebehol), beh prejde k meraniu. Prechod k meraniu neznamená úspech.
Baseline · neznáme hodnoty nemerané
Stav behuDáta: porovnanie s baselinePodiel pravidiel · testy · pokrytieMeranieMeranie číta baseline uchovaný v stave behu. Nejde o nový beh baseline.
5 kritérií prijatia
MeranieDáta: hodnotenieHodnotiaca karta · hodnotenieÚspešný build, 100 % úspešnosť testov, zmena pokrytia −5 alebo lepšia (len keď je baseline známy), nula zmazaných testov, nula vylúčení v surefire. Hodnotenie sa udelí len pri splnení všetkých piatich kritérií.
Oprava podľa príčiny
Doklady sa zbierajú pred opravou a deterministické opravy idú prvé. Ak nový build prejde, model sa preskočí; ak nie, model opraví kód s dokladmi a pokynmi a výsledok sa znova overí.
build · test · iterácia +1
OverenieDáta: výsledok · iteráciePokračovať · merať · najviac 3Ďalší krokO ďalšom kroku rozhoduje úspech buildu, podiel úspešných testov a počet iterácií.
Pokračovať · merať · najviac 3
Ďalší krokSpustenie · rozhodnutie: zlyhanie · opakovanieDoklady príčiny · 3 zdroje · POMPrieskum pred opravouAk build zlyhal alebo je podiel úspešných testov pod 100 % a limit iterácií (predvolene 3) sa nedosiahol, beh prejde k oprave.
Doklady príčiny · 3 zdroje · POM
Prieskum pred opravouPozorovanie · správa: uloženie pred opravouCheckpoint pred opravouZáznamy obnovyPred opravou sa uloží checkpoint. Funguje v režime best-effort: neúspešné uloženie opravu nezastaví a uloženie nie je dokladom úspechu.
Doklady príčiny · 3 zdroje · POM
Prieskum pred opravouDáta: doklady · zoskupené chybyOprava známych vzorovDeterministická opravaZozbiera chybné súbory Java, úvodné riadky najviac troch zdrojov, nastavenia anotácií, POM a procesora anotácií a importy do hĺbky 2. Je to obmedzená vzorka, nie porozumenie celej kódovej základni.
Kontrola nového buildu
Deterministická opravaSpustenie · rozhodnutie: prešlo · LLM preskočenýbuild · test · iterácia +1OverenieAk deterministická oprava známeho vzoru (napríklad nastavenia Lombok) zabezpečí, že nový build prejde, model sa nevolá. Beh sa aj tak vracia k overeniu, takže nejde o konečné prijatie.
Kontrola nového buildu
Deterministická opravaZlyhanie · limit: nový build zlyhalOprava s dokladmi · pokynmiOprava modelomAk nový build zlyhá, zozbierané doklady a pokyny na opravu idú na opravu modelom. Z kódu je zrejmé, že odovzdávaný text chyby je pôvodná chyba buildu, nie nová chyba z nového buildu, preto to nemožno čítať ako „odovzdávajú sa len zostávajúce chyby“. Nejde o chybu reprodukovanú behom.
Skoršia oprava, rovnaká chyba
Záznamy obnovyDáta: skoršia opravaOprava s dokladmi · pokynmiOprava modelomSkoršie opravy zaznamenané pod rovnakou signatúrou chyby sa vyhľadajú a pripoja. Ide o záznam pridaný k vstupu, nie o tréning modelu.
Oprava s dokladmi · pokynmi
Oprava modelomSpustenie · rozhodnutie: znova overiťbuild · test · iterácia +1OverenieModel opravuje cez štruktúrovanú cestu architect/editor, alebo, keď táto cesta nie je dostupná či prebieha obnova, cez prompt s použitím nástrojov, a build a testy znova overia výsledok. Úprava modelom sama osebe nie je úspešným buildom.
Úspech verzus uviaznutie
Hodnotenie vyžaduje splnenie všetkých piatich kritérií; zmazané alebo vylúčené testy a výstupy na limite či uviaznutím sa nepočítajú ako úspech.
Pokračovať · merať · najviac 3
Ďalší krokSpustenie · rozhodnutie: úspech · limit · uviaznutiePodiel pravidiel · testy · pokrytieMeranieKeď prejdú build aj testy, dosiahne sa limit iterácií alebo sa zistí uviaznutie (po jednom pokuse o obnovu, ak ešte neprebehol), beh prejde k meraniu. Prechod k meraniu neznamená úspech.
Baseline · neznáme hodnoty nemerané
Stav behuDáta: porovnanie s baselinePodiel pravidiel · testy · pokrytieMeranieMeranie číta baseline uchovaný v stave behu. Nejde o nový beh baseline.
5 kritérií prijatia
MeranieDáta: hodnotenieHodnotiaca karta · hodnotenieÚspešný build, 100 % úspešnosť testov, zmena pokrytia −5 alebo lepšia (len keď je baseline známy), nula zmazaných testov, nula vylúčení v surefire. Hodnotenie sa udelí len pri splnení všetkých piatich kritérií.
5 kritérií prijatia
MeranieZlyhanie · limit: zmazané · vylúčené · neúspešnéSpráva o zlyhaní · uviaznutíÚspechy dosiahnuté zmazaním testov alebo vylúčením v surefire a neúspešné buildy či testy zostávajú zlyhaniami. Kontroly zmazania a vylúčenia počítajú nulu, keď sa nedá čítať Git alebo POM, takže nedokazujú, že sa zachytí každé porušenie.
Pokračovať · merať · najviac 3
Ďalší krokPozorovanie · správa: výstup pri limite · uviaznutíSpráva o zlyhaní · uviaznutíBeh, ktorý skončí na limite alebo uviazne, aj tak prejde meraním, ale nevykazuje sa ako úspech. Ide o označenie spôsobu vykazovania, nie o skratku okolo merania.
Každé spojenie s rovnakou váhou. Výber toku zvýrazní len jeho cestu s očíslovanými krokmi.
- Plná čiara · smer vstupu, výsledkov a záznamov
- Prerušovaná čiara · spustenie, rozhodnutie, požiadavka
- Dlhé bodky · pozorovanie a vykazovanie, oddelene od rozhodnutia
- Krátke čiarky · zlyhanie, zastavenie, limit
- Hrubá čierna čiara · zvolený tok; čísla udávajú poradie
- Rámček · hranica kódu alebo stavu, pomenovaná v hlavičke
- Vnútorný štítok · komponent tejto hranice
- Bodkovaný rámček · mimo tejto hranice
- Oranžový obrys · miesto, kde rozhoduje model
- Kroky pipeline · oprava
- Overenie · smerovanie · prijatie
- Stav · záznamy
- Prieskum pred opravou
Nakreslené podľa neverejných záznamov implementácie a vývoja. Názvy sú všeobecné verejné názvy; cesty kódu ani informácie o zákazníkovi sa nezobrazujú.
- Vstup po neúspešnom novom builde
- Oprava modelom dostáva zozbierané doklady a pokyny na opravu, ale odovzdávaný text chyby je pôvodná chyba buildu, nie nová chyba z nového buildu. Zistené čítaním kódu; behom sa to nereprodukovalo a zdrojový kód sa nemenil.
- Hranice kritérií
- Ak je baseline pokrytia neznámy, toto kritérium sa preskočí. Kontrola surefire počíta vylúčenia v súčasnom POM, nie rozdiel oproti baseline. Kontroly zmazania a vylúčenia počítajú nulu, keď sa nedá čítať Git alebo POM.
- Prípad a jeho čísla
- Približne 40 chýb setterov vystopovaných k jedinej príčine, nastaveniu Lombok a POM, je vtedy zaznamenaná diagnóza. Nejde o hodnotu priepustnosti, presnosti ani konečnej dodávky.