Files
ParkingRobot/docs/superpowers/specs/2026-08-03-daily-summary-job-domain-visualization-upgrade-design.md
T

14 KiB

Daily Summary Job 领域算法可视化升级设计

1. 目标

升级个人技能 daily-summary-job,使开发日报不只用文字和通用流程框陈述工作,而是先理解当天函数或算法的真实业务目标,再生成与该任务匹配的领域可视化。

页面必须让读者通过点击直接理解:

  1. 原函数或算法解决什么问题、正常情况下如何工作;
  2. 当前问题发生在哪个对象、区域或算法阶段;
  3. 出错原因是什么,或当前有哪些待验证假设;
  4. 问题会沿什么路径传播并导致什么结果;
  5. 纠正方案会改变哪些对象、约束或处理步骤;
  6. 纠正后的预期效果是什么;
  7. 哪些内容是实际观测、静态分析、概念预演或已验证结果。

路径规划只是示例。技能必须根据当前任务选择合适的可视化,而不能把所有算法都硬编码成轨迹图或普通流程图。

2. 已确认的设计决策

  • 使用混合生成策略:涉及函数或算法时自动生成基础领域视图;出现复杂问题时再生成深入诊断和修正前后对比。
  • 使用“双层算法地图”:正常算法效果作为稳定底图,问题与修正方案作为可切换叠加层。
  • 使用混合粒度:主图展示业务对象和算法阶段,点击后下钻到函数、源码、输入输出与约束。
  • 严格区分三类变化状态:当前故障、候选修正预演、已验证修正结果。
  • 使用“统一诊断外壳 + 领域可视化适配器”架构。
  • 测试与验证场景由当前任务、算法约束和问题类型动态决定,不使用预设的固定领域清单代替任务匹配。
  • 当前实施范围只交付通用声明式领域画布和统一诊断交互;路径规划、数值曲线、状态机等专用适配器在真实使用出现明确需求后再逐步增加。

3. 核心原则

3.1 领域效果优先

领域可视化必须展示算法实际处理的业务对象或结果:

  • 空间或规划任务展示地图、边界、障碍物、姿态、搜索空间、候选路径或几何结果;
  • 数值任务展示真实曲线、阈值、异常区间、收敛过程或误差变化;
  • 搜索任务展示搜索空间、扩展顺序、代价变化、剪枝与最终路径;
  • 状态相关任务展示状态、迁移、触发条件、错误跳转和恢复路径;
  • 数据处理任务展示输入样本、中间变换、异常字段、影响传播与输出结果;
  • 其他任务展示最能表达其业务对象和正确性约束的视图。

当算法天然具有空间、数值、时间、状态或数据结构语义时,通用流程图只能作为辅助导航,不能代替主领域效果图。

3.2 先理解,后选择图形

技能不能仅根据目录名或函数名选择模板。生成可视化前必须回答:

  • 当前函数或算法的业务目的是什么;
  • 输入、核心处理与输出是什么;
  • 用户需要直接观察的业务对象是什么;
  • 哪些约束决定结果是否正确;
  • 当前问题与哪个对象、区域或阶段关联;
  • 当前证据能支持展示哪些真实数据。

3.3 证据边界不可被动画掩盖

动画和交互只负责解释证据,不得制造证据。候选方案的预测画面必须明确标记为“概念预演”或“尚未验证”,不能显示成已经发生的修正结果。

4. 总体架构

当天对话、Agent 汇报、源码、测试和运行证据
                       │
                       ▼
                任务与算法理解
                       │
                       ▼
            Algorithm Visualization Brief
                       │
          ┌────────────┴────────────┐
          ▼                         ▼
   领域适配器选择             问题诊断关系构建
          │                         │
          └────────────┬────────────┘
                       ▼
        领域主视图 + 统一诊断叠加层
                       │
                       ▼
            Markdown / 交互式 HTML
                       │
                       ▼
       任务匹配验证与证据一致性检查

架构由五个逻辑组件组成。

4.1 任务与算法理解器

这是写入 SKILL.md 的 Agent 工作流程,不是只依赖关键词的确定性分类器。它负责:

  1. 从当天证据中识别真正相关的函数、算法和业务任务;
  2. 合并主 Agent 与子 Agent 的成果、问题、原因、验证和遗留事项;
  3. 确定算法输入、输出、处理阶段、正确性约束和可观察对象;
  4. 区分实际数据、源码静态重建、对话结论与方案推演;
  5. 生成内部使用的可视化说明。

