
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 وسلامة الاختبارات مجددًا، وتُبلَّغ عمليات التشغيل التي تنتهي عند حد أو تتعثر بمعزل عن النجاح.
يجمع التحويل القائم على القواعد مع الإصلاح بمساعدة النموذج، ويفحص الشيفرة المتغيّرة بـ build وtest. مشروع عمل.
عمل REODE في المستودع، وفترة المشاركة في pinxlab من March 16, 2026 to May 26, 2026
أداة CLI تُستخدم في العمل.
تحويل القواعد
تُحفظ الحالة الأصلية خطَّ أساس، وبعد تحويل القواعد يتحقق build وtest، ثم ينتقل التشغيل إلى القياس.
المصدر · POMبيانات: المصدر · POMالحالة الأصلية · compile
الفحص الأصلييأخذ مصدر Java/Spring وPOM المراد ترحيلهما. ولا تُعرض شيفرة العملاء ولا شاشاتهم.
الحالة الأصلية · compile
الفحص الأصليبيانات: compile الأصليخط الأساس · المجاهيل غير مقيسةحالة التشغيلقبل التحويل، تُختار بيئة التشغيل ويُترجَم الأصل بـ compile، فيبقى build المعطوب أصلًا ضمن خط الأساس. والقيم الافتراضية للاختبارات والتغطية في خط الأساس ليست قياسات.
الحالة الأصلية · compile
الفحص الأصليتشغيل · حكم: تحويل القواعدالخطة → التحويل القائم على القواعدالتحويليسير مخطط التشغيل: الفحص الأصلي → خطة التحويل → التحويل القائم على القواعد → التحقق. وتُطبَّق أولًا التحويلات التي تستطيع القواعد حملها.
الخطة → التحويل القائم على القواعد
التحويلتشغيل · حكم: build · testbuild · test · التكرار +1التحققيتحقق build وtest من الشيفرة المحوَّلة ويزيد عدد التكرارات واحدًا. وتعود النتائج إلى حالة التشغيل.
build · test · التكرار +1
التحققبيانات: النتيجة · التكراراتمتابعة · قياس · 3 كحد أقصىالخطوة التاليةيحدد نجاح build ونسبة نجاح الاختبارات وعدد التكرارات الخطوةَ التالية.
متابعة · قياس · 3 كحد أقصى
الخطوة التاليةتشغيل · حكم: نجاح · حد · تعثّرحصة القواعد · الاختبارات · التغطيةالقياسحين ينجح build وtest كلاهما، أو يُبلغ حد التكرار، أو يُكتشف تعثّر (بعد محاولة استعادة واحدة إن لم تُجرَّب بعد)، ينتقل التشغيل إلى القياس. والانتقال إلى القياس لا يعني النجاح.
خط الأساس · المجاهيل غير مقيسة
حالة التشغيلبيانات: المقارنة بخط الأساسحصة القواعد · الاختبارات · التغطيةالقياسيقرأ القياس خط الأساس المحفوظ في حالة التشغيل. وليس تشغيلًا جديدًا لخط الأساس.
5 بوابات قبول
القياسبيانات: منح الدرجةبطاقة التقييم · الدرجةنجاح build، ونسبة نجاح اختبارات 100%، وتغيّر في التغطية بمقدار −5 أو أفضل (فقط حين يكون خط الأساس معروفًا)، وصفر اختبارات محذوفة، وصفر استثناءات surefire. ولا تُمنح درجة إلا حين تنجح الخمسة كلها.
إصلاح قائم على السبب
تُجمع الأدلة قبل الإصلاح وتأتي الإصلاحات الحتمية أولًا. وإذا نجحت إعادة البناء يُتخطّى النموذج، وإلا يُصلح النموذج بالأدلة والتعليمات ويُتحقق من النتيجة مجددًا.
build · test · التكرار +1
التحققبيانات: النتيجة · التكراراتمتابعة · قياس · 3 كحد أقصىالخطوة التاليةيحدد نجاح build ونسبة نجاح الاختبارات وعدد التكرارات الخطوةَ التالية.
متابعة · قياس · 3 كحد أقصى
الخطوة التاليةتشغيل · حكم: فشل · إعادة محاولةأدلة السبب · 3 مصادر · POMالاستكشاف قبل الإصلاحإذا فشل build أو كانت نسبة نجاح الاختبارات دون 100%، ولم يُبلغ حد التكرار (3 افتراضيًا)، ينتقل التشغيل إلى الإصلاح.
أدلة السبب · 3 مصادر · POM
الاستكشاف قبل الإصلاحملاحظة · إبلاغ: الحفظ قبل الإصلاحcheckpoint قبل الإصلاحسجلات الاستعادةيُحفظ checkpoint قبل الإصلاح. وهو best-effort: فشل الحفظ لا يوقف الإصلاح، والحفظ ليس دليلًا على النجاح.
أدلة السبب · 3 مصادر · POM
الاستكشاف قبل الإصلاحبيانات: الأدلة · الأخطاء المجمّعةإصلاح الأنماط المعروفةالإصلاح الحتمييجمع ملفات Java الفاشلة، والأسطر الأولى من ثلاثة مصادر على الأكثر، وإعدادات annotation وPOM وannotation processor، والـ imports حتى العمق 2. عيّنة محدودة، لا فهم للشيفرة كلها.
فحص إعادة البناء
الإصلاح الحتميتشغيل · حكم: نجح · تخطّي LLMbuild · test · التكرار +1التحققإذا جعل الإصلاح الحتمي لنمط معروف (إعداد Lombok مثلًا) إعادة البناء تنجح، فلا يُستدعى أي نموذج. ومع ذلك يعود التشغيل إلى التحقق، فهذا ليس قبولًا نهائيًا.
فحص إعادة البناء
الإصلاح الحتميإخفاق · حد: فشلت إعادة البناءإصلاح بالأدلة · التعليماتإصلاح النموذجإذا فشلت إعادة البناء، تذهب الأدلة المجمّعة وتعليمات الإصلاح إلى إصلاح النموذج. وتُظهر قراءة الشيفرة أن نص الخطأ المُمرَّر هو خطأ build الأصلي، لا الخطأ الجديد من إعادة البناء، فلا ينبغي قراءة هذا على أنه «تُمرَّر الأخطاء المتبقية فقط». وليس عيبًا أُعيد إنتاجه في تشغيل.
إصلاح سابق للخطأ نفسه
سجلات الاستعادةبيانات: إصلاح سابقإصلاح بالأدلة · التعليماتإصلاح النموذجيُبحث عن الإصلاحات السابقة المسجّلة تحت توقيع الخطأ نفسه وتُرفق. سجل يُضاف إلى المُدخلات، لا تدريب للنموذج.
إصلاح بالأدلة · التعليمات
إصلاح النموذجتشغيل · حكم: التحقق مجددًاbuild · test · التكرار +1التحققيُصلح النموذج عبر مسار architect/editor منظّم، أو عبر موجّه استخدام الأدوات حين يتعذر ذلك المسار أو أثناء الاستعادة، ثم يتحقق build وtest مجددًا. وتعديل النموذج ليس في حد ذاته build ناجحًا.
النجاح مقابل التعثّر
تحتاج الدرجة إلى البوابات الخمس كلها، ولا تُحسب الاختبارات المحذوفة أو المستثناة ولا الخروج عند الحد أو التعثّر نجاحًا.
متابعة · قياس · 3 كحد أقصى
الخطوة التاليةتشغيل · حكم: نجاح · حد · تعثّرحصة القواعد · الاختبارات · التغطيةالقياسحين ينجح build وtest كلاهما، أو يُبلغ حد التكرار، أو يُكتشف تعثّر (بعد محاولة استعادة واحدة إن لم تُجرَّب بعد)، ينتقل التشغيل إلى القياس. والانتقال إلى القياس لا يعني النجاح.
خط الأساس · المجاهيل غير مقيسة
حالة التشغيلبيانات: المقارنة بخط الأساسحصة القواعد · الاختبارات · التغطيةالقياسيقرأ القياس خط الأساس المحفوظ في حالة التشغيل. وليس تشغيلًا جديدًا لخط الأساس.
5 بوابات قبول
القياسبيانات: منح الدرجةبطاقة التقييم · الدرجةنجاح build، ونسبة نجاح اختبارات 100%، وتغيّر في التغطية بمقدار −5 أو أفضل (فقط حين يكون خط الأساس معروفًا)، وصفر اختبارات محذوفة، وصفر استثناءات surefire. ولا تُمنح درجة إلا حين تنجح الخمسة كلها.
5 بوابات قبول
القياسإخفاق · حد: محذوف · مستثنى · فاشلتقرير الإخفاق · التعثرالنجاح الذي يُنال بحذف الاختبارات أو باستثناءات surefire، وفشل build أو الاختبارات، يظل إخفاقًا. وفحصا الحذف والاستثناء يعدّان صفرًا حين يتعذر قراءة Git أو POM، فليسا دليلًا على اكتشاف كل مخالفة.
متابعة · قياس · 3 كحد أقصى
الخطوة التاليةملاحظة · إبلاغ: خروج عند الحد · التعثّرتقرير الإخفاق · التعثرالتشغيل الذي ينتهي عند الحد أو يتعثر يمر بالقياس مع ذلك، لكنه لا يُبلَّغ نجاحًا. وهذا يحدد طريقة الإبلاغ، وليس طريقًا مختصرًا يتجاوز القياس.
كل الروابط بالسماكة نفسها. اختر مسارًا لإبراز طريقه وحده، مع خطوات مرقّمة.
- خط متصل · اتجاه المُدخلات والنتائج والسجلات
- خط متقطع · تشغيل، حكم، طلب
- نقاط طويلة · الملاحظة والإبلاغ، بمعزل عن الحكم
- شرطات قصيرة · إخفاق، توقف، حد
- خط أسود سميك · المسار المختار، والأرقام تبيّن الترتيب
- مربع · حدّ شيفرة أو حالة، واسمه في الترويسة
- شريحة داخلية · مكوّن من ذلك الحد
- مربع منقّط · خارج ذلك الحد
- إطار برتقالي · حيث يقرر نموذج
- خطوات المسار · الإصلاح
- التحقق · التوجيه · القبول
- الحالة · السجلات
- الاستكشاف قبل الإصلاح
مرسومة من سجلات التطبيق والتطوير الخاصة. والأسماء أسماء عامة للنشر، ولا تُعرض مسارات شيفرة ولا معلومات عملاء.
- المُدخلات بعد فشل إعادة البناء
- يتلقى إصلاح النموذج الأدلة المجمّعة وتعليمات الإصلاح، لكن نص الخطأ المُمرَّر هو خطأ build الأصلي، لا الخطأ الجديد من إعادة البناء. ثبت ذلك بقراءة الشيفرة، ولم يُعَد إنتاجه في تشغيل، ولم يُغيَّر المصدر.
- حدود البوابات
- إذا كان خط أساس التغطية مجهولًا، تُتخطّى تلك البوابة. ويعدّ فحص surefire الاستثناءات في POM الحالي، لا الفرق عن خط الأساس. ويعدّ فحصا الحذف والاستثناء صفرًا حين يتعذر قراءة Git أو POM.
- الحالة وأرقامها
- ردّ نحو 40 خطأ setter إلى سبب واحد، هو إعداد Lombok وPOM، تشخيصٌ سُجّل حينها. وليس رقمًا للإنتاجية أو الدقة أو التسليم النهائي.