의존성

MODULE_DEPENDENCY.md 기준 · 갱신: 2026-05-03 12:19:01
/volume1/web/gpt/repair_jobs/MODULE_DEPENDENCY.md 2026-05-03 12:19:01
# 영일전기철물 AI 의존성 지도 v4

last_updated: 2026-05-03 05:19:00
root: `//GUNYOUNG/WEB/gpt`

---

## 0. 한줄판단

v4는 PHP 빌더로 생성한 의존성 지도다. 운영 코드 경로만 스캔하고, `include/require`는 줄 시작 PHP 문장만 인정한다. 임시 로그/백업/데이터/리포트 경로는 제외한다.

---

## 1. 스캔 요약

- PHP 파일 수: 991
- 클래스/인터페이스/트레이트 수: 299
- include/require 연결 수: 1125
- 클래스 참조 연결 수: 1203
- 중복 클래스명 수: 1

---

## 2. 가장 많이 참조되는 파일

### include/require 기준
- 102회 ← `app/admin-api/_api_boot.php`
- 99회 ← `admin-api/_api_boot.php`
- 34회 ← `/app/core/DB.php`
- 32회 ← `/app/core/config.php`
- 28회 ← `common/NaturalLanguage.php`
- 20회 ← `app/core/DB.php`
- 18회 ← `core/bootstrap_paths.php`
- 17회 ← `app/core/config.php`
- 16회 ← `/app/core/api_boot.php`
- 15회 ← `app/features/quotation/api/_quotation_bootstrap.php`
- 15회 ← `storage.php`
- 14회 ← `app/admin-api/haenam/_haenam_guard.php`
- 14회 ← `app/core/bootstrap_paths.php`
- 14회 ← `app/features/customer_management/api/_customer_bootstrap.php`
- 12회 ← `app/features/project/api/_project_bootstrap.php`
- 11회 ← `app/features/crop/api/_crop_db_store.php`
- 10회 ← `/app/admin-api/work_items/modules/WorkItemService.php`
- 10회 ← `app/features/schedule/api/bootstrap.php`
- 10회 ← `business_data/BusinessDb.php`
- 9회 ← `core/haenam_entities.php`
- 9회 ← `engine_modules/storage_db.php`
- 8회 ← `app/features/crop/api/_crop_store.php`
- 8회 ← `/core/config.php`
- 8회 ← `/core/DB.php`
- 8회 ← `engine_modules/tools/routing/RouteGuards.php`
- 6회 ← `app/core/api.php`
- 5회 ← `app/config/db_config.php`
- 5회 ← `../../../config/db_config.php`
- 5회 ← `_api_boot.php`
- 5회 ← `app/features/schedule/api/google_sync.php`

### class 참조 기준
- 217회 ← `engine_modules/tools/ToolResult.php`
- 157회 ← `app/core/DB.php`
- 42회 ← `app/core/Dashboard/DashSchema.php`
- 41회 ← `engine_modules/common/NaturalLanguage.php`
- 35회 ← `engine_modules/common/Trace.php`
- 32회 ← `engine_modules/news/NewsConfig.php`
- 27회 ← `app/admin-api/work_items/modules/WorkItemService.php`
- 27회 ← `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- 24회 ← `engine_modules/common/RecordTextClassifier.php`
- 22회 ← `engine_modules/news/NewsTrace.php`
- 21회 ← `engine_modules/tools/routing/RouteGuards.php`
- 17회 ← `engine_modules/routing/RouteDecision.php`
- 15회 ← `engine_modules/tools/worklog/WorklogRecordLoader.php`
- 10회 ← `engine_modules/common/DateRangeResolver.php`
- 9회 ← `engine_modules/agent/Agent.php`
- 9회 ← `engine_modules/tools/stock/StockMutationParser.php`
- 9회 ← `engine_modules/brain/GptBrainConfig.php`
- 9회 ← `engine_modules/routing/RouteTrace.php`
- 8회 ← `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- 7회 ← `app/features/expense/api/ProjectExpenseModel.php`
- 7회 ← `app/core/DashboardService.php`
- 7회 ← `engine_modules/routing/RoutePolicy.php`
- 7회 ← `engine_modules/tools/worklog/WorklogFormatHelper.php`
- 6회 ← `engine_modules/system/SystemRunEventLogger.php`
- 6회 ← `app/features/quotation/api/modules/QuotationCore.php`
- 6회 ← `engine_modules/tools/stock/StockMutationPending.php`
- 6회 ← `engine_modules/quotations/QuotationRepository.php`
- 6회 ← `engine_modules/tools/worklog/WorklogReadListService.php`
- 6회 ← `engine_modules/tools/ScheduleTool.php`
- 5회 ← `app/services/customer_manager/php/Error_Service.php`

---

## 3. 핵심 파일 의존성

### `api.php`
- 라인 수: 1048
- 크기: 37938 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 11
- include/require out: 3
- include/require in: 0
- class ref out: 3
- class ref in: 0

**이 파일이 include/require 하는 것**
- L349: require_once `'/volume1/web/gpt/engine_modules/routing/RouterKernel.php'` → `/volume1/web/gpt/engine_modules/routing/RouterKernel.php`
- L689: require_once `__DIR__ . '/engine.php'` → `engine.php`
- L1001: require_once `__DIR__ . '/engine_modules/engine_core.php'` → `engine_modules/engine_core.php`

**이 파일이 참조하는 클래스**
- L29: static `SystemRunEventLogger` → `engine_modules/system/SystemRunEventLogger.php`
- L32: static `SystemRunEventLogger` → `engine_modules/system/SystemRunEventLogger.php`
- L392: static `RouterKernel` → `engine_modules/routing/RouterKernel.php`

---

### `engine.php`
- 라인 수: 435
- 크기: 15115 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 6
- include/require out: 8
- include/require in: 1
- class ref out: 0
- class ref in: 0

**이 파일이 include/require 하는 것**
- L161: require_once `__DIR__ . DIRECTORY_SEPARATOR . 'config.php'` → `config.php`
- L429: require_once `__DIR__ . '/engine_modules/analysis.php'` → `engine_modules/analysis.php`
- L430: require_once `__DIR__ . '/engine_modules/runtime.php'` → `engine_modules/runtime.php`
- L431: require_once `__DIR__ . '/engine_modules/file_shortcut.php'` → `engine_modules/file_shortcut.php`
- L432: require_once `__DIR__ . '/engine_modules/pipeline.php'` → `engine_modules/pipeline.php`
- L433: require_once `__DIR__ . '/engine_modules/storage.php'` → `engine_modules/storage.php`
- L434: require_once `__DIR__ . '/engine_modules/reasoning_log.php'` → `engine_modules/reasoning_log.php`
- L435: require_once `__DIR__ . '/engine_modules/agent_gateway.php'` → `engine_modules/agent_gateway.php`

**이 파일을 include/require 하는 파일**
- `api.php`

---

### `index.php`
- 라인 수: 37
- 크기: 1386 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `partials/head.php`
- 라인 수: 28
- 크기: 1216 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `partials/main_body.php`
- 라인 수: 47
- 크기: 1938 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `partials/operator_status.php`
- 라인 수: 154
- 크기: 5431 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 1
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `partials/debug_drawer.php`
- 라인 수: 54
- 크기: 2608 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `partials/history_panel.php`
- 라인 수: 22
- 크기: 746 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `engine_modules/bootstrap.php`
- 파일 없음 또는 스캔 제외

### `engine_modules/agent/Agent.php`
- 라인 수: 3273
- 크기: 152644 bytes
- 선언 클래스 수: 1
- 함수/메서드 수: 24
- include/require out: 8
- include/require in: 2
- class ref out: 9
- class ref in: 9

**선언 클래스**
- L107: `Agent`

**이 파일이 include/require 하는 것**
- L86: require_once `dirname(__DIR__) . '/response/ResponseComposer.php'` → `response/ResponseComposer.php`
- L87: require_once `dirname(__DIR__) . '/response/ToolResultInspector.php'` → `response/ToolResultInspector.php`
- L88: require_once `dirname(__DIR__) . '/response/ToolAnswerBuilder.php'` → `response/ToolAnswerBuilder.php`
- L90: require_once `dirname(__DIR__) . '/common/QueryUnderstanding.php'` → `common/QueryUnderstanding.php`
- L102: require_once `dirname(__DIR__) . '/tools/bootstrap.php'` → `tools/bootstrap.php`
- L103: require_once `dirname(__DIR__) . '/Memory.php'` → `Memory.php`
- L104: require_once `dirname(__DIR__) . '/system/SystemGate.php'` → `system/SystemGate.php`
- L105: require_once `dirname(__DIR__) . '/system/ApprovalPendingStore.php'` → `system/ApprovalPendingStore.php`

**이 파일을 include/require 하는 파일**
- `engine_modules/Agent.php`
- `engine_modules/agent/agent_gateway.php`

**이 파일이 참조하는 클래스**
- L121: new `Memory` → `engine_modules/Memory.php`
- L122: new `ToolFeedbackAnalyzer` → `engine_modules/tools/ToolFeedbackAnalyzer.php`
- L796: new `ToolSelector` → `engine_modules/tools/ToolSelector.php`
- L2455: new `WorklogChoiceTool` → `engine_modules/tools/WorklogChoiceTool.php`
- L3268: new `Agent` → `engine_modules/agent/Agent.php`
- L862: static `RouteSanityChecker` → `engine_modules/routing/RouteSanityChecker.php`
- L974: static `QueryUnderstanding` → `engine_modules/common/QueryUnderstanding.php`
- L2293: static `RouteDecisionComparator` → `engine_modules/routing/RouteDecisionComparator.php`
- L2369: static `RouteDecisionComparator` → `engine_modules/routing/RouteDecisionComparator.php`

---

### `engine_modules/tools/ToolSelector.php`
- 라인 수: 4256
- 크기: 191478 bytes
- 선언 클래스 수: 1
- 함수/메서드 수: 41
- include/require out: 11
- include/require in: 1
- class ref out: 45
- class ref in: 5

**선언 클래스**
- L37: `ToolSelector`

**이 파일이 include/require 하는 것**
- L6: require_once `__DIR__ . '/../common/IntentKeywordMatcher.php'` → `engine_modules/common/IntentKeywordMatcher.php`
- L23: require_once `__DIR__ . '/routing/ToolQueryNormalizer.php'` → `engine_modules/tools/routing/ToolQueryNormalizer.php`
- L24: require_once `__DIR__ . '/routing/MultiIntentRule.php'` → `engine_modules/tools/routing/MultiIntentRule.php`
- L25: require_once `__DIR__ . '/routing/StockRule.php'` → `engine_modules/tools/routing/StockRule.php`
- L28: require_once `__DIR__ . '/routing/CustomerRoute.php'` → `engine_modules/tools/routing/CustomerRoute.php`
- L29: require_once `__DIR__ . '/routing/CodeRoute.php'` → `engine_modules/tools/routing/CodeRoute.php`
- L30: require_once `__DIR__ . '/routing/HistoryRoute.php'` → `engine_modules/tools/routing/HistoryRoute.php`
- L31: require_once `__DIR__ . '/routing/WorksiteRoute.php'` → `engine_modules/tools/routing/WorksiteRoute.php`
- L32: require_once `__DIR__ . '/routing/ScheduleVisitSafetyBypassRoute.php'` → `engine_modules/tools/routing/ScheduleVisitSafetyBypassRoute.php`
- L33: require_once `__DIR__ . '/selector_routes/TodayDeepSelectorRoute.php'` → `engine_modules/tools/selector_routes/TodayDeepSelectorRoute.php`
- L34: require_once `__DIR__ . '/selector_routes/SelectorEarlyRoutePipeline.php'` → `engine_modules/tools/selector_routes/SelectorEarlyRoutePipeline.php`

**이 파일을 include/require 하는 파일**
- `engine_modules/tools/bootstrap.php`