4.2 Algorithm Visualization Brief

可视化说明是技能内部生成的结构化事实,不要求用户手工填写。至少包含:

  • 算法标识、名称、目的和领域语义;
  • 输入、输出、处理阶段与关键约束;
  • 适合的主视图类型和选择理由;
  • 可用的真实样本、运行数据及其来源;
  • 可视化对象与源码函数之间的关联;
  • 问题、影响、修正和预期结果关联到哪些图形对象;
  • 当前视图属于实际观测、静态重建、概念预演还是已验证结果。

4.3 领域可视化适配器

适配器负责把统一说明转换成领域主视图。适配器是可扩展能力,不是固定领域白名单。

当前版本提供可组合的声明式图元:

  • 点、线、折线、曲线、区域、坐标轴和阈值;
  • 节点、边、树、图和搜索空间;
  • 状态、迁移、触发条件和时间线;
  • 网格、边界、障碍物、姿态和空间对象;
  • 输入输出样本、字段、数据块和转换关系;
  • 标注、告警、影响范围和证据引用。

当前版本由 Agent 根据可视化说明组合图元,形成符合任务语义的视图;适配器注册表只保留扩展接口。路径规划、数值曲线、状态机等专用适配器不属于本轮实施范围。若证据不足以形成可信领域视图,必须明确显示缺失信息,不得退化为伪装成实际效果的通用图。

4.4 统一诊断叠加层

所有领域视图共享相同的诊断交互协议。每个问题通过稳定问题 ID 和目标对象 ID 关联到主视图。

点击异常对象后必须展示:

  • 目前状况;
  • 正常预期;
  • 出错位置;
  • 出错原因或待验证假设;
  • 影响传播路径;
  • 会导致的结果;
  • 纠正方案及步骤;
  • 纠正后的预期结果;
  • 实施和验证状态;
  • 函数、源码、测试和证据等级。

4.5 验证器

验证器继续检查 Markdown 与 HTML 的事实一致性和离线自包含性,并新增领域视图约束:

  • 问题引用的算法、阶段和可视化对象必须存在;
  • 实际数值或几何结果必须具有证据引用;
  • 候选预演不能被标记成已验证结果;
  • 修正前后比较必须具有相同场景、单位和比较条件;
  • 每个可交互问题必须具有原因、影响、方案和预期结果;
  • 所有视图必须具有证据状态和必要的“概念示意”标签。

5. 报告事实结构扩展

现有 achievementsissuesvalidationsnext_stepssources 保持兼容,新增顶层 algorithm_views

{
  "algorithm_views": [
    {
      "id": "planner-main",
      "name": "泊车路径规划",
      "purpose": "从起始姿态生成满足碰撞和运动学约束的可执行轨迹。",
      "domain": "spatial-planning",
      "adapter": "spatial-scene",
      "evidence_state": "actual",
      "inputs": [],
      "outputs": [],
      "constraints": [],
      "stages": [],
      "scene": {},
      "source_refs": []
    }
  ]
}

algorithm_views[].scene 使用声明式数据,不直接嵌入任意脚本。具体适配器解释该字段并渲染 SVG、Canvas 或 DOM 图形。

每个 issue 新增:

  • algorithm_view_id:关联的算法视图;
  • target_ids:主视图中需要高亮的对象;
  • effect_target_ids:影响传播涉及的对象;
  • solution_preview:候选修正会改变的对象和预期状态;
  • verified_result:存在真实修正验证时的结果引用。

旧报告缺少 algorithm_views 时仍可使用现有问题诊断页面,不得导致更新失败。

6. 页面交互结构

6.1 页面区域

┌──────────────────────────────────────────────────────────┐
│ 算法选择器 / 问题选择器 / 证据状态                       │
├───────────┬──────────────────────────┬───────────────────┤
│ 查看模式  │      领域效果主画面       │   对象诊断卡      │
│           │                          │                   │
│ 正常机制  │ 路径、曲线、状态、搜索树  │ 目前状况          │
│ 当前问题  │ 或其他任务匹配视图        │ 原因与影响         │
│ 修正预演  │                          │ 方案与预期         │
│ 验证结果  │                          │ 源码与测试证据     │
├───────────┴──────────────────────────┴───────────────────┤
│ 算法阶段导航 / 方案步骤 / 验证门 / 下一步                │
└──────────────────────────────────────────────────────────┘

