Alkuperäinen REODE-hahmo viimeisteltynä: hymyilevät kerman- ja vaaleanpunaiset aksolotlin kasvot, laivastonsininen kuulokemikrofoni ja syaanit linssit
Takaisin saliin

REODE

Code migration

Ensin yhteinen syy, sitten korjaus.

Java/Spring-koodin migraatioagentti.

2026.03 — 2026.04

Työprojekti · migraatio- ja todentamisjärjestelmä

  • CLIToteutettu · työprojekti

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

Migraatiosilmukka, joka pitää korjauksen näytön erillään hyväksynnästä.

Alkuperäinen koontitila kirjataan ja sääntöpohjainen muunnos sovelletaan, minkä jälkeen lähdekoodi- ja POM-näyttö kerätään ennen korjausta. Mallin muokkauksen jälkeen koonti, testit ja testien eheys tarkistetaan uudelleen, ja rajaan tai jumiutumiseen päättyneet ajot raportoidaan erillään onnistumisista.

Se yhdistää sääntöpohjaisen muunnoksen mallin avustamaan korjaukseen ja tarkistaa muutetun koodin koonnilla ja testeillä. Työprojekti.

REODE-työ repositoriossa; pinxlab-toimeksianto 16.3.2026–26.5.2026

Työssä käytetty CLI-työkalu.

Korjaussilmukan kartta · yksityisistä toteutuskirjauksista
REODEn migraation korjaussilmukkaAlkuperäinen koontitila säilytetään lähtötasona, sääntöpohjainen muunnos sovelletaan, ja koonti ja testit todentavat tuloksen. Epäonnistuessa lähdekoodi-, annotaatio- ja POM-näyttö kerätään ennen mitään korjausta, ja tunnetut kaavat korjataan deterministisesti ja kootaan uudelleen. Jos uudelleenkoonti menee läpi, mallia ei kutsuta; jos se epäonnistuu, malli korjaa kerätyn näytön ja korjausohjeiden avulla, ja tulos todennetaan uudelleen. Iteraatiorajaan tai jumiutumiseen päättyvät ajot etenevät mittaukseen, mutta niitä ei lasketa onnistumisiksi, ja tuloskortti antaa arvosanan vain, kun kaikki viisi hyväksymisporttia läpäistään.Lähdekoodi · POMYksityinen migraatiosyöteTuloskortti · arvosanaEi käyttöönottoEpäonnistumis- · jumiutumisraporttiEi lasketa onnistumiseksiAlkuperäisen tarkistusAlkuperäinen tila · käännösAjon tilaLähtötaso · tuntemattomat mittaamattaPalautuskirjauksetTarkistuspiste ennen korjaustaAiempi korjaus, sama virheMuunnosSuunnitelma → sääntöpohjainen muunnosTutki ennen korjaustaSyyn näyttö · 3 lähdettä · POMDeterministinen korjausTunnettujen kaavojen korjausUudelleenkoonnin tarkistusMallikorjausKorjaus näytön · ohjeiden avullaTodentaminenkoonti · testit · iteraatio +1Seuraava vaiheJatko · mittaus · enintään 3MittausSääntöjen osuus · testit · kattavuus5 hyväksymisporttiaSyöte · lähtötasoPalautuskirjauksetMuunnos · korjausTodentaminen · poistuminen1 lähdekoodi · POM · Lähdekoodi · POM → Alkuperäinen tila · käännös12alkuperäinen käännös3 sääntömuunnos · Alkuperäinen tila · käännös → Suunnitelma → sääntöpohjainen muunnos34build · test5tulos · iteraatiot6läpi · raja · jumiutuminen7lähtötasovertailu8arvostelu1tulos · iteraatiot2 epäonnistui · uusinta · Jatko · mittaus · enintään 3 → Syyn näyttö · 3 lähdettä · POM23tallennus ennen korjausta4näyttö · ryhmitellyt virheet5läpi · LLM ohitettu6uudelleenkoonti epäonnistui7 aiempi korjaus · Aiempi korjaus, sama virhe → Korjaus näytön · ohjeiden avulla78uusi todentaminen1läpi · raja · jumiutuminen2lähtötasovertailu3arvostelu4poistettu · poissuljettu · epäonnistunut5poistuminen rajaan · jumiutumiseen

Sääntömuunnos