**이 파일이 참조하는 클래스**
- L121: new `WorklogChoicePendingStore` → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- L118: static `WorklogChoicePendingStore` → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- L220: static `TodayDeepSelectorRoute` → `engine_modules/tools/selector_routes/TodayDeepSelectorRoute.php`
- L243: static `RouteDecision` → `engine_modules/routing/RouteDecision.php`
- L281: static `ScheduleVisitSafetyBypassRoute` → `engine_modules/tools/routing/ScheduleVisitSafetyBypassRoute.php`
- L298: static `CustomerRoute` → `engine_modules/tools/routing/CustomerRoute.php`
- L303: static `CustomerRoute` → `engine_modules/tools/routing/CustomerRoute.php`
- L311: static `SelectorEarlyRoutePipeline` → `engine_modules/tools/selector_routes/SelectorEarlyRoutePipeline.php`
- L312: static `SelectorRouteResult` → `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- L316: static `SelectorRouteResult` → `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- L317: static `SelectorRouteResult` → `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- L424: static `HistoryRoute` → `engine_modules/tools/routing/HistoryRoute.php`
- L429: static `HistoryRoute` → `engine_modules/tools/routing/HistoryRoute.php`
- L441: static `WorksiteRoute` → `engine_modules/tools/routing/WorksiteRoute.php`
- L468: static `HistoryRoute` → `engine_modules/tools/routing/HistoryRoute.php`
- L473: static `HistoryRoute` → `engine_modules/tools/routing/HistoryRoute.php`
- L493: static `CodeRoute` → `engine_modules/tools/routing/CodeRoute.php`
- L705: static `ScheduleOverlayPolicy` → `engine_modules/routing/ScheduleOverlayPolicy.php`
- L870: static `ToolRoutePlanner` → `engine_modules/routing/ToolRoutePlanner.php`
- L917: static `PlannerHintContextResolver` → `engine_modules/routing/PlannerHintContextResolver.php`
- L1023: static `SafetyHintPolicy` → `engine_modules/routing/SafetyHintPolicy.php`
- L1077: static `SafetyPhysicalControlPolicy` → `engine_modules/routing/SafetyPhysicalControlPolicy.php`
- L1146: static `PlannerHintAdapter` → `engine_modules/routing/PlannerHintAdapter.php`
- L1338: static `ScheduleOverlayPolicy` → `engine_modules/routing/ScheduleOverlayPolicy.php`
- L1583: static `CapabilityHelpRoute` → `engine_modules/tools/selector_routes/CapabilityHelpRoute.php`
- L1812: static `CodeRoute` → `engine_modules/tools/routing/CodeRoute.php`
- L1948: static `RoutePipeline` → `engine_modules/tools/routing/RoutePipeline.php`
- L2399: static `WorksiteRoute` → `engine_modules/tools/routing/WorksiteRoute.php`
- L2407: static `WorksiteRoute` → `engine_modules/tools/routing/WorksiteRoute.php`
- L2425: static `QuotationRoute` → `engine_modules/tools/routing/QuotationRoute.php`
- L2541: static `StockRoute` → `engine_modules/tools/routing/StockRoute.php`
- L2630: static `MultiIntentRule` → `engine_modules/tools/routing/MultiIntentRule.php`
- L2829: static `WeatherRoute` → `engine_modules/tools/routing/WeatherRoute.php`
- L2850: static `CodeRoute` → `engine_modules/tools/routing/CodeRoute.php`
- L2963: static `IntentKeywordMatcher` → `engine_modules/common/IntentKeywordMatcher.php`
- L2990: static `IntentKeywordMatcher` → `engine_modules/common/IntentKeywordMatcher.php`
- L3002: static `MoneyRoute` → `engine_modules/tools/routing/MoneyRoute.php`
- L3023: static `ScheduleRoute` → `engine_modules/tools/routing/ScheduleRoute.php`
- L3044: static `PlannerRoute` → `engine_modules/tools/routing/PlannerRoute.php`
- L3065: static `CustomerRoute` → `engine_modules/tools/routing/CustomerRoute.php`
- L3200: static `ToolQueryNormalizer` → `engine_modules/tools/routing/ToolQueryNormalizer.php`
- L3743: static `RoutePolicy` → `engine_modules/routing/RoutePolicy.php`
- L3814: static `RoutePolicy` → `engine_modules/routing/RoutePolicy.php`
- L3854: static `RoutePolicy` → `engine_modules/routing/RoutePolicy.php`
- L4070: static `RouteControlledPolicy` → `engine_modules/routing/RouteControlledPolicy.php`

---

### `engine_modules/capabilities/web_preflight.php`
- 라인 수: 1782
- 크기: 64477 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 19
- include/require out: 3
- include/require in: 0
- class ref out: 5
- class ref in: 0

**이 파일이 include/require 하는 것**
- L70: require_once `__DIR__ . '/CapabilityTrace.php'` → `engine_modules/capabilities/CapabilityTrace.php`
- L71: require_once `__DIR__ . '/CapabilityRouter.php'` → `engine_modules/capabilities/CapabilityRouter.php`
- L72: require_once `__DIR__ . '/CapabilityExecutor.php'` → `engine_modules/capabilities/CapabilityExecutor.php`

**이 파일이 참조하는 클래스**
- L401: new `DateMeaningLookupService` → `engine_modules/date/DateMeaningLookupService.php`
- L695: new `ReviewLookupService` → `engine_modules/review/ReviewLookupService.php`
- L1642: new `GptCapabilityTrace` → `engine_modules/capabilities/CapabilityTrace.php`
- L1643: new `GptCapabilityRouter` → `engine_modules/capabilities/CapabilityRouter.php`
- L1644: new `GptCapabilityExecutor` → `engine_modules/capabilities/CapabilityExecutor.php`

---

### `engine_modules/tools/CustomerTool.php`
- 라인 수: 1808
- 크기: 70971 bytes
- 선언 클래스 수: 1
- 함수/메서드 수: 38
- include/require out: 0
- include/require in: 0
- class ref out: 6
- class ref in: 1

**선언 클래스**
- L18: `CustomerTool`

**이 파일이 참조하는 클래스**
- L1480: new `CustomerDeletedHintService` → `engine_modules/tools/customer/CustomerDeletedHintService.php`
- L67: static `ToolResult` → `engine_modules/tools/ToolResult.php`
- L88: static `ToolResult` → `engine_modules/tools/ToolResult.php`
- L112: static `ToolResult` → `engine_modules/tools/ToolResult.php`
- L145: static `ToolResult` → `engine_modules/tools/ToolResult.php`
- L218: static `ToolResult` → `engine_modules/tools/ToolResult.php`

---

### `engine_modules/tools/routing/RoutePipeline.php`
- 라인 수: 153
- 크기: 4770 bytes
- 선언 클래스 수: 1
- 함수/메서드 수: 4
- include/require out: 1
- include/require in: 0
- class ref out: 0
- class ref in: 1

**선언 클래스**
- L17: `RoutePipeline`

**이 파일이 include/require 하는 것**
- L4: require_once `dirname(__DIR__, 2) . '/common/NaturalLanguage.php'` → `common/NaturalLanguage.php`

---

### `engine_modules/tools/routing/CustomerRoute.php`
- 라인 수: 219
- 크기: 9112 bytes
- 선언 클래스 수: 1
- 함수/메서드 수: 6
- include/require out: 2
- include/require in: 1
- class ref out: 6
- class ref in: 3

**선언 클래스**
- L18: `CustomerRoute`

**이 파일이 include/require 하는 것**
- L4: require_once `dirname(__DIR__, 2) . '/common/NaturalLanguage.php'` → `common/NaturalLanguage.php`
- L6: require_once `__DIR__ . '/RouteGuards.php'` → `engine_modules/tools/routing/RouteGuards.php`

**이 파일을 include/require 하는 파일**
- `engine_modules/tools/ToolSelector.php`

**이 파일이 참조하는 클래스**
- L137: static `NaturalLanguage` → `engine_modules/common/NaturalLanguage.php`
- L176: static `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`
- L177: static `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`
- L178: static `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`
- L179: static `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`
- L180: static `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`

---

### `work_state.php`
- 라인 수: 213
- 크기: 6253 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 2
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `work_report.php`
- 라인 수: 219
- 크기: 6505 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 2
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `code_map.php`
- 라인 수: 237
- 크기: 6624 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `module_ownership.php`
- 라인 수: 205
- 크기: 6103 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `module_flow.php`
- 라인 수: 199
- 크기: 6052 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

### `module_dependency.php`
- 라인 수: 199
- 크기: 6103 bytes
- 선언 클래스 수: 0
- 함수/메서드 수: 0
- include/require out: 0
- include/require in: 0
- class ref out: 0
- class ref in: 0

---

## 4. 전체 파일별 include/require 연결

### `api.php`
- → `/volume1/web/gpt/engine_modules/routing/RouterKernel.php`
- → `engine.php`
- → `engine_modules/engine_core.php`

### `app/admin-api/_api_boot.php`
- → `app/admin-api/_common.php`
- → `app/admin-api/_api_util.php`

### `app/admin-api/_api_util.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/_common.php`
- → `app/core/api_boot.php`

### `app/admin-api/_health/check_cl_cols.php`
- → `/app/core/DB.php`
- → `/config/db_config.php`

### `app/admin-api/_health/check_quotation.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/_health/check_uncollected.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/_health/cols_project_expenses.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/_health/db.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/_health/env.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/_health/list_tables.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/_health/match_income_customers.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/_health/match_income_ui.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/_health/me.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/_health/migrate_checklist.php`
- → `/config/db_config.php`
- → `/app/core/DB.php`

### `app/admin-api/_health/migrate_cost_price.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/_health/whoami.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/ai/db_overview.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/ai/rag_search.php`
- → `app/admin-api/_api_boot.php`
- → `../../../ai/mind/core_util_01.php`

### `app/admin-api/ai/review_code.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/ai/search_log.php`
- → `config.php`

### `app/admin-api/ai/stock_shortage.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/ar/diagnose.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/ar/get_list.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/auth/login.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/auth/logout.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/contract/changes_list.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/contract/changes_save.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/controller_loader.php`
- → `app/admin-api/_api_boot.php`
- → `quotation/QuotationController.php`
- → `dashboard/DashboardController.php`
- → `customer/CustomerController.php`
- → `expense/ProjectExpenseController.php`
- → `app/admin-api/supplier/SupplierController.php`
- → `product/ProductController.php`
- → `app/admin-api/user/UserController.php`
- → `app/admin-api/purchase_order/PurchaseOrderController.php`
- → `app/admin-api/worker/WorkerController.php`

### `app/admin-api/core.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/corebot/customer/create.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/corebot/customer/delete.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/corebot/run.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/customer_get_list.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/dev/build_js.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev/inspector_scan.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev/module_save.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev/run_code_scan.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev/runtime_snapshot.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev/scan_core.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev_link_check/_bootstrap.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev_link_check/customer_search.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/dev_link_check/link_customer.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/dev_link_check/_bootstrap.php`

### `app/admin-api/haenam/_haenam_guard.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/haenam/haenam_addressbook_delete.php`
- → `app/admin-api/haenam/_haenam_guard.php`

### `app/admin-api/haenam/haenam_addressbook_import.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_db_reference.php`
- → `app/admin-api/haenam/_haenam_guard.php`

### `app/admin-api/haenam/haenam_entity_db_link.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_entity_delete.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_entity_info.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_entity_merge.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_entity_photo_delete.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_entity_photo_upload.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_fetch.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `/integrations/ai/python/crawlers/haenam_crawl.php`

### `app/admin-api/haenam/haenam_info_space_entities.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `config/db_info_space.php`

### `app/admin-api/haenam/haenam_markers_load.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_markers_save.php`
- → `app/admin-api/haenam/_haenam_guard.php`
- → `core/haenam_entities.php`

### `app/admin-api/haenam/haenam_memo.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/haenam/_haenam_guard.php`

### `app/admin-api/index.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_catalog.php`
- → `app/core/app.php`
- → `app/core/api.php`

### `app/admin-api/invoice/get_list.php`
- → `app/admin-api/_api_boot.php`
- → `income/get_list.php`

### `app/admin-api/log_client_error.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/maintenance/fix_quotation_links.php`
- → `app/admin-api/_api_boot.php`
- → `core/config.php`
- → `core/DB.php`

### `app/admin-api/material/search.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/material/search_by_spec.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/news_feed.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/news_fetch.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/news_search.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/pages/customer_management.php`
- → `app/admin-api/_api_boot.php`
- → `core/bootstrap_paths.php`
- → `sections/customer_management.php`

### `app/admin-api/personal/MemoController.php`
- → `app/admin-api/personal/MemoModel.php`

### `app/admin-api/personal/dict_list.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/personal/dict_manage.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/personal/dict_save.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/personal/memo_inbox.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`
- → `app/admin-api/personal/MemoController.php`

### `app/admin-api/products/ProductController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/products/ProductModel.php`

### `app/admin-api/products/ProductModel.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/products/delete_image.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/delete_product.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_activity_log.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/delete_stock_log.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/get_detail.php`
- → `app/admin-api/_api_boot.php`
- → `app/config/db_config.php`

### `app/admin-api/products/get_images.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/get_list.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/products/get_price_history.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/get_shortage.php`
- → `app/admin-api/_api_boot.php`
- → `../../../config/db_config.php`

### `app/admin-api/products/get_stats.php`
- → `app/admin-api/_api_boot.php`
- → `../../core.php`
- → `../../controller_loader.php`
- → `app/admin-api/utils/response.php`

### `app/admin-api/products/get_stock_logs.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/save_product.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_activity_log.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/set_main_image.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/update_stock.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_activity_log.php`
- → `../../../config/db_config.php`

### `app/admin-api/products/update_stock_log.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/products/upload_image.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/admin-api/purchase_order/PurchaseOrderController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/purchase_order/PurchaseOrderModel.php`

### `app/admin-api/purchase_order/PurchaseOrderModel.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/purchase_order/get_list.php`
- → `app/admin-api/_api_boot.php`
- → `../../config/db.php`

### `app/admin-api/sections/quotation_create.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/supplier/SupplierController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/supplier/SupplierModel.php`

### `app/admin-api/supplier/SupplierModel.php`
- → `app/admin-api/_api_boot.php`
- → `../../../config/db_config.php`

### `app/admin-api/supplier/get_list.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/system/log_client_error.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/system/log_client_error.php`

### `app/admin-api/system/schema_snapshot_get.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/template/get_detail.php`
- → `_api_boot.php`

### `app/admin-api/template/list.php`
- → `_api_boot.php`

### `app/admin-api/template/log_list.php`
- → `_api_boot.php`
- → `app/admin-api/template/_application_log.php`

### `app/admin-api/template/save.php`
- → `_api_boot.php`
- → `app/admin-api/template/_placeholders.php`

### `app/admin-api/user/UserController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/user/UserModel.php`

### `app/admin-api/user/UserModel.php`
- → `app/admin-api/_api_boot.php`
- → `../../../config/db_config.php`

