ตัวละคร REODE ดั้งเดิมที่ปรับแต่งแล้ว: ใบหน้าแอกโซลอเติลสีครีมอมชมพูยิ้มแย้ม สวมเฮดเซ็ตสีกรมท่าและเลนส์สีฟ้าอมเขียว
กลับไปที่ห้องจัดแสดง

REODE

Code migration

ก่อนแก้ไข หาสาเหตุร่วมก่อน

เอเจนต์ไมเกรตโค้ด Java/Spring ผสานการแปลงตามกฎเข้ากับการซ่อมที่ใช้โมเดลช่วย และตรวจโค้ดที่เปลี่ยนด้วย build และ test เป็นโปรเจกต์งาน

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 และความสมบูรณ์ของเทสต์อีกครั้ง และรายงานการรันที่จบเพราะถึงขีดจำกัดหรือค้างแยกจากความสำเร็จ

งาน REODE ในรีโพซิทอรี ช่วงร่วมงานกับ pinxlab March 16, 2026 ถึง May 26, 2026

เครื่องมือ CLI ที่ใช้ในงาน

แผนที่ลูปการซ่อม · จากบันทึกการพัฒนาที่เป็นส่วนตัว
ลูปการซ่อมสำหรับไมเกรชันของ REODEสถานะ build ต้นฉบับถูกเก็บเป็น baseline ใช้การแปลงตามกฎ และ build กับ test ตรวจยืนยันผล เมื่อล้มเหลว จะรวบรวมหลักฐานจากซอร์ส annotation และ POM ก่อนแก้ไขใด ๆ และแก้รูปแบบที่รู้จักแบบเชิงกำหนดแล้วบิลด์ใหม่ หากบิลด์ใหม่ผ่าน จะไม่เรียกโมเดล หากล้มเหลว โมเดลจะซ่อมด้วยหลักฐานที่รวบรวมและคำสั่งแก้ไข แล้วตรวจยืนยันผลอีกครั้ง การรันที่จบเพราะถึงขีดจำกัดรอบหรือค้างจะไปสู่การวัดผลแต่ไม่นับว่าสำเร็จ และ scorecard ให้เกรดเฉพาะเมื่อผ่านเกณฑ์การยอมรับครบทั้งห้าข้อซอร์ส · POMอินพุตไมเกรชันที่เป็นส่วนตัวscorecard · เกรดไม่ใช่การดีพลอยรายงานความล้มเหลว · การค้างไม่นับว่าสำเร็จการตรวจต้นฉบับสถานะต้นฉบับ · compileสถานะการรันbaseline · ค่าที่ไม่ทราบไม่ได้วัดบันทึกการกู้คืนcheckpoint ก่อนแก้ไขการแก้ไขก่อนหน้า ข้อผิดพลาดเดียวกันการแปลงแผน → การแปลงตามกฎสำรวจก่อนแก้ไขหลักฐานสาเหตุ · ซอร์ส 3 ไฟล์ · POMการแก้ไขแบบเชิงกำหนดแก้รูปแบบที่รู้จักตรวจการบิลด์ใหม่การซ่อมด้วยโมเดลแก้ด้วยหลักฐาน · คำสั่งการตรวจยืนยันbuild · test · รอบ +1ขั้นถัดไปทำต่อ · วัดผล · สูงสุด 3การวัดผลสัดส่วนกฎ · เทสต์ · coverageเกณฑ์การยอมรับ 5 ข้ออินพุต · baselineบันทึกการกู้คืนการแปลง · การซ่อมการตรวจยืนยัน · ทางออก1ซอร์ส · POM2compile ต้นฉบับ3 การแปลงตามกฎ · สถานะต้นฉบับ · compile → แผน → การแปลงตามกฎ34build · test5ผลลัพธ์ · จำนวนรอบ6ผ่าน · ขีดจำกัด · ค้าง7เปรียบเทียบกับ baseline8 การให้เกรด · เกณฑ์การยอมรับ 5 ข้อ → scorecard · เกรด81ผลลัพธ์ · จำนวนรอบ2 ล้มเหลว · ลองใหม่ · ทำต่อ · วัดผล · สูงสุด 3 → หลักฐานสาเหตุ · ซอร์ส 3 ไฟล์ · POM23บันทึกก่อนแก้ไข4หลักฐาน · ข้อผิดพลาดที่จัดกลุ่ม5ผ่าน · ข้าม LLM6บิลด์ใหม่ล้มเหลว7 การแก้ไขก่อนหน้า · การแก้ไขก่อนหน้า ข้อผิดพลาดเดียวกัน → แก้ด้วยหลักฐาน · คำสั่ง78ตรวจยืนยันอีกครั้ง1ผ่าน · ขีดจำกัด · ค้าง2เปรียบเทียบกับ baseline3 การให้เกรด · เกณฑ์การยอมรับ 5 ข้อ → scorecard · เกรด34ลบ · ยกเว้น · ล้มเหลว5ทางออกจากขีดจำกัด · การค้าง

