Dorađeni izvorni lik REODE: nasmiješeno krem-ružičasto lice aksolotla s tamnoplavim slušalicama i cijan lećama
Natrag u dvoranu

REODE

Code migration

Prije popravka pronaći zajednički uzrok.

Agent za migraciju koda Java/Spring.

2026.03 — 2026.04

Radni projekt · sustav migracije i verifikacije

  • CLIImplementirano · radni 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

Petlja migracije koja dokaze za popravak drži odvojeno od prihvaćanja.

Izvorno stanje builda bilježi se i primjenjuje se pretvorba temeljena na pravilima, a zatim se prije popravka prikupljaju dokazi iz izvora i POM-a. Nakon izmjene modela ponovno se provjeravaju build, testovi i cjelovitost testova, a izvođenja koja završe na ograničenju ili u zastoju izvješćuju se odvojeno od uspjeha.

Kombinira pretvorbu temeljenu na pravilima s popravkom uz pomoć modela i provjerava promijenjeni kod buildom i testovima. Radni projekt.

Rad na REODE-u u repozitoriju; suradnja s pinxlabom March 16, 2026 – May 26, 2026

CLI alat koji se koristi na poslu.

Karta petlje popravka · prema privatnim zapisima implementacije
Petlja popravka migracije REODEIzvorno stanje builda čuva se kao osnovica, primjenjuje se pretvorba temeljena na pravilima, a build i testovi provjeravaju rezultat. Pri neuspjehu se prije bilo kakvog popravka prikupljaju dokazi iz izvora, anotacija i POM-a, a poznati se obrasci popravljaju deterministički i ponovno grade. Ako ponovni build prođe, model se ne poziva; ako ne prođe, model popravlja uz prikupljene dokaze i upute za popravak, a rezultat se ponovno provjerava. Izvođenja koja završe na ograničenju iteracija ili u zastoju idu na mjerenje, ali se ne računaju kao uspjeh, a tablica bodova daje ocjenu samo kad prođu svih pet pragova prihvaćanja.Izvor · POMPrivatni ulaz migracijeTablica bodova · ocjenaNije postavljanjeIzvješće o neuspjehu · zastojuNe računa se kao uspjehIzvorna provjeraIzvorno stanje · kompilacijaStanje izvođenjaOsnovica · nepoznato nije izmjerenoZapisi oporavkaKontrolna točka prije popravkaRaniji popravak, ista pogreškaPretvorbaPlan → pretvorba temeljena na pravilimaIstraži prije popravkaDokazi uzroka · 3 izvora · POMDeterministički popravakPopravak poznatih obrazacaProvjera ponovnog buildaPopravak modelomPopravak uz dokaze · uputeVerifikacijabuild · testovi · iteracija +1Sljedeći korakNastavi · izmjeri · najviše 3MjerenjeUdio pravila · testovi · pokrivenost5 pragova prihvaćanjaUlaz · osnovicaZapisi oporavkaPretvorba · popravakVerifikacija · izlaz1izvor · POM2izvorna kompilacija3 pretvorba pravilima · Izvorno stanje · kompilacija → Plan → pretvorba temeljena na pravilima34build · test5rezultat · iteracije6prolaz · ograničenje · zastoj7usporedba s osnovicom8 ocjenjivanje · 5 pragova prihvaćanja → Tablica bodova · ocjena81rezultat · iteracije2 neuspjeh · ponovni pokušaj · Nastavi · izmjeri · najviše 3 → Dokazi uzroka · 3 izvora · POM23spremanje prije popravka4dokazi · grupirane pogreške5prošlo · LLM preskočen6ponovni build nije prošao7 raniji popravak · Raniji popravak, ista pogreška → Popravak uz dokaze · upute78ponovna provjera1prolaz · ograničenje · zastoj2usporedba s osnovicom3 ocjenjivanje · 5 pragova prihvaćanja → Tablica bodova · ocjena34obrisano · izuzeto · neuspjelo5izlaz na ograničenju · u zastoju

Pretvorba pravilima