6.2 四种查看模式

  1. 正常机制:展示算法原本的输入、处理、输出和正确性约束。
  2. 当前问题:在正常底图上高亮异常对象、实际状态和影响传播。
  3. 修正预演:逐步展示候选方案会改变什么,并明确标记尚未验证。
  4. 验证结果:仅在存在修正后测试或运行证据时启用,展示真实结果及证据。

6.3 一次完整交互

选择算法
  → 查看正常领域效果
  → 选择问题或点击异常对象
  → 播放原因与影响传播
  → 点击纠正步骤查看候选变化
  → 对比当前状态与预期状态
  → 有验证证据时切换到已验证结果
  → 下钻源码、测试和证据引用

7. 任务匹配验证

报告生成时不得运行或引用与当前任务无关的固定测试场景。技能必须动态构建验证清单:

  1. 识别当前任务和算法目标;
  2. 从源码、设计、测试和运行证据中提取正确性约束;
  3. 确定当前问题的复现条件和失败判据;
  4. 查找与这些条件直接匹配的现有测试或运行证据;
  5. 只在安全且成本合理时运行针对性验证;
  6. 将已运行、未运行和仍缺失的验证严格分开;
  7. 为没有匹配测试的结论生成任务专属验证建议。

示例:泊车规划任务可以匹配碰撞、安全间距、可达性、曲率和车辆运动学约束;并发缓存任务可以匹配竞争、重复写入、超时和一致性约束。这些示例用于说明匹配原则,不是固定覆盖列表。

8. 证据状态与视觉语义

状态 含义 页面表达
实际观测 来自测试、运行或可复核数据 实线、明确数值和证据引用
静态重建 根据源码控制流或公式重建 静态分析标签,不声称运行复现
概念预演 候选方案的预测效果 虚线或半透明,并显示尚未验证
已验证结果 修正后经过匹配测试确认 已验证标签和测试证据
结论冲突 多个可信证据不一致 同时保留视图与结论,显示冲突状态

颜色不能成为唯一状态区分方式;同时使用文字、线型、图标和可访问标签。

9. 降级与错误处理

  • 当天没有函数或算法工作:生成普通开发日报,不强制创建算法视图。
  • 找到算法但缺少运行数据:允许静态重建或概念示意,并明确证据状态。
  • 无法确认算法业务目的:列出缺失证据,不生成伪领域效果。
  • 多个算法同时出现:提供算法选择器,分别维护视图与问题关联。
  • 数据量过大:允许抽样、聚合或简化,页面必须说明简化规则并保留原始证据位置。
  • 适配器无法渲染某个图元:显示可读的局部错误卡,其他报告内容仍可访问。
  • 修正方案没有验证:禁用“已验证结果”模式,而不是复制候选预演内容。

10. 文件和组件变化

预计修改:

  • SKILL.md:增加任务理解、可视化说明、领域适配器选择和任务匹配验证流程。
  • references/report-schema.md:增加 algorithm_views、问题对象关联和证据状态字段。
  • scripts/prepare_report.py:验证新结构、保持旧结构兼容、向模板注入领域视图数据。
  • assets/interactive-report-template.html:重构为统一诊断外壳和适配器注册表。
  • scripts/test_prepare_report.py:增加结构、适配器协议、交互和证据边界测试。

可以按复杂度把适配器拆入 assets/visual-adapters/,但最终报告仍必须是一个无外部依赖的 HTML 文件。

11. 验收标准

  • 技能先识别任务目的和业务对象,再选择可视化,不按固定目录名盲选。
  • 路径、数值、状态、搜索或其他算法能够呈现各自真实领域效果,而不是统一文字流程框。
  • 点击图中异常对象可查看目前状况、原因、后果、纠正方案和预期结果。
  • 正常机制、当前问题、候选预演和已验证结果可以明确切换。
  • 候选方案在没有验证证据时不会显示为已修复。
  • 问题、图形对象、源码和测试证据能够互相追踪。
  • 验证清单根据当前任务动态生成,不以固定领域测试替代任务匹配。
  • 无法形成可信领域视图时诚实降级,不编造运行数据。
  • Markdown 与 HTML 保持事实一致,HTML 离线可用并支持键盘和移动端。
  • 旧日报数据仍可生成和更新。

12. 非目标

  • 不在生成日报时自动修改业务代码。
  • 不为了可视化而运行昂贵、破坏性或未经授权的测试。
  • 不要求每种算法预先拥有专用硬编码模板。
  • 不把动画效果当作算法正确性的证明。
  • 不自动暂存、提交或推送 Git 变更。