# Local G2 Dailywork Reports 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:** 在 `dailywork_report/` 中交付两份清晰、可追溯的 Local G2 五次 Hermite 中文报告，并为每份提供一个可离线打开的 HTML 可视化附录。

**Architecture:** 报告按“算法事实”和“问题证据”拆分，避免把候选层能力误写成已完成的端到端功能。每份 HTML 均为独立单文件，以内嵌 CSS、SVG 和少量原生 JavaScript 将 Markdown 的核心结构可视化；不引入构建工具或外部资源。

**Tech Stack:** Markdown、HTML5、内嵌 CSS、内嵌 SVG、原生 JavaScript、PowerShell 验证。

## Global Constraints

- 目录根为 `dailywork_report/`，大小写和下划线必须保持一致。
- 建立 `Map_rep/` 与 `coarsepath_rep/` 作为空的未来报告入口；本次不填充其业务内容。
- 本次四份正式内容只放在 `dailywork_report/pathsmoothing_rep/`。
- 所有文字使用中文；首次出现的英文技术术语必须有中文解释或可由相邻中文短语理解。
- 明确区分：专项测试通过、已复现故障、静态分析确认的逻辑缺口、待验证集成风险。
- 不修改任何路径平滑、地图、粗路径或测试实现。
- HTML 不使用 CDN、网络请求、第三方库、外部图片或构建步骤。
- 工作区已有无关改动；本任务不暂存、不提交。

---

### Task 1: 建立稳定的日报目录边界

**Files:**
- Create: `dailywork_report/Map_rep/.gitkeep`
- Create: `dailywork_report/coarsepath_rep/.gitkeep`
- Create: `dailywork_report/pathsmoothing_rep/`（由后续两个任务创建内容）

**Interfaces:**
- Consumes: 已批准的 `docs/superpowers/specs/2026-07-31-local-g2-dailywork-reports-design.md`。
- Produces: 可承载地图、粗路径和路径平滑报告的稳定目录边界。

- [ ] **Step 1: 创建两个空模块目录的保留文件**

使用 `apply_patch` 创建两个空的 `.gitkeep` 文件，内容保持为空：

```text
dailywork_report/Map_rep/.gitkeep
dailywork_report/coarsepath_rep/.gitkeep
```

- [ ] **Step 2: 验证目录边界**

运行：

```powershell
$paths = @(
  'dailywork_report/Map_rep/.gitkeep',
  'dailywork_report/coarsepath_rep/.gitkeep'
)
foreach ($path in $paths) {
  if (-not (Test-Path -LiteralPath $path)) { throw "Missing report directory marker: $path" }
}
Write-Output 'Dailywork report directory checks passed.'
```

预期：输出 `Dailywork report directory checks passed.`。

---

### Task 2: 编写 Local G2 算法主报告及流程可视化附录

**Files:**
- Create: `dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-report.md`
- Create: `dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-visualization.html`

**Interfaces:**
- Consumes: `docs/superpowers/plans/2026-07-30-local-g2-path-presmoothing.md`、`docs/superpowers/specs/2026-07-30-local-g2-path-presmoothing-design.md`、`ClumsyPilot/ParkrobTrajplanner/PathSmoothing/LocalG2/` 下的实现。
- Produces: 一份说明 Local G2 候选层工作方式、输入、输出、约束和当前接入边界的报告；一份与该报告事实一致的可视化附录。

- [ ] **Step 1: 写入 Markdown 主报告的固定章节**

按下列一级标题顺序撰写，并在每节中给出可核对的事实：

```markdown
# Local G2 五次 Hermite 路径平滑算法说明
## 1. 目标、位置与非目标
## 2. 输入：进入算法前必须具备什么
## 3. 模块架构：每个模块负责什么
## 4. 数据流：从粗路径到候选安全路径
## 5. 输出：路径、段、指标、区域报告与状态
## 6. 安全与质量门
## 7. 当前实现进度与边界
```