การแปลงตามกฎ

สถานะต้นฉบับถูกเก็บเป็น baseline หลังการแปลงตามกฎ build และ test ตรวจยืนยัน แล้วการรันไปสู่การวัดผล

  1. ซอร์ส · POMข้อมูล: ซอร์ส · POMสถานะต้นฉบับ · compileการตรวจต้นฉบับ

    รับซอร์สและ POM ของ Java/Spring ที่จะไมเกรต ไม่แสดงโค้ดและหน้าจอของลูกค้า

  2. สถานะต้นฉบับ · compileการตรวจต้นฉบับข้อมูล: compile ต้นฉบับbaseline · ค่าที่ไม่ทราบไม่ได้วัดสถานะการรัน

    ก่อนการแปลง จะเลือกรันไทม์และ compile ต้นฉบับ build ที่พังอยู่แล้วจึงถูกเก็บไว้ใน baseline ค่าเริ่มต้นของ test และ coverage ใน baseline ไม่ใช่ค่าที่วัดได้

  3. สถานะต้นฉบับ · compileการตรวจต้นฉบับรัน · การตัดสิน: การแปลงตามกฎแผน → การแปลงตามกฎการแปลง

    กราฟการรันเป็นไปตาม ตรวจต้นฉบับ → แผนการแปลง → การแปลงตามกฎ → การตรวจยืนยัน การแปลงที่กฎรองรับได้จะถูกใช้ก่อน

  4. แผน → การแปลงตามกฎการแปลงรัน · การตัดสิน: build · testbuild · test · รอบ +1การตรวจยืนยัน

    build และ test ตรวจยืนยันโค้ดที่แปลงแล้วและนับรอบเพิ่มหนึ่ง ผลลัพธ์กลับไปยังสถานะการรัน

  5. build · test · รอบ +1การตรวจยืนยันข้อมูล: ผลลัพธ์ · จำนวนรอบทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไป

    ความสำเร็จของ build อัตราผ่าน test และจำนวนรอบเป็นตัวตัดสินขั้นถัดไป

  6. ทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไปรัน · การตัดสิน: ผ่าน · ขีดจำกัด · ค้างสัดส่วนกฎ · เทสต์ · coverageการวัดผล

    เมื่อ build และ test ผ่านทั้งคู่ ถึงขีดจำกัดรอบ หรือตรวจพบการค้าง (หลังพยายามกู้คืนหนึ่งครั้งหากยังไม่เคยทำ) การรันจะไปสู่การวัดผล การไปสู่การวัดผลไม่ได้หมายถึงความสำเร็จ

  7. baseline · ค่าที่ไม่ทราบไม่ได้วัดสถานะการรันข้อมูล: เปรียบเทียบกับ baselineสัดส่วนกฎ · เทสต์ · coverageการวัดผล

    การวัดผลอ่าน baseline ที่เก็บไว้ในสถานะการรัน ไม่ใช่การรัน baseline ใหม่

  8. เกณฑ์การยอมรับ 5 ข้อการวัดผลข้อมูล: การให้เกรดscorecard · เกรด

    build สำเร็จ อัตราผ่าน test 100% การเปลี่ยนแปลงของ coverage −5 หรือดีกว่า (เฉพาะเมื่อทราบ baseline) เทสต์ที่ถูกลบเป็นศูนย์ การยกเว้น surefire เป็นศูนย์ ให้เกรดเฉพาะเมื่อผ่านครบทั้งห้าข้อ

การซ่อมตามสาเหตุ

