Ο αρχικός χαρακτήρας του REODE, βελτιωμένος: χαμογελαστό πρόσωπο αξόλοτλ σε κρεμ και ροζ, με ναυτικά μπλε ακουστικά και κυανούς φακούς
Επιστροφή στην αίθουσα

REODE

Code migration

Πριν από τη διόρθωση, βρες την κοινή αιτία.

Πράκτορας μετάβασης κώδικα Java/Spring.

2026.03 — 2026.04

Επαγγελματικό έργο · σύστημα μετάβασης και επαλήθευσης

  • CLIΥλοποιημένο · επαγγελματικό έργο

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

Ένας βρόχος μετάβασης που κρατά τα τεκμήρια επιδιόρθωσης χωριστά από την αποδοχή.

Καταγράφεται η αρχική κατάσταση build και εφαρμόζεται η μετατροπή βάσει κανόνων, έπειτα συγκεντρώνονται τεκμήρια από τον πηγαίο κώδικα και το POM πριν από την επιδιόρθωση. Μετά την αλλαγή ενός μοντέλου, ελέγχονται ξανά build, test και ακεραιότητα των tests, και οι εκτελέσεις που τελειώνουν σε όριο ή μένουν στάσιμες αναφέρονται χωριστά από την επιτυχία.

Συνδυάζει μετατροπή βάσει κανόνων με επιδιόρθωση υποβοηθούμενη από μοντέλο και ελέγχει τον αλλαγμένο κώδικα με build και test. Επαγγελματικό έργο.

Εργασία REODE στο αποθετήριο. Συνεργασία με την pinxlab March 16, 2026 to May 26, 2026

Εργαλείο CLI που χρησιμοποιείται στη δουλειά.

Χάρτης βρόχου επιδιόρθωσης · από ιδιωτικές καταγραφές υλοποίησης
Βρόχος επιδιόρθωσης μετάβασης του REODEΗ αρχική κατάσταση build κρατιέται ως γραμμή βάσης, εφαρμόζεται η μετατροπή βάσει κανόνων, και τα build και test επαληθεύουν το αποτέλεσμα. Σε αποτυχία, συγκεντρώνονται τεκμήρια από πηγαίο κώδικα, annotations και POM πριν από οποιαδήποτε διόρθωση, και τα γνωστά μοτίβα διορθώνονται ντετερμινιστικά και ξαναγίνεται build. Αν το νέο build περάσει, δεν καλείται κανένα μοντέλο. Αν αποτύχει, ένα μοντέλο επιδιορθώνει με τα τεκμήρια και τις οδηγίες διόρθωσης, και το αποτέλεσμα επαληθεύεται ξανά. Οι εκτελέσεις που τελειώνουν στο όριο επαναλήψεων ή μένουν στάσιμες περνούν στη μέτρηση αλλά δεν μετρούν ως επιτυχία, και η κάρτα βαθμολογίας βαθμολογεί μόνο όταν περνούν και οι πέντε πύλες αποδοχής.Πηγαίος κώδικας · POMΙδιωτική είσοδος μετάβασηςΚάρτα βαθμολογίας · βαθμόςΌχι ανάπτυξηΑναφορά αποτυχίας · στασιμότηταςΔεν μετρά ως επιτυχίαΑρχικός έλεγχοςΑρχική κατάσταση · compileΚατάσταση εκτέλεσηςΓραμμή βάσης · τα άγνωστα δεν μετρώνταιΚαταγραφές ανάκτησηςCheckpoint πριν από τη διόρθωσηΠροηγούμενη διόρθωση, ίδιο σφάλμαΜετατροπήΣχέδιο → μετατροπή βάσει κανόνωνΔιερεύνηση πριν από τη διόρθωσηΤεκμήρια αιτίας · 3 πηγές · POMΝτετερμινιστική διόρθωσηΔιόρθωση γνωστών μοτίβωνΈλεγχος νέου buildΕπιδιόρθωση από μοντέλοΔιόρθωση με τεκμήρια · οδηγίεςΕπαλήθευσηbuild · test · επανάληψη +1Επόμενο βήμαΣυνέχεια · μέτρηση · έως 3ΜέτρησηΜερίδιο κανόνων · tests · κάλυψη5 πύλες αποδοχήςΕίσοδος · γραμμή βάσηςΚαταγραφές ανάκτησηςΜετατροπή · επιδιόρθωσηΕπαλήθευση · έξοδος1 πηγαίος κώδικας · POM · Πηγαίος κώδικας · POM → Αρχική κατάσταση · compile12αρχικό compile3 μετατροπή κανόνων · Αρχική κατάσταση · compile → Σχέδιο → μετατροπή βάσει κανόνων34build · test5αποτέλεσμα · επαναλήψεις6επιτυχία · όριο · στασιμότητα7σύγκριση με τη γραμμή βάσης8 βαθμολόγηση · 5 πύλες αποδοχής → Κάρτα βαθμολογίας · βαθμός81αποτέλεσμα · επαναλήψεις2 αποτυχία · νέα προσπάθεια · Συνέχεια · μέτρηση · έως 3 → Τεκμήρια αιτίας · 3 πηγές · POM23αποθήκευση πριν από τη διόρθωση4τεκμήρια · ομαδοποιημένα σφάλματα5πέρασε · παράλειψη LLM6το νέο build απέτυχε7 προηγούμενη διόρθωση · Προηγούμενη διόρθωση, ίδιο σφάλμα → Διόρθωση με τεκμήρια · οδηγίες78νέα επαλήθευση1επιτυχία · όριο · στασιμότητα2σύγκριση με τη γραμμή βάσης3 βαθμολόγηση · 5 πύλες αποδοχής → Κάρτα βαθμολογίας · βαθμός34διαγραφή · εξαίρεση · αποτυχία5έξοδος σε όριο · στασιμότητα