必须写清：输入为成功的 Hybrid A* 粗路径、路径方向段、地图、车辆参数、`LocalG2QuinticOptions`、取消令牌；距离单位为米、航向为弧度、曲率为 `1/m`。数据流必须依次解释预处理、曲率跳变检测、窗口规划、五次 Hermite 候选构造、局部拼接、统一几何分析、完整车体验证、质量评价。输出必须解释 `SmoothedPathPoint`、`SmoothedPathSegment`、曲率 `κ`、曲率导数 `dκ/ds`、区域报告和诊断。

“当前实现进度与边界”必须明确：任务 1–7 已达到候选构造与评价层；`LocalG2PreSmoothingPipeline` 与服务分派尚未实现，因此不能声称目前可正式发布完整的 Local G2 SQP 初始路径。

- [ ] **Step 2: 写入单文件 HTML 算法附录**

HTML 必须包含 `<main>`、一个“输入”卡片区、一个按顺序排列的 SVG 流程图、一个“输出”卡片区和一个“当前边界”提示区。SVG 流程节点必须使用以下稳定文字：

```text
Hybrid A* 粗路径
预处理与方向分段
曲率跳变检测
窗口规划
五次 Hermite 候选
拼接与统一几何分析
完整车体安全与质量评价
计划中的发布流水线（尚未接入）
```

用绿色标记已实现的候选层节点，用琥珀色标记“尚未接入”的发布流水线节点。HTML 中的“输入”和“输出”文字必须与 Markdown 报告一致，且页面顶部必须写明“离线静态可视化附录”。

- [ ] **Step 3: 校验主报告与 HTML 的算法事实**

运行：

```powershell
$markdown = Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-report.md'
$html = Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-visualization.html'
$markdownTerms = @('输入：进入算法前必须具备什么', '输出：路径、段、指标、区域报告与状态', 'dκ/ds', '尚未实现')
$htmlTerms = @('<main', '<svg', 'Hybrid A* 粗路径', '五次 Hermite 候选', '尚未接入', '离线静态可视化附录')
foreach ($term in $markdownTerms) { if (-not $markdown.Contains($term)) { throw "Algorithm report missing: $term" } }
foreach ($term in $htmlTerms) { if (-not $html.Contains($term)) { throw "Algorithm visualization missing: $term" } }
Write-Output 'Algorithm report checks passed.'
```

预期：输出 `Algorithm report checks passed.`。

---

### Task 3: 编写问题分析报告及风险可视化附录

**Files:**
- Create: `dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-report.md`
- Create: `dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-visualization.html`

**Interfaces:**
- Consumes: 本轮已运行的构建与专项测试结果、`verify_path_smoothing_integration.ps1` 的 `RectangleDetour` 失败、`LocalG2WindowPlanner.cs`、`LocalG2PathSplicer.cs`、`LocalG2CandidateEvaluator.cs`。
- Produces: 三个问题的证据分级、可理解的场景例子、成因、影响与下一步验证/修复措施；一份与主报告一致的风险可视化。

- [ ] **Step 1: 写入 Markdown 问题报告的固定章节和证据分类**

使用下列一级标题：

```markdown
# Local G2 路径平滑问题分析与后续措施
## 1. 阅读本报告前：证据等级说明
## 2. 问题一：RectangleDetour 原始基线复验失败
## 3. 问题二：窗口合并范围与候选长度上限不一致
## 4. 问题三：连续处理多个区域时的弧长定位风险
## 5. 进入任务 8 前的行动顺序与验收条件
```

每个问题必须按“现象 → 生动例子 → 为什么发生 → 影响 → 证据等级 → 下一步措施 → 验收条件”顺序写作。

问题一必须标记为“已复现故障”，引用如下实际结果，不增添未验证的数值原因：

```text
Raw baseline RectangleDetour must remain a feasible, verified copy of the coarse path.
Expected=Success Actual=InvalidInput
```

问题二必须标记为“静态分析确认的逻辑缺口”，说明默认 `0.8 m` 候选总长度上限与 `event ± 0.8 m` 合并包络的差异；使用“相距 1.0 m 的两个弯被合并后无法装进 0.8 m 窗口”的例子。