Alkuperäinen tila säilytetään lähtötasona; sääntömuunnoksen jälkeen koonti ja testit todentavat, ja ajo etenee mittaukseen.

  1. Lähdekoodi · POMData: lähdekoodi · POMAlkuperäinen tila · käännösAlkuperäisen tarkistus

    Ottaa siirrettävän Java/Spring-lähdekoodin ja POMin. Asiakkaan koodia ja näkymiä ei näytetä.

  2. Alkuperäinen tila · käännösAlkuperäisen tarkistusData: alkuperäinen käännösLähtötaso · tuntemattomat mittaamattaAjon tila

    Ennen muunnosta valitaan ajoympäristö ja alkuperäinen käännetään, joten jo valmiiksi rikkinäinen koonti säilyy lähtötasossa. Lähtötason oletusarvoiset testi- ja kattavuusarvot eivät ole mittauksia.

  3. Alkuperäinen tila · käännösAlkuperäisen tarkistusSuoritus · arvio: sääntömuunnosSuunnitelma → sääntöpohjainen muunnosMuunnos

    Ajograafi kulkee alkuperäisen tarkistus → muunnossuunnitelma → sääntöpohjainen muunnos → todentaminen. Sääntöjen hoidettavissa olevat muunnokset sovelletaan ensin.

  4. Suunnitelma → sääntöpohjainen muunnosMuunnosSuoritus · arvio: build · testkoonti · testit · iteraatio +1Todentaminen

    Koonti ja testit todentavat muunnetun koodin, ja iteraatiolaskuri kasvaa yhdellä. Tulokset palaavat ajon tilaan.

  5. koonti · testit · iteraatio +1TodentaminenData: tulos · iteraatiotJatko · mittaus · enintään 3Seuraava vaihe

    Koonnin onnistuminen, testien läpäisyaste ja iteraatioiden määrä päättävät seuraavan vaiheen.

  6. Jatko · mittaus · enintään 3Seuraava vaiheSuoritus · arvio: läpi · raja · jumiutuminenSääntöjen osuus · testit · kattavuusMittaus

    Kun sekä koonti että testit menevät läpi, iteraatioraja saavutetaan tai jumiutuminen havaitaan (yhden palautusyrityksen jälkeen, jos sitä ei ole vielä tehty), ajo siirtyy mittaukseen. Mittaukseen siirtyminen ei tarkoita onnistumista.

  7. Lähtötaso · tuntemattomat mittaamattaAjon tilaData: lähtötasovertailuSääntöjen osuus · testit · kattavuusMittaus

    Mittaus lukee ajon tilaan säilytetyn lähtötason. Se ei ole uusi lähtötasoajo.

  8. 5 hyväksymisporttiaMittausData: arvosteluTuloskortti · arvosana

    Onnistunut koonti, 100 %:n testien läpäisyaste, kattavuuden muutos −5 tai parempi (vain kun lähtötaso tunnetaan), nolla poistettua testiä, nolla surefire-poissulkua. Arvosana annetaan vain, kun kaikki viisi läpäistään.

Syypohjainen korjaus

Näyttö kerätään ennen korjausta ja deterministiset korjaukset tulevat ensin. Jos uudelleenkoonti menee läpi, malli ohitetaan; jos ei, malli korjaa näytön ja ohjeiden avulla ja tulos todennetaan uudelleen.

  1. koonti · testit · iteraatio +1TodentaminenData: tulos · iteraatiotJatko · mittaus · enintään 3Seuraava vaihe

    Koonnin onnistuminen, testien läpäisyaste ja iteraatioiden määrä päättävät seuraavan vaiheen.

  2. Jatko · mittaus · enintään 3Seuraava vaiheSuoritus · arvio: epäonnistui · uusintaSyyn näyttö · 3 lähdettä · POMTutki ennen korjausta

    Jos koonti epäonnistui tai testien läpäisyaste on alle 100 % eikä iteraatioraja (oletuksena 3) ole täynnä, ajo siirtyy korjaukseen.

  3. Syyn näyttö · 3 lähdettä · POMTutki ennen korjaustaHavainnointi · raportti: tallennus ennen korjaustaTarkistuspiste ennen korjaustaPalautuskirjaukset

    Ennen korjausta tallennetaan tarkistuspiste. Se on best-effort: epäonnistunut tallennus ei pysäytä korjausta, eikä tallennus ole näyttöä onnistumisesta.

  4. Syyn näyttö · 3 lähdettä · POMTutki ennen korjaustaData: näyttö · ryhmitellyt virheetTunnettujen kaavojen korjausDeterministinen korjaus

    Kerää epäonnistuvat Java-tiedostot, enintään kolmen lähdetiedoston alkurivit, annotaatio-, POM- ja annotaatioprosessoriasetukset sekä importit syvyyteen 2 asti. Rajattu otos, ei koko koodikannan ymmärtämistä.

  5. Uudelleenkoonnin tarkistusDeterministinen korjausSuoritus · arvio: läpi · LLM ohitettukoonti · testit · iteraatio +1Todentaminen

    Jos tunnetun kaavan (esimerkiksi Lombok-asetusten) deterministinen korjaus saa uudelleenkoonnin läpi, mallia ei kutsuta. Ajo palaa silti todentamiseen, joten tämä ei ole lopullinen hyväksyntä.

  6. Uudelleenkoonnin tarkistusDeterministinen korjausEpäonnistuminen · raja: uudelleenkoonti epäonnistuiKorjaus näytön · ohjeiden avullaMallikorjaus

    Jos uudelleenkoonti epäonnistuu, kerätty näyttö ja korjausohjeet menevät mallikorjaukselle. Koodia lukemalla näkyy, että mukana välitetty virheteksti on alkuperäinen koontivirhe, ei uudelleenkoonnin uusi virhe, joten tätä ei saa lukea muodossa ”vain jäljellä olevat virheet välitetään”. Kyse ei ole ajossa toistetusta viasta.

  7. Aiempi korjaus, sama virhePalautuskirjauksetData: aiempi korjausKorjaus näytön · ohjeiden avullaMallikorjaus

    Samalla virheallekirjoituksella kirjatut aiemmat korjaukset haetaan ja liitetään. Syötteeseen lisätty kirjaus, ei mallin koulutusta.

  8. Korjaus näytön · ohjeiden avullaMallikorjausSuoritus · arvio: uusi todentaminenkoonti · testit · iteraatio +1Todentaminen

    Malli korjaa jäsennellyn architect/editor-polun kautta tai työkalujen käytön kehotteella, kun tuo polku ei ole käytettävissä tai on palautumassa, ja koonti ja testit todentavat uudelleen. Mallin muokkaus ei itsessään ole läpäisevä koonti.

