
REODE
Code migration
Πριν από τη διόρθωση, βρες την κοινή αιτία.
Πράκτορας μετάβασης κώδικα 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
Ένας βρόχος μετάβασης που κρατά τα τεκμήρια επιδιόρθωσης χωριστά από την αποδοχή.
Καταγράφεται η αρχική κατάσταση build και εφαρμόζεται η μετατροπή βάσει κανόνων, έπειτα συγκεντρώνονται τεκμήρια από τον πηγαίο κώδικα και το POM πριν από την επιδιόρθωση. Μετά την αλλαγή ενός μοντέλου, ελέγχονται ξανά build, test και ακεραιότητα των tests, και οι εκτελέσεις που τελειώνουν σε όριο ή μένουν στάσιμες αναφέρονται χωριστά από την επιτυχία.
Συνδυάζει μετατροπή βάσει κανόνων με επιδιόρθωση υποβοηθούμενη από μοντέλο και ελέγχει τον αλλαγμένο κώδικα με build και test. Επαγγελματικό έργο.
Εργασία REODE στο αποθετήριο. Συνεργασία με την pinxlab March 16, 2026 to May 26, 2026
Εργαλείο CLI που χρησιμοποιείται στη δουλειά.
Μετατροπή κανόνων
Η αρχική κατάσταση κρατιέται ως γραμμή βάσης. Μετά τη μετατροπή κανόνων, τα build και test επαληθεύουν και η εκτέλεση προχωρά στη μέτρηση.
Πηγαίος κώδικας · POMΔεδομένα: πηγαίος κώδικας · POMΑρχική κατάσταση · compile
Αρχικός έλεγχοςΛαμβάνει τον πηγαίο κώδικα Java/Spring και το POM προς μετάβαση. Ο κώδικας και οι οθόνες των πελατών δεν εμφανίζονται.
Αρχική κατάσταση · compile
Αρχικός έλεγχοςΔεδομένα: αρχικό compileΓραμμή βάσης · τα άγνωστα δεν μετρώνταιΚατάσταση εκτέλεσηςΠριν από τη μετατροπή, επιλέγεται το περιβάλλον εκτέλεσης και γίνεται compile του αρχικού, ώστε ένα build που ήταν ήδη χαλασμένο να κρατιέται στη γραμμή βάσης. Οι προεπιλεγμένες τιμές tests και κάλυψης στη γραμμή βάσης δεν είναι μετρήσεις.
Αρχική κατάσταση · compile
Αρχικός έλεγχοςΕκτέλεση · κρίση: μετατροπή κανόνωνΣχέδιο → μετατροπή βάσει κανόνωνΜετατροπήΟ γράφος εκτέλεσης πηγαίνει: αρχικός έλεγχος → σχέδιο μετατροπής → μετατροπή βάσει κανόνων → επαλήθευση. Οι μετατροπές που μπορούν να γίνουν με κανόνες εφαρμόζονται πρώτες.
Σχέδιο → μετατροπή βάσει κανόνων
ΜετατροπήΕκτέλεση · κρίση: build · testbuild · test · επανάληψη +1ΕπαλήθευσηΤα build και test επαληθεύουν τον μετατραπέντα κώδικα και ο μετρητής επαναλήψεων αυξάνεται κατά ένα. Τα αποτελέσματα επιστρέφουν στην κατάσταση εκτέλεσης.
build · test · επανάληψη +1
ΕπαλήθευσηΔεδομένα: αποτέλεσμα · επαναλήψειςΣυνέχεια · μέτρηση · έως 3Επόμενο βήμαΗ επιτυχία του build, το ποσοστό επιτυχίας των tests και ο αριθμός επαναλήψεων καθορίζουν το επόμενο βήμα.
Συνέχεια · μέτρηση · έως 3
Επόμενο βήμαΕκτέλεση · κρίση: επιτυχία · όριο · στασιμότηταΜερίδιο κανόνων · tests · κάλυψηΜέτρησηΌταν περνούν και το build και τα tests, όταν φτάνει το όριο επαναλήψεων ή όταν ανιχνεύεται στασιμότητα (μετά από μία απόπειρα ανάκτησης αν δεν έχει γίνει ακόμη), η εκτέλεση πηγαίνει στη μέτρηση. Η μετάβαση στη μέτρηση δεν σημαίνει επιτυχία.
Γραμμή βάσης · τα άγνωστα δεν μετρώνται
Κατάσταση εκτέλεσηςΔεδομένα: σύγκριση με τη γραμμή βάσηςΜερίδιο κανόνων · tests · κάλυψηΜέτρησηΗ μέτρηση διαβάζει τη γραμμή βάσης που κρατήθηκε στην κατάσταση εκτέλεσης. Δεν είναι νέα εκτέλεση γραμμής βάσης.
5 πύλες αποδοχής
ΜέτρησηΔεδομένα: βαθμολόγησηΚάρτα βαθμολογίας · βαθμόςΕπιτυχές build, ποσοστό επιτυχίας tests 100%, μεταβολή κάλυψης −5 ή καλύτερη (μόνο όταν η γραμμή βάσης είναι γνωστή), μηδέν διαγραμμένα tests, μηδέν εξαιρέσεις surefire. Βαθμός δίνεται μόνο όταν περνούν και τα πέντε.
Επιδιόρθωση με βάση την αιτία
Τα τεκμήρια συγκεντρώνονται πριν από τη διόρθωση και οι ντετερμινιστικές διορθώσεις έρχονται πρώτες. Αν το νέο build περάσει, το μοντέλο παραλείπεται. Αλλιώς, το μοντέλο επιδιορθώνει με τεκμήρια και οδηγίες και το αποτέλεσμα επαληθεύεται ξανά.
build · test · επανάληψη +1
ΕπαλήθευσηΔεδομένα: αποτέλεσμα · επαναλήψειςΣυνέχεια · μέτρηση · έως 3Επόμενο βήμαΗ επιτυχία του build, το ποσοστό επιτυχίας των tests και ο αριθμός επαναλήψεων καθορίζουν το επόμενο βήμα.
Συνέχεια · μέτρηση · έως 3
Επόμενο βήμαΕκτέλεση · κρίση: αποτυχία · νέα προσπάθειαΤεκμήρια αιτίας · 3 πηγές · POMΔιερεύνηση πριν από τη διόρθωσηΑν το build απέτυχε ή το ποσοστό επιτυχίας των tests είναι κάτω από 100%, και δεν έχει φτάσει το όριο επαναλήψεων (3 από προεπιλογή), η εκτέλεση πηγαίνει στην επιδιόρθωση.
Τεκμήρια αιτίας · 3 πηγές · POM
Διερεύνηση πριν από τη διόρθωσηΠαρατήρηση · αναφορά: αποθήκευση πριν από τη διόρθωσηCheckpoint πριν από τη διόρθωσηΚαταγραφές ανάκτησηςΈνα checkpoint αποθηκεύεται πριν από τη διόρθωση. Είναι best-effort: μια αποτυχημένη αποθήκευση δεν σταματά την επιδιόρθωση, και η αποθήκευση δεν είναι τεκμήριο επιτυχίας.
Τεκμήρια αιτίας · 3 πηγές · POM
Διερεύνηση πριν από τη διόρθωσηΔεδομένα: τεκμήρια · ομαδοποιημένα σφάλματαΔιόρθωση γνωστών μοτίβωνΝτετερμινιστική διόρθωσηΣυλλέγει τα αρχεία Java που αποτυγχάνουν, τις πρώτες γραμμές έως τριών αρχείων πηγαίου κώδικα, τις ρυθμίσεις annotation, POM και annotation processor, και τα imports έως βάθος 2. Περιορισμένο δείγμα, όχι κατανόηση ολόκληρης της βάσης κώδικα.
Έλεγχος νέου build
Ντετερμινιστική διόρθωσηΕκτέλεση · κρίση: πέρασε · παράλειψη LLMbuild · test · επανάληψη +1ΕπαλήθευσηΑν μια ντετερμινιστική διόρθωση γνωστού μοτίβου (για παράδειγμα της ρύθμισης Lombok) κάνει το νέο build να περάσει, δεν καλείται κανένα μοντέλο. Η εκτέλεση επιστρέφει ωστόσο στην επαλήθευση, οπότε αυτό δεν είναι τελική αποδοχή.
Έλεγχος νέου build
Ντετερμινιστική διόρθωσηΑποτυχία · όριο: το νέο build απέτυχεΔιόρθωση με τεκμήρια · οδηγίεςΕπιδιόρθωση από μοντέλοΑν το νέο build αποτύχει, τα συγκεντρωμένα τεκμήρια και οι οδηγίες διόρθωσης πηγαίνουν στην επιδιόρθωση από μοντέλο. Η ανάγνωση του κώδικα δείχνει ότι το κείμενο σφάλματος που μεταβιβάζεται είναι το αρχικό σφάλμα build, όχι το νέο σφάλμα του επανα-build, οπότε δεν πρέπει να διαβαστεί ως «μεταβιβάζονται μόνο τα σφάλματα που απομένουν». Δεν είναι ελάττωμα που αναπαράχθηκε σε εκτέλεση.
Προηγούμενη διόρθωση, ίδιο σφάλμα
Καταγραφές ανάκτησηςΔεδομένα: προηγούμενη διόρθωσηΔιόρθωση με τεκμήρια · οδηγίεςΕπιδιόρθωση από μοντέλοΑναζητούνται και επισυνάπτονται προηγούμενες διορθώσεις καταγεγραμμένες με την ίδια υπογραφή σφάλματος. Καταγραφή που προστίθεται στην είσοδο, όχι εκπαίδευση μοντέλου.
Διόρθωση με τεκμήρια · οδηγίες
Επιδιόρθωση από μοντέλοΕκτέλεση · κρίση: νέα επαλήθευσηbuild · test · επανάληψη +1ΕπαλήθευσηΤο μοντέλο διορθώνει μέσω μιας δομημένης διαδρομής architect/editor, ή μέσω προτροπής χρήσης εργαλείων όταν αυτή η διαδρομή δεν είναι διαθέσιμη ή κατά την ανάκτηση, και τα build και test επαληθεύουν ξανά. Η αλλαγή ενός μοντέλου δεν είναι από μόνη της επιτυχές build.
Επιτυχία έναντι στασιμότητας
Ο βαθμός χρειάζεται και τις πέντε πύλες. Τα διαγραμμένα ή εξαιρεμένα tests και οι έξοδοι σε όριο ή στασιμότητα δεν μετρούν ως επιτυχία.
Συνέχεια · μέτρηση · έως 3
Επόμενο βήμαΕκτέλεση · κρίση: επιτυχία · όριο · στασιμότηταΜερίδιο κανόνων · tests · κάλυψηΜέτρησηΌταν περνούν και το build και τα tests, όταν φτάνει το όριο επαναλήψεων ή όταν ανιχνεύεται στασιμότητα (μετά από μία απόπειρα ανάκτησης αν δεν έχει γίνει ακόμη), η εκτέλεση πηγαίνει στη μέτρηση. Η μετάβαση στη μέτρηση δεν σημαίνει επιτυχία.
Γραμμή βάσης · τα άγνωστα δεν μετρώνται
Κατάσταση εκτέλεσηςΔεδομένα: σύγκριση με τη γραμμή βάσηςΜερίδιο κανόνων · tests · κάλυψηΜέτρησηΗ μέτρηση διαβάζει τη γραμμή βάσης που κρατήθηκε στην κατάσταση εκτέλεσης. Δεν είναι νέα εκτέλεση γραμμής βάσης.
5 πύλες αποδοχής
ΜέτρησηΔεδομένα: βαθμολόγησηΚάρτα βαθμολογίας · βαθμόςΕπιτυχές build, ποσοστό επιτυχίας tests 100%, μεταβολή κάλυψης −5 ή καλύτερη (μόνο όταν η γραμμή βάσης είναι γνωστή), μηδέν διαγραμμένα tests, μηδέν εξαιρέσεις surefire. Βαθμός δίνεται μόνο όταν περνούν και τα πέντε.
5 πύλες αποδοχής
ΜέτρησηΑποτυχία · όριο: διαγραφή · εξαίρεση · αποτυχίαΑναφορά αποτυχίας · στασιμότηταςΟι επιτυχίες που προκύπτουν με διαγραφή tests ή με εξαιρέσεις surefire, καθώς και τα αποτυχημένα builds ή tests, παραμένουν αποτυχίες. Οι έλεγχοι διαγραφής και εξαίρεσης μετρούν μηδέν όταν το Git ή το POM δεν μπορούν να διαβαστούν, οπότε δεν αποδεικνύουν ότι πιάνεται κάθε παράβαση.
Συνέχεια · μέτρηση · έως 3
Επόμενο βήμαΠαρατήρηση · αναφορά: έξοδος σε όριο · στασιμότηταΑναφορά αποτυχίας · στασιμότηταςΜια εκτέλεση που τελειώνει στο όριο ή μένει στάσιμη περνά κανονικά από τη μέτρηση, αλλά δεν αναφέρεται ως επιτυχία. Αυτό ορίζει τον τρόπο αναφοράς, δεν είναι συντόμευση που παρακάμπτει τη μέτρηση.
Κάθε σύνδεση με το ίδιο πάχος. Επιλέξτε μια ροή για να επισημανθεί μόνο η διαδρομή της, με αριθμημένα βήματα.
- Συνεχής · κατεύθυνση εισόδου, αποτελεσμάτων και καταγραφών
- Διακεκομμένη · εκτέλεση, κρίση, αίτημα
- Μακριές τελείες · παρατήρηση και αναφορά, χωριστά από την κρίση
- Κοντές παύλες · αποτυχία, διακοπή, όριο
- Παχιά μαύρη γραμμή · η επιλεγμένη ροή, οι αριθμοί δίνουν τη σειρά
- Κουτί · όριο κώδικα ή κατάστασης, με το όνομά του στην κεφαλίδα
- Εσωτερικό τσιπ · στοιχείο αυτού του ορίου
- Κουτί με τελείες · εκτός αυτού του ορίου
- Πορτοκαλί περίγραμμα · σημείο όπου αποφασίζει ένα μοντέλο
- Βήματα ροής · επιδιόρθωση
- Επαλήθευση · δρομολόγηση · αποδοχή
- Κατάσταση · καταγραφές
- Διερεύνηση πριν από τη διόρθωση
Σχεδιάστηκε από ιδιωτικές καταγραφές υλοποίησης και ανάπτυξης. Τα ονόματα είναι γενικά δημόσια ονόματα, και δεν εμφανίζονται διαδρομές κώδικα ή στοιχεία πελατών.
- Είσοδος μετά από αποτυχημένο νέο build
- Η επιδιόρθωση από μοντέλο λαμβάνει τα συγκεντρωμένα τεκμήρια και τις οδηγίες διόρθωσης, αλλά το κείμενο σφάλματος που μεταβιβάζεται είναι το αρχικό σφάλμα build, όχι το νέο σφάλμα του επανα-build. Διαπιστώθηκε με ανάγνωση του κώδικα. Δεν αναπαράχθηκε σε εκτέλεση, και ο πηγαίος κώδικας δεν άλλαξε.
- Όρια των πυλών
- Αν η γραμμή βάσης της κάλυψης είναι άγνωστη, αυτή η πύλη παραλείπεται. Ο έλεγχος surefire μετρά τις εξαιρέσεις στο τρέχον POM, όχι τη διαφορά από τη γραμμή βάσης. Οι έλεγχοι διαγραφής και εξαίρεσης μετρούν μηδέν όταν το Git ή το POM δεν μπορούν να διαβαστούν.
- Η περίπτωση και οι αριθμοί της
- Ότι περίπου 40 σφάλματα setter προήλθαν από μία αιτία, τη ρύθμιση Lombok και POM, είναι διάγνωση που καταγράφηκε τότε. Δεν είναι μέτρηση απόδοσης, ακρίβειας ή τελικής παράδοσης.