版本:2.88.0
name: task-visualizer description: “可视化任务依赖和进度(Gastown风格)”
任务可视化技能
v2.88关键变更(模型无关)
- 模型无关:使用
~/.claude/settings.json或CLI/env vars中配置的模型 - 无需标志:与配置的默认模型一起工作
- 灵活:与GLM-5、Claude、Minimax或任何配置的模型一起工作
- 设置驱动:通过
ANTHROPIC_DEFAULT_*_MODEL环境变量选择模型
ultrathink - 深呼吸。我们不是在这里写代码。我们在这里是为了在宇宙中留下印记。
愿景
任务可视化应该揭示通往完成的必然路径。
你的工作,一步一步
- 读取任务:加载当前状态和依赖关系。
- 映射关系:识别阻塞点和并行路径。
- 渲染视图:ASCII或Mermaid,一致且清晰。
- 推荐:突出显示下一个最佳行动。
超级思考原则在实践中
- 不同寻常地思考:寻找隐藏的瓶颈。
- 对细节着迷:保持状态准确。
- 像达芬奇一样计划:选择最清晰的表示。
- 工艺,而不是编码:首先使图表可读。
- 无情迭代:随着任务的变化而更新。
- 无情简化:去除视觉噪音。
任务可视化技能(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代码重启
恢复模式:
- 读取
.ralph/tasks.json - 查找状态为
正在进行或待定的任务 - 从最后一个检查点恢复执行
安全性:模式验证(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")