hud — Real-Time Task Status HUD
name
hud
description
任务实时状态 HUD(Head-Up Display):以飞行员 HUD 的方式,在每个任务执行节点实时推送状态更新。HUD 不打断工作流,而是以紧凑的可视化格式呈现进度、资源消耗、风险预警。与 progress-tracking(事后报告式)不同,hud 是主动推送式——持续显示当前状态,让用户始终知道"现在在哪"。
when to activate
用户说以下话时激活:
- "hud"
- "显示进度"
- "实时状态"
- "给我一个仪表盘"
- "显示当前任务状态"
- "autopilot"(自动与 autopilot 技能联动)
- 当执行时间预计超过 5 分钟的任务时自动触发
protocol
HUD 布局规范
标准 HUD 格式(单行/双行):
┌─────────────────────────────────────────────────────────┐
│ ⬡ [项目名] ⏱ 12:34 ████████░░░░░░░░ 58% 😐 │
│ [当前任务] ──▶ [下一步] │
│ ⚠ 风险: [如有] │
└─────────────────────────────────────────────────────────┘
ANSI 彩色 HUD(CLI):
⬡ myproject 12:34 ▓▓▓▓▓▓▓▓░░░░ 58% ⏳ build:✓ test:▓▓
→ Writing index.ts ──▶ Running tests
⚠ slow query detected (>2s)
纯文本 HUD(无 ANSI):
[========----] 58% | myproject | 12:34 | BUILD:OK | TEST:RUN
-> Writing index.ts -> Running tests
[!] slow query detected (>2s)
HUD 数据源
HUD 自动读取以下数据:
| 数据字段 | 来源 | 更新频率 |
|---|---|---|
| 项目名 | 当前工作目录名 | 静态 |
| 耗时 | 计时器 | 每节点 |
| 进度条 | 已完成任务/总任务 | 每节点 |
| 当前节点 | 当前执行步骤名 | 每节点 |
| 下一步 | 队列中下一个任务 | 每节点 |
| 风险预警 | 执行过程中检测 | 实时 |
| 情绪指标 | 错误率/成功率 | 每节点 |
HUD 更新协议
更新触发点:
- 任务节点开始 → 显示节点名 + 开始时间
- 任务节点完成 → 更新进度 + 显示耗时
- 检测到风险 → 在 HUD 底部追加警告行
- 任务队列变化(添加/删除)→ 重绘进度条
- 每 30 秒(无其他事件)→ 发送心跳更新
风险等级与颜色:
- 🟡 WARNING(黄):可能延迟,但不阻塞
- 🟠 ALERT(橙):需要关注,可能影响进度
- 🔴 CRITICAL(红):阻塞性问题,需要人工介入
超时规则:
- 单节点预估时间超过 5 分钟时,显示 ⏳ 并预估剩余时间
- 单节点实际时间超过预估 2 倍时,触发 ALERT
- 连续 3 个节点超时,升级为 CRITICAL 并暂停,等待用户确认
HUD 格式化 API
提供以下 HUD 格式化函数(可在任何执行上下文中调用):
hud_start(project_name, total_steps):
┌────────────────────────────────────────┐
│ ⬡ [project_name] ⏱ 00:00 │
│ [====--------] 0/[total_steps] │
│ → 初始化... │
└────────────────────────────────────────┘
hud_update(current_step, next_step, progress_pct, elapsed):
┌────────────────────────────────────────┐
│ ⬡ [project_name] ⏱ [elapsed] │
│ [██████--------] 60% [X/Y] │
│ ✓ [完成步骤] │
│ → [当前步骤] ──▶ [下一步] │
└────────────────────────────────────────┘
hud_warn(level, message):
│ ⚠ [level] [message] │
hud_done(summary):
┌────────────────────────────────────────┐
│ ✅ 完成! ⏱ [total_time] │
│ ████████████████ 100% │
│ → [最终结果摘要] │
└────────────────────────────────────────┘
examples
Example 1:多步骤重构任务
┌──────────────────────────────────────────────────────────┐
│ ⬡ react-ts-migration ⏱ 08:23 ████████░░░░░░ 47% │
│ Writing index.ts ──▶ Running type check │
│ ✅ Audit complete (42 files, 18 need migration) │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ ⬡ react-ts-migration ⏱ 14:05 ██████████████░░ 82% │
│ ✓ Type fix (43 errors → 7) ──▶ Final build │
│ ⚠ WARNING: 3 components use dynamic 'any' — manual review│
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ ✅ 完成! ⏱ 17:42 │
│ ████████████████ 100% │
│ → 42 files migrated, 0 build errors, 3 warnings │
└──────────────────────────────────────────────────────────┘
Example 2:数据处理 Pipeline
[████████░░░░░░░░░] 45% | etl-pipeline | 23:15 |
-> Parsing CSV (2.3M rows) -> Schema validation -> Loading DB
[!] ALERT: Row 4821 has missing 'user_id', skipping...
[memory: 1.2GB/4GB]
notes
- HUD 输出永远不超过 4 行(不含警告),超出时旧行自动滚动出视图
- 在
progress-tracking技能的上下文中,HUD 作为其前端展示层 - 与
autopilot联动时,HUD 默认激活;用户说 "hud off" 可禁用 - 支持 ANSI 颜色代码,在不支持彩色的终端自动降级为纯文本
- HUD 每次更新之间保留前一次的状态(diff 显示),避免信息刷屏