Μετατροπή κανόνων

Η αρχική κατάσταση κρατιέται ως γραμμή βάσης. Μετά τη μετατροπή κανόνων, τα build και test επαληθεύουν και η εκτέλεση προχωρά στη μέτρηση.

  1. Πηγαίος κώδικας · POMΔεδομένα: πηγαίος κώδικας · POMΑρχική κατάσταση · compileΑρχικός έλεγχος

    Λαμβάνει τον πηγαίο κώδικα Java/Spring και το POM προς μετάβαση. Ο κώδικας και οι οθόνες των πελατών δεν εμφανίζονται.

  2. Αρχική κατάσταση · compileΑρχικός έλεγχοςΔεδομένα: αρχικό compileΓραμμή βάσης · τα άγνωστα δεν μετρώνταιΚατάσταση εκτέλεσης

    Πριν από τη μετατροπή, επιλέγεται το περιβάλλον εκτέλεσης και γίνεται compile του αρχικού, ώστε ένα build που ήταν ήδη χαλασμένο να κρατιέται στη γραμμή βάσης. Οι προεπιλεγμένες τιμές tests και κάλυψης στη γραμμή βάσης δεν είναι μετρήσεις.

  3. Αρχική κατάσταση · compileΑρχικός έλεγχοςΕκτέλεση · κρίση: μετατροπή κανόνωνΣχέδιο → μετατροπή βάσει κανόνωνΜετατροπή

    Ο γράφος εκτέλεσης πηγαίνει: αρχικός έλεγχος → σχέδιο μετατροπής → μετατροπή βάσει κανόνων → επαλήθευση. Οι μετατροπές που μπορούν να γίνουν με κανόνες εφαρμόζονται πρώτες.

  4. Σχέδιο → μετατροπή βάσει κανόνωνΜετατροπήΕκτέλεση · κρίση: build · testbuild · test · επανάληψη +1Επαλήθευση

    Τα build και test επαληθεύουν τον μετατραπέντα κώδικα και ο μετρητής επαναλήψεων αυξάνεται κατά ένα. Τα αποτελέσματα επιστρέφουν στην κατάσταση εκτέλεσης.

  5. build · test · επανάληψη +1ΕπαλήθευσηΔεδομένα: αποτέλεσμα · επαναλήψειςΣυνέχεια · μέτρηση · έως 3Επόμενο βήμα

    Η επιτυχία του build, το ποσοστό επιτυχίας των tests και ο αριθμός επαναλήψεων καθορίζουν το επόμενο βήμα.

  6. Συνέχεια · μέτρηση · έως 3Επόμενο βήμαΕκτέλεση · κρίση: επιτυχία · όριο · στασιμότηταΜερίδιο κανόνων · tests · κάλυψηΜέτρηση

    Όταν περνούν και το build και τα tests, όταν φτάνει το όριο επαναλήψεων ή όταν ανιχνεύεται στασιμότητα (μετά από μία απόπειρα ανάκτησης αν δεν έχει γίνει ακόμη), η εκτέλεση πηγαίνει στη μέτρηση. Η μετάβαση στη μέτρηση δεν σημαίνει επιτυχία.

  7. Γραμμή βάσης · τα άγνωστα δεν μετρώνταιΚατάσταση εκτέλεσηςΔεδομένα: σύγκριση με τη γραμμή βάσηςΜερίδιο κανόνων · tests · κάλυψηΜέτρηση

    Η μέτρηση διαβάζει τη γραμμή βάσης που κρατήθηκε στην κατάσταση εκτέλεσης. Δεν είναι νέα εκτέλεση γραμμής βάσης.

  8. 5 πύλες αποδοχήςΜέτρησηΔεδομένα: βαθμολόγησηΚάρτα βαθμολογίας · βαθμός

    Επιτυχές build, ποσοστό επιτυχίας tests 100%, μεταβολή κάλυψης −5 ή καλύτερη (μόνο όταν η γραμμή βάσης είναι γνωστή), μηδέν διαγραμμένα tests, μηδέν εξαιρέσεις surefire. Βαθμός δίνεται μόνο όταν περνούν και τα πέντε.

