Upravená pôvodná postava REODE: usmiata krémovoružová tvár axolotla s tmavomodrým headsetom a azúrovými šošovkami
Späť do sály

REODE

Code migration

Pred opravou nájsť spoločnú príčinu.

Agent na migráciu kódu Java/Spring.

2026.03 — 2026.04

Pracovný projekt · systém migrácie a overovania

  • CLIImplementované · pracovný projekt

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

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.

Mapa slučky opráv · z neverejných záznamov implementácie
Slučka opráv migrácie REODEStav pôvodného buildu sa uchová ako baseline, uplatní sa prevod založený na pravidlách a build a testy výsledok overia. Pri zlyhaní sa pred akoukoľvek opravou zozbierajú doklady zo zdrojov, anotácií a POM a známe vzory sa deterministicky opravia a znova zostavia. Ak nový build prejde, model sa nevolá; ak zlyhá, model opraví kód so zozbieranými dokladmi a pokynmi na opravu a výsledok sa znova overí. Behy, ktoré skončia na limite iterácií alebo uviaznu, pokračujú k meraniu, ale nepočítajú sa ako úspech, a hodnotiaca karta udelí hodnotenie len pri splnení všetkých piatich kritérií prijatia.Zdroje · POMNeverejný vstup migrácieHodnotiaca karta · hodnotenieNejde o nasadenieSpráva o zlyhaní · uviaznutíNepočíta sa ako úspechKontrola origináluStav originálu · kompiláciaStav behuBaseline · neznáme hodnoty nemeranéZáznamy obnovyCheckpoint pred opravouSkoršia oprava, rovnaká chybaPrevodPlán → prevod založený na pravidláchPrieskum pred opravouDoklady príčiny · 3 zdroje · POMDeterministická opravaOprava známych vzorovKontrola nového builduOprava modelomOprava s dokladmi · pokynmiOvereniebuild · test · iterácia +1Ďalší krokPokračovať · merať · najviac 3MeraniePodiel pravidiel · testy · pokrytie5 kritérií prijatiaVstup · baselineZáznamy obnovyPrevod · opravaOverenie · výstup1zdroje · POM2kompilácia originálu3 prevod podľa pravidiel · Stav originálu · kompilácia → Plán → prevod založený na pravidlách34build · test5výsledok · iterácie6úspech · limit · uviaznutie7porovnanie s baseline8 hodnotenie · 5 kritérií prijatia → Hodnotiaca karta · hodnotenie81výsledok · iterácie2 zlyhanie · opakovanie · Pokračovať · merať · najviac 3 → Doklady príčiny · 3 zdroje · POM23uloženie pred opravou4doklady · zoskupené chyby5prešlo · LLM preskočený6nový build zlyhal7 skoršia oprava · Skoršia oprava, rovnaká chyba → Oprava s dokladmi · pokynmi78znova overiť1úspech · limit · uviaznutie2porovnanie s baseline3 hodnotenie · 5 kritérií prijatia → Hodnotiaca karta · hodnotenie34zmazané · vylúčené · neúspešné5výstup pri limite · uviaznutí

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.

  1. Zdroje · POMDáta: zdroje · POMStav originálu · kompiláciaKontrola originálu

    Prijíma zdroje Java/Spring a POM na migráciu. Kód a obrazovky zákazníka sa nezobrazujú.

  2. Stav originálu · kompiláciaKontrola origináluDáta: kompilácia origináluBaseline · neznáme hodnoty nemeranéStav behu

    Pred 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.

  3. Stav originálu · kompiláciaKontrola origináluSpustenie · rozhodnutie: prevod podľa pravidielPlán → prevod založený na pravidláchPrevod

    Graf behu ide: kontrola originálu → plán prevodu → prevod založený na pravidlách → overenie. Najprv sa uplatnia prevody, ktoré sa dajú vykonať pravidlami.

  4. Plán → prevod založený na pravidláchPrevodSpustenie · rozhodnutie: build · testbuild · test · iterácia +1Overenie

    Build a testy overia prevedený kód a počet iterácií sa zvýši o jednu. Výsledky sa vracajú do stavu behu.

  5. build · test · iterácia +1OverenieDáta: výsledok · iteráciePokračovať · merať · najviac 3Ďalší krok

    O ďalšom kroku rozhoduje úspech buildu, podiel úspešných testov a počet iterácií.

  6. Pokračovať · merať · najviac 3Ďalší krokSpustenie · rozhodnutie: úspech · limit · uviaznutiePodiel pravidiel · testy · pokrytieMeranie

    Keď 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.

  7. Baseline · neznáme hodnoty nemeranéStav behuDáta: porovnanie s baselinePodiel pravidiel · testy · pokrytieMeranie

    Meranie číta baseline uchovaný v stave behu. Nejde o nový beh baseline.

  8. 5 kritérií prijatiaMeranieDá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í.

  1. build · test · iterácia +1OverenieDáta: výsledok · iteráciePokračovať · merať · najviac 3Ďalší krok

    O ďalšom kroku rozhoduje úspech buildu, podiel úspešných testov a počet iterácií.

  2. Pokračovať · merať · najviac 3Ďalší krokSpustenie · rozhodnutie: zlyhanie · opakovanieDoklady príčiny · 3 zdroje · POMPrieskum pred opravou

    Ak build zlyhal alebo je podiel úspešných testov pod 100 % a limit iterácií (predvolene 3) sa nedosiahol, beh prejde k oprave.

  3. Doklady príčiny · 3 zdroje · POMPrieskum pred opravouPozorovanie · správa: uloženie pred opravouCheckpoint pred opravouZáznamy obnovy

    Pred opravou sa uloží checkpoint. Funguje v režime best-effort: neúspešné uloženie opravu nezastaví a uloženie nie je dokladom úspechu.

  4. Doklady príčiny · 3 zdroje · POMPrieskum pred opravouDáta: doklady · zoskupené chybyOprava známych vzorovDeterministická oprava

    Zozbiera 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.

  5. Kontrola nového builduDeterministická opravaSpustenie · rozhodnutie: prešlo · LLM preskočenýbuild · test · iterácia +1Overenie

    Ak 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.

  6. Kontrola nového builduDeterministická opravaZlyhanie · limit: nový build zlyhalOprava s dokladmi · pokynmiOprava modelom

    Ak 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.

  7. Skoršia oprava, rovnaká chybaZáznamy obnovyDáta: skoršia opravaOprava s dokladmi · pokynmiOprava modelom

    Skorš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.

  8. Oprava s dokladmi · pokynmiOprava modelomSpustenie · rozhodnutie: znova overiťbuild · test · iterácia +1Overenie

    Model 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.

  1. Pokračovať · merať · najviac 3Ďalší krokSpustenie · rozhodnutie: úspech · limit · uviaznutiePodiel pravidiel · testy · pokrytieMeranie

    Keď 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.

  2. Baseline · neznáme hodnoty nemeranéStav behuDáta: porovnanie s baselinePodiel pravidiel · testy · pokrytieMeranie

    Meranie číta baseline uchovaný v stave behu. Nejde o nový beh baseline.

  3. 5 kritérií prijatiaMeranieDá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í.

  4. 5 kritérií prijatiaMeranieZlyhanie · 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.

  5. 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.