任务可视化器 task-visualizer

任务可视化器是一个用于可视化任务依赖和进度的工具,它遵循Gastown模式,支持ASCII和Mermaid图表生成,帮助识别任务阻塞点和并行路径,优化多代理编排。

项目管理 0 次安装 0 次浏览 更新于 3/4/2026

版本:2.88.0

name: task-visualizer description: “可视化任务依赖和进度(Gastown风格)”

任务可视化技能

v2.88关键变更(模型无关)

  • 模型无关:使用~/.claude/settings.json或CLI/env vars中配置的模型
  • 无需标志:与配置的默认模型一起工作
  • 灵活:与GLM-5、Claude、Minimax或任何配置的模型一起工作
  • 设置驱动:通过ANTHROPIC_DEFAULT_*_MODEL环境变量选择模型

ultrathink - 深呼吸。我们不是在这里写代码。我们在这里是为了在宇宙中留下印记。

愿景

任务可视化应该揭示通往完成的必然路径。

你的工作,一步一步

  1. 读取任务:加载当前状态和依赖关系。
  2. 映射关系:识别阻塞点和并行路径。
  3. 渲染视图:ASCII或Mermaid,一致且清晰。
  4. 推荐:突出显示下一个最佳行动。

超级思考原则在实践中

  • 不同寻常地思考:寻找隐藏的瓶颈。
  • 对细节着迷:保持状态准确。
  • 像达芬奇一样计划:选择最清晰的表示。
  • 工艺,而不是编码:首先使图表可读。
  • 无情迭代:随着任务的变化而更新。
  • 无情简化:去除视觉噪音。

任务可视化技能(v2.26)

提供ASCII和Mermaid任务依赖可视化,遵循Gastown模式进行多代理编排。

特性

  • ASCII依赖图
  • 状态跟踪图标
  • 阻塞任务检测
  • 并行执行提示
  • Mermaid图表生成

ASCII可视化格式

┌─────────────────────────────────────────────────────────────────┐
│                    TASK DEPENDENCY GRAPH                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ✓ #1 设计API架构 ──────────────────► 已完成    │
│            │                                                    │
│  ┌─────────┴─────────┐                                         │
│  │                   │                                         │
│  ▼                   ▼                                         │
│  ✓ #2 创建        ✓ #3 实现                             │
│    项目结构          数据模型                              │
│    已完成            已完成                                │
│    │                 │                                     │
│    └────────┬────────┘                                     │
│                 │                                              │
│                 ▼                                              │
│  ⚙ #4 实施REST API端点 ────────► 正在进行      │
│        ⚠ 被#2, #3阻塞(现已解决)                     │
│                 │                                              │
│  ┌──────────────┴──────────────┐                               │
│  │                             │                               │
│  ▼                             ▼                               │
│  ○ #5 编写                   ○ #6 创建API                  │
│    集成测试                  文档                 │
│    待定                      ⚠ 被#4阻塞               │
│    待定                       ⚠ 被#4阻塞             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

状态图标

图标 状态 描述
已完成 任务成功完成
正在进行 当前正在处理
待定 等待开始
被阻塞 被依赖关系阻塞
失败 任务失败

使用方法

读取任务

# 从.ralph/tasks.json读取当前任务
cat .ralph/tasks.json | jq '.tasks'

可视化依赖关系

生成ASCII可视化:

任务#1设计    ─────────► 已解决
                      │
          ┌───────────┴───────────┐
          ▼                       ▼
任务#2结构         任务#3模型
   已解决                   已解决
          │                       │
          └───────────┬───────────┘
                      ▼
            任务#4端点
              ⚠ 被#2, #3阻塞

Mermaid生成

为文档生成Mermaid图表:

flowchart TB
    T1[✓ 设计API] --> T2[✓ 项目结构]
    T1 --> T3[✓ 数据模型]
    T2 --> T4[⚙ REST端点]
    T3 --> T4
    T4 --> T5[○ 集成测试]
    T4 --> T6[○ API文档]

    style T1 fill:#90EE90
    style T2 fill:#90EE90
    style T3 fill:#90EE90
    style T4 fill:#FFD700
    style T5 fill:#D3D3D3
    style T6 fill:#D3D3D3

并行执行检测

共享相同依赖关系的任务可以并行运行:

并行执行提示:
任务#5和#6可以在#4完成后并行运行。
建议的代理分配:
  - #5(测试):Codex(gpt-5.2-codex)
  - #6(文档):Gemini(gemini-2.5-pro)

与Ralph集成

ralph tasks           # 显示所有任务及其可视化
ralph tasks --graph   # ASCII依赖图
ralph tasks --mermaid # Mermaid图表
ralph tasks --blocked # 仅显示被阻塞的任务
ralph tasks --parallel # 显示可并行的任务

任务持久性

任务存储在.ralph/tasks.json中,并在以下情况下存活:

  • 会话重启
  • 代理失败
  • Claude代码重启

恢复模式:

  1. 读取.ralph/tasks.json
  2. 查找状态为正在进行待定的任务
  3. 从最后一个检查点恢复执行

安全性:模式验证(CWE-1286预防)

强制性:所有任务操作必须根据.ralph/tasks-schema.json进行验证:

读取任务前

# 在解析前验证JSON结构
if ! jq empty .ralph/tasks.json 2>/dev/null; then
  ERROR: "tasks.json中的无效JSON - 文件可能已损坏"
  RECOVERY: "备份当前文件并重新初始化"
fi

# 验证模式(如果安装了ajv)
if command -v ajv &>/dev/null; then
  ajv validate -s .ralph/tasks-schema.json -d .ralph/tasks.json
fi

写入任务前

# 在写入前验证任务内容
validate_task_content() {
  local content="$1"
  # 检查maxLength(2000字符)
  if [ ${#content} -gt 2000 ]; then
    ERROR: "任务内容超过2000字符限制"
  fi
  # 检查禁止字符(注入预防)
  if [[ "$content" =~ [\<\>\{\}\$\`] ]]; then
    ERROR: "任务内容包含禁止字符:< > { } $ \``
  fi
}

输入清理规则

字段 最大长度 允许模式 禁止
content 2000 ^[^<>{}$\``]*$ `< > { } $ ``
message 5000 ^[^<>{}$\``]*$ `< > { } $ ``
project 500 ^[a-zA-Z0-9._/-]+$ 特殊字符
session_id 100 ^[a-zA-Z0-9._-]*$ 特殊字符

安全任务创建示例

# 安全:清理任务创建
new_task:
  id: $(jq '.tasks | length + 1' .ralph/tasks.json)
  content: $(validate_task_content "$USER_INPUT")  # 必须验证
  status: "pending"  # 必须是枚举值
  created_at: $(date -u +"%Y-%m-%dT%H:%M:%SZ")