SuperAPI AI 工具集

plan-dag

通用与其它

查看项目

更新于 10-16 02:39

技能介绍

用途:把当前计划渲染成依赖关系 DAG,直观展示排期顺序、关键路径与可并行的工作。输出为高分辨率 PNG,带状态填充、"下一步可用"高亮和双边框收尾节点,由样式化 graphviz 布局经无头 Chromium 栅格化,再通过 SendUserFile 发送给用户。该技能不绑定具体仓库,假定使用带子 issue 链接与依赖描述文字的 GitHub issue 追踪器,不对标签、领域分类或仓库特有流程做假设。

主要能力:发现范围内 issue/子 issue/PR;将每个节点分类为 done、in_progress 或 open;从子 issue 链接、正文或评论中的依赖语句(Depends on、Blocks、Part of、Closes 等)及 PR/提交引用构建边;生成 JSON IR 后调用渲染器输出 PNG。状态以填充色与前置 emoji 双重编码:完成✅、进行中🟡、下一步可用🎯、阻塞⬜、收尾🏁。边分两层:排序边按来源节点状态着色,隶属边以浅灰细线表示。伞形节点在满足条件时自动聚类。

用法:运行仓库中 plan-dag-render.py 脚本,需指定 --out 路径,默认带 emoji 状态指示,可用 --emoji=off 关闭。典型命令为 "$SCRIPT" /tmp/plan.json --out /tmp/plan-dag.png。渲染器需 dot(graphviz)在 PATH 中,栅格化需 node(≥18)与 Playwright Chromium,两者都会提前检查并在缺失时报错,不会静默回退到文本或 ASCII。缺少 IR 字段或校验失败时应修正 IR,不得手绘绕过。

适用场景:在 what's next 调查后确定顺序;被问及某个伞形 spec 还剩什么;在挑选下一分支前查看哪些节点能解锁最多下游工作;spec 分叉出多个子 issue 且依赖边非全线性时。

限制:单一 PR 的 spec、未解决的设计问题、仅有三个及以下节点的线性链不适用。状态必须每次重新抓取,不得复用上次分类;无引用来源的边不得绘制。每次响应只渲染一个 DAG,关键路径与下一步建议放在正文而非图内。超过约 3 个已完成节点时建议在正文折叠;超过 10 个带交叉边的节点时可拆分为按轨道的多个 DAG。测试脚本位于 scripts/plan-dag-render.test.sh,PNG 冒烟测试在 Playwright Chromium 不可用时自动跳过。