12 KiB
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 文件,内容保持为空:
dailywork_report/Map_rep/.gitkeep
dailywork_report/coarsepath_rep/.gitkeep
- Step 2: 验证目录边界
运行:
$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 主报告的固定章节
按下列一级标题顺序撰写,并在每节中给出可核对的事实:
# 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 流程节点必须使用以下稳定文字:
Hybrid A* 粗路径
预处理与方向分段
曲率跳变检测
窗口规划
五次 Hermite 候选
拼接与统一几何分析
完整车体安全与质量评价
计划中的发布流水线(尚未接入)
用绿色标记已实现的候选层节点,用琥珀色标记“尚未接入”的发布流水线节点。HTML 中的“输入”和“输出”文字必须与 Markdown 报告一致,且页面顶部必须写明“离线静态可视化附录”。
- Step 3: 校验主报告与 HTML 的算法事实
运行:
$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 问题报告的固定章节和证据分类
使用下列一级标题:
# Local G2 路径平滑问题分析与后续措施
## 1. 阅读本报告前:证据等级说明
## 2. 问题一:RectangleDetour 原始基线复验失败
## 3. 问题二:窗口合并范围与候选长度上限不一致
## 4. 问题三:连续处理多个区域时的弧长定位风险
## 5. 进入任务 8 前的行动顺序与验收条件
每个问题必须按“现象 → 生动例子 → 为什么发生 → 影响 → 证据等级 → 下一步措施 → 验收条件”顺序写作。
问题一必须标记为“已复现故障”,引用如下实际结果,不增添未验证的数值原因:
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 表达:
问题一:粗路径成功 → 原始基线复验 InvalidInput → G2 尚未开始
问题二:两个相距 1.0 m 的事件 → 被合并 → 0.8 m 窗口无候选
问题三:先平滑区域 A → 弧长重算 → 区域 B 使用旧坐标
页面末尾必须列出行动优先级:先定位问题一、再为问题二添加窗口边界回归、最后为问题三添加双区域顺序替换回归。
- Step 3: 校验问题分类、现象和行动顺序
运行:
$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: 验证完整文件集与禁止外部依赖
运行:
$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 文件,检查以下具体条件:
算法附录:流程从左到右或从上到下可顺序阅读;绿色已实现节点与琥珀色未接入节点容易区分;输入和输出没有被流程图遮挡。
问题附录:三类证据徽章颜色和文字均可分辨;三个问题卡片的例子、成因、措施没有被截断;行动顺序位于页面末尾且与 Markdown 一致。
- Step 3: 检查工作区改动范围
运行:
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
预期:无空白错误;改动只包含本计划的设计、计划和日报交付文件。