# 这次是直接按“职责归位”拆出来的代码版本

## workshop_orchestrator_v2 保留
- workshop_orchestrator_v2_node.*
- plan_builder.*
- precheck_runner.*
- report_builder.*
- types.hpp
- external_localization_client.*

## 从 orchestrator 里迁出的含义
- external_localization_gateway.* 不再保留在 orchestrator
- external 真值校核专项执行骨架，改放 external_localization_service/external_reference_executor.*

## 你接下来本地替换时建议这样做
1. 删除 orchestrator 包中的 external_localization_gateway.hpp/.cpp
2. 删除 orchestrator 包中的 task_inputs.hpp 及其引用
3. 用这次目录里的 workshop_orchestrator_v2/workshop_orchestrator_v2_node.* 覆盖你的当前版本
4. 新增 workshop_orchestrator_v2/external_localization_client.*
5. 在 external_localization_service 中新增 external_reference_executor.*

## 这次仍然是“职责拆分版”，不是最终可编译联调版
- orchestrator 侧已经从“gateway/专项逻辑”收缩成“薄 client”
- external 侧则有了对应目录下的专项任务执行骨架
- 后续还要把 chassis / control / sensor 按同样原则继续归位
