Skip to main content
comet dashboard 启动一个本地只读的浏览器仪表盘。在左上角切换 Classic 与 Native 后,页面只显示当前工作流的概览和变更工作区:Classic 提供活跃/归档 change、五阶段进度、产物、任务、风险和 Git 摘要;Native 直接展示 portable 状态、验收、检查、阻塞和恢复信息。 只读,不会修改任何文件,可以随时安全启动,适合在开发过程中常驻一个标签页观察进度。 仪表盘支持亮色和暗色两种主题(见下方主题切换):

Comet Dashboard 亮色模式

Comet Dashboard 暗色模式

活跃变更概览:阶段步进条、产物分组、任务完成度环形图与风险提示

Comet Dashboard md预览

支持产物markdown预览

Comet Dashboard Supervisor Change

支持Supervisor Change顶层监督子Change

启动

在项目根目录运行:
默认会在 http://localhost:4321 启动并自动打开浏览器。终端会显示:
完整命令选项和脚本/CI 用法见 comet dashboard 命令
服务器只绑定 127.0.0.1 (localhost),不对外暴露。静态文件服务有路径穿越防护,产物预览有大小限制(256 KiB,超出标记 truncated)。

Classic / Native 切换

Dashboard 左上角提供 Classic / Native 工作流切换。两种工作区复用相同的项目概览、Changes Explorer、变更详情和状态侧栏布局,但不会同时显示。切换到 Native 后,Dashboard 直接读取 comet-state.yaml,只在 change 和状态版本匹配时补充本机 overlay;Dashboard 不重新运行检查,也不自行推导工作流事实。 每个 Native change 显示:
  • 当前 phase/status:Shape、Build、Verify、Archive,或等待用户/阻塞
  • Loop 的 iteration、attempt、actor 和 next action
  • Acceptance 的 passed、failed、blocked、pending 数量及逐项原因
  • Builder handoff、Runtime checks、Verifier 结论和风险
  • blockers、有限 history 与 history overflow 提示
  • brief、完整目标 Spec、comet-state.yamlverification.md 等用户可读产物
  • 本机 overlay 是否正在运行、已中断或缺失(缺失在已完成 change 上是正常的)
Native 视图提供“活跃 / 已归档 / 全部”筛选,并采用与 Classic 相同的 Markdown 预览抽屉。Changes Explorer 会先按页加载轻量列表,选中 change 后再加载完整详情;加载期间保留当前详情,失败时可以重试。完整诊断仍以 comet native status --details 和其他 Native CLI 输出为准。
Native 视图只读 portable YAML 的摘要和用户文档;不会暴露绝对路径、原始日志、 execution id 或本机 Runtime 文件,也没有推进、修复或归档按钮。所有状态变更仍由 Native CLI 和 Runtime 执行。

跨 Git worktree 查看 Supervisor Change 和子 Change

Dashboard 会扫描当前 Git 仓库已经注册的 worktree。每个 worktree 都会显示自己的分支或目录标签,因此来自其他工作目录的 Classic 和 Native change 仍然保持独立。 Native Supervisor Change 会显示子 Change 的完成进度,并提供展开按钮。展开后可以直接选择某个 child,查看它对应的阶段、工作区和详情;独立的 Native change 会继续作为根条目显示。
Dashboard 只负责发现和展示,不会创建 worktree、推进 Supervisor Change 或子 Change,也不会执行验证。请使用 /comet-nativecomet native 命令推进实际工作。

Classic 工作区布局

仪表盘采用三栏布局:左侧导航栏、中间变更详情、右侧侧边面板,顶部是项目信息和工具栏。

项目概览卡片

页面顶部是五张汇总卡片,每张都有一个从 0 开始的数字动画,一眼看清整个项目的健康度:

变更工作区

概览下方是变更工作区,左侧是 Changes Explorer 列表,右侧是被选中 change 的详情和侧边面板。 工作区会随视口宽度调整;即使左侧导航栏同时显示,中间详情和右侧面板也会保持在可见区域内,不需要横向滚动查找内容。 Changes Explorer 支持:
  • 标签页筛选:活跃 / 已归档 / 全部
  • 搜索框:按 change 名称、工作流、阶段实时筛选
  • 每张卡片显示:change 名称、当前阶段、任务完成度进度条(completed/total)和 verify 状态药丸(通过/失败/待验证/未知);状态同时以绿色、红色、琥珀色或中性色区分,便于快速判断。

每个 Classic change 能看到什么

选中一个 change 后,中间和右侧会展示它的完整状态。

生命周期阶段步进条

以五个圆点 + 连接线展示 open → design → build → verify → archive 的当前位置:
  • 已完成的阶段显示为 ✓ 蓝色实心
  • 当前阶段高亮显示阶段名
  • 未开始的阶段为灰色
右上角标记下一步推荐的 slash 命令(活跃 change)或归档状态。已归档 change 明确显示为完成,不会再次建议进入 verify。

关键产物(按来源分组)