### `app/admin-api/user/get_list.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/user/login.php`
- → `app/admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/admin-api/user/toggle_status.php`
- → `app/admin-api/_api_boot.php`
- → `../../../config/database.php`
- → `../../../config/inc.php`
- → `../../../config/auth.php`

### `app/admin-api/utils/response.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/work_items/reconcile_settled.php`
- → `_api_boot.php`
- → `app/admin-api/work_items/modules/WorkItemService.php`

### `app/admin-api/worker/WorkerController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/worker/WorkerModel.php`

### `app/admin-api/worker/WorkerModel.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/worker/create.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/api.php`

### `app/admin-api/worker/delete.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/api.php`

### `app/admin-api/worker/get_detail.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/api.php`

### `app/admin-api/worker/get_list.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/api.php`

### `app/admin-api/worker/list.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/worker/get_list.php`

### `app/admin-api/worker/update.php`
- → `app/admin-api/_api_boot.php`
- → `app/core/api.php`

### `app/admin-api/worker_attendance/WorkerAttendanceController.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/worker_attendance/WorkerAttendanceModel.php`

### `app/admin-api/worker_attendance/WorkerAttendanceModel.php`
- → `app/admin-api/_api_boot.php`
- → `../../../config/db_config.php`
- → `../expense/ProjectExpenseModel.php`

### `app/admin-api/worker_attendance/get_list.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/worker_attendance/list.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/worker_attendance/get_list.php`

### `app/admin-api/worker_attendance/toggle.php`
- → `app/admin-api/_api_boot.php`

### `app/admin-api/workflow/catalog.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_api_contract.php`

### `app/admin-api/workflow/consultation_register.php`
- → `app/admin-api/_api_boot.php`
- → `app/admin-api/_api_contract.php`
- → `app/admin-api/workflow/modules/ConsultationWorkflowService.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/admin-api/workflow/modules/ConsultationWorkflowService.php`
- → `customer/modules/CustomerService.php`
- → `quotation/modules/QuotationService.php`
- → `work_items/modules/WorkItemService.php`
- → `template/_application_log.php`

### `app/api/news_ingest.php`
- → `app/config/db_info_space.php`

### `app/config/db_connection.php`
- → `app/config/db_config.php`

### `app/core/ApiRouter.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/core/DB.php`
- → `app/core/_boot.php`
- → `app/config/db_config.php`

### `app/core/DashboardOpsSummary.php`
- → `app/core/DB.php`
- → `app/core/Dashboard/ops/SchemaHelper.php`
- → `app/core/Dashboard/ops/MoneyOps.php`
- → `app/core/Dashboard/ops/ProjectOps.php`
- → `app/core/Dashboard/ops/QuotationOps.php`

### `app/core/DashboardService.php`
- → `app/core/config.php`
- → `app/core/DB.php`
- → `app/core/Dashboard/_bootstrap.php`

### `app/core/_boot.php`
- → `app/core/bootstrap_paths.php`
- → `core/auth.php`

### `app/core/admin_core.bundle.php`
- → `app/core/bootstrap_paths.php`

### `app/core/api_boot.php`
- → `app/core/_boot.php`
- → `app/core/response.php`
- → `app/core/config.php`
- → `app/core/DB.php`
- → `app/core/session.php`
- → `app/core/utils.php`
- → `app/core/auth.php`
- → `app/core/helpers.php`

### `app/core/api_prepend.php`
- → `/core/auth.php`
- → `/core/api_boot.php`

### `app/core/app.php`
- → `app/core/_boot.php`

### `app/core/auth.php`
- → `app/core/session.php`

### `app/core/config.php`
- → `app/core/_boot.php`
- → `app/core/response.php`

### `app/core/constants.php`
- → `app/core/bootstrap_paths.php`

### `app/core/haenam_entities.php`
- → `app/core/app_data.php`
- → `app/core/haenam_entity_meta.php`
- → `app/core/haenam_entity_ids.php`
- → `app/core/haenam_entity_paths.php`
- → `app/core/haenam_entity_defaults.php`
- → `app/core/haenam_entity_catalog.php`
- → `app/core/haenam_entity_upsert.php`
- → `app/core/haenam_entity_records.php`
- → `app/core/haenam_entity_photos.php`
- → `app/core/haenam_entity_db_refs.php`
- → `app/core/haenam_entity_references.php`
- → `app/core/haenam_entity_lifecycle.php`

### `app/core/init.php`
- → `app/core/config.php`
- → `app/core/DB.php`
- → `app/core/response.php`
- → `request.php`
- → `validate.php`
- → `app/core/utils.php`
- → `app/core/auth.php`
- → `app/core/logger.php`

### `app/core/layout.php`
- → `app/core/constants.php`

### `app/core/loader.php`
- → `app/core/bootstrap_paths.php`
- → `app/core/constants.php`

### `app/core/logger.php`
- → `app/core/DB.php`

### `app/core/router.php`
- → `app/core/constants.php`
- → `app/core/page_registry.php`

### `app/core/view.php`
- → `app/core/constants.php`

### `app/features/cash/api/get_bykind.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/api/get_detail.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/api/get_expense_items.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/api/get_keyword_summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/api/get_recent_days.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/api/get_summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/cash/ui/cash_stats.bundle.php`
- → `core/bootstrap_paths.php`

### `app/features/cash/ui/cash_stats.php`
- → `core/bootstrap_paths.php`

### `app/features/cash/ui/cash_stats.view.php`
- → `core/bootstrap_paths.php`

### `app/features/cash/ui/cash_stats_detail.php`
- → `core/bootstrap_paths.php`

### `app/features/crop/api/_crop_db_store.php`
- → `core/DB.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/_crop_store.php`
- → `core/bootstrap_paths.php`

### `app/features/crop/api/device_command_poll.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/device_command_update.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/device_config.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/device_ingest.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/photo_command.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/photo_delete.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/photo_ingest.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/photo_upload.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/pump_command.php`
- → `admin-api/_api_boot.php`
- → `config/db_info_space.php`

### `app/features/crop/api/save_crop.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/save_device.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/save_device_log.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`

### `app/features/crop/api/save_log.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/save_settings.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/sensor_data.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_store.php`
- → `config/db_secret.php`

### `app/features/crop/api/sensor_graph_data.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/api/state_data.php`
- → `admin-api/_api_boot.php`
- → `app/features/crop/api/_crop_db_store.php`
- → `app/features/crop/api/_crop_store.php`

### `app/features/crop/ui/_modals.php`
- → `app/features/crop/ui/_modal_crop.php`
- → `app/features/crop/ui/_modal_water.php`
- → `app/features/crop/ui/_modal_cam.php`
- → `app/features/crop/ui/_modal_device.php`
- → `app/features/crop/ui/_modal_device_log.php`

### `app/features/crop/ui/crop_dashboard.php`
- → `api/_crop_store.php`
- → `api/_crop_db_store.php`

### `app/features/customer_management/api/CustomerController.php`
- → `admin-api/_api_boot.php`
- → `app/features/customer_management/api/CustomerModel.php`

### `app/features/customer_management/api/CustomerModel.php`
- → `admin-api/_api_boot.php`

### `app/features/customer_management/api/_customer_bootstrap.php`
- → `admin-api/_api_boot.php`
- → `core/bootstrap_paths.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/features/customer_management/api/customer_photo/get_list.php`
- → `admin-api/_api_boot.php`

### `app/features/customer_management/api/deactivate.php`
- → `app/features/customer_management/api/delete.php`

### `app/features/customer_management/api/delete.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/delete_customer.php`
- → `app/features/customer_management/api/delete.php`

### `app/features/customer_management/api/get_detail.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/get_list.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/get_quotation_history.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/get_work_summary.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/list.php`
- → `app/features/customer_management/api/get_list.php`

### `app/features/customer_management/api/merge.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/modules/CustomerService.php`
- → `app/features/customer_management/api/_upsert_rules.php`
- → `app/features/customer_management/api/modules/CustomerCore.php`

### `app/features/customer_management/api/photo_delete.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/photo_groups.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/photo_list.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/photo_upload.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`
- → `app/features/customer_management/api/photo_groups.php`

### `app/features/customer_management/api/photos_get_list.php`
- → `app/features/customer_management/api/photo_list.php`

### `app/features/customer_management/api/quick_add.php`
- → `app/features/customer_management/api/save.php`

### `app/features/customer_management/api/quick_add_for_j.php`
- → `app/features/customer_management/api/save.php`

### `app/features/customer_management/api/receivables.php`
- → `admin-api/_api_boot.php`

### `app/features/customer_management/api/register.php`
- → `app/features/customer_management/api/save.php`

### `app/features/customer_management/api/save.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`
- → `../_api_contract.php`
- → `app/features/customer_management/api/save_customer.php`

### `app/features/customer_management/api/save_customer.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`
- → `app/features/customer_management/api/modules/CustomerService.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `/app/admin-api/_activity_log.php`

### `app/features/customer_management/api/search.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/set_active.php`
- → `app/features/customer_management/api/_customer_bootstrap.php`

### `app/features/customer_management/api/update_customer.php`
- → `app/features/customer_management/api/save_customer.php`

### `app/features/customer_management/ui/customer_detail.php`
- → `app/core/bootstrap_paths.php`

### `app/features/customer_management/ui/customer_management.php`
- → `app/core/bootstrap_paths.php`

### `app/features/customer_management/ui/customer_register.php`
- → `core/bootstrap_paths.php`

### `app/features/customer_management/ui/receivables.php`
- → `app/core/bootstrap_paths.php`

### `app/features/dashboard/api/DashboardController.php`
- → `admin-api/_api_boot.php`
- → `app/features/dashboard/api/DashboardModel.php`

### `app/features/dashboard/api/DashboardModel.php`
- → `admin-api/_api_boot.php`
- → `app/config/db_config.php`
- → `../quotation/QuotationModel.php`

### `app/features/dashboard/api/get_cashflow.php`
- → `admin-api/_api_boot.php`

### `app/features/dashboard/api/get_recent_kpis.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/get_stats.php`
- → `admin-api/_api_boot.php`

### `app/features/dashboard/api/month_detail.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/month_summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/ops_summary.php`
- → `/admin-api/_api_boot.php`
- → `/core/DashboardOpsSummary.php`

### `app/features/dashboard/api/panels.php`
- → `admin-api/_api_boot.php`

### `app/features/dashboard/api/summary_for_j.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/today_for_j.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/today_summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/dashboard/api/uncollected_detail.php`
- → `admin-api/_api_boot.php`

### `app/features/dashboard/api/week_summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`
- → `/app/core/DashboardService.php`

### `app/features/dashboard/ui/dashboard_boot.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/DashboardService.php`

### `app/features/dashboard/ui/dashboard_evening.php`
- → `app/features/dashboard/ui/_inc/evening_registry.php`

### `app/features/dashboard/ui/dashboard_layout.php`
- → `app/features/dashboard/ui/_inc/layout_registry.php`
- → `app/features/dashboard/ui/_inc/weather.php`
- → `/core/page_registry.php`
- → `/core/DashboardOpsSummary.php`
- → `/admin-api/work_items/modules/WorkItemService.php`

### `app/features/dashboard/ui/dashboard_morning.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/DashboardService.php`
- → `app/features/dashboard/ui/_inc/morning_registry.php`

### `app/features/expense/api/ProjectExpenseController.php`
- → `admin-api/_api_boot.php`
- → `app/features/expense/api/ProjectExpenseModel.php`

### `app/features/expense/api/ProjectExpenseModel.php`
- → `admin-api/_api_boot.php`
- → `app/config/db_config.php`

### `app/features/expense/api/_cols.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/bulk_site_update.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/delete.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/get_list.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/get_summary.php`
- → `admin-api/_api_boot.php`
- → `app/features/expense/api/summary.php`

### `app/features/expense/api/get_summary_v2.php`
- → `admin-api/_api_boot.php`
- → `app/features/expense/api/summary.php`

### `app/features/expense/api/list.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/expense/api/reassign.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/expense/api/save.php`
- → `admin-api/_api_boot.php`
- → `admin-api/_activity_log.php`

### `app/features/expense/api/site_detail.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/site_profit.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/suggest_site.php`
- → `admin-api/_api_boot.php`

### `app/features/expense/api/summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/expense/ui/expense.bundle.php`
- → `core/bootstrap_paths.php`

### `app/features/expense/ui/expense_layout.php`
- → `core/bootstrap_paths.php`
- → `/app/sections/partials/a4_layout.php`

### `app/features/expense/ui/expense_management.php`
- → `core/bootstrap_paths.php`
- → `app/features/expense/ui/expense_layout.php`

### `app/features/income/api/delete.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/income/api/get_list.php`
- → `admin-api/_api_boot.php`
- → `/app/core/api_boot.php`

### `app/features/income/api/get_summary.php`
- → `admin-api/_api_boot.php`
- → `app/features/income/api/summary.php`

### `app/features/income/api/list.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`
- → `/app/core/IncomeService.php`

### `app/features/income/api/save.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `/app/admin-api/_activity_log.php`

### `app/features/income/api/summary.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/income/ui/income.bundle.php`
- → `core/bootstrap_paths.php`

### `app/features/income/ui/income_layout.php`
- → `/app/sections/partials/a4_layout.php`

### `app/features/income/ui/income_management.php`
- → `core/bootstrap_paths.php`
- → `app/features/income/ui/income_layout.php`

