11 KiB
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 1–3.
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.mdexactly. - Create only
docs/superpowers/progress/em-planner-progress.mdduring this bootstrap. - Stage 1 begins in
NotStarted; no EM production or test code is implemented in this bootstrap. - The branch is
trajplannerand the protocol design baseline is commit554c84f. - 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 1–3.
- The progress checkpoint is committed separately from every later functionality commit.
Locked File Structure
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 commit8dd8ff0, 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:
$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:
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:
# 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 1–3 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 1–3,不得提前执行 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 1:Verification Host and Immutable Contracts;
- Task 2:Configuration, Diagnostics, and Request Validation;
- Task 3:Direction 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:
$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:
$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 1–3 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.