Files
ParkingRobot/docs/superpowers/plans/2026-08-03-em-planner-windowed-execution-implementation.md
T

248 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# EM Planner Windowed Execution Bootstrap Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Initialize the single cross-window EM Planner progress file with verified protocol state and a complete Stage 1 startup prompt.
**Architecture:** Keep all durable cross-window state in one committed Markdown file. The file points to the approved design and implementation plans, records that no implementation stage has started, preserves the known dirty-worktree baseline, and gives the next Codex window enough exact instructions to execute only Foundation Tasks 13.
**Tech Stack:** Markdown, Git, PowerShell validation, existing EM Planner design and implementation plans.
## Global Constraints
- Follow `docs/superpowers/specs/2026-08-03-em-planner-windowed-execution-design.md` exactly.
- Create only `docs/superpowers/progress/em-planner-progress.md` during this bootstrap.
- Stage 1 begins in `NotStarted`; no EM production or test code is implemented in this bootstrap.
- The branch is `trajplanner` and the protocol design baseline is commit `554c84f`.
- The five EM implementation plans are anchored by commit `8dd8ff0`.
- Existing unrelated worktree changes remain untouched and unstaged.
- Never use `git add .`, `git add -A`, destructive reset, checkout restoration, or untracked-file cleanup.
- The initial next-window prompt must prohibit subagents and restrict execution to Foundation Tasks 13.
- The progress checkpoint is committed separately from every later functionality commit.
---
## Locked File Structure
```text
docs/superpowers/progress/
└── em-planner-progress.md
```
### Task 1: Initialize the Cross-Window Progress Checkpoint
**Files:**
- Create: `docs/superpowers/progress/em-planner-progress.md`
**Interfaces:**
- Consumes: design commit `554c84f`, plan commit `8dd8ff0`, the ten-stage mapping, and the existing dirty-worktree baseline.
- Produces: the durable Stage 1 entry state and a complete prompt for a fresh Codex window.
- [ ] **Step 1: Run the failing precondition check**
Run:
```powershell
$progress = 'docs/superpowers/progress/em-planner-progress.md'
if (Test-Path -LiteralPath $progress) {
throw "Progress file already exists; inspect it instead of overwriting it."
}
throw "Expected bootstrap failure: progress file does not exist."
```
Expected: nonzero exit with `Expected bootstrap failure: progress file does not exist.` If the file already exists, stop and reconcile it with the design rather than replacing user state.
- [ ] **Step 2: Verify protocol and plan baselines before creating state**
Run:
```powershell
git cat-file -e '554c84f^{commit}'
if ($LASTEXITCODE -ne 0) { throw 'Windowed-execution design commit is missing.' }
git cat-file -e '8dd8ff0^{commit}'
if ($LASTEXITCODE -ne 0) { throw 'EM implementation-plan commit is missing.' }
if ((git branch --show-current) -ne 'trajplanner') { throw 'Expected trajplanner branch.' }
$staged = @(git diff --cached --name-only)
if ($staged.Count -ne 0) { throw "Unexpected staged files: $($staged -join ', ')" }
Write-Output 'PASS windowed-execution bootstrap prerequisites'
```
Expected: `PASS windowed-execution bootstrap prerequisites` and exit code `0`.
- [ ] **Step 3: Create the exact initial progress document**
Create the file with this complete content:
````markdown
# EM Planner Execution Progress
## Current State
- Current stage: 1 — Foundation contracts and boundaries
- Stage status: NotStarted
- Current branch: `trajplanner`
- Last checkpoint commit: None; Stage 1 has not started
- Protocol design baseline: `554c84f`
- Implementation-plan baseline: `8dd8ff0`
## Completed Tasks
| Stage | Plan | Tasks | Commits | Verification |
|---:|---|---|---|---|
| — | — | — | — | No implementation task has started |
## Current Verification
- Commands:
- `git cat-file -e 554c84f^{commit}`
- `git cat-file -e 8dd8ff0^{commit}`
- `git branch --show-current`
- `git diff --cached --name-only`
- Result: Bootstrap prerequisites passed; Stage 1 entry is ready
- Verified commit: `554c84f` for protocol design and `8dd8ff0` for implementation plans
## Preserved Workspace State
- The workspace already contains many unrelated Map, CoarsePath, PathSmoothing, project-file, report, and documentation changes. They belong to the user and must remain untouched and unstaged.
- Use explicit file paths for every `git add`; never stage the whole workspace.
- Inspect the existing diff before modifying `ClumsyPilot/ClumsyPilot.csproj`, then append only the Stage 1 rules required by the Foundation plan.
- The normal `ClumsyPilot.csproj` build can be blocked by legacy `auto_avoidance/MultiWheelAutoAvoidance.cs` references to `NetTopologySuite` and `OpenCvSharp`.
- Stage 1 must use the isolated `EMPlannerVerificationHost` rule from the Foundation plan. Do not delete or rewrite legacy functionality to hide the baseline build failure.
## Decisions Needed
- None. The Stage 1 scope and contracts are approved.
## Next Stage
- Stage: 1 — Foundation contracts and boundaries
- Plan: `docs/superpowers/plans/2026-08-03-em-planner-foundation-implementation.md`
- Tasks:
- Task 1 — Verification Host and Immutable Contracts
- Task 2 — Configuration, Diagnostics, and Request Validation
- Task 3 — Direction Segmentation and Exact Boundary Anchors
- Entry checks:
- Confirm branch `trajplanner`.
- Confirm commits `554c84f` and `8dd8ff0` exist.
- Confirm the staging area is empty.
- Capture `git status --short` before editing.
- Confirm no prior Stage 1 functionality commit is recorded; if EM files already exist, inspect and reconcile them before continuing.
- Exit gate:
- Each of Foundation Tasks 13 has its own passing verification and independent commit.
- The Foundation verification host passes `foundation` and `segmentation` groups required through Task 3.
- Exact gear-switch approach/departure identities and exact horizon anchors are verified.
- `git diff --check` reports no new whitespace errors.
- The staging area is empty after all task commits.
- This progress file is updated to mark Stage 1 completed and Stage 2 ready, then committed alone.
## Next-Window Prompt
```text
请继续 ParkingRobot 仓库的 EM Planner 多窗口实施。
工作目录:D:\Users\Desktop\项目\prakrobot\ParkingRobot
本窗口是阶段 1:Foundation 契约与边界,只执行 Foundation 实施计划的 Task 13,不得提前执行 Task 4 或后续阶段。
开始工作前必须完整读取:
1. docs/superpowers/specs/2026-08-03-em-planner-ls-st-design.md
2. docs/superpowers/specs/2026-08-03-em-planner-windowed-execution-design.md
3. docs/superpowers/progress/em-planner-progress.md
4. docs/superpowers/plans/2026-08-03-em-planner-foundation-implementation.md
执行时使用 executing-plans、test-driven-development 和 verification-before-completion 技能,并完整读取对应 SKILL.md。不要使用子代理。
开始前:
- 确认工作目录和分支 trajplanner
- 确认提交 554c84f 与 8dd8ff0 存在;
- 检查 git status --short 和暂存区;
- 保存开始时的工作区状态用于结束时对照;
- 当前工作区存在大量用户修改,全部保留,不得清理、覆盖或顺带提交;
- 如果进度文件、Git 或实际文件不一致,先诊断并报告,不要直接覆盖。
阶段范围:
- Task 1Verification Host and Immutable Contracts
- Task 2Configuration, Diagnostics, and Request Validation
- Task 3Direction Segmentation and Exact Boundary Anchors。
执行要求:
- 严格按 Foundation 计划逐任务进行 TDD
- 每个任务先运行计划指定的失败验证,再实现最小内容,再运行通过验证;
- 每个任务形成独立提交,只用显式路径 git add;
- 修改 ClumsyPilot/ClumsyPilot.csproj 前先查看现有差异,只追加本阶段要求;
- 不修改无关 Map、CoarsePath、PathSmoothing 和旧 auto_avoidance 文件;
- 不实现 Frenet、静态走廊、OSQP、LS、ST、滚动执行或动态障碍功能;
- 主项目既有 auto_avoidance 依赖失败不能通过删除旧功能规避;使用计划中的隔离验证宿主;
- 任何完成声明前运行计划指定验证和 git diff --check。
阶段结束时:
- 确认 Task 1–3 各有独立提交和测试证据;
- 运行截至 Task 3 的 Foundation 阶段出口验证;
- 核对每个提交只包含计划文件,暂存区为空;
- 更新 docs/superpowers/progress/em-planner-progress.md:记录提交、验证命令和结果,将阶段 1 标为 Completed,将阶段 2 标为 ready
- 只暂存进度文件并单独提交阶段检查点;
- 返回本阶段完成内容、提交列表、测试证据、遗留问题;
- 给出阶段 2 可直接复制的新窗口提示词。
```
````
- [ ] **Step 4: Validate structure, task scope, and prompt completeness**
Run:
```powershell
$progress = 'docs/superpowers/progress/em-planner-progress.md'
$content = Get-Content -LiteralPath $progress -Raw -Encoding UTF8
$required = @(
'Stage status: NotStarted',
'Protocol design baseline: `554c84f`',
'Implementation-plan baseline: `8dd8ff0`',
'Task 1 — Verification Host and Immutable Contracts',
'Task 2 — Configuration, Diagnostics, and Request Validation',
'Task 3 — Direction Segmentation and Exact Boundary Anchors',
'不要使用子代理',
'不得提前执行 Task 4',
'只暂存进度文件并单独提交阶段检查点'
)
foreach ($term in $required) {
if (-not $content.Contains($term)) { throw "Missing progress item: $term" }
}
if ($content.Contains('Task 4 — Reverse-Safe')) { throw 'Stage 1 prompt includes Stage 2 implementation.' }
$fences = ([regex]::Matches($content, '```')).Count
if (($fences % 2) -ne 0) { throw "Unbalanced code fences: $fences" }
git diff --check -- $progress
if ($LASTEXITCODE -ne 0) { throw 'Progress-file diff check failed.' }
Write-Output 'PASS initial EM Planner progress checkpoint'
```
Expected: `PASS initial EM Planner progress checkpoint` and exit code `0`.
- [ ] **Step 5: Commit only the initialized progress checkpoint**
Run:
```powershell
$progress = 'docs/superpowers/progress/em-planner-progress.md'
$before = @(git diff --cached --name-only)
if ($before.Count -ne 0) { throw "Unexpected staged files: $($before -join ', ')" }
git add -- $progress
$staged = @(git diff --cached --name-only)
if ($staged.Count -ne 1 -or $staged[0] -ne $progress) {
throw "Staged scope is not progress-only: $($staged -join ', ')"
}
git diff --cached --check
if ($LASTEXITCODE -ne 0) { throw 'Staged diff check failed.' }
git commit -m "docs: initialize EM planner execution progress"
```
Expected: one commit containing only `docs/superpowers/progress/em-planner-progress.md`; the staging area is empty afterward.
## Completion Gate
- The progress file exists and names Stage 1 as `NotStarted`.
- It references the approved design and implementation-plan commits.
- It contains Foundation Tasks 13 exactly and excludes Stage 2 implementation.
- It records dirty-worktree and legacy-build protections.
- Its Stage 1 prompt is directly copyable into a fresh Codex window.
- The bootstrap commit contains only the progress file.