Επιδιόρθωση με βάση την αιτία

Τα τεκμήρια συγκεντρώνονται πριν από τη διόρθωση και οι ντετερμινιστικές διορθώσεις έρχονται πρώτες. Αν το νέο build περάσει, το μοντέλο παραλείπεται. Αλλιώς, το μοντέλο επιδιορθώνει με τεκμήρια και οδηγίες και το αποτέλεσμα επαληθεύεται ξανά.

  1. build · test · επανάληψη +1ΕπαλήθευσηΔεδομένα: αποτέλεσμα · επαναλήψειςΣυνέχεια · μέτρηση · έως 3Επόμενο βήμα

    Η επιτυχία του build, το ποσοστό επιτυχίας των tests και ο αριθμός επαναλήψεων καθορίζουν το επόμενο βήμα.

  2. Συνέχεια · μέτρηση · έως 3Επόμενο βήμαΕκτέλεση · κρίση: αποτυχία · νέα προσπάθειαΤεκμήρια αιτίας · 3 πηγές · POMΔιερεύνηση πριν από τη διόρθωση

    Αν το build απέτυχε ή το ποσοστό επιτυχίας των tests είναι κάτω από 100%, και δεν έχει φτάσει το όριο επαναλήψεων (3 από προεπιλογή), η εκτέλεση πηγαίνει στην επιδιόρθωση.

  3. Τεκμήρια αιτίας · 3 πηγές · POMΔιερεύνηση πριν από τη διόρθωσηΠαρατήρηση · αναφορά: αποθήκευση πριν από τη διόρθωσηCheckpoint πριν από τη διόρθωσηΚαταγραφές ανάκτησης

    Ένα checkpoint αποθηκεύεται πριν από τη διόρθωση. Είναι best-effort: μια αποτυχημένη αποθήκευση δεν σταματά την επιδιόρθωση, και η αποθήκευση δεν είναι τεκμήριο επιτυχίας.

  4. Τεκμήρια αιτίας · 3 πηγές · POMΔιερεύνηση πριν από τη διόρθωσηΔεδομένα: τεκμήρια · ομαδοποιημένα σφάλματαΔιόρθωση γνωστών μοτίβωνΝτετερμινιστική διόρθωση

    Συλλέγει τα αρχεία Java που αποτυγχάνουν, τις πρώτες γραμμές έως τριών αρχείων πηγαίου κώδικα, τις ρυθμίσεις annotation, POM και annotation processor, και τα imports έως βάθος 2. Περιορισμένο δείγμα, όχι κατανόηση ολόκληρης της βάσης κώδικα.

  5. Έλεγχος νέου buildΝτετερμινιστική διόρθωσηΕκτέλεση · κρίση: πέρασε · παράλειψη LLMbuild · test · επανάληψη +1Επαλήθευση

    Αν μια ντετερμινιστική διόρθωση γνωστού μοτίβου (για παράδειγμα της ρύθμισης Lombok) κάνει το νέο build να περάσει, δεν καλείται κανένα μοντέλο. Η εκτέλεση επιστρέφει ωστόσο στην επαλήθευση, οπότε αυτό δεν είναι τελική αποδοχή.

  6. Έλεγχος νέου buildΝτετερμινιστική διόρθωσηΑποτυχία · όριο: το νέο build απέτυχεΔιόρθωση με τεκμήρια · οδηγίεςΕπιδιόρθωση από μοντέλο

    Αν το νέο build αποτύχει, τα συγκεντρωμένα τεκμήρια και οι οδηγίες διόρθωσης πηγαίνουν στην επιδιόρθωση από μοντέλο. Η ανάγνωση του κώδικα δείχνει ότι το κείμενο σφάλματος που μεταβιβάζεται είναι το αρχικό σφάλμα build, όχι το νέο σφάλμα του επανα-build, οπότε δεν πρέπει να διαβαστεί ως «μεταβιβάζονται μόνο τα σφάλματα που απομένουν». Δεν είναι ελάττωμα που αναπαράχθηκε σε εκτέλεση.

  7. Προηγούμενη διόρθωση, ίδιο σφάλμαΚαταγραφές ανάκτησηςΔεδομένα: προηγούμενη διόρθωσηΔιόρθωση με τεκμήρια · οδηγίεςΕπιδιόρθωση από μοντέλο

    Αναζητούνται και επισυνάπτονται προηγούμενες διορθώσεις καταγεγραμμένες με την ίδια υπογραφή σφάλματος. Καταγραφή που προστίθεται στην είσοδο, όχι εκπαίδευση μοντέλου.

  8. Διόρθωση με τεκμήρια · οδηγίεςΕπιδιόρθωση από μοντέλοΕκτέλεση · κρίση: νέα επαλήθευσηbuild · test · επανάληψη +1Επαλήθευση

    Το μοντέλο διορθώνει μέσω μιας δομημένης διαδρομής architect/editor, ή μέσω προτροπής χρήσης εργαλείων όταν αυτή η διαδρομή δεν είναι διαθέσιμη ή κατά την ανάκτηση, και τα build και test επαληθεύουν ξανά. Η αλλαγή ενός μοντέλου δεν είναι από μόνη της επιτυχές build.