问题三必须标记为“待验证集成风险”，说明一次拼接会重算局部弧长，后续区域仍可能使用旧起止弧长；不得写成已经复现的线上故障。

- [ ] **Step 2: 写入单文件 HTML 问题附录**

HTML 顶部必须显示三种证据徽章：`已复现故障`、`静态分析确认`、`待验证风险`。页面主体必须提供三个编号问题卡片，每张卡片含“现象”“例子”“成因”“措施”四个短区块。使用内嵌 SVG 表达：

```text
问题一：粗路径成功 → 原始基线复验 InvalidInput → G2 尚未开始
问题二：两个相距 1.0 m 的事件 → 被合并 → 0.8 m 窗口无候选
问题三：先平滑区域 A → 弧长重算 → 区域 B 使用旧坐标
```

页面末尾必须列出行动优先级：先定位问题一、再为问题二添加窗口边界回归、最后为问题三添加双区域顺序替换回归。

- [ ] **Step 3: 校验问题分类、现象和行动顺序**

运行：

```powershell
$markdown = Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-report.md'
$html = Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-visualization.html'
$markdownTerms = @('已复现故障', 'Expected=Success Actual=InvalidInput', '静态分析确认的逻辑缺口', '待验证集成风险', '相距 1.0 m', '任务 8')
$htmlTerms = @('<main', '<svg', '已复现故障', '静态分析确认', '待验证风险', '区域 A', '区域 B')
foreach ($term in $markdownTerms) { if (-not $markdown.Contains($term)) { throw "Issue report missing: $term" } }
foreach ($term in $htmlTerms) { if (-not $html.Contains($term)) { throw "Issue visualization missing: $term" } }
Write-Output 'Issue report checks passed.'
```

预期：输出 `Issue report checks passed.`。

---

### Task 4: 做离线交付检查和可视化人工审阅

**Files:**
- Verify: `dailywork_report/Map_rep/.gitkeep`
- Verify: `dailywork_report/coarsepath_rep/.gitkeep`
- Verify: `dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-report.md`
- Verify: `dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-visualization.html`
- Verify: `dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-report.md`
- Verify: `dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-visualization.html`

**Interfaces:**
- Consumes: 前三项任务的六个文件。
- Produces: 可离线打开、层级明确、相互一致的报告包。

- [ ] **Step 1: 验证完整文件集与禁止外部依赖**

运行：

```powershell
$files = @(
  'dailywork_report/Map_rep/.gitkeep',
  'dailywork_report/coarsepath_rep/.gitkeep',
  'dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-report.md',
  'dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-visualization.html',
  'dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-report.md',
  'dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-visualization.html'
)
foreach ($file in $files) { if (-not (Test-Path -LiteralPath $file)) { throw "Missing deliverable: $file" } }
$html = @(
  Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/01-local-g2-quintic-hermite-algorithm-visualization.html'
  Get-Content -Raw -Encoding UTF8 'dailywork_report/pathsmoothing_rep/02-local-g2-issues-and-next-actions-visualization.html'
) -join "`n"
if ($html -match 'https?://' -or $html -match '<script[^>]+src=') { throw 'HTML appendices must be self-contained.' }
Write-Output 'Dailywork report package checks passed.'
```

预期：输出 `Dailywork report package checks passed.`。

- [ ] **Step 2: 在本地浏览器进行人工可读性审阅**

依次打开两个 HTML 文件，检查以下具体条件：

```text
算法附录：流程从左到右或从上到下可顺序阅读；绿色已实现节点与琥珀色未接入节点容易区分；输入和输出没有被流程图遮挡。
问题附录：三类证据徽章颜色和文字均可分辨；三个问题卡片的例子、成因、措施没有被截断；行动顺序位于页面末尾且与 Markdown 一致。
```

- [ ] **Step 3: 检查工作区改动范围**

运行：

```powershell
git diff --check
git status --short -- dailywork_report docs/superpowers/specs/2026-07-31-local-g2-dailywork-reports-design.md docs/superpowers/plans/2026-07-31-local-g2-dailywork-reports.md
```

预期：无空白错误；改动只包含本计划的设计、计划和日报交付文件。
