
REODE
Code migration
Før rettelsen: den fælles årsag først.
En agent til kodemigrering af 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
En migreringsløkke, der holder reparationsbelæg adskilt fra accept.
Den oprindelige build-tilstand registreres, og regelbaseret konvertering anvendes, hvorefter belæg fra kilde og POM indsamles før reparation. Efter en models ændring kontrolleres build, test og testintegritet igen, og kørsler, der ender ved en grænse eller går i stå, rapporteres adskilt fra succes.
Den kombinerer regelbaseret konvertering med modelassisteret reparation og kontrollerer den ændrede kode med build og test. Et arbejdsprojekt.
REODE-arbejde i repositoryet; opgave for pinxlab 16. marts 2026 til 26. maj 2026
Et CLI-værktøj, der bruges på arbejdet.
Regelkonvertering
Den oprindelige tilstand bevares som baseline; efter regelkonvertering verificerer build og test, og kørslen går videre til måling.
Kilde · POMData: kilde · POMOprindelig tilstand · compile
Kontrol af originalTager den Java/Spring-kilde og POM, der skal migreres. Kundens kode og skærme vises ikke.
Oprindelig tilstand · compile
Kontrol af originalData: oprindelig compileBaseline · ukendte værdier ikke måltKørselstilstandFør konverteringen vælges runtimen, og originalen kompileres, så et build, der allerede var i stykker, bevares i baseline. Standardværdier for test og dækning i baseline er ikke målinger.
Oprindelig tilstand · compile
Kontrol af originalKørsel · vurdering: regelkonverteringPlan → regelbaseret konverteringKonverteringKørselsgrafen går kontrol af original → konverteringsplan → regelbaseret konvertering → verifikation. Konverteringer, som regler kan bære, anvendes først.
Plan → regelbaseret konvertering
KonverteringKørsel · vurdering: build · testbuild · test · iteration +1VerifikationBuild og test verificerer den konverterede kode, og iterationstallet stiger med én. Resultaterne vender tilbage til kørselstilstanden.
build · test · iteration +1
VerifikationData: resultat · iterationerFortsæt · mål · højst 3Næste trinVellykket build, beståelsesrate for tests og iterationstallet afgør næste trin.
Fortsæt · mål · højst 3
Næste trinKørsel · vurdering: bestået · grænse · stilstandRegelandel · tests · dækningMålingNår både build og test består, iterationsgrænsen nås, eller der registreres stilstand (efter ét gendannelsesforsøg, hvis det ikke er prøvet endnu), går kørslen til måling. At gå til måling betyder ikke succes.
Baseline · ukendte værdier ikke målt
KørselstilstandData: sammenligning med baselineRegelandel · tests · dækningMålingMålingen læser den baseline, der er bevaret i kørselstilstanden. Det er ikke en ny baseline-kørsel.
5 acceptgates
MålingData: karaktergivningScorecard · karakterVellykket build, en beståelsesrate for tests på 100%, en ændring i dækning på −5 eller bedre (kun når baseline er kendt), nul slettede tests, nul surefire-udelukkelser. En karakter gives kun, når alle fem består.
Årsagsbaseret reparation
Belæg indsamles før rettelse, og deterministiske rettelser kommer først. Hvis det nye build består, springes modellen over; ellers reparerer modellen med belæg og instrukser, og resultatet verificeres igen.
build · test · iteration +1
VerifikationData: resultat · iterationerFortsæt · mål · højst 3Næste trinVellykket build, beståelsesrate for tests og iterationstallet afgør næste trin.
Fortsæt · mål · højst 3
Næste trinKørsel · vurdering: fejlet · nyt forsøgBelæg for årsag · 3 kilder · POMUdforsk før rettelseHvis build fejlede, eller beståelsesraten for tests er under 100%, og iterationsgrænsen (som standard 3) ikke er nået, går kørslen til reparation.
Belæg for årsag · 3 kilder · POM
Udforsk før rettelseObservation · rapport: gem før rettelseCheckpoint før rettelseGendannelseslogsEt checkpoint gemmes før rettelsen. Det er best-effort: en mislykket lagring stopper ikke reparationen, og en lagring er ikke belæg for succes.
Belæg for årsag · 3 kilder · POM
Udforsk før rettelseData: belæg · grupperede fejlRet kendte mønstreDeterministisk rettelseIndsamler de fejlende Java-filer, de første linjer af op til tre kilder, indstillinger for annotationer, POM og annotation processor samt imports til dybde 2. En afgrænset prøve, ikke en forståelse af hele kodebasen.
Kontrol af nyt build
Deterministisk rettelseKørsel · vurdering: bestået · LLM sprunget overbuild · test · iteration +1VerifikationHvis en deterministisk rettelse af et kendt mønster (for eksempel Lombok-opsætningen) får det nye build til at bestå, kaldes ingen model. Kørslen vender stadig tilbage til verifikation, så dette er ikke endelig accept.
Kontrol af nyt build
Deterministisk rettelseFejl · grænse: nyt build fejledeRet med belæg · instrukserModelreparationHvis det nye build fejler, går det indsamlede belæg og rettelsesinstrukserne til modelreparation. Læsning af koden viser, at den fejltekst, der sendes med, er den oprindelige build-fejl, ikke det nye builds fejl, så det må ikke læses som »kun de resterende fejl sendes videre«. Ikke en defekt, der er reproduceret i en kørsel.
Tidligere rettelse, samme fejl
GendannelseslogsData: tidligere rettelseRet med belæg · instrukserModelreparationTidligere rettelser registreret under samme fejlsignatur slås op og vedhæftes. En log, der føjes til inputtet, ikke modeltræning.
Ret med belæg · instrukser
ModelreparationKørsel · vurdering: verificér igenbuild · test · iteration +1VerifikationModellen retter via en struktureret architect/editor-sti, eller via en tool-use-prompt, når den sti ikke er tilgængelig eller er under gendannelse, og build og test verificerer igen. En models ændring er ikke i sig selv et bestået build.
Bestået kontra stilstand
En karakter kræver alle fem gates; slettede eller udelukkede tests og afslutninger ved grænse eller stilstand tælles ikke som succes.
Fortsæt · mål · højst 3
Næste trinKørsel · vurdering: bestået · grænse · stilstandRegelandel · tests · dækningMålingNår både build og test består, iterationsgrænsen nås, eller der registreres stilstand (efter ét gendannelsesforsøg, hvis det ikke er prøvet endnu), går kørslen til måling. At gå til måling betyder ikke succes.
Baseline · ukendte værdier ikke målt
KørselstilstandData: sammenligning med baselineRegelandel · tests · dækningMålingMålingen læser den baseline, der er bevaret i kørselstilstanden. Det er ikke en ny baseline-kørsel.
5 acceptgates
MålingData: karaktergivningScorecard · karakterVellykket build, en beståelsesrate for tests på 100%, en ændring i dækning på −5 eller bedre (kun når baseline er kendt), nul slettede tests, nul surefire-udelukkelser. En karakter gives kun, når alle fem består.
5 acceptgates
MålingFejl · grænse: slettet · udelukket · fejletRapport om fejl · stilstandBestået opnået ved at slette tests eller ved surefire-udelukkelser samt fejlede builds eller tests forbliver fejl. Kontrollerne for sletning og udelukkelse tæller nul, når Git eller POM ikke kan læses, så de er ikke bevis for, at enhver overtrædelse fanges.
Fortsæt · mål · højst 3
Næste trinObservation · rapport: afslutning ved grænse · stilstandRapport om fejl · stilstandEn kørsel, der ender ved grænsen eller går i stå, går stadig gennem måling, men rapporteres ikke som succes. Det markerer, hvordan den rapporteres; det er ikke en genvej uden om måling.
Alle forbindelser med samme tykkelse. Vælg et flow for kun at fremhæve dets vej med nummererede trin.
- Fuldt optrukket · retning for input, resultater og logs
- Stiplet · kørsel, vurdering, anmodning
- Lange prikker · observation og rapportering, adskilt fra vurdering
- Korte streger · fejl, stop, grænse
- Kraftig sort linje · det valgte flow; tal angiver rækkefølgen
- Boks · kode- eller tilstandsgrænse, navngivet i overskriften
- Indre chip · en komponent inden for grænsen
- Prikket boks · uden for grænsen
- Orange kontur · hvor en model træffer beslutninger
- Pipelinetrin · reparation
- Verifikation · routing · accept
- Tilstand · logs
- Udforsk før rettelse
Tegnet ud fra private implementerings- og udviklingslogs. Navnene er generiske offentlige navne; der vises ingen kodestier eller kundeoplysninger.
- Input efter et fejlet nyt build
- Modelreparationen modtager det indsamlede belæg og rettelsesinstrukserne, men den fejltekst, der sendes med, er den oprindelige build-fejl, ikke det nye builds fejl. Fastslået ved læsning af koden; ikke reproduceret i en kørsel, og kilden blev ikke ændret.
- Gatenes begrænsninger
- Hvis baseline for dækning er ukendt, springes den gate over. Surefire-kontrollen tæller udelukkelserne i den aktuelle POM, ikke forskellen fra baseline. Kontrollerne for sletning og udelukkelse tæller nul, når Git eller POM ikke kan læses.
- Casen og dens tal
- At omkring 40 setter-fejl blev sporet til én årsag, opsætningen af Lombok og POM, er en diagnose registreret dengang. Det er ikke et tal for gennemløb, nøjagtighed eller endelig levering.