产物不再是一个平铺列表,而是按来源分三组展示,并显示每个产物的状态: 每个产物行显示三种状态:
  • 已生成(蓝点):文件存在,点击可预览全文
  • 未生成(空心点):预期产物但尚未创建
  • 无需生成(灰点):当前模式/阶段不适用,例如 subagent-progressexecuting-plans 模式下
点击任意已生成的产物,会从右侧滑出产物预览抽屉(见下文)。 已归档 change 的 Superpowers 路径仍以项目根为基准解析,因此 change 目录移入当前 Classic OpenSpec 根目录的 changes/archive/ 后,Design Doc、Plan 和验证报告仍可查看。

任务进度环形图

任务进度用一个环形图(donut)+ 三列统计展示:
  • 环形图:完成度百分比,从 0% 动画填充;全部完成时变绿
  • 三列统计:已完成 / 剩余 / 分组数
  • 分组进度条:tasks.md 里每个 section 的完成度
  • 下一步提示:全部完成时提示「可以进入 Verify」,否则提示剩余多少项

右侧侧边面板

侧边面板根据 change 状态显示不同卡片:
活跃 change - 下一步建议:推荐的 slash 命令 + 原因 + 说明 - 风险提示:检测到的 info/warning/error 级风险项和恢复建议 - Git 快照:分支、HEAD、最近提交、未提交文件
已归档 change - 归档摘要:归档名、原名、归档时间和路径、任务完成度 - 风险提示:归档时的遗留风险 - Git 快照:归档时的 Git 状态

产物预览抽屉

点击任意已生成的产物,会从右侧滑出一个全屏高度的抽屉:
  • 标题区:产物名、完整文件路径(长路径自动换行,并提供一键复制)
  • 元数据:文件大小(B/KB/MB)和更新时间
  • 内容区:完整 Markdown 渲染,超过 256 KiB 时截断并提示 0.4.0-beta.5 起内容区从子集渲染器升级为完整渲染:
  • 完整 Markdown:支持标题、列表、表格、引用、任务列表、代码块(语法高亮)和行内格式,标题中的行内代码和加粗也能正确渲染。
  • Mermaid 图:代码块语言为 mermaid 时直接渲染为流程图/时序图等,重复标题生成唯一锚点。
  • 结构化产物.comet.yaml / YAML 和 handoff / checkpoint JSON 不再以原始文本显示,而是渲染为结构化表格:标量字段为键值行,files 等同构对象数组渲染为独立数据表。
  • 侧边预览 vs 全屏:侧边面板预览保持无干扰,不显示目录;切换到全屏后会显示目录(存在标题时),并提供展开/折叠控件。
抽屉打开时会记住当前滚动位置;点击遮罩或右上角 × 关闭后回到原位置,连续查看产物时不会跳回页面顶部。
产物 HTML 在注入 DOM 前会用 DOMPurify 清洗,危险 URL scheme 被阻断,Mermaid 以 securityLevel: ‘strict’ 运行,因此即使产物内容来自不可信来源也无法通过原始 HTML、事件处理器或松散的图渲染执行脚本。
如果产物文件存在但抽屉显示「当前 dashboard 服务返回的数据里没有全文内容」,重启 dashboard 服务后再刷新页面即可。

主题切换:亮色 / 暗色

仪表盘支持亮色暗色两种主题,在顶部工具栏右侧点击太阳/月亮图标切换。
  • 首次访问时,根据系统偏好prefers-color-scheme)自动选择主题
  • 手动切换后,选择会持久化localStorage(key 为 comet-theme),下次打开沿用
  • 切换在 <html data-theme> 属性上生效,避免首次渲染闪烁
主题偏好存储在浏览器本地,不会跨设备同步。在另一台机器或另一个浏览器上打开 dashboard 时,会重新读取系统偏好。

自动刷新

前端每 30 秒自动刷新一次快照,无需手动操作。也可以点击工具栏的「立即刷新」按钮手动刷新,刷新成功会弹出 toast 提示。
  • 自动刷新不会和手动刷新并发(有锁保护,避免重复请求)
  • 演示模式(?demo)下同样每 30 秒重新加载演示数据

演示模式

在 URL 加 ?demo 可以加载演示数据(不读真实 change),方便预览界面、截图或检查布局:
演示数据来自 web/demo.js,覆盖首屏、侧边栏、卡片、产物分组和抽屉的全部 UI 状态。

风险码参考

仪表盘的风险提示卡片会显示检测到的风险码:
从仓库子目录启动 Dashboard 时,它会先定位项目根目录。Classic 工作区依据 classic.artifact_layout 读取 docs/openspec/changes/ 或保留旧布局的 openspec/changes/,并从对应的 changes/archive/ 读取归档 change。Native 工作区依据项目配置读取 Native artifact root 下的状态。两部分都采用 只读、尽力而为 策略;采集失败会显示对应错误,不会伪装成空工作区,也不会阻止另一工作流的数据加载。

下一步

最后修改于 2026年8月13日