Izvorno stanje čuva se kao osnovica; nakon pretvorbe pravilima build i testovi provjeravaju, a izvođenje ide na mjerenje.

  1. Izvor · POMPodaci: izvor · POMIzvorno stanje · kompilacijaIzvorna provjera

    Preuzima izvor Java/Spring i POM za migraciju. Kod i zasloni klijenta nisu prikazani.

  2. Izvorno stanje · kompilacijaIzvorna provjeraPodaci: izvorna kompilacijaOsnovica · nepoznato nije izmjerenoStanje izvođenja

    Prije pretvorbe odabire se izvršno okruženje i kompilira izvornik, pa se build koji je već bio pokvaren čuva u osnovici. Zadane vrijednosti testova i pokrivenosti u osnovici nisu mjerenja.

  3. Izvorno stanje · kompilacijaIzvorna provjeraPokretanje · prosudba: pretvorba pravilimaPlan → pretvorba temeljena na pravilimaPretvorba

    Graf izvođenja ide: izvorna provjera → plan pretvorbe → pretvorba temeljena na pravilima → verifikacija. Najprije se primjenjuju pretvorbe koje pravila mogu provesti.

  4. Plan → pretvorba temeljena na pravilimaPretvorbaPokretanje · prosudba: build · testbuild · testovi · iteracija +1Verifikacija

    Build i testovi provjeravaju pretvoreni kod, a broj iteracija raste za jedan. Rezultati se vraćaju u stanje izvođenja.

  5. build · testovi · iteracija +1VerifikacijaPodaci: rezultat · iteracijeNastavi · izmjeri · najviše 3Sljedeći korak

    Uspjeh builda, stopa prolaznosti testova i broj iteracija određuju sljedeći korak.

  6. Nastavi · izmjeri · najviše 3Sljedeći korakPokretanje · prosudba: prolaz · ograničenje · zastojUdio pravila · testovi · pokrivenostMjerenje

    Kad i build i testovi prođu, dosegne se ograničenje iteracija ili se otkrije zastoj (nakon jednog pokušaja oporavka ako ga još nije bilo), izvođenje ide na mjerenje. Odlazak na mjerenje ne znači uspjeh.

  7. Osnovica · nepoznato nije izmjerenoStanje izvođenjaPodaci: usporedba s osnovicomUdio pravila · testovi · pokrivenostMjerenje

    Mjerenje čita osnovicu sačuvanu u stanju izvođenja. To nije novo izvođenje osnovice.

  8. 5 pragova prihvaćanjaMjerenjePodaci: ocjenjivanjeTablica bodova · ocjena

    Uspješan build, 100 % prolaznosti testova, promjena pokrivenosti od −5 ili bolja (samo kad je osnovica poznata), nula obrisanih testova, nula surefire izuzimanja. Ocjena se daje samo kad prođe svih pet.

Popravak prema uzroku

Dokazi se prikupljaju prije popravka, a deterministički popravci dolaze prvi. Ako ponovni build prođe, model se preskače; ako ne, model popravlja uz dokaze i upute, a rezultat se ponovno provjerava.

  1. build · testovi · iteracija +1VerifikacijaPodaci: rezultat · iteracijeNastavi · izmjeri · najviše 3Sljedeći korak

    Uspjeh builda, stopa prolaznosti testova i broj iteracija određuju sljedeći korak.

  2. Nastavi · izmjeri · najviše 3Sljedeći korakPokretanje · prosudba: neuspjeh · ponovni pokušajDokazi uzroka · 3 izvora · POMIstraži prije popravka

    Ako build nije prošao ili je stopa prolaznosti testova ispod 100 %, a ograničenje iteracija (zadano 3) nije dosegnuto, izvođenje ide na popravak.

  3. Dokazi uzroka · 3 izvora · POMIstraži prije popravkaOpažanje · izvješće: spremanje prije popravkaKontrolna točka prije popravkaZapisi oporavka

    Prije popravka sprema se kontrolna točka. To je best-effort: neuspjelo spremanje ne zaustavlja popravak, a spremanje nije dokaz uspjeha.

  4. Dokazi uzroka · 3 izvora · POMIstraži prije popravkaPodaci: dokazi · grupirane pogreškePopravak poznatih obrazacaDeterministički popravak

    Prikuplja Java datoteke s pogreškama, početne retke najviše triju izvora, postavke anotacija, POM-a i annotation processora te importe do dubine 2. Ograničen uzorak, a ne razumijevanje cijelog koda.

  5. Provjera ponovnog buildaDeterministički popravakPokretanje · prosudba: prošlo · LLM preskočenbuild · testovi · iteracija +1Verifikacija

    Ako deterministički popravak poznatog obrasca (na primjer postava Lomboka) omogući da ponovni build prođe, model se ne poziva. Izvođenje se i dalje vraća na verifikaciju, pa to nije konačno prihvaćanje.

  6. Provjera ponovnog buildaDeterministički popravakNeuspjeh · ograničenje: ponovni build nije prošaoPopravak uz dokaze · uputePopravak modelom

    Ako ponovni build ne prođe, prikupljeni dokazi i upute za popravak idu na popravak modelom. Iz koda se vidi da se uz njih prosljeđuje tekst izvorne pogreške builda, a ne nove pogreške ponovnog builda, pa se to ne smije čitati kao „prosljeđuju se samo preostale pogreške”. To nije nedostatak reproduciran u izvođenju.

  7. Raniji popravak, ista pogreškaZapisi oporavkaPodaci: raniji popravakPopravak uz dokaze · uputePopravak modelom

    Raniji popravci zabilježeni pod istim potpisom pogreške pronalaze se i prilažu. To je zapis dodan ulazu, a ne treniranje modela.

  8. Popravak uz dokaze · uputePopravak modelomPokretanje · prosudba: ponovna provjerabuild · testovi · iteracija +1Verifikacija

    Model popravlja kroz strukturirani put architect/editor ili, kad taj put nije dostupan ili je u tijeku oporavak, kroz prompt s korištenjem alata, a build i testovi ponovno provjeravaju. Izmjena modela sama po sebi nije build koji je prošao.

