# Daily Summary Job 自适应取证与动态问题可视化设计 **日期:** 2026-08-09 **状态:** 已完成交互设计确认,等待书面规格复核 **目标 skill:** `C:\Users\admin\.codex\skills\daily-summary-job` ## 1. 背景 `daily-summary-job` 已能从开发证据生成 Markdown 日报和自包含交互 HTML,并支持算法场景、问题目标、四种视图模式、验证门禁和旧报告兼容。 当前仍有两类体验缺口: 1. 当证据不足时,skill 只能依据已有材料生成报告,不能主动向当前任务的 Agent 或用户补充询问,因此前后对比、原因可信度、解决机制和验证结果可能不完整。 2. HTML 中的问题诊断节点偏静态,连通关系、原因传播、解决方法和改善结果缺少统一、自然的动态表达。 本设计把 skill 升级为“主动取证与问题解释器”:先发现报告证据缺口,主动获取必要背景,再构造问题模型、自动选择可视化,并用轻量因果路径与活动检查器解释问题和解决效果。 ## 2. 目标 - 在生成日报前,自适应判断是否需要补充信息。 - 优先询问仍在参与当前任务的主 Agent 或子 Agent,再询问用户。 - 用户追问最多四个,每个问题均可跳过。 - 将取得的信息整理为问题背景、现象、触发条件、原因链、影响、解决方法、作用机制和改善结果。 - 根据问题的主要可观察效果自动选择可视化;存在两个同等合理方案时才询问用户。 - 用轻量因果路径作为主连通骨架,用活动检查器展示原因流、证据、解决机制、前后效果和追问依据。 - 保持证据边界、离线自包含、安全校验和旧报告兼容。 ## 3. 非目标 - 不把 HTML 升级成持久化日报编辑器。 - 不允许页面中的临时输入绕过报告事实合同或直接改写源报告。 - 不要求每次生成日报都进行固定问答。 - 不为了视觉丰富而虚构坐标、比例、指标或验证结果。 - 不将某一种领域视图固定为所有任务的通用模板。 ## 4. 总体工作流 完整流程如下: 1. **证据扫描**:读取当前对话、相关代码差异、提交、测试结果、计划、设计文档、检查点和可见 Agent 报告。 2. **缺口检测**:检查当前事实是否缺少会改变日报结论或可视化的关键信息。 3. **Agent 取证**:若当前任务存在仍可联系的贡献 Agent,向其提出范围明确的问题。 4. **用户追问**:只询问 Agent 和现有证据仍无法回答的高价值缺口,最多四问。 5. **问题建模**:把证据和回答归一化为问题、原因、影响、方法和改善结果。 6. **视觉规划**:按问题类型选择主视图、次级检查器、模式和前后对比方式。 7. **报告生成**:渲染 Markdown 与离线 HTML,并验证问题、回答、节点和证据引用。 Agent 不可用时直接跳过第 3 步。现有证据已充分时跳过第 3、4 步。 ## 5. 自适应取证 ### 5.1 缺口优先级 按以下优先级决定是否追问: 1. 修改后是否存在相同条件下的匹配验证。 2. 修改前后是否存在可比较的数值、行为、状态、场景或截图。 3. 错误原因是已验证根因、静态分析、当前假设还是结论冲突。 4. 问题影响、剩余风险和下一步完成标准是否明确。 只有缺口会改变核心结论、证据等级、可视化模式或前后效果时才提问。剩余缺口不会改变这些内容时立即停止。 ### 5.2 Agent 询问规则 - 仅询问参与当前任务且仍可联系的主 Agent 或子 Agent。 - 每个问题必须关联一个明确事实缺口,例如发现方式、变更范围、原因证据、验证命令或结果。 - 不要求 Agent 复述完整工作过程,只返回结论、证据位置和未解决项。 - 已有报告能回答的问题不得重复询问。 - Agent 无响应或不可用记为 `unavailable`,不占用用户四问额度。 - Agent 结论冲突时保留双方结论和来源,不由生成 Agent 猜测裁决。 ### 5.3 用户追问规则 - 用户问题总数不得超过四个。 - 每次只提出当前信息价值最高的问题。 - 每个问题显示:询问原因、会补全的结论、2–3 个快捷建议、自由文本补充和“跳过/按现有证据生成”。 - 快捷建议只能来自已有证据能够支持的状态,例如“已执行匹配复测”“尚未验证”“只有静态分析”;不得提供带有虚构结果的选项。 - 跳过后将对应内容记录为缺失证据,不进行推断。 - 用户回答进入规范化事实源后,才用于 Markdown 和 HTML 渲染。 ### 5.4 混合交互边界 真正的取证问答发生在 Agent 对话中。HTML 不负责保存或提交答案,而是展示: - 为什么提出该问题; - 问题询问了谁; - 得到了什么精简回答; - 回答改变了哪个问题字段、证据等级或视觉状态; - 哪些问题被跳过或仍缺少证据。 这样既能让回答参与正式校验,又能让报告读者理解结论如何形成。 ## 6. 数据合同 新增字段全部可选,旧报告可以完全省略。 ### 6.1 `inquiry_session` 用于记录本轮主动取证的精简审计轨迹: ```json { "inquiry_session": { "status": "completed", "user_question_limit": 4, "gaps": [ { "id": "gap-post-fix-validation", "kind": "validation", "reason": "缺少修改后相同输入的验证结果", "affected_fields": ["issues.issue-curvature.problem_analysis.before_after"] } ], "questions": [ { "id": "question-post-fix-validation", "gap_id": "gap-post-fix-validation", "audience": "user", "prompt": "是否对修改后的相同输入重新运行了曲率扫描?", "reason": "决定验证结果模式能否启用", "affected_fields": ["issues.issue-curvature.verified_result"], "answer_status": "answered", "answer": "已重新扫描,峰值为 0.18。", "evidence_level": "已验证", "source_refs": ["本会话用户回答", "tests/output-after.json"] } ] } } ``` `status` 允许 `not-needed`、`in-progress`、`completed` 和 `partial`。`audience` 允许 `agent` 和 `user`。`answer_status` 允许 `answered`、`skipped`、`unavailable` 和 `conflict`。 验证规则: - 用户问题数量不得超过 `user_question_limit`,且该限制不得超过 4。 - 每个问题必须引用已声明缺口,并至少关联一个报告字段。 - `answered` 必须包含精简回答和来源;`skipped`、`unavailable` 不得伪造回答。 - `conflict` 必须包含至少两个有来源的相互冲突结论。 ### 6.2 `issues[].problem_analysis` 用于表达可视化和解决机制需要的规范化问题模型: ```json { "background": "当前任务目标和问题发生的业务上下文。", "symptoms": [ {"id": "symptom-peak", "statement": "P17 曲率峰值为 0.31。", "evidence_level": "已验证", "source_refs": ["tests/output.json"], "target_ids": ["curvature-peak"]} ], "triggers": [], "cause_chain": [ {"id": "cause-derivative", "role": "direct-cause", "statement": "端点导数约束不足。", "evidence_level": "静态分析", "source_refs": ["LocalG2CandidateBuilder.cs"], "target_ids": ["candidate-window"]} ], "impact_chain": [], "solution_actions": [], "solution_mechanism": { "summary": "方法如何作用于问题机制。", "evidence_state": "static", "target_ids": ["preview-path"] }, "before_after": { "comparison_kind": "metric", "before": {"label": "修改前", "value": "0.31", "target_ids": ["curvature-peak"], "source_refs": ["tests/output.json"]}, "after": {"label": "修改后", "value": "0.18", "target_ids": ["verified-path"], "source_refs": ["tests/output-after.json"]}, "matched_conditions": "相同输入、相同扫描命令" }, "remaining_risks": [] } ``` 原因链节点的角色允许 `symptom`、`trigger`、`direct-cause`、`root-cause`、`impact`、`solution` 和 `result`。每个节点必须带证据等级和来源边界。 ### 6.3 `algorithm_views[].visualization_plan` 记录自动选图结论: ```json { "problem_types": ["causal", "numeric"], "primary_view": "causal-route", "secondary_inspector": "cause-flow", "selection_reason": "当前问题同时需要展示原因传播和修改前后曲率指标。", "mode_targets": { "baseline": ["current-path"], "current": ["curvature-peak", "candidate-rejected"], "proposed": ["preview-path"], "verified": ["verified-path"] }, "comparison_presentation": "metric-and-overlay", "ambiguous_choices": [] } ``` 如果存在两个同等合理的主视图,`ambiguous_choices` 保存候选项和差异,并在生成前询问用户;确定选择后保留最终选择理由。 ## 7. 自动可视化选择 | 问题类型 | 识别信号 | 默认主视图 | 前后效果 | | --- | --- | --- | --- | | 空间/几何 | 位置、路径、碰撞、覆盖、形状 | 场景叠加与局部焦点 | 同坐标叠加、擦除或切换 | | 数值/性能 | 超限、波动、耗时、误差、资源 | 曲线、阈值和指标卡 | 同尺度曲线和差值 | | 状态/流程 | 状态错误、分支、生命周期、阻塞 | 状态迁移与当前路径 | 修改前后迁移路径 | | 搜索/决策 | 候选、代价、扩展、剪枝、失败节点 | 搜索树或图与决策焦点 | 搜索范围和选择差异 | | 时间/事件 | 顺序、延迟、切换、并发、时序异常 | 时间线与事件窗口 | 对齐事件序列 | | 因果诊断 | 现象、触发、原因、影响、修正 | 轻量因果路径 | 原因链与改善结果 | | 数据转换 | 输入、清洗、映射、聚合、错误输出 | 输入/中间态/输出对照 | 转换前后数据对照 | | 混合 | 两类以上可信证据 | 一个主视图配一个次级检查器 | 主证据决定比较方式 | 选择原则: 1. 优先展示业务领域中可直接观察的问题效果。 2. 只使用证据支持的数据和关系。 3. 一个报告问题只选一个主视图,其他维度进入检查器或图层。 4. 两种方案同样有效时才询问用户,不为细微风格差异打断生成。 5. 没有可信数值或坐标时使用因果或状态关系,并明确证据状态。 ## 8. 交互与视觉设计 ### 8.1 主布局 - 主画布采用已确认的 **轻量因果路径**。 - 节点沿连续主路径排列,解决方法和验证结果作为清晰分支。 - 避免散乱矩形、交叉斜线和覆盖画布的大型对比条。 - 节点只显示名称、核心值和证据状态;长内容进入活动检查器。 - 主路径可表达输入、处理、异常、影响和结果,也可由具体领域适配器替换为空间、数值或状态主视图。 ### 8.2 活动检查器 点击或键盘选择节点后,主画布保持位置稳定,检查器切换到该节点,包含以下标签: - 背景; - 原因流; - 解决机制; - 证据来源; - 前后效果; - 取证与追问。 原因流按“观察现象 → 触发条件 → 原因或假设 → 影响传播 → 修正与结果”展开,每个节点同时显示证据等级。 ### 8.3 四种模式 1. `baseline`:展示正常机制、输入、输出和约束。 2. `current`:聚焦当前问题,按顺序展示现象和影响传播。 3. `proposed`:展示解决方法及其作用机制,必须标为 `conceptual` 或 `static`。 4. `verified`:只在存在匹配验证引用时启用,展示实际改善结果。 切换模式时,主视图、检查器、前后效果和验证门禁通过同一状态同步更新。 ### 8.4 单一运行时状态 ```javascript { algorithmId, issueId, mode, selectedTargetId, inspectorTab, questionId, comparisonState, visibleLayerIds, evidenceLevel } ``` 切换问题时重置目标焦点和检查器页签;用户关闭所有图层后保持关闭;不可用的 verified 模式必须回退并同步正确图层。 ### 8.5 动态效果 - 一次只突出一个当前焦点。 - 原因传播按数组顺序逐步显现,不让所有节点同时闪动。 - 选中节点使用轻量位置、阴影和边框反馈,不改变画布布局。 - 解决预演展示从问题目标到方案目标的作用路径。 - 验证结果展示修改前后对象、指标或状态的匹配比较。 - `prefers-reduced-motion: reduce` 下直接显示最终状态,取消移动和传播动画。 ## 9. 异常处理与降级 - 没有可联系 Agent:跳过 Agent 取证。 - Agent 无回答:标记 `unavailable`,继续其他证据路径。 - 用户跳过:记录缺失证据,保留较低结论等级。 - 回答冲突:设置 `结论冲突`,保留来源并增加解决冲突的验证动作。 - 没有修改后数据:隐藏 verified,允许明确标注的解决预演。 - 没有解决方案:隐藏 proposed,只展示问题和下一步。 - 没有可信坐标或数值:改用因果路径或状态关系,不绘制虚假比例。 - 视觉对象或证据引用失效:渲染前拒绝数据。 - HTML 发现外部资源:验证失败。 ## 10. 响应式、无障碍与离线要求 - 桌面端使用主画布和右侧活动检查器。 - 900px 以下检查器移动到画布下方。 - 560px 以下使用单列控制和内容布局。 - 节点支持点击、Enter 和 Space;方向键只在非表单控件聚焦时切换问题。 - 所有交互提供可见焦点、`aria-pressed`、角色和证据状态文本。 - 颜色不能作为唯一状态信号,必须配合标签、线型或图标。 - HTML 继续内联 CSS、数据和 JavaScript,不包含外部 URL、`link` 或 `script src`。 ## 11. 向后兼容 - `inquiry_session`、`problem_analysis` 和 `visualization_plan` 均为可选。 - 缺少新字段时继续使用现有 `issues`、`algorithm_views` 和 `task_validation`。 - 无 `algorithm_views` 的 legacy 报告继续隐藏领域画布并保留文本诊断。 - 现有 Markdown 基础章节语义不变;存在问题模型时增加主动取证摘要、问题机制和前后效果内容。 - 更新模式按稳定 issue ID 合并,不擦除历史证据状态变化。 ## 12. 预期文件范围 - `SKILL.md`:增加主动取证、停止规则、问题建模和自动选图流程。 - `references/report-schema.md`:增加三个可选扩展合同。 - `scripts/prepare_report.py`:验证新字段,渲染 Markdown,并校验 HTML 引用。 - `scripts/test_prepare_report.py`:新增合同、追问预算、自动选图、兼容和交互回归。 - `assets/interactive-report-template.html`:增加活动检查器页签和取证摘要区域。 - `assets/visualization-runtime.js`:扩展单一状态、因果路径、检查器和比较联动。 - `assets/visualization-adapters.js`:增加轻量因果路径适配策略,同时保留通用回退。 - `assets/visualization-styles.css`:实现确认后的轻量路径、原因流、响应式与 reduced-motion。 - `agents/openai.yaml`:更新 UI 描述和默认提示。 不修改 ParkingRobot 业务代码。 ## 13. 测试与验收 ### 13.1 Python 合同与工作流测试 - 无缺口时不生成问题。 - Agent 能回答时不重复询问用户。 - 用户问题按既定优先级产生且最多四个。 - 跳过、不可用、回答和冲突状态均正确归一化。 - 问题必须关联缺口和报告字段。 - 已验证原因、结果和 after 数据必须有来源。 - 原因链、解决机制和前后对象必须引用存在的视觉目标。 - 八类问题能选择预期视图;真正歧义时产生候选选择。 - legacy 报告继续完成 render、validate 和 update 往返。 ### 13.2 HTML 与 JavaScript 测试 - 轻量因果路径、活动检查器页签和取证摘要钩子存在。 - 节点选择同步检查器、原因流、解决机制和前后效果。 - proposed 和 verified 门禁遵守证据状态。 - 关闭最后一个图层后保持全隐藏。 - 问题切换、模式回退和图层状态不漂移。 - 影响传播顺序和 reduced-motion 行为正确。 - 输出不包含外部资源。 ### 13.3 端到端与浏览器 QA - 临时 legacy 报告和新问题模型报告均通过 CLI 往返。 - 分别验证无需追问、Agent 已回答、用户补充、用户跳过和结论冲突场景。 - 浏览器验证算法/问题选择、四模式、节点点击、Enter/Space、活动检查器页签、图层和前后效果。 - 验证桌面、900px、560px 和 reduced-motion。 - 若浏览器运行时不可用,明确记录为 `待验证风险`,不得以源码检查替代。 ## 14. 完成标准 - skill 能在证据不足时按三级策略主动取证,并遵守最多四个用户问题。 - 取得的回答可追溯到缺口、报告字段和证据来源。 - 问题背景、原因、影响、解决机制和改善结果形成结构化问题模型。 - 自动选图规则覆盖八类问题,并只在真正歧义时询问用户。 - HTML 使用轻量因果路径和活动原因检查器,动态展示问题、方案机制和验证效果。 - 新旧报告均通过自动化、CLI 安全门禁和相应浏览器验收。