### `app/features/project/api/ProjectController.php`
- → `admin-api/_api_boot.php`
- → `app/features/project/api/ProjectModel.php`

### `app/features/project/api/ProjectModel.php`
- → `admin-api/_api_boot.php`

### `app/features/project/api/_project_bootstrap.php`
- → `admin-api/_api_boot.php`
- → `core/bootstrap_paths.php`
- → `app/core/config.php`
- → `app/core/DB.php`
- → `app/core/utils.php`

### `app/features/project/api/add_expense.php`
- → `admin-api/_api_boot.php`
- → `config/db_config.php`

### `app/features/project/api/checklist.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/project/api/checklist/get_list.php`
- → `_project_bootstrap.php`

### `app/features/project/api/checklist/save.php`
- → `_project_bootstrap.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`

### `app/features/project/api/delete.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/get.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/project/api/get_detail.php`
- → `app/features/project/api/_project_bootstrap.php`
- → `app/core/services/ProjectService.php`

### `app/features/project/api/get_expenses.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/get_list.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/get_list_by_customer.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/index.php`
- → `admin-api/_api_boot.php`
- → `app/features/project/api/ProjectModel.php`
- → `app/features/project/api/ProjectController.php`

### `app/features/project/api/logs_delete.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/logs_list.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/logs_save.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/photo_list.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/photo_upload.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/project_new.php`
- → `/app/sections/project_new.php`

### `app/features/project/api/quick_status.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`

### `app/features/project/api/quotation_list.php`
- → `app/features/project/api/_project_bootstrap.php`

### `app/features/project/api/save.php`
- → `app/features/project/api/_project_bootstrap.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `/app/admin-api/template/_application_log.php`
- → `/app/admin-api/_activity_log.php`

### `app/features/project/api/save_project.php`
- → `app/features/project/api/save.php`

### `app/features/project/api/tasks.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/project/ui/project_list.php`
- → `app/core/bootstrap_paths.php`

### `app/features/project/ui/project_management.php`
- → `app/features/project/ui/project_list.php`

### `app/features/project/ui/project_new.php`
- → `app/features/project/ui/project_styles.php`
- → `app/features/project/ui/project_body.php`
- → `app/features/project/ui/project_script.php`

### `app/features/project/ui/project_view.php`
- → `app/core/bootstrap_paths.php`

### `app/features/quotation/api/QuotationController.php`
- → `admin-api/_api_boot.php`
- → `app/features/quotation/api/QuotationModel.php`

### `app/features/quotation/api/QuotationModel.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/_migrate_income_project_id.php`
- → `config/db_config.php`

### `app/features/quotation/api/_project_link.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/_quotation_bootstrap.php`
- → `admin-api/_api_boot.php`
- → `core/bootstrap_paths.php`
- → `app/core/config.php`
- → `app/core/DB.php`

### `app/features/quotation/api/a4_get.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/a4_save.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/backfill_projects.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/quotation/api/convert-to-project.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`

### `app/features/quotation/api/cost_get.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/cost_save.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/create_draft.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/create_quotation.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`
- → `app/features/quotation/api/save_quotation.php`

### `app/features/quotation/api/delete.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/delete_quotation.php`
- → `admin-api/_api_boot.php`
- → `config/db_config.php`

### `app/features/quotation/api/download_excel.php`
- → `admin-api/_api_boot.php`
- → `/app/core/config.php`
- → `/app/core/DB.php`
- → `/vendor/autoload.php`

### `app/features/quotation/api/get_by_customer.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/get_detail.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/get_list.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/get_list_by_customer.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/list.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/list_by_project.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/modules/QuotationService.php`
- → `app/features/quotation/api/modules/QuotationCore.php`

### `app/features/quotation/api/note_list.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/note_save.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/payment_status.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/quotation_create.php`
- → `admin-api/_api_boot.php`
- → `app/features/quotation/api/create_quotation.php`

### `app/features/quotation/api/save_quotation.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`
- → `app/features/quotation/api/modules/QuotationService.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `/app/admin-api/template/_application_log.php`
- → `/app/admin-api/_activity_log.php`
- → `app/features/quotation/api/a4_save.php`

### `app/features/quotation/api/search.php`
- → `app/features/quotation/api/_quotation_bootstrap.php`

### `app/features/quotation/api/update.php`
- → `app/features/quotation/api/save_quotation.php`

### `app/features/quotation/api/work_divisions_get.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/api/work_divisions_save.php`
- → `admin-api/_api_boot.php`

### `app/features/quotation/ui/create_quotation.php`
- → `app/features/quotation/ui/quotation_create.php`

### `app/features/quotation/ui/quotation_create.php`
- → `app/core/bootstrap_paths.php`

### `app/features/quotation/ui/quotation_management.php`
- → `core/bootstrap_paths.php`

### `app/features/quotation/ui/quotation_new.php`
- → `app/features/quotation/ui/quotation_create.php`

### `app/features/schedule/api/bootstrap.php`
- → `admin-api/_api_boot.php`

### `app/features/schedule/api/create.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `app/features/schedule/api/google_sync.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/delete.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `app/features/schedule/api/google_sync.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/feed.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/get_by_date.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/get_day_list.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/get_month_counts.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/google_sync.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/google_sync_all.php`
- → `admin-api/_api_boot.php`
- → `app/features/schedule/api/bootstrap.php`
- → `app/features/schedule/api/google_sync.php`

### `app/features/schedule/api/guard.php`
- → `admin-api/_api_boot.php`

### `app/features/schedule/api/repo.php`
- → `admin-api/_api_boot.php`

### `app/features/schedule/api/response.php`
- → `admin-api/_api_boot.php`

### `app/features/schedule/api/toggle_done.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `app/features/schedule/api/google_sync.php`
- → `app/features/schedule/api/bootstrap.php`

### `app/features/schedule/api/update.php`
- → `admin-api/_api_boot.php`
- → `/app/admin-api/work_items/modules/WorkItemService.php`
- → `app/features/schedule/api/google_sync.php`
- → `app/features/schedule/api/bootstrap.php`
- → `app/features/schedule/api/repo.php`

### `app/features/schedule/ui/index.php`
- → `app/features/schedule/ui/config.php`
- → `styles.php`
- → `app/features/schedule/ui/layout.php`
- → `app/features/schedule/ui/modal.php`

### `app/features/schedule/ui/schedule_list.php`
- → `app/features/schedule/ui/_styles.php`
- → `app/features/schedule/ui/_layout.php`
- → `app/features/schedule/ui/_boot.php`

### `app/includes/footer.php`
- → `app/core/bootstrap_paths.php`

### `app/includes/header.php`
- → `app/core/bootstrap_paths.php`

### `app/includes/sidebar.php`
- → `app/core/bootstrap_paths.php`
- → `app/core/page_registry.php`

### `app/sections/ai/haenam_info.php`
- → `app/core/app_data.php`
- → `app/core/DB.php`
- → `app/core/haenam_entities.php`
- → `config/db_info_space.php`

### `app/sections/core/page.php`
- → `constants.php`
- → `app/sections/core/loader.php`
- → `/partials/header.php`
- → `/partials/sidebar.php`
- → `/partials/footer.php`

### `app/sections/core/router.php`
- → `constants.php`
- → `app/sections/core/loader.php`
- → `/partials/header.php`
- → `/partials/sidebar.php`
- → `/partials/footer.php`

### `app/sections/crop_dashboard.php`
- → `app/features/crop/ui/crop_dashboard.php`

### `app/sections/crop_log.php`
- → `app/features/crop/ui/crop_log.php`

### `app/sections/customer_management.php`
- → `app/features/customer_management/ui/customer_management.php`

### `app/sections/expense_management.php`
- → `app/features/expense/ui/expense_management.php`

### `app/sections/income_management.php`
- → `app/features/income/ui/income_management.php`

### `app/sections/product_management/index.php`
- → `core/bootstrap_paths.php`

### `app/sections/product_management/product_management.bundle.php`
- → `core/bootstrap_paths.php`

### `app/sections/product_management/product_management.php`
- → `app/sections/product_management/product_management_a4.php`
- → `app/sections/product_management/index.php`

### `app/sections/product_management/product_management_a4.php`
- → `app/core/bootstrap_paths.php`
- → `app/sections/partials/a4_layout.php`

### `app/sections/quotation_list/quotation_list.php`
- → `quotation/quotation_management.php`

### `app/sections/schedule_list.php`
- → `app/features/schedule/ui/schedule_list.php`

### `app/sections/workroom/index.php`
- → `/core/auth.php`

### `app/services/customer_manager/api/constructions.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/customer_service.php`

### `app/services/customer_manager/api/customer/create_customer.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/utils.php`

### `app/services/customer_manager/api/customer/update_customer.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/utils.php`

### `app/services/customer_manager/api/customers.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/customer_service.php`

### `app/services/customer_manager/api/dashboard.php`
- → `/core/config.php`
- → `/core/DB.php`
- → `/core/customer_service.php`

### `app/services/customer_manager/api/home.php`
- → `/core/config.php`
- → `/core/DB.php`

### `app/services/customer_manager/core/customer_service.php`
- → `app/services/customer_manager/core/customer_core.php`
- → `app/services/customer_manager/core/construction_core.php`

### `engine.php`
- → `config.php`
- → `engine_modules/analysis.php`
- → `engine_modules/runtime.php`
- → `engine_modules/file_shortcut.php`
- → `engine_modules/pipeline.php`
- → `engine_modules/storage.php`
- → `engine_modules/reasoning_log.php`
- → `engine_modules/agent_gateway.php`

### `engine_modules/Agent.php`
- → `engine_modules/agent/Agent.php`

### `engine_modules/AutoCodeAgent.php`
- → `engine_modules/agent/AutoCodeAgent.php`

### `engine_modules/NaturalLanguageParser.php`
- → `engine_modules/common/NaturalLanguage.php`

### `engine_modules/agent/Agent.php`
- → `response/ResponseComposer.php`
- → `response/ToolResultInspector.php`
- → `response/ToolAnswerBuilder.php`
- → `common/QueryUnderstanding.php`
- → `tools/bootstrap.php`
- → `Memory.php`
- → `system/SystemGate.php`
- → `system/ApprovalPendingStore.php`

### `engine_modules/agent/AutoCodeAgent.php`
- → `tools/bootstrap.php`

### `engine_modules/agent/agent_fetchers.php`
- → `engine_modules/agent/agent_helpers.php`
- → `storage.php`
- → `storage.php`
- → `storage.php`
- → `storage.php`

### `engine_modules/agent/agent_gateway.php`
- → `storage.php`
- → `engine_modules/agent/agent_helpers.php`
- → `engine_modules/agent/agent_parsers.php`
- → `engine_modules/agent/agent_payloads.php`
- → `engine_modules/agent/agent_fetchers.php`
- → `tools/bootstrap.php`
- → `engine_modules/agent/Agent.php`
- → `Memory.php`

### `engine_modules/agent/agent_parsers.php`
- → `engine_modules/agent/agent_helpers.php`

### `engine_modules/agent_fetchers.php`
- → `engine_modules/agent/agent_fetchers.php`

### `engine_modules/agent_gateway.php`
- → `engine_modules/agent/agent_gateway.php`

### `engine_modules/agent_helpers.php`
- → `engine_modules/agent/agent_helpers.php`

### `engine_modules/agent_parsers.php`
- → `engine_modules/agent/agent_parsers.php`

### `engine_modules/agent_payloads.php`
- → `engine_modules/agent/agent_payloads.php`

### `engine_modules/agents/PlanAgent.php`
- → `/agent_helpers.php`
- → `/agent_parsers.php`
- → `/agent_fetchers.php`
- → `storage.php`

### `engine_modules/agents/ScheduleAgent.php`
- → `storage.php`

### `engine_modules/agents/WorklogAgent.php`
- → `storage.php`

### `engine_modules/analysis.php`
- → `engine_modules/core/analysis.php`

### `engine_modules/analysis/answer_parser.php`
- → `engine_modules/analysis/text_utils.php`

### `engine_modules/analysis/keyword_utils.php`
- → `engine_modules/analysis/text_utils.php`

### `engine_modules/analysis/trace_formatter.php`
- → `engine_modules/analysis/text_utils.php`
- → `engine_modules/analysis/label_utils.php`

### `engine_modules/analysis/trace_loader.php`
- → `engine_modules/analysis/text_utils.php`

### `engine_modules/analysis_route.php`
- → `engine_modules/core/analysis_route.php`

### `engine_modules/approvals/QuotationApprovalExecutor.php`
- → `engine_modules/approvals/QuotationApprovalStore.php`
- → `engine_modules/approvals/QuotationApprovalGuard.php`

### `engine_modules/brain/GptBrainStore.php`
- → `engine_modules/brain/GptBrainConfig.php`

### `engine_modules/business_data/BusinessSnapshotBridge.php`
- → `engine_modules/business_data/BusinessDb.php`
- → `engine_modules/business_data/repositories/RepositoryBase.php`
- → `engine_modules/business_data/repositories/CustomerRepository.php`
- → `engine_modules/business_data/repositories/ProjectRepository.php`
- → `engine_modules/business_data/repositories/QuotationRepository.php`
- → `engine_modules/business_data/repositories/IncomeRepository.php`
- → `engine_modules/business_data/repositories/ExpenseRepository.php`
- → `engine_modules/business_data/repositories/HistoryRepository.php`
- → `engine_modules/business_data/read_models/PersonContextSnapshot.php`
- → `engine_modules/business_data/presenters/BusinessAnswerPresenter.php`