Prolaz nasuprot zastoju

Za ocjenu je potrebno svih pet pragova; obrisani ili izuzeti testovi te izlazi na ograničenju ili u zastoju ne računaju se kao uspjeh.

  1. Nastavi · izmjeri · najviše 3Sljedeći korakPokretanje · prosudba: prolaz · ograničenje · zastojUdio pravila · testovi · pokrivenostMjerenje

    Kad i build i testovi prođu, dosegne se ograničenje iteracija ili se otkrije zastoj (nakon jednog pokušaja oporavka ako ga još nije bilo), izvođenje ide na mjerenje. Odlazak na mjerenje ne znači uspjeh.

  2. Osnovica · nepoznato nije izmjerenoStanje izvođenjaPodaci: usporedba s osnovicomUdio pravila · testovi · pokrivenostMjerenje

    Mjerenje čita osnovicu sačuvanu u stanju izvođenja. To nije novo izvođenje osnovice.

  3. 5 pragova prihvaćanjaMjerenjePodaci: ocjenjivanjeTablica bodova · ocjena

    Uspješan build, 100 % prolaznosti testova, promjena pokrivenosti od −5 ili bolja (samo kad je osnovica poznata), nula obrisanih testova, nula surefire izuzimanja. Ocjena se daje samo kad prođe svih pet.

  4. 5 pragova prihvaćanjaMjerenjeNeuspjeh · ograničenje: obrisano · izuzeto · neuspjeloIzvješće o neuspjehu · zastoju

    Prolazi dobiveni brisanjem testova ili surefire izuzimanjima te neuspjeli buildovi ili testovi ostaju neuspjesi. Provjere brisanja i izuzimanja broje nulu kad se Git ili POM ne mogu pročitati, pa nisu dokaz da je svako kršenje uhvaćeno.

  5. Nastavi · izmjeri · najviše 3Sljedeći korakOpažanje · izvješće: izlaz na ograničenju · u zastojuIzvješće o neuspjehu · zastoju

    Izvođenje koje završi na ograničenju ili u zastoju i dalje prolazi mjerenje, ali se ne izvješćuje kao uspjeh. To označava način izvješćivanja; nije prečac oko mjerenja.

Sve veze iste debljine. Odaberite tijek kako biste istaknuli samo njegov put s numeriranim koracima.

  • Puna crta · smjer ulaza, rezultata i zapisa
  • Isprekidana crta · pokretanje, prosudba, zahtjev
  • Duga točkasta crta · opažanje i izvješćivanje, odvojeno od prosudbe
  • Kratke crtice · neuspjeh, zaustavljanje, ograničenje
  • Debela crna crta · odabrani tijek; brojevi daju redoslijed
  • Okvir · granica koda ili stanja, imenovana u zaglavlju
  • Unutarnja pločica · komponenta te granice
  • Točkasti okvir · izvan te granice
  • Narančasti obrub · mjesto gdje model odlučuje
  • Koraci cjevovoda · popravak
  • Verifikacija · usmjeravanje · prihvaćanje
  • Stanje · zapisi
  • Istraži prije popravka

Nacrtano prema privatnim zapisima implementacije i razvoja. Nazivi su opći javni nazivi; putanje koda i podaci o klijentima nisu prikazani.

Ulaz nakon neuspjelog ponovnog builda
Popravak modelom dobiva prikupljene dokaze i upute za popravak, ali se prosljeđuje tekst izvorne pogreške builda, a ne nove pogreške ponovnog builda. Utvrđeno čitanjem koda; nije reproducirano u izvođenju, a izvor nije mijenjan.
Ograničenja pragova
Ako osnovica pokrivenosti nije poznata, taj se prag preskače. Provjera surefire broji izuzimanja u trenutačnom POM-u, a ne razliku u odnosu na osnovicu. Provjere brisanja i izuzimanja broje nulu kad se Git ili POM ne mogu pročitati.
Slučaj i njegove brojke
Četrdesetak setter pogrešaka praćenih do jednog uzroka, postava Lomboka i POM-a, dijagnoza je zabilježena u ono vrijeme. Nije brojka propusnosti, točnosti ni konačne isporuke.