
REODE
Code migration
Prije popravka pronaći zajednički uzrok.
Agent za migraciju koda Java/Spring.
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
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.
Pretvorba pravilima
Izvorno stanje čuva se kao osnovica; nakon pretvorbe pravilima build i testovi provjeravaju, a izvođenje ide na mjerenje.
Izvor · POMPodaci: izvor · POMIzvorno stanje · kompilacija
Izvorna provjeraPreuzima izvor Java/Spring i POM za migraciju. Kod i zasloni klijenta nisu prikazani.
Izvorno stanje · kompilacija
Izvorna provjeraPodaci: izvorna kompilacijaOsnovica · nepoznato nije izmjerenoStanje izvođenjaPrije 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.
Izvorno stanje · kompilacija
Izvorna provjeraPokretanje · prosudba: pretvorba pravilimaPlan → pretvorba temeljena na pravilimaPretvorbaGraf izvođenja ide: izvorna provjera → plan pretvorbe → pretvorba temeljena na pravilima → verifikacija. Najprije se primjenjuju pretvorbe koje pravila mogu provesti.
Plan → pretvorba temeljena na pravilima
PretvorbaPokretanje · prosudba: build · testbuild · testovi · iteracija +1VerifikacijaBuild i testovi provjeravaju pretvoreni kod, a broj iteracija raste za jedan. Rezultati se vraćaju u stanje izvođenja.
build · testovi · iteracija +1
VerifikacijaPodaci: rezultat · iteracijeNastavi · izmjeri · najviše 3Sljedeći korakUspjeh builda, stopa prolaznosti testova i broj iteracija određuju sljedeći korak.
Nastavi · izmjeri · najviše 3
Sljedeći korakPokretanje · prosudba: prolaz · ograničenje · zastojUdio pravila · testovi · pokrivenostMjerenjeKad 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.
Osnovica · nepoznato nije izmjereno
Stanje izvođenjaPodaci: usporedba s osnovicomUdio pravila · testovi · pokrivenostMjerenjeMjerenje čita osnovicu sačuvanu u stanju izvođenja. To nije novo izvođenje osnovice.
5 pragova prihvaćanja
MjerenjePodaci: ocjenjivanjeTablica bodova · ocjenaUspješ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.
build · testovi · iteracija +1
VerifikacijaPodaci: rezultat · iteracijeNastavi · izmjeri · najviše 3Sljedeći korakUspjeh builda, stopa prolaznosti testova i broj iteracija određuju sljedeći korak.
Nastavi · izmjeri · najviše 3
Sljedeći korakPokretanje · prosudba: neuspjeh · ponovni pokušajDokazi uzroka · 3 izvora · POMIstraži prije popravkaAko build nije prošao ili je stopa prolaznosti testova ispod 100 %, a ograničenje iteracija (zadano 3) nije dosegnuto, izvođenje ide na popravak.
Dokazi uzroka · 3 izvora · POM
Istraži prije popravkaOpažanje · izvješće: spremanje prije popravkaKontrolna točka prije popravkaZapisi oporavkaPrije popravka sprema se kontrolna točka. To je best-effort: neuspjelo spremanje ne zaustavlja popravak, a spremanje nije dokaz uspjeha.
Dokazi uzroka · 3 izvora · POM
Istraži prije popravkaPodaci: dokazi · grupirane pogreškePopravak poznatih obrazacaDeterministički popravakPrikuplja 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.
Provjera ponovnog builda
Deterministički popravakPokretanje · prosudba: prošlo · LLM preskočenbuild · testovi · iteracija +1VerifikacijaAko 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.
Provjera ponovnog builda
Deterministički popravakNeuspjeh · ograničenje: ponovni build nije prošaoPopravak uz dokaze · uputePopravak modelomAko 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.
Raniji popravak, ista pogreška
Zapisi oporavkaPodaci: raniji popravakPopravak uz dokaze · uputePopravak modelomRaniji popravci zabilježeni pod istim potpisom pogreške pronalaze se i prilažu. To je zapis dodan ulazu, a ne treniranje modela.
Popravak uz dokaze · upute
Popravak modelomPokretanje · prosudba: ponovna provjerabuild · testovi · iteracija +1VerifikacijaModel 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.
Nastavi · izmjeri · najviše 3
Sljedeći korakPokretanje · prosudba: prolaz · ograničenje · zastojUdio pravila · testovi · pokrivenostMjerenjeKad 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.
Osnovica · nepoznato nije izmjereno
Stanje izvođenjaPodaci: usporedba s osnovicomUdio pravila · testovi · pokrivenostMjerenjeMjerenje čita osnovicu sačuvanu u stanju izvođenja. To nije novo izvođenje osnovice.
5 pragova prihvaćanja
MjerenjePodaci: ocjenjivanjeTablica bodova · ocjenaUspješ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.
5 pragova prihvaćanja
MjerenjeNeuspjeh · ograničenje: obrisano · izuzeto · neuspjeloIzvješće o neuspjehu · zastojuProlazi 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.
Nastavi · izmjeri · najviše 3
Sljedeći korakOpažanje · izvješće: izlaz na ograničenju · u zastojuIzvješće o neuspjehu · zastojuIzvođ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.