Επιτυχία έναντι στασιμότητας

Ο βαθμός χρειάζεται και τις πέντε πύλες. Τα διαγραμμένα ή εξαιρεμένα tests και οι έξοδοι σε όριο ή στασιμότητα δεν μετρούν ως επιτυχία.

  1. Συνέχεια · μέτρηση · έως 3Επόμενο βήμαΕκτέλεση · κρίση: επιτυχία · όριο · στασιμότηταΜερίδιο κανόνων · tests · κάλυψηΜέτρηση

    Όταν περνούν και το build και τα tests, όταν φτάνει το όριο επαναλήψεων ή όταν ανιχνεύεται στασιμότητα (μετά από μία απόπειρα ανάκτησης αν δεν έχει γίνει ακόμη), η εκτέλεση πηγαίνει στη μέτρηση. Η μετάβαση στη μέτρηση δεν σημαίνει επιτυχία.

  2. Γραμμή βάσης · τα άγνωστα δεν μετρώνταιΚατάσταση εκτέλεσηςΔεδομένα: σύγκριση με τη γραμμή βάσηςΜερίδιο κανόνων · tests · κάλυψηΜέτρηση

    Η μέτρηση διαβάζει τη γραμμή βάσης που κρατήθηκε στην κατάσταση εκτέλεσης. Δεν είναι νέα εκτέλεση γραμμής βάσης.

  3. 5 πύλες αποδοχήςΜέτρησηΔεδομένα: βαθμολόγησηΚάρτα βαθμολογίας · βαθμός

    Επιτυχές build, ποσοστό επιτυχίας tests 100%, μεταβολή κάλυψης −5 ή καλύτερη (μόνο όταν η γραμμή βάσης είναι γνωστή), μηδέν διαγραμμένα tests, μηδέν εξαιρέσεις surefire. Βαθμός δίνεται μόνο όταν περνούν και τα πέντε.

  4. 5 πύλες αποδοχήςΜέτρησηΑποτυχία · όριο: διαγραφή · εξαίρεση · αποτυχίαΑναφορά αποτυχίας · στασιμότητας

    Οι επιτυχίες που προκύπτουν με διαγραφή tests ή με εξαιρέσεις surefire, καθώς και τα αποτυχημένα builds ή tests, παραμένουν αποτυχίες. Οι έλεγχοι διαγραφής και εξαίρεσης μετρούν μηδέν όταν το Git ή το POM δεν μπορούν να διαβαστούν, οπότε δεν αποδεικνύουν ότι πιάνεται κάθε παράβαση.

  5. Συνέχεια · μέτρηση · έως 3Επόμενο βήμαΠαρατήρηση · αναφορά: έξοδος σε όριο · στασιμότηταΑναφορά αποτυχίας · στασιμότητας

    Μια εκτέλεση που τελειώνει στο όριο ή μένει στάσιμη περνά κανονικά από τη μέτρηση, αλλά δεν αναφέρεται ως επιτυχία. Αυτό ορίζει τον τρόπο αναφοράς, δεν είναι συντόμευση που παρακάμπτει τη μέτρηση.