### `engine_modules/capabilities/CapabilityExecutor.php`
- → `/volume1/web/gpt/engine_modules/tools/bootstrap.php`

### `engine_modules/capabilities/web_preflight.php`
- → `engine_modules/capabilities/CapabilityTrace.php`
- → `engine_modules/capabilities/CapabilityRouter.php`
- → `engine_modules/capabilities/CapabilityExecutor.php`

### `engine_modules/common/IntentKeywordMatcher.php`
- → `engine_modules/common/NaturalLanguage.php`

### `engine_modules/common/QueryUnderstanding.php`
- → `engine_modules/common/NaturalLanguage.php`

### `engine_modules/core/analysis.php`
- → `analysis/text_utils.php`
- → `analysis/keyword_utils.php`
- → `analysis/answer_parser.php`
- → `analysis/label_utils.php`
- → `analysis/trace_loader.php`
- → `analysis/trace_formatter.php`
- → `analysis/compat_legacy.php`

### `engine_modules/core/engine_core.php`
- → `engine_modules/core/pipeline_v2.php`

### `engine_modules/core/pipeline.php`
- → `engine_modules/core/pipeline_helpers.php`
- → `storage.php`

### `engine_modules/core/pipeline_v2.php`
- → `engine_modules/core/executor.php`
- → `tools/bootstrap.php`
- → `storage.php`
- → `Memory.php`
- → `pipeline/FollowupResolver.php`

### `engine_modules/data_paths.php`
- → `engine_modules/core/data_paths.php`

### `engine_modules/date/DateMeaningLookupService.php`
- → `engine_modules/date/DateFactService.php`
- → `engine_modules/date/DateMeaningAnswerComposer.php`
- → `engine_modules/memory/PendingRecordLookupService.php`

### `engine_modules/domains/project/ProjectDomainBootstrap.php`
- → `engine_modules/domains/project/ProjectRepository.php`
- → `engine_modules/domains/project/ProjectFinder.php`

### `engine_modules/domains/quotation/QuotationDomainBootstrap.php`
- → `engine_modules/domains/quotation/QuotationRepository.php`
- → `engine_modules/domains/quotation/QuotationCreateService.php`

### `engine_modules/engine_core.php`
- → `engine_modules/core/engine_core.php`

### `engine_modules/executor.php`
- → `engine_modules/core/executor.php`

### `engine_modules/expenses/ExpenseQueryParser.php`
- → `engine_modules/common/DateRangeResolver.php`

### `engine_modules/file_shortcut.php`
- → `engine_modules/core/file_shortcut.php`

### `engine_modules/news/NewsFormatter.php`
- → `engine_modules/news/NewsTextCleaner.php`

### `engine_modules/news/NewsQueryParser.php`
- → `common/NaturalLanguage.php`

### `engine_modules/news/NewsRepository.php`
- → `engine_modules/news/NewsConfig.php`
- → `engine_modules/news/NewsTrace.php`

### `engine_modules/parsers/ScheduleCreateParser.php`
- → `engine_modules/parsers/ScheduleRangeParser.php`

### `engine_modules/parsers/ScheduleRangeParser.php`
- → `common/DateRangeResolver.php`

### `engine_modules/pipeline.php`
- → `engine_modules/core/pipeline.php`

### `engine_modules/pipeline/FollowupResolver.php`
- → `common/NaturalLanguage.php`

### `engine_modules/pipeline_helpers.php`
- → `engine_modules/core/pipeline_helpers.php`

### `engine_modules/pipeline_v2.php`
- → `engine_modules/core/pipeline_v2.php`

### `engine_modules/reasoning_log.php`
- → `engine_modules/core/reasoning_log.php`

### `engine_modules/repositories/CustomerRepositoryLegacy.php`
- → `storage_db.php`

### `engine_modules/repositories/PaymentRepository.php`
- → `storage_db.php`
- → `storage_projects.php`

### `engine_modules/repositories/RepositoryBootstrap.php`
- → `storage_utils.php`
- → `storage_db.php`
- → `storage_log.php`
- → `storage_memory.php`
- → `storage_projects.php`
- → `storage_schedule.php`
- → `storage_payments.php`
- → `storage_worklog.php`
- → `storage_stock.php`
- → `storage_schedule_fetch.php`

### `engine_modules/repositories/ScheduleRepository.php`
- → `engine_modules/utils/ScheduleTextClassifier.php`

### `engine_modules/response/ResponseComposer.php`
- → `engine_modules/response/HumanResponseComposer.php`

### `engine_modules/review/ReviewLookupService.php`
- → `engine_modules/review/ReviewQuestionService.php`
- → `engine_modules/review/ReviewEvidencePlanner.php`
- → `engine_modules/review/ReviewEvidenceCollector.php`
- → `engine_modules/review/ReviewDbExportEvidenceCollector.php`
- → `engine_modules/review/ReviewAnswerComposer.php`

### `engine_modules/routing/HistoryRecentListPolicy.php`
- → `common/NaturalLanguage.php`

### `engine_modules/routing/QueryFeatureExtractor.php`
- → `common/NaturalLanguage.php`

### `engine_modules/routing/RouteControlledPolicy.php`
- → `engine_modules/routing/RoutePolicy.php`

### `engine_modules/routing/RouteDecisionComparator.php`
- → `engine_modules/routing/RoutePolicy.php`

### `engine_modules/routing/RoutePolicy.php`
- → `engine_modules/routing/RouteDecision.php`
- → `engine_modules/routing/QueryFeatureExtractor.php`

### `engine_modules/routing/RouterKernel.php`
- → `engine_modules/routing/RouteTrace.php`
- → `engine_modules/routing/IntentRouter.php`
- → `engine_modules/routing/PermissionRouter.php`
- → `engine_modules/routing/OperationRouter.php`
- → `engine_modules/routing/CapabilityRouter.php`
- → `engine_modules/routing/ToolRoutePlanner.php`

### `engine_modules/routing/SafetyHintPolicy.php`
- → `common/NaturalLanguage.php`

### `engine_modules/routing/SafetyPhysicalControlPolicy.php`
- → `common/NaturalLanguage.php`

### `engine_modules/runtime.php`
- → `engine_modules/core/runtime.php`

### `engine_modules/services/PersonalExpenseSaveService.php`
- → `business_data/BusinessDb.php`

### `engine_modules/services/SaveReceiptService.php`
- → `business_data/BusinessDb.php`

### `engine_modules/services/ScheduleCreateService.php`
- → `engine_modules/storage.php`
- → `engine_modules/repositories/ScheduleRepository.php`
- → `engine_modules/parsers/ScheduleCreateParser.php`

### `engine_modules/services/ScheduleReviewService.php`
- → `engine_modules/common/RecordTextClassifier.php`

### `engine_modules/storage.php`
- → `engine_modules/repositories/RepositoryBootstrap.php`

### `engine_modules/storage_customer.php`
- → `engine_modules/repositories/CustomerRepositoryLegacy.php`

### `engine_modules/storage_db.php`
- → `engine_modules/repositories/DbConnection.php`

### `engine_modules/storage_log.php`
- → `engine_modules/repositories/StorageLogRepository.php`

### `engine_modules/storage_payments.php`
- → `engine_modules/repositories/PaymentRepository.php`

### `engine_modules/storage_projects.php`
- → `engine_modules/repositories/ProjectRepositoryLegacy.php`

### `engine_modules/storage_schedule.php`
- → `engine_modules/repositories/ScheduleRepository.php`

### `engine_modules/storage_schedule_fetch.php`
- → `engine_modules/repositories/ScheduleFetchRepository.php`

### `engine_modules/storage_stock.php`
- → `engine_modules/repositories/StockRepository.php`

### `engine_modules/storage_utils.php`
- → `engine_modules/repositories/StorageUtils.php`

### `engine_modules/storage_worklog.php`
- → `engine_modules/repositories/WorklogRepository.php`

### `engine_modules/system/SystemGate.php`
- → `engine_modules/system/SystemContextBuilder.php`
- → `engine_modules/system/IntentRuleEngine.php`

### `engine_modules/system/SystemPromptInjector.php`
- → `engine_modules/system/SystemContextBuilder.php`

### `engine_modules/tools/BusinessDataStructureTool.php`
- → `engine_modules/storage_db.php`

### `engine_modules/tools/BusinessModuleDiagnosticTool.php`
- → `engine_modules/tools/business_modules/BusinessModuleMap.php`

### `engine_modules/tools/ChatTool.php`
- → `engine_modules/system/SystemPromptInjector.php`

### `engine_modules/tools/CodeMapTool.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/CodePatchPlannerTool.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerKeywordExtractor.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerEvidenceCollector.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerPromptBuilder.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerLLMClient.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerAnalysisSanitizer.php`
- → `engine_modules/tools/code_patch_planner/CodePatchPlannerFormatter.php`
- → `engine_modules/tools/DataCatalogTool.php`

### `engine_modules/tools/DataLookupTool.php`
- → `engine_modules/data/DataHub.php`

### `engine_modules/tools/DataSourceMapTool.php`
- → `engine_modules/pipeline/DataSourceMap.php`

### `engine_modules/tools/ExpenseTool.php`
- → `engine_modules/expenses/ExpenseQueryParser.php`
- → `engine_modules/expenses/ExpenseRepository.php`
- → `engine_modules/expenses/ExpenseSummary.php`
- → `engine_modules/expenses/ExpenseFormatter.php`
- → `engine_modules/common/DateRangeResolver.php`

### `engine_modules/tools/HistoryMemoTool.php`
- → `business_data/BusinessDb.php`
- → `storage.php`

### `engine_modules/tools/HistorySearchTool.php`
- → `engine_modules/tools/history/HistorySearchCoreTrait.php`
- → `engine_modules/tools/history/HistorySearchListTrait.php`
- → `engine_modules/tools/history/HistorySearchSummaryTrait.php`
- → `engine_modules/tools/history/HistorySearchValidateTrait.php`

### `engine_modules/tools/NewsReviewTool.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/NewsTool.php`
- → `business_data/BusinessDb.php`
- → `engine_modules/news/NewsConfig.php`
- → `engine_modules/news/NewsRepository.php`
- → `engine_modules/news/NewsFormatter.php`
- → `engine_modules/news/NewsQueryParser.php`
- → `engine_modules/news/NewsTrace.php`

### `engine_modules/tools/PaymentTool.php`
- → `engine_modules/common/RecordTextClassifier.php`
- → `engine_modules/tools/payment/PaymentQueryClassifier.php`
- → `engine_modules/tools/payment/PaymentReportFormatter.php`
- → `engine_modules/common/DateRangeResolver.php`

### `engine_modules/tools/PersonContextTool.php`
- → `business_data/BusinessDb.php`
- → `storage.php`
- → `/volume1/web/gpt/engine_modules/business_data/BusinessSnapshotBridge.php`

### `engine_modules/tools/PersonalExpenseTool.php`
- → `engine_modules/services/PersonalExpenseParseService.php`
- → `engine_modules/services/PersonalExpenseSaveService.php`

### `engine_modules/tools/PlannerTool.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/QuotationTool.php`
- → `engine_modules/common/IntentKeywordMatcher.php`
- → `engine_modules/quotations/QuotationQueryParser.php`
- → `engine_modules/quotations/QuotationRepository.php`
- → `engine_modules/quotations/QuotationFormatter.php`
- → `engine_modules/quotations/QuotationMutationPlanner.php`
- → `engine_modules/approvals/QuotationApprovalStore.php`
- → `engine_modules/approvals/QuotationApprovalGuard.php`
- → `engine_modules/approvals/QuotationApprovalExecutor.php`

### `engine_modules/tools/RecordContextNoteTool.php`
- → `business_data/BusinessDb.php`
- → `storage.php`

### `engine_modules/tools/SalesTool.php`
- → `common/DateRangeResolver.php`
- → `engine_modules/agent_fetchers.php`

### `engine_modules/tools/ScheduleTool.php`
- → `engine_modules/formatters/ScheduleSummaryFormatter.php`
- → `engine_modules/formatters/ScheduleGroupedFormatter.php`
- → `engine_modules/parsers/ScheduleRangeParser.php`
- → `engine_modules/parsers/ScheduleCreateParser.php`
- → `engine_modules/services/ScheduleCreateService.php`
- → `engine_modules/services/ScheduleReviewService.php`
- → `engine_modules/repositories/ScheduleRepository.php`
- → `engine_modules/tools/formatters/ScheduleFormatter.php`

### `engine_modules/tools/StockTool.php`
- → `engine_modules/tools/stock/StockMutationPending.php`
- → `engine_modules/tools/stock/StockPendingFlow.php`
- → `engine_modules/tools/stock/StockMutationRepository.php`
- → `engine_modules/tools/stock/StockPurchaseLog.php`
- → `engine_modules/tools/stock/StockPurchaseLogFlow.php`
- → `engine_modules/tools/stock/StockSearchFlow.php`
- → `engine_modules/tools/stock/StockLegacyUpdateFlow.php`
- → `engine_modules/tools/stock/StockMutationParser.php`
- → `engine_modules/tools/stock/StockMutationFlow.php`
- → `engine_modules/tools/stock/StockRequestContextFactory.php`
- → `engine_modules/tools/stock/StockExecuteContextFlow.php`
- → `engine_modules/tools/formatters/StockFormatter.php`

### `engine_modules/tools/SystemStatusTool.php`
- → `data_paths.php`

