Algne REODE tegelane viimistletuna: naeratav kreemika ja roosa aksolotli nägu, tumesinine peakomplekt ja tsüaanläätsed
Tagasi saali

REODE

Code migration

Kõigepealt ühine põhjus, siis parandus.

Java/Spring koodi migratsiooniagent.

2026.03 — 2026.04

Tööprojekt · migratsiooni- ja verifitseerimissüsteem

  • CLITeostatud · töö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

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.

Parandustsükli kaart · privaatsete teostuskirjete põhjal
REODE migratsiooni parandustsükkelAlgne ehitusolek säilitatakse baastasemena, rakendatakse reeglipõhine teisendus ning ehitus ja testid verifitseerivad tulemuse. Tõrke korral kogutakse enne mis tahes parandust lähtekoodi, annotatsioonide ja POM-i tõendid ning tuntud mustrid parandatakse deterministlikult ja ehitatakse uuesti. Kui uuesti ehitamine õnnestub, mudelit ei kutsuta; kui ebaõnnestub, parandab mudel kogutud tõendite ja parandusjuhiste abil ning tulemus verifitseeritakse uuesti. Iteratsioonipiirangu või seiskumisega lõppevad käivitused liiguvad mõõtmisse, kuid neid eduks ei loeta, ja tulemuskaart annab hinde ainult siis, kui kõik viis vastuvõtuväravat on läbitud.Lähtekood · POMPrivaatne migratsioonisisendTulemuskaart · hinneEi ole juurutusTõrke · seiskumise aruanneEduks ei loetaAlgse kontrollAlgne olek · kompileerimineKäivituse olekBaastase · tundmatud mõõtmataTaastamise kirjedKontrollpunkt enne parandustVarasem parandus, sama vigaTeisendusPlaan → reeglipõhine teisendusUuri enne parandamistPõhjuse tõendid · 3 lähet · POMDeterministlik parandusTuntud mustrite parandusUuesti ehitamise kontrollMudeli parandusParandus tõendite · juhistegaVerifitseerimineehitus · testid · iteratsioon +1Järgmine sammJätka · mõõda · kuni 3MõõtmineReeglite osakaal · testid · katvus5 vastuvõtuväravatSisend · baastaseTaastamise kirjedTeisendus · parandusVerifitseerimine · väljumine1 lähtekood · POM · Lähtekood · POM → Algne olek · kompileerimine12algne kompileerimine3 reeglipõhine teisendus · Algne olek · kompileerimine → Plaan → reeglipõhine teisendus34build · test5tulemus · iteratsioonid6läbitud · piirang · seiskumine7baastasemega võrdlus8hindamine1tulemus · iteratsioonid2 ebaõnnestus · kordus · Jätka · mõõda · kuni 3 → Põhjuse tõendid · 3 lähet · POM23salvestamine enne parandust4tõendid · rühmitatud vead5läbitud · LLM vahele jäetud6uuesti ehitamine ebaõnnestus7 varasem parandus · Varasem parandus, sama viga → Parandus tõendite · juhistega78uuesti verifitseerimine1läbitud · piirang · seiskumine2baastasemega võrdlus3hindamine4kustutatud · välistatud · ebaõnnestunud5väljumine piirangu · seiskumisega

Reeglipõhine teisendus

