用途
discover-tasks 用于从已配置的任务来源中发现任务、过滤无效任务并按优先级排序,最终把候选任务呈现给用户选择。它通常作为 /next-task 工作流的第二阶段被调用(在策略选择之后),也可以单独使用,让用户从配置好的来源中挑选任务。
主要能力
技能按阶段执行:
- 加载策略与已认领任务:读取工作流状态(workflow-state.js)中的 policy,并从任务注册表读取已被 worktree-manager 认领的任务 ID 集合,用于后续排除。
- 按来源抓取任务:支持多种来源类型:
github/gh-issues:通过 GitHub CLI(gh issue list)gh-projects:GitHub Projects (v2 boards),需要通过gh project item-list拉取,且要求projecttoken 权限(如权限不足需执行gh auth refresh -s project),并会过滤只保留 ISSUE 类型(排除 PULL_REQUEST、DRAFT_ISSUE)gitlab:通过 GitLab CLI(glab issue list)local/tasks-md:本地 Markdown 文件(如 PLAN.md、tasks.md、TODO.md 中的未完成勾选项)custom:CLI/MCP/Skill 工具other:由智能体解释描述
- 收集与 PR 关联的 Issue(仅 GitHub):对 GitHub 类来源,抓取开放 PR(上限 100 条),通过分支名后缀、PR 正文中的关闭关键词(close/fix/resolve 等)以及 PR 标题中的
(#N)约定,构建已有关联 PR 的 issue 编号集合;其他来源会跳过此阶段并安全地使用空集合。 - 过滤与打分:
- 排除已被认领的任务
- 排除已有开放 PR 的 issue(仅 GitHub 类来源)
- 按优先级过滤(bugs / security / features 映射到对应标签;
continue或all表示不过滤) - 对符合条件的任务打分并降序排序:critical/P0 加 100,high/P1 加 50,security 加 40,small/quick 加 20,超过 30 天的 bug 加 10
- 通过 AskUserQuestion 呈现给用户:取分数最高的前 5 个任务,生成选项标签(标签长度上限 30 字符,超出截断并加省略号),描述中显示分数与部分标签。
- 更新状态:把选中任务的 id、来源、标题、描述、标签、URL 写入工作流状态,并标记阶段完成(记录分析任务数与选中任务编号)。
- 发表评论(仅 GitHub):对 GitHub 类来源,在选中 issue 下发表
[BOT] Workflow started for this issue.评论;其他来源跳过。
使用方式
- 由用户请求触发:当用户要求 "discover tasks"、"find next task"、"prioritize issues"、"what should I work on"、"list open issues" 时使用。
- 作为 /next-task 工作流第二阶段自动调用。
- 输出格式会展示选中任务:
Task(#{id} - {title})、Source、URL,随后进入 worktree 设置。 - 依赖对应来源的命令行工具与权限:GitHub 用
gh(Projects 需project权限)、GitLab 用glab,并且gh/glab抓取默认以 100 条为上限。
适用场景
适用于需要从多个任务/问题来源中集中发现待办、去重(排除已认领和已有 PR 的项)、按优先级和标签排序,并由用户人工选择一个任务继续处理的开发工作流场景。
限制与约束
- 任务选择必须使用 AskUserQuestion 交互,而非纯文本输出。
- 选项标签必须不超过 30 个字符。
- 必须排除已被其他工作流认领的任务。
- 必须排除已有开放 PR 的 issue(GitHub 与 GitHub Projects 来源)。
- PR 关联检测最多覆盖 100 个开放 PR(
--limit 100为抓取上限),仓库开放 PR 超过此数时部分关联 issue 可能未被排除。 - 仅呈现排序后的前 5 个任务。
- 当未找到任务时:建议创建 issue、建议运行 /audit-project、建议使用
all优先级过滤。 - gh-projects 来源若缺少 projectNumber 或 owner 会抛出错误。
暂未提供的细节
有关收费、价格、运行平台要求、具体性能指标等资料中未提供。