### `engine_modules/tools/ToolSelector.php`
- → `engine_modules/common/IntentKeywordMatcher.php`
- → `engine_modules/tools/routing/ToolQueryNormalizer.php`
- → `engine_modules/tools/routing/MultiIntentRule.php`
- → `engine_modules/tools/routing/StockRule.php`
- → `engine_modules/tools/routing/CustomerRoute.php`
- → `engine_modules/tools/routing/CodeRoute.php`
- → `engine_modules/tools/routing/HistoryRoute.php`
- → `engine_modules/tools/routing/WorksiteRoute.php`
- → `engine_modules/tools/routing/ScheduleVisitSafetyBypassRoute.php`
- → `engine_modules/tools/selector_routes/TodayDeepSelectorRoute.php`
- → `engine_modules/tools/selector_routes/SelectorEarlyRoutePipeline.php`

### `engine_modules/tools/TransactionSearchTool.php`
- → `data_paths.php`
- → `engine_modules/common/IntentKeywordMatcher.php`
- → `engine_modules/transactions/TransactionQueryParser.php`
- → `engine_modules/transactions/TransactionRecordReader.php`
- → `engine_modules/transactions/TransactionNormalizer.php`
- → `engine_modules/transactions/TransactionFormatter.php`

### `engine_modules/tools/WorkDoneListTool.php`
- → `business_data/BusinessDb.php`
- → `storage.php`
- → `engine_modules/tools/work_done_list/WorkDoneListRange.php`
- → `engine_modules/tools/work_done_list/WorkDoneListTableInspector.php`
- → `engine_modules/tools/work_done_list/WorkDoneListNormalizer.php`
- → `engine_modules/tools/work_done_list/WorkDoneListClassifier.php`
- → `engine_modules/tools/work_done_list/WorkDoneListCollector.php`
- → `engine_modules/tools/work_done_list/WorkDoneListDedupe.php`
- → `engine_modules/tools/work_done_list/WorkDoneListFormatter.php`

### `engine_modules/tools/WorklogChoiceTool.php`
- → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- → `engine_modules/tools/worklog/WorklogChoiceHandler.php`

### `engine_modules/tools/WorklogTool.php`
- → `engine_modules/tools/worklog/WorklogExistingTodayChecker.php`
- → `engine_modules/tools/worklog/WorklogPendingChoiceService.php`
- → `engine_modules/tools/worklog/WorklogVisitRequestParser.php`
- → `engine_modules/tools/worklog/WorklogAmountExtractor.php`
- → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- → `common/QueryUnderstanding.php`
- → `engine_modules/tools/worklog/WorklogDateRangeParser.php`
- → `engine_modules/tools/worklog/WorklogFormatHelper.php`
- → `engine_modules/tools/worklog/WorklogRecordLoader.php`
- → `engine_modules/tools/worklog/WorklogReadListService.php`
- → `agent/agent_helpers.php`
- → `agent/agent_parsers.php`
- → `agent/agent_payloads.php`
- → `agents/WorklogAgent.php`
- → `agents/PaymentAgent.php`

### `engine_modules/tools/WorksiteWorklogSupport.php`
- → `common/QueryUnderstanding.php`
- → `common/RecordTextClassifier.php`

### `engine_modules/tools/bootstrap.php`
- → `routing/RouteDecision.php`
- → `engine_modules/tools/ToolResult.php`
- → `engine_modules/tools/Tool.php`
- → `engine_modules/tools/ToolRegistry.php`
- → `engine_modules/tools/ToolExecutor.php`
- → `engine_modules/tools/ToolSelector.php`
- → `engine_modules/tools/ToolFeedbackAnalyzer.php`
- → `engine_modules/Agent.php`

### `engine_modules/tools/history/HistorySearchCoreTrait.php`
- → `business_data/BusinessDb.php`

### `engine_modules/tools/history/HistorySearchListTrait.php`
- → `business_data/BusinessDb.php`

### `engine_modules/tools/payment/PaymentReportFormatter.php`
- → `engine_modules/common/RecordTextClassifier.php`

### `engine_modules/tools/routing/CodeRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/CustomerRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/MoneyRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/MultiIntentRule.php`
- → `common/NaturalLanguage.php`
- → `common/Trace.php`
- → `engine_modules/tools/routing/ToolParameterExtractor.php`
- → `engine_modules/tools/routing/ToolPayloadFactory.php`

### `engine_modules/tools/routing/NewsRoute.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/PlannerRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/QuotationRoute.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/RouteGuards.php`
- → `common/NaturalLanguage.php`
- → `common/RecordTextClassifier.php`

### `engine_modules/tools/routing/RoutePipeline.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/ScheduleRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/StockRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/StockRule.php`
- → `common/NaturalLanguage.php`
- → `common/Trace.php`
- → `engine_modules/tools/routing/ToolPayloadFactory.php`

### `engine_modules/tools/routing/ToolParameterExtractor.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/ToolPayloadFactory.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/ToolQueryNormalizer.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/routing/WeatherRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`

### `engine_modules/tools/routing/WorksiteRoute.php`
- → `common/NaturalLanguage.php`
- → `engine_modules/tools/routing/RouteGuards.php`
- → `common/RecordTextClassifier.php`

### `engine_modules/tools/selector_routes/BusinessModuleDiagnosticRoute.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/selector_routes/CapabilityHelpRoute.php`
- → `common/NaturalLanguage.php`

