
REODE
Code migration
Före rättningen: den gemensamma orsaken först.
En agent för kodmigrering av 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 migreringsloop som håller reparationsbelägg åtskilda från acceptans.
Det ursprungliga byggtillståndet registreras och regelbaserad konvertering tillämpas, och sedan samlas belägg från källa och POM in före reparation. Efter en modells ändring kontrolleras build, test och testintegritet igen, och körningar som slutar vid en gräns eller stannar rapporteras skilda från framgång.
Den kombinerar regelbaserad konvertering med modellassisterad reparation och kontrollerar den ändrade koden med build och test. Ett arbetsprojekt.
REODE-arbete i repositoryt; uppdrag hos pinxlab 16 mars 2026 till 26 maj 2026
Ett CLI-verktyg som används i arbetet.
Regelkonvertering
Det ursprungliga tillståndet behålls som baslinje; efter regelkonvertering verifierar build och test, och körningen går vidare till mätning.
Källa · POMData: källa · POMUrsprungligt tillstånd · compile
Kontroll av originalTar den Java/Spring-källkod och POM som ska migreras. Kundens kod och skärmar visas inte.
Ursprungligt tillstånd · compile
Kontroll av originalData: ursprunglig compileBaslinje · okända värden inte uppmättaKörningstillståndFöre konverteringen väljs runtimen och originalet kompileras, så ett bygge som redan var trasigt behålls i baslinjen. Standardvärden för test och täckning i baslinjen är inte mätningar.
Ursprungligt tillstånd · compile
Kontroll av originalKörning · bedömning: regelkonverteringPlan → regelbaserad konverteringKonverteringKörgrafen går kontroll av original → konverteringsplan → regelbaserad konvertering → verifiering. Konverteringar som regler kan bära tillämpas först.
Plan → regelbaserad konvertering
KonverteringKörning · bedömning: build · testbuild · test · iteration +1VerifieringBuild och test verifierar den konverterade koden och iterationsräknaren ökar med ett. Resultaten återgår till körningstillståndet.
build · test · iteration +1
VerifieringData: resultat · iterationerFortsätt · mät · högst 3Nästa stegLyckat bygge, andel godkända tester och iterationsantalet avgör nästa steg.
Fortsätt · mät · högst 3
Nästa stegKörning · bedömning: godkänt · gräns · stilleståndRegelandel · tester · täckningMätningNär både build och test klaras, iterationsgränsen nås eller stillestånd upptäcks (efter ett återställningsförsök om det inte redan prövats), går körningen till mätning. Att gå till mätning betyder inte framgång.
Baslinje · okända värden inte uppmätta
KörningstillståndData: jämförelse med baslinjeRegelandel · tester · täckningMätningMätningen läser den baslinje som behållits i körningstillståndet. Det är ingen ny baslinjekörning.
5 acceptansgrindar
MätningData: betygssättningScorecard · betygLyckat bygge, 100% godkända tester, en täckningsförändring på −5 eller bättre (bara när baslinjen är känd), noll raderade tester, noll surefire-undantag. Ett betyg ges bara när alla fem klaras.
Orsaksbaserad reparation
Belägg samlas in före rättning och deterministiska rättningar kommer först. Om det nya bygget klarar sig hoppas modellen över; annars reparerar modellen med belägg och instruktioner och resultatet verifieras igen.
build · test · iteration +1
VerifieringData: resultat · iterationerFortsätt · mät · högst 3Nästa stegLyckat bygge, andel godkända tester och iterationsantalet avgör nästa steg.
Fortsätt · mät · högst 3
Nästa stegKörning · bedömning: misslyckades · nytt försökBelägg för orsak · 3 källor · POMUtforska före rättningOm bygget misslyckades eller andelen godkända tester är under 100%, och iterationsgränsen (3 som standard) inte har nåtts, går körningen till reparation.
Belägg för orsak · 3 källor · POM
Utforska före rättningObservation · rapport: spara före rättningCheckpoint före rättningÅterställningsloggarEn checkpoint sparas före rättningen. Det är best-effort: en misslyckad sparning stoppar inte reparationen, och en sparning är inget belägg för framgång.
Belägg för orsak · 3 källor · POM
Utforska före rättningData: belägg · grupperade felRätta kända mönsterDeterministisk rättningSamlar in de felande Java-filerna, de första raderna i upp till tre källor, inställningar för annoteringar, POM och annotation processor samt imports till djup 2. Ett avgränsat prov, inte en förståelse av hela kodbasen.
Kontroll av nytt bygge
Deterministisk rättningKörning · bedömning: godkänt · LLM överhoppadbuild · test · iteration +1VerifieringOm en deterministisk rättning av ett känt mönster (till exempel Lombok-uppsättningen) får det nya bygget att klara sig anropas ingen modell. Körningen återgår ändå till verifiering, så detta är inte slutlig acceptans.
Kontroll av nytt bygge
Deterministisk rättningFel · gräns: nytt bygge misslyckadesRätta med belägg · instruktionerModellreparationOm det nya bygget misslyckas går de insamlade beläggen och rättningsinstruktionerna till modellreparation. En läsning av koden visar att feltexten som skickas med är det ursprungliga byggfelet, inte det nya byggets fel, så det får inte läsas som ”bara de återstående felen skickas vidare”. Ingen defekt som reproducerats i en körning.
Tidigare rättning, samma fel
ÅterställningsloggarData: tidigare rättningRätta med belägg · instruktionerModellreparationTidigare rättningar som registrerats under samma felsignatur slås upp och bifogas. En logg som läggs till indata, inte modellträning.
Rätta med belägg · instruktioner
ModellreparationKörning · bedömning: verifiera igenbuild · test · iteration +1VerifieringModellen rättar via en strukturerad architect/editor-väg, eller via en tool-use-prompt när den vägen inte är tillgänglig eller är under återställning, och build och test verifierar igen. En modells ändring är inte i sig ett godkänt bygge.
Godkänt kontra stillestånd
Ett betyg kräver alla fem grindar; raderade eller undantagna tester och avslut vid gräns eller stillestånd räknas inte som framgång.
Fortsätt · mät · högst 3
Nästa stegKörning · bedömning: godkänt · gräns · stilleståndRegelandel · tester · täckningMätningNär både build och test klaras, iterationsgränsen nås eller stillestånd upptäcks (efter ett återställningsförsök om det inte redan prövats), går körningen till mätning. Att gå till mätning betyder inte framgång.
Baslinje · okända värden inte uppmätta
KörningstillståndData: jämförelse med baslinjeRegelandel · tester · täckningMätningMätningen läser den baslinje som behållits i körningstillståndet. Det är ingen ny baslinjekörning.
5 acceptansgrindar
MätningData: betygssättningScorecard · betygLyckat bygge, 100% godkända tester, en täckningsförändring på −5 eller bättre (bara när baslinjen är känd), noll raderade tester, noll surefire-undantag. Ett betyg ges bara när alla fem klaras.
5 acceptansgrindar
MätningFel · gräns: raderat · undantaget · misslyckatRapport om fel · stilleståndGodkännanden som uppnåtts genom att radera tester eller genom surefire-undantag, samt misslyckade byggen eller tester, förblir misslyckanden. Kontrollerna för radering och undantag räknar noll när Git eller POM inte kan läsas, så de är inget bevis för att varje överträdelse fångas.
Fortsätt · mät · högst 3
Nästa stegObservation · rapport: avslut vid gräns · stilleståndRapport om fel · stilleståndEn körning som slutar vid gränsen eller stannar går ändå genom mätning men rapporteras inte som framgång. Det markerar hur den rapporteras; det är ingen genväg förbi mätningen.
Alla kopplingar med samma tjocklek. Välj ett flöde för att bara markera dess väg, med numrerade steg.
- Heldragen · riktning för indata, resultat och loggar
- Streckad · körning, bedömning, begäran
- Långa prickar · observation och rapportering, skilt från bedömning
- Korta streck · fel, stopp, gräns
- Kraftig svart linje · det valda flödet; siffrorna anger ordningen
- Ruta · kod- eller tillståndsgräns, namngiven i rubriken
- Inre chip · en komponent inom gränsen
- Prickad ruta · utanför gränsen
- Orange kontur · där en modell fattar beslut
- Pipelinesteg · reparation
- Verifiering · routning · acceptans
- Tillstånd · loggar
- Utforska före rättning
Ritad utifrån privata implementations- och utvecklingsloggar. Namnen är generiska offentliga namn; inga kodvägar eller kunduppgifter visas.
- Indata efter ett misslyckat nytt bygge
- Modellreparationen får de insamlade beläggen och rättningsinstruktionerna, men feltexten som skickas med är det ursprungliga byggfelet, inte det nya byggets fel. Fastställt genom läsning av koden; inte reproducerat i en körning, och källkoden ändrades inte.
- Grindarnas begränsningar
- Om baslinjen för täckning är okänd hoppas den grinden över. Surefire-kontrollen räknar undantagen i den aktuella POM-filen, inte skillnaden mot baslinjen. Kontrollerna för radering och undantag räknar noll när Git eller POM inte kan läsas.
- Fallet och dess siffror
- Att ett 40-tal setter-fel spårades till en orsak, uppsättningen av Lombok och POM, är en diagnos som registrerades då. Det är ingen siffra för genomströmning, träffsäkerhet eller slutleverans.