Läpäisy vai jumiutuminen

Arvosana vaatii kaikki viisi porttia; poistetut tai poissuljetut testit sekä raja- tai jumiutumispoistumiset eivät ole onnistumisia.

  1. Jatko · mittaus · enintään 3Seuraava vaiheSuoritus · arvio: läpi · raja · jumiutuminenSääntöjen osuus · testit · kattavuusMittaus

    Kun sekä koonti että testit menevät läpi, iteraatioraja saavutetaan tai jumiutuminen havaitaan (yhden palautusyrityksen jälkeen, jos sitä ei ole vielä tehty), ajo siirtyy mittaukseen. Mittaukseen siirtyminen ei tarkoita onnistumista.

  2. Lähtötaso · tuntemattomat mittaamattaAjon tilaData: lähtötasovertailuSääntöjen osuus · testit · kattavuusMittaus

    Mittaus lukee ajon tilaan säilytetyn lähtötason. Se ei ole uusi lähtötasoajo.

  3. 5 hyväksymisporttiaMittausData: arvosteluTuloskortti · arvosana

    Onnistunut koonti, 100 %:n testien läpäisyaste, kattavuuden muutos −5 tai parempi (vain kun lähtötaso tunnetaan), nolla poistettua testiä, nolla surefire-poissulkua. Arvosana annetaan vain, kun kaikki viisi läpäistään.

  4. 5 hyväksymisporttiaMittausEpäonnistuminen · raja: poistettu · poissuljettu · epäonnistunutEpäonnistumis- · jumiutumisraportti

    Testejä poistamalla tai surefire-poissuluilla saadut läpäisyt sekä epäonnistuneet koonnit tai testit pysyvät epäonnistumisina. Poisto- ja poissulkutarkistukset laskevat nollan, kun Gitiä tai POMia ei voi lukea, joten ne eivät todista, että jokainen rikkomus havaitaan.

  5. Jatko · mittaus · enintään 3Seuraava vaiheHavainnointi · raportti: poistuminen rajaan · jumiutumiseenEpäonnistumis- · jumiutumisraportti

    Rajaan päättyvä tai jumiutuva ajo käy silti läpi mittauksen, mutta sitä ei raportoida onnistumisena. Tämä merkitsee raportointitavan; se ei ole oikotie mittauksen ohi.

Kaikki yhteydet samalla painolla. Valitse virta, niin vain sen polku korostuu numeroiduin vaihein.

  • Yhtenäinen · syötteiden, tulosten ja kirjausten suunta
  • Katkoviiva · suoritus, arvio, pyyntö
  • Pitkät pisteet · havainnointi ja raportointi, erillään arviosta
  • Lyhyet katkot · epäonnistuminen, pysähdys, raja
  • Paksu musta viiva · valittu virta; numerot kertovat järjestyksen
  • Laatikko · koodin tai tilan raja, nimi otsakkeessa
  • Sisälaatta · rajan komponentti
  • Pisteviivalaatikko · rajan ulkopuolella
  • Oranssi ääriviiva · kohta, jossa malli päättää
  • Putken vaiheet · korjaus
  • Todentaminen · reititys · hyväksyntä
  • Tila · kirjaukset
  • Tutki ennen korjausta

Piirretty yksityisistä toteutus- ja kehityskirjauksista. Nimet ovat yleisiä julkisia nimiä; koodipolkuja tai asiakastietoja ei näytetä.

Syöte epäonnistuneen uudelleenkoonnin jälkeen
Mallikorjaus saa kerätyn näytön ja korjausohjeet, mutta mukana välitetty virheteksti on alkuperäinen koontivirhe, ei uudelleenkoonnin uusi virhe. Todettu koodia lukemalla; ei toistettu ajossa, eikä lähdekoodia muutettu.
Porttien rajat
Jos kattavuuden lähtötasoa ei tunneta, tuo portti ohitetaan. Surefire-tarkistus laskee nykyisen POMin poissulut, ei eroa lähtötasoon. Poisto- ja poissulkutarkistukset laskevat nollan, kun Gitiä tai POMia ei voi lukea.
Tapaus ja sen luvut
Noin 40 setter-virheen jäljittäminen yhteen syyhyn, Lombok- ja POM-asetuksiin, on silloin kirjattu diagnoosi. Se ei ole läpimeno-, tarkkuus- tai lopullinen toimitusluku.