รวบรวมหลักฐานก่อนแก้ไข และการแก้ไขแบบเชิงกำหนดมาก่อน หากบิลด์ใหม่ผ่าน จะข้ามโมเดล หากไม่ผ่าน โมเดลซ่อมด้วยหลักฐานและคำสั่ง แล้วตรวจยืนยันผลอีกครั้ง

  1. build · test · รอบ +1การตรวจยืนยันข้อมูล: ผลลัพธ์ · จำนวนรอบทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไป

    ความสำเร็จของ build อัตราผ่าน test และจำนวนรอบเป็นตัวตัดสินขั้นถัดไป

  2. ทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไปรัน · การตัดสิน: ล้มเหลว · ลองใหม่หลักฐานสาเหตุ · ซอร์ส 3 ไฟล์ · POMสำรวจก่อนแก้ไข

    หาก build ล้มเหลวหรืออัตราผ่าน test ต่ำกว่า 100% และยังไม่ถึงขีดจำกัดรอบ (ค่าเริ่มต้น 3) การรันจะไปสู่การซ่อม

  3. หลักฐานสาเหตุ · ซอร์ส 3 ไฟล์ · POMสำรวจก่อนแก้ไขการสังเกต · รายงาน: บันทึกก่อนแก้ไขcheckpoint ก่อนแก้ไขบันทึกการกู้คืน

    checkpoint ถูกบันทึกก่อนการแก้ไข เป็นแบบ best-effort การบันทึกที่ล้มเหลวไม่ได้หยุดการซ่อม และการบันทึกไม่ใช่หลักฐานของความสำเร็จ

  4. หลักฐานสาเหตุ · ซอร์ส 3 ไฟล์ · POMสำรวจก่อนแก้ไขข้อมูล: หลักฐาน · ข้อผิดพลาดที่จัดกลุ่มแก้รูปแบบที่รู้จักการแก้ไขแบบเชิงกำหนด

    รวบรวมไฟล์ Java ที่ล้มเหลว บรรทัดแรก ๆ ของซอร์สสูงสุดสามไฟล์ การตั้งค่า annotation, POM และ annotation processor และ import ที่ความลึก 2 เป็นตัวอย่างที่มีขอบเขต ไม่ใช่ความเข้าใจโค้ดเบสทั้งหมด

  5. ตรวจการบิลด์ใหม่การแก้ไขแบบเชิงกำหนดรัน · การตัดสิน: ผ่าน · ข้าม LLMbuild · test · รอบ +1การตรวจยืนยัน

    หากการแก้รูปแบบที่รู้จักแบบเชิงกำหนด (เช่น การตั้งค่า Lombok) ทำให้บิลด์ใหม่ผ่าน จะไม่เรียกโมเดล การรันยังคงกลับไปที่การตรวจยืนยัน นี่จึงไม่ใช่การยอมรับขั้นสุดท้าย

  6. ตรวจการบิลด์ใหม่การแก้ไขแบบเชิงกำหนดความล้มเหลว · ขีดจำกัด: บิลด์ใหม่ล้มเหลวแก้ด้วยหลักฐาน · คำสั่งการซ่อมด้วยโมเดล

    หากบิลด์ใหม่ล้มเหลว หลักฐานที่รวบรวมและคำสั่งแก้ไขจะถูกส่งไปยังการซ่อมด้วยโมเดล การอ่านโค้ดแสดงว่าข้อความข้อผิดพลาดที่ส่งไปด้วยคือข้อผิดพลาดของ build ครั้งแรก ไม่ใช่ข้อผิดพลาดใหม่ของการบิลด์ใหม่ จึงต้องไม่อ่านว่า “ส่งต่อเฉพาะข้อผิดพลาดที่เหลือ” ไม่ใช่ข้อบกพร่องที่ทำซ้ำได้ในการรัน

  7. การแก้ไขก่อนหน้า ข้อผิดพลาดเดียวกันบันทึกการกู้คืนข้อมูล: การแก้ไขก่อนหน้าแก้ด้วยหลักฐาน · คำสั่งการซ่อมด้วยโมเดล

    การแก้ไขก่อนหน้าที่บันทึกไว้ภายใต้ลายเซ็นข้อผิดพลาดเดียวกันจะถูกค้นและแนบมา เป็นบันทึกที่เพิ่มเข้าไปในอินพุต ไม่ใช่การฝึกโมเดล

  8. แก้ด้วยหลักฐาน · คำสั่งการซ่อมด้วยโมเดลรัน · การตัดสิน: ตรวจยืนยันอีกครั้งbuild · test · รอบ +1การตรวจยืนยัน

    โมเดลแก้ไขผ่านเส้นทาง architect/editor แบบมีโครงสร้าง หรือใช้พรอมต์แบบ tool-use เมื่อเส้นทางนั้นใช้ไม่ได้หรืออยู่ระหว่างกู้คืน แล้ว build และ test ตรวจยืนยันอีกครั้ง การแก้ไขของโมเดลไม่ใช่ build ที่ผ่านในตัวเอง

ผ่าน กับ ค้าง

