
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
수정의 근거와 통과 조건을 나눈 마이그레이션 루프
원본 빌드 상태를 기록하고 규칙 변환을 적용한 뒤, 소스 · 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를 기준선에 남깁니다. 기준선의 test · coverage 기본값은 측정값이 아닙니다.
원본 상태 · 원본 compile
원본 확인실행 · 판정: 규칙 변환변환 계획 → 규칙 변환변환실행 graph는 원본 확인 → 변환 계획 → 규칙 변환 → 검증 순서로 이어집니다. 규칙으로 옮길 수 있는 변환을 먼저 적용합니다.
변환 계획 → 규칙 변환
변환실행 · 판정: build · testbuild · test · 반복 +1검증변환 결과를 build와 test로 검증하고 반복 횟수를 하나 올립니다. 결과는 실행 상태로 돌아갑니다.
build · test · 반복 +1
검증데이터: 결과 · 반복 수계속 · 측정 · 기본 3회다음 단계 판단build 성공 여부, test 통과율, 반복 횟수로 다음 단계를 정합니다.
계속 · 측정 · 기본 3회
다음 단계 판단실행 · 판정: 통과 · 한도 · 정체변환 비율 · 테스트 · 커버리지결과 측정build와 test가 모두 통과하거나, 반복 한도에 닿거나, 정체가 감지되면(아직 하지 않았다면 복구를 한 번 더 시도한 뒤) 측정으로 갑니다. 측정으로 간다는 것이 성공을 뜻하지는 않습니다.
기준선 · 모르는 값은 미측정
실행 상태데이터: 기준선 비교변환 비율 · 테스트 · 커버리지결과 측정측정은 실행 상태에 남은 기준선을 읽어 비교합니다. 새 기준선 실행이 아닙니다.
5개 수락 기준
결과 측정데이터: 등급 산정점수표 · 등급build 성공, test 통과율 100%, 커버리지 변화 −5 이상(기준선을 알 때만), 삭제된 테스트 0, surefire 제외 0. 다섯 기준을 모두 통과해야 등급을 매깁니다.
원인 기반 수리
수정 전에 증거를 모으고 결정적 수정을 먼저 합니다. 재빌드가 통과하면 모델을 건너뛰고, 실패하면 증거와 지침으로 모델이 고친 뒤 다시 검증합니다.
build · test · 반복 +1
검증데이터: 결과 · 반복 수계속 · 측정 · 기본 3회다음 단계 판단build 성공 여부, test 통과율, 반복 횟수로 다음 단계를 정합니다.
계속 · 측정 · 기본 3회
다음 단계 판단실행 · 판정: 실패 · 재시도원인 증거 · source 3개 · POM수정 전 탐색build가 실패했거나 test 통과율이 100% 미만이고, 반복 한도(기본 3회) 안이면 수리로 갑니다.
원인 증거 · source 3개 · POM
수정 전 탐색관측 · 보고: 수정 전 저장수정 전 체크포인트복구 기록수정 전에 checkpoint를 저장합니다. best-effort라 저장 실패가 수리를 멈추지 않으며, 성공의 근거도 아닙니다.
원인 증거 · source 3개 · POM
수정 전 탐색데이터: 증거 · 오류 묶음알려진 패턴 수정결정적 수정오류가 난 Java 파일, source 3개까지의 앞부분, 어노테이션 · POM · annotation processor 설정, 깊이 2의 import 관계를 모읍니다. 정해진 범위의 표본이며 전체 코드 이해가 아닙니다.
재빌드 확인
결정적 수정실행 · 판정: 통과 · LLM 생략build · test · 반복 +1검증알려진 패턴(예: Lombok 설정)을 결정적으로 고친 뒤 재빌드가 통과하면 모델을 부르지 않습니다. 실행은 그래도 검증으로 돌아가므로, 이것이 최종 수락은 아닙니다.
재빌드 확인
결정적 수정실패 · 한도: 재빌드 실패증거 · 수리 지침으로 수정모델 수리재빌드가 실패하면 모은 증거와 수리 지침을 모델 수리에 넘깁니다. 코드를 읽어 보면 함께 넘어가는 오류 문구는 재빌드의 새 오류가 아니라 처음 build 오류이므로, "남은 오류만 전달"로 읽으면 안 됩니다. 실행으로 재현한 결함은 아닙니다.
같은 오류의 이전 수정
복구 기록데이터: 이전 수정증거 · 수리 지침으로 수정모델 수리같은 오류 signature로 남은 이전 수정 기록을 찾아 참고합니다. 모델 학습이 아니라 입력에 붙는 기록입니다.
증거 · 수리 지침으로 수정
모델 수리실행 · 판정: 수정 후 재검증build · test · 반복 +1검증구조화된 architect · editor 경로로, 그 경로를 쓸 수 없거나 복구 중이면 도구 사용 프롬프트로 고친 뒤 다시 build · test로 검증합니다. 모델이 낸 수정은 그 자체로 통과한 build가 아닙니다.
통과와 정체 구분
다섯 기준을 모두 통과해야 등급을 매기고, 테스트 삭제 · 제외나 한도 · 정체 종료는 성공으로 세지 않습니다.
계속 · 측정 · 기본 3회
다음 단계 판단실행 · 판정: 통과 · 한도 · 정체변환 비율 · 테스트 · 커버리지결과 측정build와 test가 모두 통과하거나, 반복 한도에 닿거나, 정체가 감지되면(아직 하지 않았다면 복구를 한 번 더 시도한 뒤) 측정으로 갑니다. 측정으로 간다는 것이 성공을 뜻하지는 않습니다.
기준선 · 모르는 값은 미측정
실행 상태데이터: 기준선 비교변환 비율 · 테스트 · 커버리지결과 측정측정은 실행 상태에 남은 기준선을 읽어 비교합니다. 새 기준선 실행이 아닙니다.
5개 수락 기준
결과 측정데이터: 등급 산정점수표 · 등급build 성공, test 통과율 100%, 커버리지 변화 −5 이상(기준선을 알 때만), 삭제된 테스트 0, surefire 제외 0. 다섯 기준을 모두 통과해야 등급을 매깁니다.
5개 수락 기준
결과 측정실패 · 한도: 삭제 · 제외 · 실패실패 · 정체 보고테스트를 지우거나 surefire 제외로 얻은 통과, build · test 실패는 실패로 남습니다. 삭제 · 제외 검사는 Git이나 POM을 읽지 못하면 0으로 세므로, 모든 위반을 막는다는 증명은 아닙니다.
계속 · 측정 · 기본 3회
다음 단계 판단관측 · 보고: 한도 · 정체 종료실패 · 정체 보고한도나 정체로 끝난 실행은 측정을 거치되 성공으로 보고하지 않습니다. 측정을 건너뛰는 지름길이 아니라 보고의 구분입니다.
모든 연결을 같은 굵기로 보여 줍니다. 흐름을 고르면 그 경로만 번호와 함께 강조됩니다.
- 실선 · 입력 · 결과 · 기록이 흐르는 방향
- 파선 · 실행 · 판정 · 요청
- 긴 점선 · 관측 · 보고, 판정과 별개
- 짧은 파선 · 실패 · 중단 · 한도
- 굵은 검은 선 · 고른 흐름, 번호는 순서
- 상자 · 코드 · 상태 경계, 머리말에 이름
- 안쪽 칩 · 그 경계의 구성 요소
- 점선 상자 · 그 경계 밖
- 주황 테두리 · 모델이 판단하는 곳
- 파이프라인 단계 · 수리
- 검증 · 판단 · 수락 기준
- 상태 · 기록
- 수정 전 탐색
비공개 구현 · 개발 기록 기준으로 그렸습니다. 이름은 공개용 일반 이름이며, 코드 경로와 고객 정보는 싣지 않았습니다.
- 재빌드 실패 뒤의 입력
- 모델 수리는 모은 증거와 수리 지침을 받지만, 함께 넘어가는 오류 문구는 재빌드의 새 오류가 아니라 처음 build 오류입니다. 코드를 읽어 확인한 점이며, 실행으로 재현하지 않았고 소스도 고치지 않았습니다.
- 수락 기준의 한계
- 커버리지 기준선을 모르면 그 항목은 건너뜁니다. surefire 검사는 기준선과의 차이가 아니라 현재 POM의 제외 설정을 셉니다. 삭제 · 제외 검사는 Git이나 POM을 읽지 못하면 0으로 셉니다.
- 사례와 수치
- 약 40건의 setter 오류가 Lombok · POM 설정이라는 한 원인에서 나온 사례는 당시의 진단 기록입니다. 처리량 · 정확도 · 최종 납품 수치가 아닙니다.