Κάθε σύνδεση με το ίδιο πάχος. Επιλέξτε μια ροή για να επισημανθεί μόνο η διαδρομή της, με αριθμημένα βήματα.

  • Συνεχής · κατεύθυνση εισόδου, αποτελεσμάτων και καταγραφών
  • Διακεκομμένη · εκτέλεση, κρίση, αίτημα
  • Μακριές τελείες · παρατήρηση και αναφορά, χωριστά από την κρίση
  • Κοντές παύλες · αποτυχία, διακοπή, όριο
  • Παχιά μαύρη γραμμή · η επιλεγμένη ροή, οι αριθμοί δίνουν τη σειρά
  • Κουτί · όριο κώδικα ή κατάστασης, με το όνομά του στην κεφαλίδα
  • Εσωτερικό τσιπ · στοιχείο αυτού του ορίου
  • Κουτί με τελείες · εκτός αυτού του ορίου
  • Πορτοκαλί περίγραμμα · σημείο όπου αποφασίζει ένα μοντέλο
  • Βήματα ροής · επιδιόρθωση
  • Επαλήθευση · δρομολόγηση · αποδοχή
  • Κατάσταση · καταγραφές
  • Διερεύνηση πριν από τη διόρθωση

Σχεδιάστηκε από ιδιωτικές καταγραφές υλοποίησης και ανάπτυξης. Τα ονόματα είναι γενικά δημόσια ονόματα, και δεν εμφανίζονται διαδρομές κώδικα ή στοιχεία πελατών.

Είσοδος μετά από αποτυχημένο νέο build
Η επιδιόρθωση από μοντέλο λαμβάνει τα συγκεντρωμένα τεκμήρια και τις οδηγίες διόρθωσης, αλλά το κείμενο σφάλματος που μεταβιβάζεται είναι το αρχικό σφάλμα build, όχι το νέο σφάλμα του επανα-build. Διαπιστώθηκε με ανάγνωση του κώδικα. Δεν αναπαράχθηκε σε εκτέλεση, και ο πηγαίος κώδικας δεν άλλαξε.
Όρια των πυλών
Αν η γραμμή βάσης της κάλυψης είναι άγνωστη, αυτή η πύλη παραλείπεται. Ο έλεγχος surefire μετρά τις εξαιρέσεις στο τρέχον POM, όχι τη διαφορά από τη γραμμή βάσης. Οι έλεγχοι διαγραφής και εξαίρεσης μετρούν μηδέν όταν το Git ή το POM δεν μπορούν να διαβαστούν.
Η περίπτωση και οι αριθμοί της
Ότι περίπου 40 σφάλματα setter προήλθαν από μία αιτία, τη ρύθμιση Lombok και POM, είναι διάγνωση που καταγράφηκε τότε. Δεν είναι μέτρηση απόδοσης, ακρίβειας ή τελικής παράδοσης.