
REODE
Code migration
Kõigepealt ühine põhjus, siis parandus.
Java/Spring koodi migratsiooniagent.
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
Migratsioonitsükkel, mis hoiab parandamise tõendid vastuvõtust lahus.
Algne ehitusolek salvestatakse ja rakendatakse reeglipõhine teisendus, seejärel kogutakse enne parandamist lähtekoodi ja POM-i tõendid. Pärast mudeli muudatust kontrollitakse uuesti ehitust, teste ja testide terviklikkust ning piirangu või seiskumisega lõppenud käivitused raporteeritakse edust eraldi.
See ühendab reeglipõhise teisenduse mudeli abil tehtava parandusega ja kontrollib muudetud koodi ehituse ja testidega. Tööprojekt.
REODE töö repositooriumis; pinxlabi leping 16. märts 2026 – 26. mai 2026
Tööl kasutatav CLI-tööriist.
Reeglipõhine teisendus
Algne olek säilitatakse baastasemena; pärast reeglipõhist teisendust verifitseerivad ehitus ja testid ning käivitus liigub mõõtmisse.
Lähtekood · POMAndmed: lähtekood · POMAlgne olek · kompileerimine
Algse kontrollVõtab migreeritava Java/Spring lähtekoodi ja POM-i. Kliendi koodi ja vaateid ei näidata.
Algne olek · kompileerimine
Algse kontrollAndmed: algne kompileerimineBaastase · tundmatud mõõtmataKäivituse olekEnne teisendust valitakse käituskeskkond ja kompileeritakse algne kood, seega jääb juba katkine ehitus baastasemesse. Baastaseme testide ja katvuse vaikeväärtused ei ole mõõtmised.
Algne olek · kompileerimine
Algse kontrollKäivitus · hinnang: reeglipõhine teisendusPlaan → reeglipõhine teisendusTeisendusKäivitusgraaf liigub algse kontroll → teisendusplaan → reeglipõhine teisendus → verifitseerimine. Reeglitega teostatavad teisendused rakendatakse esimesena.
Plaan → reeglipõhine teisendus
TeisendusKäivitus · hinnang: build · testehitus · testid · iteratsioon +1VerifitseerimineEhitus ja testid verifitseerivad teisendatud koodi ning iteratsiooniloendur kasvab ühe võrra. Tulemused naasevad käivituse olekusse.
ehitus · testid · iteratsioon +1
VerifitseerimineAndmed: tulemus · iteratsioonidJätka · mõõda · kuni 3Järgmine sammEhituse õnnestumine, testide läbimismäär ja iteratsioonide arv otsustavad järgmise sammu.
Jätka · mõõda · kuni 3
Järgmine sammKäivitus · hinnang: läbitud · piirang · seiskumineReeglite osakaal · testid · katvusMõõtmineKui nii ehitus kui ka testid õnnestuvad, iteratsioonipiirang saab täis või tuvastatakse seiskumine (pärast ühte taastamiskatset, kui seda pole veel tehtud), liigub käivitus mõõtmisse. Mõõtmisse liikumine ei tähenda edu.
Baastase · tundmatud mõõtmata
Käivituse olekAndmed: baastasemega võrdlusReeglite osakaal · testid · katvusMõõtmineMõõtmine loeb käivituse olekusse säilitatud baastaset. See ei ole uus baastaseme käivitus.
5 vastuvõtuväravat
MõõtmineAndmed: hindamineTulemuskaart · hinneÕnnestunud ehitus, 100% testide läbimismäär, katvuse muutus −5 või parem (ainult kui baastase on teada), null kustutatud testi, null surefire'i välistust. Hinne antakse ainult siis, kui kõik viis on läbitud.
Põhjusepõhine parandus
Tõendid kogutakse enne parandamist ja deterministlikud parandused tulevad esimesena. Kui uuesti ehitamine õnnestub, jäetakse mudel vahele; kui mitte, parandab mudel tõendite ja juhiste abil ning tulemus verifitseeritakse uuesti.
ehitus · testid · iteratsioon +1
VerifitseerimineAndmed: tulemus · iteratsioonidJätka · mõõda · kuni 3Järgmine sammEhituse õnnestumine, testide läbimismäär ja iteratsioonide arv otsustavad järgmise sammu.
Jätka · mõõda · kuni 3
Järgmine sammKäivitus · hinnang: ebaõnnestus · kordusPõhjuse tõendid · 3 lähet · POMUuri enne parandamistKui ehitus ebaõnnestus või testide läbimismäär on alla 100% ja iteratsioonipiirang (vaikimisi 3) ei ole täis, liigub käivitus parandamisse.
Põhjuse tõendid · 3 lähet · POM
Uuri enne parandamistVaatlus · aruanne: salvestamine enne parandustKontrollpunkt enne parandustTaastamise kirjedEnne parandust salvestatakse kontrollpunkt. See on best-effort: ebaõnnestunud salvestamine ei peata parandust ja salvestamine ei ole tõend edu kohta.
Põhjuse tõendid · 3 lähet · POM
Uuri enne parandamistAndmed: tõendid · rühmitatud veadTuntud mustrite parandusDeterministlik parandusKogub tõrkuvad Java-failid, kuni kolme lähtefaili algusread, annotatsiooni-, POM-i ja annotatsiooniprotsessori seaded ning impordid sügavuseni 2. Piiratud valim, mitte kogu koodibaasi mõistmine.
Uuesti ehitamise kontroll
Deterministlik parandusKäivitus · hinnang: läbitud · LLM vahele jäetudehitus · testid · iteratsioon +1VerifitseerimineKui tuntud mustri (näiteks Lombok'i seadistuse) deterministlik parandus laseb uuesti ehitamisel õnnestuda, mudelit ei kutsuta. Käivitus naaseb siiski verifitseerimisse, seega ei ole see lõplik vastuvõtt.
Uuesti ehitamise kontroll
Deterministlik parandusTõrge · piirang: uuesti ehitamine ebaõnnestusParandus tõendite · juhistegaMudeli parandusKui uuesti ehitamine ebaõnnestub, lähevad kogutud tõendid ja parandusjuhised mudeli parandusse. Koodi lugedes selgub, et kaasa antav veatekst on algne ehitusviga, mitte uuesti ehitamise uus viga, seega ei tohi seda lugeda kui „edasi antakse ainult allesjäänud vead“. Tegu ei ole käivituses taasesitatud veaga.
Varasem parandus, sama viga
Taastamise kirjedAndmed: varasem parandusParandus tõendite · juhistegaMudeli parandusSama veasignatuuri all salvestatud varasemad parandused otsitakse üles ja lisatakse. Sisendile lisatud kirje, mitte mudeli treenimine.
Parandus tõendite · juhistega
Mudeli parandusKäivitus · hinnang: uuesti verifitseerimineehitus · testid · iteratsioon +1VerifitseerimineMudel parandab struktureeritud architect/editor-tee kaudu või tööriistakasutuse viibaga, kui see tee ei ole saadaval või on taastumisel, ning ehitus ja testid verifitseerivad uuesti. Mudeli muudatus ei ole iseenesest õnnestunud ehitus.
Läbimine või seiskumine
Hinne nõuab kõiki viit väravat; kustutatud või välistatud testid ning piirangu või seiskumisega väljumised ei ole edu.
Jätka · mõõda · kuni 3
Järgmine sammKäivitus · hinnang: läbitud · piirang · seiskumineReeglite osakaal · testid · katvusMõõtmineKui nii ehitus kui ka testid õnnestuvad, iteratsioonipiirang saab täis või tuvastatakse seiskumine (pärast ühte taastamiskatset, kui seda pole veel tehtud), liigub käivitus mõõtmisse. Mõõtmisse liikumine ei tähenda edu.
Baastase · tundmatud mõõtmata
Käivituse olekAndmed: baastasemega võrdlusReeglite osakaal · testid · katvusMõõtmineMõõtmine loeb käivituse olekusse säilitatud baastaset. See ei ole uus baastaseme käivitus.
5 vastuvõtuväravat
MõõtmineAndmed: hindamineTulemuskaart · hinneÕnnestunud ehitus, 100% testide läbimismäär, katvuse muutus −5 või parem (ainult kui baastase on teada), null kustutatud testi, null surefire'i välistust. Hinne antakse ainult siis, kui kõik viis on läbitud.
5 vastuvõtuväravat
MõõtmineTõrge · piirang: kustutatud · välistatud · ebaõnnestunudTõrke · seiskumise aruanneTestide kustutamise või surefire'i välistustega saadud läbimised ning ebaõnnestunud ehitused või testid jäävad tõrgeteks. Kustutamise ja välistuste kontrollid loevad nulli, kui Giti või POM-i ei saa lugeda, seega ei tõenda need, et iga rikkumine tabatakse.
Jätka · mõõda · kuni 3
Järgmine sammVaatlus · aruanne: väljumine piirangu · seiskumisegaTõrke · seiskumise aruannePiirangu või seiskumisega lõppev käivitus läbib siiski mõõtmise, kuid seda ei raporteerita eduna. See tähistab raporteerimise viisi; see ei ole otsetee mõõtmisest mööda.
Kõik ühendused sama kaaluga. Vali voog, et tõsta esile ainult selle tee koos nummerdatud sammudega.
- Pidevjoon · sisendi, tulemuste ja kirjete suund
- Kriipsjoon · käivitus, hinnang, päring
- Pikad punktid · vaatlus ja aruandlus, hinnangust eraldi
- Lühikesed kriipsud · tõrge, peatumine, piirang
- Paks must joon · valitud voog; numbrid näitavad järjekorda
- Kast · koodi või oleku piir, nimi päises
- Sisemine silt · selle piiri komponent
- Punktiirjoonega kast · sellest piirist väljas
- Oranž kontuur · koht, kus mudel otsustab
- Konveieri sammud · parandus
- Verifitseerimine · suunamine · vastuvõtt
- Olek · kirjed
- Uuri enne parandamist
Joonistatud privaatsete teostus- ja arenduskirjete põhjal. Nimed on üldised avalikud nimed; kooditeid ega kliendiandmeid ei näidata.
- Sisend pärast ebaõnnestunud uuesti ehitamist
- Mudeli parandus saab kogutud tõendid ja parandusjuhised, kuid kaasa antav veatekst on algne ehitusviga, mitte uuesti ehitamise uus viga. Tuvastatud koodi lugedes; käivituses ei taasesitatud ja lähtekoodi ei muudetud.
- Väravate piirid
- Kui katvuse baastase pole teada, jäetakse see värav vahele. Surefire'i kontroll loeb praeguse POM-i välistusi, mitte erinevust baastasemest. Kustutamise ja välistuste kontrollid loevad nulli, kui Giti või POM-i ei saa lugeda.
- Juhtum ja selle arvud
- Umbes 40 setteri vea jälitamine ühe põhjuseni, Lombok'i ja POM-i seadistuseni, on tollal salvestatud diagnoos. See ei ole läbilaske-, täpsus- ega lõplik tarnenäitaja.