SuperAPI AI 工具集

prune

办公与效率

查看项目

更新于 10-16 00:02

技能介绍

用途:批量取消管道中累积的过期非终态工作流,属于维护操作而非工作流阶段。触发场景包括用户执行 prune 命令,或说“prune workflows”“clean stale workflows”“pipeline cleanup”。

主要能力:以 dryRun 先做候选选择与安全检查,不修改任何状态;向用户展示候选表与跳过项;等待显式确认后执行取消;每个被清理工作流会发出 workflow.cancelled 与 workflow.pruned 事件,后者带 triggeredBy:'manual' 及可选的 skippedSafeguards,便于下游区分批量清理与用户主动取消。

使用方式:先用 exarchos:exarchos_orchestrate({ action: "prune_stale_workflows", args: { dryRun: true } }) 预览,可选 thresholdMinutes(默认 10080 即 7 天)与 includeOneShot(默认 true)。用户可选 proceed、abort 或 force。proceed 时以 dryRun: false 执行;force 时额外传 force: true,绕过安全检查但仍记录被绕过的检查名。为观察候选,需使用 scope: "all" 查看管道,因为默认视图按仓库范围会隐藏 legacy 行。

安全检查:若 gh pr list --head <branch> --state open 有结果,则因 open-pr 跳过;若 git log --since "24 hours ago" origin/<branch> 有提交,则因 active-branch 跳过;无 branchName 的工作流不触发这两项检查,可直接被清理。

适用场景:管道中可见大量不活跃工作流需批量清理时使用,不适合每个会话都运行。

限制:需存在含非终态工作流的 exarchos 状态目录,否则需先初始化;安全检查依赖 PATH 中有 gh 与 git,缺失时会短路报错,可手动确认无开放 PR 后用 force: true 重试;所有工作流均已干净时输出“No stale workflows to prune”。反模式包括跳过 dry-run、不展示表格就自动确认、默认使用 force、逐个手动 cancel,以及在每次会话中运行。