Algne olek säilitatakse baastasemena; pärast reeglipõhist teisendust verifitseerivad ehitus ja testid ning käivitus liigub mõõtmisse.

  1. Lähtekood · POMAndmed: lähtekood · POMAlgne olek · kompileerimineAlgse kontroll

    Võtab migreeritava Java/Spring lähtekoodi ja POM-i. Kliendi koodi ja vaateid ei näidata.

  2. Algne olek · kompileerimineAlgse kontrollAndmed: algne kompileerimineBaastase · tundmatud mõõtmataKäivituse olek

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

  3. Algne olek · kompileerimineAlgse kontrollKäivitus · hinnang: reeglipõhine teisendusPlaan → reeglipõhine teisendusTeisendus

    Käivitusgraaf liigub algse kontroll → teisendusplaan → reeglipõhine teisendus → verifitseerimine. Reeglitega teostatavad teisendused rakendatakse esimesena.

  4. Plaan → reeglipõhine teisendusTeisendusKäivitus · hinnang: build · testehitus · testid · iteratsioon +1Verifitseerimine

    Ehitus ja testid verifitseerivad teisendatud koodi ning iteratsiooniloendur kasvab ühe võrra. Tulemused naasevad käivituse olekusse.

  5. ehitus · testid · iteratsioon +1VerifitseerimineAndmed: tulemus · iteratsioonidJätka · mõõda · kuni 3Järgmine samm

    Ehituse õnnestumine, testide läbimismäär ja iteratsioonide arv otsustavad järgmise sammu.

  6. Jätka · mõõda · kuni 3Järgmine sammKäivitus · hinnang: läbitud · piirang · seiskumineReeglite osakaal · testid · katvusMõõtmine

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

  7. Baastase · tundmatud mõõtmataKäivituse olekAndmed: baastasemega võrdlusReeglite osakaal · testid · katvusMõõtmine

    Mõõtmine loeb käivituse olekusse säilitatud baastaset. See ei ole uus baastaseme käivitus.

  8. 5 vastuvõtuväravatMõõ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.

  1. ehitus · testid · iteratsioon +1VerifitseerimineAndmed: tulemus · iteratsioonidJätka · mõõda · kuni 3Järgmine samm

    Ehituse õnnestumine, testide läbimismäär ja iteratsioonide arv otsustavad järgmise sammu.

  2. Jätka · mõõda · kuni 3Järgmine sammKäivitus · hinnang: ebaõnnestus · kordusPõhjuse tõendid · 3 lähet · POMUuri enne parandamist

    Kui ehitus ebaõnnestus või testide läbimismäär on alla 100% ja iteratsioonipiirang (vaikimisi 3) ei ole täis, liigub käivitus parandamisse.

  3. Põhjuse tõendid · 3 lähet · POMUuri enne parandamistVaatlus · aruanne: salvestamine enne parandustKontrollpunkt enne parandustTaastamise kirjed

    Enne parandust salvestatakse kontrollpunkt. See on best-effort: ebaõnnestunud salvestamine ei peata parandust ja salvestamine ei ole tõend edu kohta.

  4. Põhjuse tõendid · 3 lähet · POMUuri enne parandamistAndmed: tõendid · rühmitatud veadTuntud mustrite parandusDeterministlik parandus

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

  5. Uuesti ehitamise kontrollDeterministlik parandusKäivitus · hinnang: läbitud · LLM vahele jäetudehitus · testid · iteratsioon +1Verifitseerimine

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

  6. Uuesti ehitamise kontrollDeterministlik parandusTõrge · piirang: uuesti ehitamine ebaõnnestusParandus tõendite · juhistegaMudeli parandus

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

  7. Varasem parandus, sama vigaTaastamise kirjedAndmed: varasem parandusParandus tõendite · juhistegaMudeli parandus

    Sama veasignatuuri all salvestatud varasemad parandused otsitakse üles ja lisatakse. Sisendile lisatud kirje, mitte mudeli treenimine.

  8. Parandus tõendite · juhistegaMudeli parandusKäivitus · hinnang: uuesti verifitseerimineehitus · testid · iteratsioon +1Verifitseerimine

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

  1. Jätka · mõõda · kuni 3Järgmine sammKäivitus · hinnang: läbitud · piirang · seiskumineReeglite osakaal · testid · katvusMõõtmine

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

  2. Baastase · tundmatud mõõtmataKäivituse olekAndmed: baastasemega võrdlusReeglite osakaal · testid · katvusMõõtmine

    Mõõtmine loeb käivituse olekusse säilitatud baastaset. See ei ole uus baastaseme käivitus.

  3. 5 vastuvõtuväravatMõõ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.

  4. 5 vastuvõtuväravatMõõtmineTõrge · piirang: kustutatud · välistatud · ebaõnnestunudTõrke · seiskumise aruanne

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

  5. Jätka · mõõda · kuni 3Järgmine sammVaatlus · aruanne: väljumine piirangu · seiskumisegaTõrke · seiskumise aruanne

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