Files
ParkingRobot/docs/superpowers/handoffs/em-full-direction-visualization/phase-01.md
T

7.1 KiB
Raw Blame History

EM 完整方向段规划与可视化修复:阶段 01 交接

状态

阻塞。

执行环境与入口

  • 执行时间:2026-08-06T19:59:49.4938469+08:00Windows / PowerShell.NET 10.0.302 SDK)。
  • 仓库:D:\Users\Desktop\项目\prakrobot\ParkingRobot
  • 入口分支:trajplanner
  • 入口 HEAD57ea36b8595c621783aba844e18d9969bccea378docs: plan staged EM full-direction execution)。
  • 暂存区入口时为空,且在本交接创建前仍为空。

前置祖先核验

以下提交均以 git merge-base --is-ancestor <commit> HEAD 返回退出码 0

  • c354f113060a5f95aa3b06c6f2b0be2d0c7d5da1docs: design full-direction EM trajectory visualization repair
  • dff223c33a439d545537c803cb3531a673c7f2a3docs: plan full-direction EM visualization repair
  • 46d5f9762d3d9972daea918c9fb43562ce25ce3bdocs: design staged EM full-direction execution
  • 57ea36b8595c621783aba844e18d9969bccea378docs: plan staged EM full-direction execution

读取与范围

已读取执行、TDD 与完成前验证技能;首次遇到 DLL 文件锁和编译异常后也完整读取并使用系统化调试技能。已读取功能设计第 1–6、9–12 节、总计划 Task 1–2、阶段执行设计第 2–11 节及阶段执行计划的全局约束/公共协议/Phase 01。

本窗口没有实现或提交 Task 1、Task 2。没有实现阶段 02 的自适应 knot/T_end,也没有修改静止起步、MovementTest、Web 或 Painter。

TDD RED 证据

先在 FoundationChecks.cs 添加了 Task 1 所需的 scope、配置、复制、校验、状态和 rolling/full 兼容性测试,再运行:

dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- foundation
dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- em-planning-service

首次输出包含预期的 CS0246/CS0103EmPlanningScope 不存在;同时包含一次非预期的 TrajectoryPlanningVisualization.dll 写入锁(CS2012)。按系统化调试协议,随后单独重跑 foundation;文件锁未复现,预期的缺少 EmPlanningScope 编译错误稳定复现。因此 DLL 锁判定为瞬时外部构建竞争,不能作为本阶段 RED 或阻塞原因。

在仅应用 Task 1 契约/配置/验证的最小实现后,运行:

dotnet run --project ClumsyPilot/tests/EMPlannerVerificationHost/EMPlannerVerificationHost.csproj -- foundation

退出码为 1。除本次试探性实现中缺少 System.Math 引用外,首个有效范围阻塞是:

ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/TrajectoryObservationPipeline.cs(255,27):
CS7036: EmPlanningRequest(..., EmPlanningScope) 缺少必需 planningScope 参数

ClumsyPilot/ParkrobTrajplanner/EMPlanner/Facade/EmPlanningService.cs(104,32):
CS7036: EmTrajectoryMetadata(..., EmPlanningScope) 缺少必需 planningScope 参数

阻塞原因与已排除项

总计划 Task 1 明确要求 EmPlanningRequestEmTrajectoryMetadata 增加必填 EmPlanningScope 构造参数、更新每一个构造调用,并禁止使用隐式默认值。仓库检索还发现未传播的调用位于:

  • ClumsyPilot/ParkrobTrajplanner/tarjplanner_movementtest/TrajectoryObservationPipeline.cs(生产调用;阶段 04 文件,明确不属于阶段 01 允许范围)。
  • ClumsyPilot/tests/EMPlannerVerificationHost/CoordinatorChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/ExecutorChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationSegmentChecks.cs
  • ClumsyPilot/tests/EMPlannerVerificationHost/TrajectoryObservationVisualizationChecks.cs

EmPlanningService.cs 是总计划 Task 2 的文件,仍在本窗口总体允许文件清单中;但 TrajectoryObservationPipeline.cs 既不在阶段 01 允许清单中,也属于后续阶段 04。要继续只能:

  1. 违反“必填且无默认值”的批准接口要求;或
  2. 修改后续阶段/范围外文件。

两项均不被批准,因此未继续。未尝试通过默认参数、额外重载或改变接口设计绕过该冲突。

已撤销的试探性修改与脏工作区保护

所有本窗口添加的失败测试和试探性 Task 1 生产代码均已用 apply_patch 撤销。以下回退核验返回退出码 0,表示这些文件相对 HEAD 无差异:

git diff --quiet -- \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Contracts/EmPlanningRequest.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Contracts/EmPlanningStatus.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Contracts/EmTrajectoryMetadata.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Configuration/SchedulingConfiguration.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Configuration/LongitudinalConfiguration.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Configuration/ValidationConfiguration.cs \
  ClumsyPilot/ParkrobTrajplanner/EMPlanner/Validation/EmPlanningRequestValidator.cs \
  ClumsyPilot/tests/EMPlannerVerificationHost/FoundationChecks.cs

已在编辑前保存并在回退后重新检查用户既有的 EmPlannerConfiguration.cs 完整 diff。它仍只包含:

  • TimeHorizonSeconds = 6d 后的中文说明;
  • DistanceHorizonMeters5d 改为 500d 及中文说明。

这两行未暂存、未提交、未改写。MovementTest.TrajectoryObservationTest.cs 的用户既有修改未编辑、未暂存。整个既有脏工作区保持原状;没有使用 git stashgit reset --hardgit checkout --git add .git add -A

提交与验证状态

  • Task 1 实现提交:无(阻塞前未创建)。
  • Task 2 实现提交:无(未开始)。
  • GREEN、longitudinal-modelem-planning-service GREEN、em-core-all:均未运行成功;原因是批准的必填构造参数无法在阶段 01 允许范围内传播。
  • 本交接创建前暂存区为空。

安全与兼容性影响

当前分支保持原行为,没有发布任何部分 scope 实现或改变 MovementTest。若强行采用默认 scope,会使旧调用静默选择行为,违反设计中“显式范围、禁止隐式混用”的兼容与安全边界。若修改 TrajectoryObservationPipeline.cs,会越过阶段 01 并提前触及阶段 04。

精确恢复范围

恢复窗口只能处理这一范围矛盾。开始前必须再次核验入口提交、现有交接提交、脏工作区和暂存区;重新阅读功能设计、总计划 Task 1–2、阶段执行设计与本交接。

在用户明确批准以下任一项之前,不得实现阶段 01:

  1. 扩大阶段 01 允许文件,至少包括所有必需的 EmPlanningRequest/EmTrajectoryMetadata 构造调用传播文件,特别是 TrajectoryObservationPipeline.cs;或
  2. 修订批准接口,使调用兼容方式不再要求阶段外文件变更。

批准后从 Task 1 的失败测试重新开始,重新收集 RED 证据;不要沿用任何已撤销的试探性实现。阶段 02 仍未实现,且在阶段 01 完成前不得开始。