### `engine_modules/tools/selector_routes/SelectorEarlyRoutePipeline.php`
- → `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- → `engine_modules/tools/selector_routes/CapabilityHelpRoute.php`
- → `engine_modules/tools/selector_routes/BusinessModuleDiagnosticRoute.php`
- → `engine_modules/tools/selector_routes/CodeStatsRoute.php`
- → `engine_modules/tools/selector_routes/WorkDoneListRoute.php`
- → `engine_modules/tools/selector_routes/WorklogTodayDoneListRoute.php`
- → `engine_modules/tools/selector_routes/WorklogCreateTakeoverRoute.php`

### `engine_modules/tools/stock/StockExecuteContextFlow.php`
- → `engine_modules/tools/stock/StockRequestContextFactory.php`

### `engine_modules/tools/worklog/WorklogChoiceHandler.php`
- → `business_data/BusinessDb.php`
- → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- → `engine_modules/tools/worklog/WorklogChoiceAppendStore.php`
- → `engine_modules/tools/worklog/WorklogStructureExtractor.php`
- → `engine_modules/tools/worklog/WorklogStructuredMetaStore.php`

### `engine_modules/tools/worklog/WorklogDateRangeParser.php`
- → `common/DateRangeResolver.php`

### `engine_modules/tools/worklog/WorklogReadListService.php`
- → `engine_modules/tools/worklog/WorklogDateRangeParser.php`
- → `engine_modules/tools/worklog/WorklogFormatHelper.php`
- → `engine_modules/tools/worklog/WorklogRecordLoader.php`

### `engine_modules/tools/worklog/WorklogRecordLoader.php`
- → `storage.php`

### `engine_modules/transactions/TransactionFormatter.php`
- → `engine_modules/transactions/TransactionSummary.php`

### `engine_modules/transactions/TransactionQueryParser.php`
- → `engine_modules/common/DateRangeResolver.php`

### `engine_modules/utils/ScheduleTextClassifier.php`
- → `engine_modules/utils/DateCalendarHelper.php`

### `tools/apply_schedule_normalization_backfill.php`
- → `/volume1/web/gpt/engine_modules/storage_db.php`

### `tools/audit_orphan_quotations.php`
- → `engine_modules/storage_db.php`

### `tools/audit_project_quotation_counts.php`
- → `engine_modules/storage_db.php`

### `tools/audit_schedule_db_sources_0427.php`
- → `/engine_modules/bootstrap.php`

### `tools/build_pipeline_data_source_map_report.php`
- → `/volume1/web/gpt/engine_modules/pipeline/DataSourceMap.php`

### `tools/check_anniversary_rows.php`
- → `engine_modules/storage_db.php`

### `tools/check_data_paths.php`
- → `/volume1/web/gpt/engine_modules/data_paths.php`

### `tools/check_gpt_memory_facts_columns.php`
- → `engine_modules/storage_db.php`

### `tools/check_schedule_fetch_category.php`
- → `/volume1/web/gpt/engine_modules/storage.php`
- → `/volume1/web/gpt/engine_modules/repositories/ScheduleFetchRepository.php`

### `tools/check_schedule_sources.php`
- → `/volume1/web/gpt/engine_modules/storage_db.php`

### `tools/check_tables_memo_schedule.php`
- → `engine_modules/storage_db.php`

### `tools/code_tool_fast_matrix_4.php`
- → `/engine_modules/system/SystemGate.php`
- → `/engine_modules/tools/bootstrap.php`
- → `/engine_modules/tools/ToolSelector.php`

### `tools/dryrun_memory_to_calendar.php`
- → `engine_modules/storage_db.php`

### `tools/dryrun_memory_to_calendar_v2.php`
- → `engine_modules/storage_db.php`

### `tools/dryrun_schedule_normalization_backfill.php`
- → `/volume1/web/gpt/engine_modules/storage_db.php`
- → `/volume1/web/gpt/engine_modules/utils/ScheduleTextClassifier.php`

### `tools/ecosystem_health_check.php`
- → `/engine_modules/tools/bootstrap.php`

### `tools/gpt_brain_briefing.php`
- → `engine_modules/brain/GptBrainStore.php`

### `tools/gpt_brain_news_worker.php`
- → `app/config/db_info_space.php`
- → `engine_modules/brain/GptBrainStore.php`

### `tools/gpt_capability_call.php`
- → `/volume1/web/gpt/engine_modules/tools/bootstrap.php`
- → `/volume1/web/gpt/engine_modules/capabilities/CapabilityTrace.php`
- → `/volume1/web/gpt/engine_modules/capabilities/CapabilityRouter.php`
- → `/volume1/web/gpt/engine_modules/capabilities/CapabilityExecutor.php`

### `tools/gpt_datahub_check.php`
- → `/engine_modules/data/DataHub.php`

### `tools/gpt_pipeline_check.php`
- → `/volume1/web/gpt/config.php`
- → `/volume1/web/gpt/engine_modules/tools/bootstrap.php`
- → `/volume1/web/gpt/config.php`
- → `/volume1/web/gpt/engine_modules/response/HumanResponseComposer.php`

### `tools/memory_source_map.php`
- → `/engine_modules/storage_db.php`

### `tools/migrate_schedule_events_normalization_columns.php`
- → `/volume1/web/gpt/engine_modules/storage_db.php`

### `tools/route_policy_map.php`
- → `engine_modules/routing/RoutePolicy.php`

### `tools/router_stress_matrix_100.php`
- → `/engine_modules/system/SystemGate.php`
- → `/engine_modules/tools/bootstrap.php`
- → `/engine_modules/tools/ToolSelector.php`

### `tools/run_memory_to_calendar_insert_v1.php`
- → `engine_modules/storage_db.php`

### `tools/system_log_append.php`
- → `/engine_modules/services/SystemKnowledgeLogService.php`

### `tools/system_safety_matrix_50.php`
- → `/engine_modules/system/SystemGate.php`

### `tools/tool_code_single_case.php`
- → `/engine_modules/system/SystemGate.php`
- → `/engine_modules/tools/bootstrap.php`
- → `/engine_modules/tools/ToolSelector.php`

### `tools/tool_readonly_matrix_40.php`
- → `/engine_modules/system/SystemGate.php`
- → `/engine_modules/tools/bootstrap.php`
- → `/engine_modules/tools/ToolSelector.php`
- → `/engine_modules/tools/ToolExecutor.php`

### `tools/worklog_structured_meta_backfill.php`
- → `engine_modules/storage.php`
- → `engine_modules/tools/worklog/WorklogStructureExtractor.php`
- → `engine_modules/tools/worklog/WorklogStructuredMetaStore.php`

### `tools/worklog_visit_request_dryrun.php`
- → `/ToolResult.php`
- → `/Tool.php`
- → `engine_modules/common/QueryUnderstanding.php`
- → `/WorklogTool.php`

---

## 5. 전체 클래스 선언 위치

- `Agent` → `engine_modules/agent/Agent.php`
- `AmountParser` → `engine_modules/utils/AmountParser.php`
- `ApiRouter` → `app/core/ApiRouter.php`
- `App` → `app/core/app.php`
- `AutoCodeAgent` → `engine_modules/agent/AutoCodeAgent.php`
- `AutoModularizeAnalyzer` → `engine_modules/auto_modularize/AutoModularizeAnalyzer.php`
- `AutoModularizeFormatter` → `engine_modules/auto_modularize/AutoModularizeFormatter.php`
- `AutoModularizePlanner` → `engine_modules/auto_modularize/AutoModularizePlanner.php`
- `AutoModularizeScanner` → `engine_modules/auto_modularize/AutoModularizeScanner.php`
- `AutoModularizeTool` → `engine_modules/tools/AutoModularizeTool.php`
- `AutoScanTool` → `engine_modules/tools/AutoScanTool.php`
- `BusinessAnswerPresenter` → `engine_modules/business_data/presenters/BusinessAnswerPresenter.php`
- `BusinessCustomerRepository` → `engine_modules/business_data/repositories/CustomerRepository.php`
- `BusinessDataDb` → `engine_modules/business_data/BusinessDb.php`
- `BusinessDataStructureTool` → `engine_modules/tools/BusinessDataStructureTool.php`
- `BusinessExpenseRepository` → `engine_modules/business_data/repositories/ExpenseRepository.php`
- `BusinessHistoryRepository` → `engine_modules/business_data/repositories/HistoryRepository.php`
- `BusinessIncomeRepository` → `engine_modules/business_data/repositories/IncomeRepository.php`
- `BusinessModuleDiagnosticRoute` → `engine_modules/tools/selector_routes/BusinessModuleDiagnosticRoute.php`
- `BusinessModuleDiagnosticTool` → `engine_modules/tools/BusinessModuleDiagnosticTool.php`
- `BusinessModuleMap` → `engine_modules/tools/business_modules/BusinessModuleMap.php`
- `BusinessPersonContextSnapshot` → `engine_modules/business_data/read_models/PersonContextSnapshot.php`
- `BusinessProjectRepository` → `engine_modules/business_data/repositories/ProjectRepository.php`
- `BusinessQuotationRepository` → `engine_modules/business_data/repositories/QuotationRepository.php`
- `BusinessRepositoryBase` → `engine_modules/business_data/repositories/RepositoryBase.php`
- `CapabilityHelpRoute` → `engine_modules/tools/selector_routes/CapabilityHelpRoute.php`
- `CapabilityHelpTool` → `engine_modules/tools/CapabilityHelpTool.php`
- `CapabilityRouter` → `engine_modules/routing/CapabilityRouter.php`
- `ChatTool` → `engine_modules/tools/ChatTool.php`
- `ChatWorkflowInterpreter` → `app/admin-api/workflow/modules/ChatWorkflowInterpreter.php`
- `CodeFixTool` → `engine_modules/tools/CodeFixTool.php`
- `CodeMapTool` → `engine_modules/tools/CodeMapTool.php`
- `CodePatchPlannerAnalysisSanitizer` → `engine_modules/tools/code_patch_planner/CodePatchPlannerAnalysisSanitizer.php`
- `CodePatchPlannerEvidenceCollector` → `engine_modules/tools/code_patch_planner/CodePatchPlannerEvidenceCollector.php`
- `CodePatchPlannerFormatter` → `engine_modules/tools/code_patch_planner/CodePatchPlannerFormatter.php`
- `CodePatchPlannerKeywordExtractor` → `engine_modules/tools/code_patch_planner/CodePatchPlannerKeywordExtractor.php`
- `CodePatchPlannerLLMClient` → `engine_modules/tools/code_patch_planner/CodePatchPlannerLLMClient.php`
- `CodePatchPlannerPromptBuilder` → `engine_modules/tools/code_patch_planner/CodePatchPlannerPromptBuilder.php`
- `CodePatchPlannerTool` → `engine_modules/tools/CodePatchPlannerTool.php`
- `CodeRoute` → `engine_modules/tools/routing/CodeRoute.php`
- `CodeSearchTool` → `engine_modules/tools/CodeSearchTool.php`
- `CodeStatsRoute` → `engine_modules/tools/selector_routes/CodeStatsRoute.php`
- `CodeStatsTool` → `engine_modules/tools/CodeStatsTool.php`
- `ConsultationWorkflowService` → `app/admin-api/workflow/modules/ConsultationWorkflowService.php`
- `CustomerController` → `app/features/customer_management/api/CustomerController.php`
- `CustomerCore` → `app/features/customer_management/api/modules/CustomerCore.php`
- `CustomerDeletedHintService` → `engine_modules/tools/customer/CustomerDeletedHintService.php`
- `CustomerManager` → `app/services/customer_manager/php/Customer_Manager.php`
- `CustomerModel` → `app/features/customer_management/api/CustomerModel.php`
- `CustomerRecommendation` → `app/services/customer_manager/php/Customer_Recommendation.php`
- `CustomerRoute` → `engine_modules/tools/routing/CustomerRoute.php`
- `CustomerService` → `app/features/customer_management/api/modules/CustomerService.php`
- `CustomerTool` → `engine_modules/tools/CustomerTool.php`
- `DB` → `app/core/DB.php`
- `DashContext` → `app/core/Dashboard/DashContext.php`
- `DashCustomerMetrics` → `app/core/Dashboard/CustomerMetrics.php`
- `DashExpenseMetrics` → `app/core/Dashboard/ExpenseMetrics.php`
- `DashProjectMetrics` → `app/core/Dashboard/ProjectMetrics.php`
- `DashProjects` → `app/core/Dashboard/DashProjects.php`
- `DashQuotationMetrics` → `app/core/Dashboard/QuotationMetrics.php`
- `DashSchema` → `app/core/Dashboard/DashSchema.php`
- `DashUtil` → `app/core/Dashboard/DashUtil.php`
- `DashboardComposer` → `app/core/Dashboard/DashboardComposer.php`
- `DashboardController` → `app/features/dashboard/api/DashboardController.php`
- `DashboardEnv` → `app/core/Dashboard/DashboardEnv.php`
- `DashboardInvoker` → `app/core/Dashboard/DashboardInvoker.php`
- `DashboardModel` → `app/features/dashboard/api/DashboardModel.php`
- `DashboardModules` → `app/core/Dashboard/DashboardModules.php`
- `DashboardOpsSummary` → `app/core/DashboardOpsSummary.php`
- `DashboardService` → `app/core/DashboardService.php`
- `DataCatalogTool` → `engine_modules/tools/DataCatalogTool.php`
- `DataLookupTool` → `engine_modules/tools/DataLookupTool.php`
- `DataSourceMapTool` → `engine_modules/tools/DataSourceMapTool.php`
- `DatabaseService` → `app/services/customer_manager/php/Database_Service.php`
- `DateFactService` → `engine_modules/date/DateFactService.php`
- `DateMeaningAnswerComposer` → `engine_modules/date/DateMeaningAnswerComposer.php`
- `DateMeaningLookupService` → `engine_modules/date/DateMeaningLookupService.php`
- `DateRangeResolver` → `engine_modules/common/DateRangeResolver.php`
- `EmailService` → `app/services/customer_manager/php/Email_Service.php`
- `ErrorService` → `app/services/customer_manager/php/Error_Service.php`
- `ExpenseFormatter` → `engine_modules/expenses/ExpenseFormatter.php`
- `ExpenseQueryParser` → `engine_modules/expenses/ExpenseQueryParser.php`
- `ExpenseRepository` → `engine_modules/expenses/ExpenseRepository.php`
- `ExpenseSummary` → `engine_modules/expenses/ExpenseSummary.php`
- `ExpenseTool` → `engine_modules/tools/ExpenseTool.php`
- `FlowDiagnosticTool` → `engine_modules/tools/FlowDiagnosticTool.php`
- `GptApprovalPendingStore` → `engine_modules/system/ApprovalPendingStore.php`
- `GptBrainBriefing` → `tools/gpt_brain_briefing.php`
- `GptBrainConfig` → `engine_modules/brain/GptBrainConfig.php`
- `GptBrainNewsWorker` → `tools/gpt_brain_news_worker.php`
- `GptBrainStore` → `engine_modules/brain/GptBrainStore.php`
- `GptCapabilityExecutor` → `engine_modules/capabilities/CapabilityExecutor.php`
- `GptCapabilityRouter` → `engine_modules/capabilities/CapabilityRouter.php`
- `GptCapabilityTrace` → `engine_modules/capabilities/CapabilityTrace.php`
- `GptHumanResponseComposer` → `engine_modules/response/HumanResponseComposer.php`
- `GptIntentRuleEngine` → `engine_modules/system/IntentRuleEngine.php`
- `GptQuotationCreateService` → `engine_modules/domains/quotation/QuotationCreateService.php`
- `GptQuotationRepository` → `engine_modules/domains/quotation/QuotationRepository.php`
- `GptResponseComposer` → `engine_modules/response/ResponseComposer.php`
- `GptSystemContextBuilder` → `engine_modules/system/SystemContextBuilder.php`
- `GptSystemGate` → `engine_modules/system/SystemGate.php`
- `GptSystemPromptInjector` → `engine_modules/system/SystemPromptInjector.php`
- `GptToolAnswerBuilder` → `engine_modules/response/ToolAnswerBuilder.php`
- `GptToolResultInspector` → `engine_modules/response/ToolResultInspector.php`
- `HistoryMemoTool` → `engine_modules/tools/HistoryMemoTool.php`
- `HistoryRecentListPolicy` → `engine_modules/routing/HistoryRecentListPolicy.php`
- `HistoryRoute` → `engine_modules/tools/routing/HistoryRoute.php`
- `HistorySearchCoreTrait` → `engine_modules/tools/history/HistorySearchCoreTrait.php`
- `HistorySearchListTrait` → `engine_modules/tools/history/HistorySearchListTrait.php`
- `HistorySearchSummaryTrait` → `engine_modules/tools/history/HistorySearchSummaryTrait.php`
- `HistorySearchTool` → `engine_modules/tools/HistorySearchTool.php`
- `HistorySearchValidateTrait` → `engine_modules/tools/history/HistorySearchValidateTrait.php`
- `IntentKeywordMatcher` → `engine_modules/common/IntentKeywordMatcher.php`
- `IntentRouter` → `engine_modules/routing/IntentRouter.php`
- `MdScopeHelper` → `engine_modules/system/MdScopeHelper.php`
- `MemoController` → `app/admin-api/personal/MemoController.php`
- `MemoModel` → `app/admin-api/personal/MemoModel.php`
- `Memory` → `engine_modules/Memory.php`
- `MemoryAgent` → `engine_modules/agents/MemoryAgent.php`
- `MemoryTool` → `engine_modules/tools/MemoryTool.php`
- `MoneyOps` → `app/core/Dashboard/ops/MoneyOps.php`
- `MoneyRoute` → `engine_modules/tools/routing/MoneyRoute.php`
- `MultiIntentRule` → `engine_modules/tools/routing/MultiIntentRule.php`
- `NaturalLanguage` → `engine_modules/common/NaturalLanguage.php`
- `NaturalLanguageParser` → `engine_modules/NaturalLanguageParser.php`
- `NewsConfig` → `engine_modules/news/NewsConfig.php`
- `NewsFormatter` → `engine_modules/news/NewsFormatter.php`
- `NewsQueryParser` → `engine_modules/news/NewsQueryParser.php`
- `NewsRepository` → `engine_modules/news/NewsRepository.php`
- `NewsReviewTool` → `engine_modules/tools/NewsReviewTool.php`
- `NewsRoute` → `engine_modules/tools/routing/NewsRoute.php`
- `NewsTextCleaner` → `engine_modules/news/NewsTextCleaner.php`
- `NewsTool` → `engine_modules/tools/NewsTool.php`
- `NewsTrace` → `engine_modules/news/NewsTrace.php`
- `OperationRouter` → `engine_modules/routing/OperationRouter.php`
- `PaymentAgent` → `engine_modules/agents/PaymentAgent.php`
- `PaymentQueryClassifier` → `engine_modules/tools/payment/PaymentQueryClassifier.php`
- `PaymentReportFormatter` → `engine_modules/tools/payment/PaymentReportFormatter.php`
- `PaymentTool` → `engine_modules/tools/PaymentTool.php`
- `PendingRecordLookupService` → `engine_modules/memory/PendingRecordLookupService.php`
- `PermissionRouter` → `engine_modules/routing/PermissionRouter.php`
- `PersonContextTool` → `engine_modules/tools/PersonContextTool.php`
- `PersonalExpenseParseService` → `engine_modules/services/PersonalExpenseParseService.php`
- `PersonalExpenseSaveService` → `engine_modules/services/PersonalExpenseSaveService.php`
- `PersonalExpenseTool` → `engine_modules/tools/PersonalExpenseTool.php`
- `PipelineFollowupResolver` → `engine_modules/pipeline/FollowupResolver.php`
- `PlanAgent` → `engine_modules/agents/PlanAgent.php`
- `PlannerHintAdapter` → `engine_modules/routing/PlannerHintAdapter.php`
- `PlannerHintContextResolver` → `engine_modules/routing/PlannerHintContextResolver.php`
- `PlannerRoute` → `engine_modules/tools/routing/PlannerRoute.php`
- `PlannerTool` → `engine_modules/tools/PlannerTool.php`
- `ProductController` → `app/admin-api/products/ProductController.php`
- `ProductModel` → `app/admin-api/products/ProductModel.php`
- `ProjectController` → `app/features/project/api/ProjectController.php`
- `ProjectExpenseController` → `app/features/expense/api/ProjectExpenseController.php`
- `ProjectExpenseModel` → `app/features/expense/api/ProjectExpenseModel.php`
- `ProjectFinder` → `engine_modules/domains/project/ProjectFinder.php`
- `ProjectModel` → `app/features/project/api/ProjectModel.php`
- `ProjectOps` → `app/core/Dashboard/ops/ProjectOps.php`
- `ProjectRepository` → `engine_modules/domains/project/ProjectRepository.php`
- `ProjectService` → `app/core/services/ProjectService.php`
- `PurchaseOrderController` → `app/admin-api/purchase_order/PurchaseOrderController.php`
- `PurchaseOrderModel` → `app/admin-api/purchase_order/PurchaseOrderModel.php`
- `QueryFeatureExtractor` → `engine_modules/routing/QueryFeatureExtractor.php`
- `QueryUnderstanding` → `engine_modules/common/QueryUnderstanding.php`
- `QuotationApprovalExecutor` → `engine_modules/approvals/QuotationApprovalExecutor.php`
- `QuotationApprovalGuard` → `engine_modules/approvals/QuotationApprovalGuard.php`
- `QuotationApprovalStore` → `engine_modules/approvals/QuotationApprovalStore.php`
- `QuotationController` → `app/features/quotation/api/QuotationController.php`
- `QuotationCore` → `app/features/quotation/api/modules/QuotationCore.php`
- `QuotationFormatter` → `engine_modules/quotations/QuotationFormatter.php`
- `QuotationModel` → `app/features/quotation/api/QuotationModel.php`
- `QuotationMutationPlanner` → `engine_modules/quotations/QuotationMutationPlanner.php`
- `QuotationOps` → `app/core/Dashboard/ops/QuotationOps.php`
- `QuotationQueryParser` → `engine_modules/quotations/QuotationQueryParser.php`
- `QuotationQuickCreateSupport` → `engine_modules/tools/QuotationQuickCreateSupport.php`
- `QuotationRepository` → `engine_modules/quotations/QuotationRepository.php`
- `QuotationRoute` → `engine_modules/tools/routing/QuotationRoute.php`
- `QuotationService` → `app/features/quotation/api/modules/QuotationService.php`
- `QuotationTool` → `engine_modules/tools/QuotationTool.php`
- `RecordContextNoteTool` → `engine_modules/tools/RecordContextNoteTool.php`
- `RecordTextClassifier` → `engine_modules/common/RecordTextClassifier.php`
- `ReviewAnswerComposer` → `engine_modules/review/ReviewAnswerComposer.php`
- `ReviewDbExportEvidenceCollector` → `engine_modules/review/ReviewDbExportEvidenceCollector.php`
- `ReviewEvidenceCollector` → `engine_modules/review/ReviewEvidenceCollector.php`
- `ReviewEvidencePlanner` → `engine_modules/review/ReviewEvidencePlanner.php`
- `ReviewLookupService` → `engine_modules/review/ReviewLookupService.php`
- `ReviewQuestionService` → `engine_modules/review/ReviewQuestionService.php`
- `RouteControlledPolicy` → `engine_modules/routing/RouteControlledPolicy.php`
- `RouteDecision` → `engine_modules/routing/RouteDecision.php`
- `RouteDecisionComparator` → `engine_modules/routing/RouteDecisionComparator.php`
- `RouteGuards` → `engine_modules/tools/routing/RouteGuards.php`
- `RoutePipeline` → `engine_modules/tools/routing/RoutePipeline.php`
- `RoutePolicy` → `engine_modules/routing/RoutePolicy.php`
- `RouteSanityChecker` → `engine_modules/routing/RouteSanityChecker.php`
- `RouteTrace` → `engine_modules/routing/RouteTrace.php`
- `RouterKernel` → `engine_modules/routing/RouterKernel.php`
- `SafetyBlockTool` → `engine_modules/tools/SafetyBlockTool.php`
- `SafetyHintPolicy` → `engine_modules/routing/SafetyHintPolicy.php`
- `SafetyPhysicalControlPolicy` → `engine_modules/routing/SafetyPhysicalControlPolicy.php`
- `SalesTool` → `engine_modules/tools/SalesTool.php`
- `SaveReceiptService` → `engine_modules/services/SaveReceiptService.php`
- `SaveReceiptTool` → `engine_modules/tools/SaveReceiptTool.php`
- `ScheduleAgent` → `engine_modules/agents/ScheduleAgent.php`
- `ScheduleCreateParser` → `engine_modules/parsers/ScheduleCreateParser.php`
- `ScheduleCreateService` → `engine_modules/services/ScheduleCreateService.php`
- `ScheduleFormatter` → `engine_modules/tools/formatters/ScheduleFormatter.php`
- `ScheduleGroupedFormatter` → `engine_modules/formatters/ScheduleGroupedFormatter.php`
- `ScheduleOverlayPolicy` → `engine_modules/routing/ScheduleOverlayPolicy.php`
- `ScheduleRangeParser` → `engine_modules/parsers/ScheduleRangeParser.php`
- `ScheduleReviewService` → `engine_modules/services/ScheduleReviewService.php`
- `ScheduleRoute` → `engine_modules/tools/routing/ScheduleRoute.php`
- `ScheduleSummaryFormatter` → `engine_modules/formatters/ScheduleSummaryFormatter.php`
- `ScheduleTool` → `engine_modules/tools/ScheduleTool.php`
- `ScheduleVisitSafetyBypassRoute` → `engine_modules/tools/routing/ScheduleVisitSafetyBypassRoute.php`
- `SchemaHelper` → `app/core/Dashboard/ops/SchemaHelper.php`
- `SelectorEarlyRoutePipeline` → `engine_modules/tools/selector_routes/SelectorEarlyRoutePipeline.php`
- `SelectorRouteResult` → `engine_modules/tools/selector_routes/SelectorRouteResult.php`
- `StockExecuteContextFlow` → `engine_modules/tools/stock/StockExecuteContextFlow.php`
- `StockFormatter` → `engine_modules/tools/formatters/StockFormatter.php`
- `StockLegacyUpdateFlow` → `engine_modules/tools/stock/StockLegacyUpdateFlow.php`
- `StockMutationFlow` → `engine_modules/tools/stock/StockMutationFlow.php`
- `StockMutationParser` → `engine_modules/tools/stock/StockMutationParser.php`
- `StockMutationPending` → `engine_modules/tools/stock/StockMutationPending.php`
- `StockMutationRepository` → `engine_modules/tools/stock/StockMutationRepository.php`
- `StockPendingFlow` → `engine_modules/tools/stock/StockPendingFlow.php`
- `StockPurchaseLog` → `engine_modules/tools/stock/StockPurchaseLog.php`
- `StockPurchaseLogFlow` → `engine_modules/tools/stock/StockPurchaseLogFlow.php`
- `StockRequestContextFactory` → `engine_modules/tools/stock/StockRequestContextFactory.php`
- `StockRoute` → `engine_modules/tools/routing/StockRoute.php`
- `StockRule` → `engine_modules/tools/routing/StockRule.php`
- `StockSearchFlow` → `engine_modules/tools/stock/StockSearchFlow.php`
- `StockTool` → `engine_modules/tools/StockTool.php`
- `SupplierController` → `app/admin-api/supplier/SupplierController.php`
- `SupplierModel` → `app/admin-api/supplier/SupplierModel.php`
- `SynologyFileReadTool` → `engine_modules/tools/SynologyFileReadTool.php`
- `SynologySearchTool` → `engine_modules/tools/SynologySearchTool.php`
- `SystemKnowledgeLogService` → `engine_modules/services/SystemKnowledgeLogService.php`
- `SystemRunEventLogger` → `engine_modules/system/SystemRunEventLogger.php`
- `SystemStatusTool` → `engine_modules/tools/SystemStatusTool.php`
- `TodayDeepSelectorRoute` → `engine_modules/tools/selector_routes/TodayDeepSelectorRoute.php`
- `Tool` → `engine_modules/tools/Tool.php`
- `ToolExecutor` → `engine_modules/tools/ToolExecutor.php`
- `ToolFeedbackAnalyzer` → `engine_modules/tools/ToolFeedbackAnalyzer.php`
- `ToolParameterExtractor` → `engine_modules/tools/routing/ToolParameterExtractor.php`
- `ToolPayloadFactory` → `engine_modules/tools/routing/ToolPayloadFactory.php`
- `ToolQueryNormalizer` → `engine_modules/tools/routing/ToolQueryNormalizer.php`
- `ToolRegistry` → `engine_modules/tools/ToolRegistry.php`
- `ToolResult` → `engine_modules/tools/ToolResult.php`
- `ToolRoutePlanner` → `engine_modules/routing/ToolRoutePlanner.php`
- `ToolSelector` → `engine_modules/tools/ToolSelector.php`
- `Trace` → `engine_modules/common/Trace.php`
- `TransactionFormatter` → `engine_modules/transactions/TransactionFormatter.php`
- `TransactionNormalizer` → `engine_modules/transactions/TransactionNormalizer.php`
- `TransactionQueryParser` → `engine_modules/transactions/TransactionQueryParser.php`
- `TransactionRecordReader` → `engine_modules/transactions/TransactionRecordReader.php`
- `TransactionSearchTool` → `engine_modules/tools/TransactionSearchTool.php`
- `TransactionSummary` → `engine_modules/transactions/TransactionSummary.php`
- `UserController` → `app/admin-api/user/UserController.php`
- `UserModel` → `app/admin-api/user/UserModel.php`
- `WeatherRoute` → `engine_modules/tools/routing/WeatherRoute.php`
- `WeatherTool` → `engine_modules/tools/WeatherTool.php`
- `WorkDoneListClassifier` → `engine_modules/tools/work_done_list/WorkDoneListClassifier.php`
- `WorkDoneListCollector` → `engine_modules/tools/work_done_list/WorkDoneListCollector.php`
- `WorkDoneListDedupe` → `engine_modules/tools/work_done_list/WorkDoneListDedupe.php`
- `WorkDoneListFormatter` → `engine_modules/tools/work_done_list/WorkDoneListFormatter.php`
- `WorkDoneListNormalizer` → `engine_modules/tools/work_done_list/WorkDoneListNormalizer.php`
- `WorkDoneListRange` → `engine_modules/tools/work_done_list/WorkDoneListRange.php`
- `WorkDoneListRoute` → `engine_modules/tools/selector_routes/WorkDoneListRoute.php`
- `WorkDoneListTableInspector` → `engine_modules/tools/work_done_list/WorkDoneListTableInspector.php`
- `WorkDoneListTool` → `engine_modules/tools/WorkDoneListTool.php`
- `WorkItemService` → `app/admin-api/work_items/modules/WorkItemService.php`
- `WorkerAttendanceController` → `app/admin-api/worker_attendance/WorkerAttendanceController.php`
- `WorkerAttendanceModel` → `app/admin-api/worker_attendance/WorkerAttendanceModel.php`
- `WorkerController` → `app/admin-api/worker/WorkerController.php`
- `WorkerModel` → `app/admin-api/worker/WorkerModel.php`
- `WorklogAgent` → `engine_modules/agents/WorklogAgent.php`
- `WorklogAmountExtractor` → `engine_modules/tools/worklog/WorklogAmountExtractor.php`
- `WorklogChoiceAppendStore` → `engine_modules/tools/worklog/WorklogChoiceAppendStore.php`
- `WorklogChoiceHandler` → `engine_modules/tools/worklog/WorklogChoiceHandler.php`
- `WorklogChoicePendingStore` → `engine_modules/tools/worklog/WorklogChoicePendingStore.php`
- `WorklogChoiceTool` → `engine_modules/tools/WorklogChoiceTool.php`
- `WorklogCreateTakeoverRoute` → `engine_modules/tools/selector_routes/WorklogCreateTakeoverRoute.php`
- `WorklogDateRangeParser` → `engine_modules/tools/worklog/WorklogDateRangeParser.php`
- `WorklogExistingTodayChecker` → `engine_modules/tools/worklog/WorklogExistingTodayChecker.php`
- `WorklogFormatHelper` → `engine_modules/tools/worklog/WorklogFormatHelper.php`
- `WorklogPendingChoiceService` → `engine_modules/tools/worklog/WorklogPendingChoiceService.php`
- `WorklogReadListService` → `engine_modules/tools/worklog/WorklogReadListService.php`
- `WorklogRecordLoader` → `engine_modules/tools/worklog/WorklogRecordLoader.php`
- `WorklogStructureExtractor` → `engine_modules/tools/worklog/WorklogStructureExtractor.php`
- `WorklogStructuredMetaStore` → `engine_modules/tools/worklog/WorklogStructuredMetaStore.php`
- `WorklogTodayDoneListRoute` → `engine_modules/tools/selector_routes/WorklogTodayDoneListRoute.php`
- `WorklogTool` → `engine_modules/tools/WorklogTool.php`
- `WorklogVisitRequestParser` → `engine_modules/tools/worklog/WorklogVisitRequestParser.php`
- `WorksiteDetailSupport` → `engine_modules/tools/WorksiteDetailSupport.php`
- `WorksiteListSupport` → `engine_modules/tools/WorksiteListSupport.php`
- `WorksiteRoute` → `engine_modules/tools/routing/WorksiteRoute.php`
- `WorksiteTool` → `engine_modules/tools/WorksiteTool.php`
- `WorksiteWorklogSupport` → `engine_modules/tools/WorksiteWorklogSupport.php`

---

## 6. 중복 클래스명 주의

### `ApiRouter`
- L10: `app/core/ApiRouter.php`
- L20: `app/core/api.php`


---

## 7. 위험 판정

- `api.php`: 진입점이라 문법/흐름 오류가 전체 UI/API를 죽일 수 있음.
- `Agent.php`: 승인/도구 실행/fast path가 몰려 있어 변경 전후 trace 검증 필수.
- `ToolSelector.php`: 라우팅 규칙 누적 파일. 새 rule은 가능하면 `routing/*.php`로 분리해야 함.
- `web_preflight.php`: Agent 우회 경로라 공통 상태 누락 위험 있음.
- `CustomerTool.php`: 검색/삭제/점검/메시지 포맷이 한 파일에 있어 분리 우선순위 높음.

---

## 8. 다음 문서화 순서

1. `MODULE_FUNCTION_GROUPS.md`: 함수들을 승인/라우팅/고객/세션/UI/기록으로 묶기
2. `REFACTOR_ROADMAP.md`: 실제 분리 순서표 만들기
3. `tools/build_module_docs.php`: 문서 자동 갱신 스크립트 만들기