เกรดต้องผ่านเกณฑ์ครบทั้งห้าข้อ เทสต์ที่ถูกลบหรือยกเว้น และทางออกจากขีดจำกัดหรือการค้าง ไม่นับว่าสำเร็จ

  1. ทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไปรัน · การตัดสิน: ผ่าน · ขีดจำกัด · ค้างสัดส่วนกฎ · เทสต์ · coverageการวัดผล

    เมื่อ build และ test ผ่านทั้งคู่ ถึงขีดจำกัดรอบ หรือตรวจพบการค้าง (หลังพยายามกู้คืนหนึ่งครั้งหากยังไม่เคยทำ) การรันจะไปสู่การวัดผล การไปสู่การวัดผลไม่ได้หมายถึงความสำเร็จ

  2. baseline · ค่าที่ไม่ทราบไม่ได้วัดสถานะการรันข้อมูล: เปรียบเทียบกับ baselineสัดส่วนกฎ · เทสต์ · coverageการวัดผล

    การวัดผลอ่าน baseline ที่เก็บไว้ในสถานะการรัน ไม่ใช่การรัน baseline ใหม่

  3. เกณฑ์การยอมรับ 5 ข้อการวัดผลข้อมูล: การให้เกรดscorecard · เกรด

    build สำเร็จ อัตราผ่าน test 100% การเปลี่ยนแปลงของ coverage −5 หรือดีกว่า (เฉพาะเมื่อทราบ baseline) เทสต์ที่ถูกลบเป็นศูนย์ การยกเว้น surefire เป็นศูนย์ ให้เกรดเฉพาะเมื่อผ่านครบทั้งห้าข้อ

  4. เกณฑ์การยอมรับ 5 ข้อการวัดผลความล้มเหลว · ขีดจำกัด: ลบ · ยกเว้น · ล้มเหลวรายงานความล้มเหลว · การค้าง

    การผ่านที่ได้จากการลบเทสต์หรือจากการยกเว้นของ surefire และ build หรือ test ที่ล้มเหลว ยังคงเป็นความล้มเหลว การตรวจการลบและการยกเว้นนับเป็นศูนย์เมื่ออ่าน Git หรือ POM ไม่ได้ จึงไม่ใช่หลักฐานว่าจับการละเมิดได้ทุกกรณี

  5. ทำต่อ · วัดผล · สูงสุด 3ขั้นถัดไปการสังเกต · รายงาน: ทางออกจากขีดจำกัด · การค้างรายงานความล้มเหลว · การค้าง

    การรันที่จบเพราะถึงขีดจำกัดหรือค้างยังผ่านการวัดผล แต่ไม่ถูกรายงานว่าสำเร็จ นี่คือการระบุวิธีรายงาน ไม่ใช่ทางลัดข้ามการวัดผล

ทุกการเชื่อมต่อมีน้ำหนักเท่ากัน เลือกโฟลว์เพื่อไฮไลต์เฉพาะเส้นทางของโฟลว์นั้นพร้อมขั้นตอนที่มีหมายเลข

  • เส้นทึบ · ทิศทางของอินพุต ผลลัพธ์ และบันทึก
  • เส้นประ · รัน การตัดสิน คำขอ
  • จุดยาว · การสังเกตและการรายงาน แยกจากการตัดสิน
  • เส้นประสั้น · ความล้มเหลว การหยุด ขีดจำกัด
  • เส้นดำหนา · โฟลว์ที่เลือก ตัวเลขบอกลำดับ
  • กล่อง · ขอบเขตของโค้ดหรือสถานะ ระบุชื่อในส่วนหัว
  • ชิปด้านใน · องค์ประกอบของขอบเขตนั้น
  • กล่องจุด · อยู่นอกขอบเขตนั้น
  • เส้นขอบสีส้ม · จุดที่โมเดลตัดสินใจ
  • ขั้นของไปป์ไลน์ · การซ่อม
  • การตรวจยืนยัน · การกำหนดทาง · การยอมรับ
  • สถานะ · บันทึก
  • สำรวจก่อนแก้ไข

วาดจากบันทึกการพัฒนาและงานที่เป็นส่วนตัว ชื่อเป็นชื่อสาธารณะทั่วไป ไม่แสดงพาธโค้ดหรือข้อมูลลูกค้า

อินพุตหลังบิลด์ใหม่ล้มเหลว
การซ่อมด้วยโมเดลได้รับหลักฐานที่รวบรวมและคำสั่งแก้ไข แต่ข้อความข้อผิดพลาดที่ส่งไปด้วยคือข้อผิดพลาดของ build ครั้งแรก ไม่ใช่ข้อผิดพลาดใหม่ของการบิลด์ใหม่ ยืนยันด้วยการอ่านโค้ด ไม่ได้ทำซ้ำในการรัน และไม่ได้เปลี่ยนซอร์ส
ข้อจำกัดของเกณฑ์
หากไม่ทราบ baseline ของ coverage เกณฑ์นั้นจะถูกข้าม การตรวจ surefire นับการยกเว้นใน POM ปัจจุบัน ไม่ใช่ผลต่างจาก baseline การตรวจการลบและการยกเว้นนับเป็นศูนย์เมื่ออ่าน Git หรือ POM ไม่ได้
กรณีและตัวเลข
ข้อผิดพลาด setter ราว 40 รายการที่ไล่ไปถึงสาเหตุเดียว คือการตั้งค่า Lombok และ POM เป็นการวินิจฉัยที่บันทึกในตอนนั้น ไม่ใช่ตัวเลขปริมาณงาน ความแม่นยำ หรือการส่งมอบสุดท้าย