SuperAPI AI 工具集

prune-workflows

办公与效率

查看项目

更新于 10-16 00:02

技能介绍

用途:批量取消流水线中堆积的陈旧非终态工作流,属于维护操作,而非工作流阶段。它封装了 prune_stale_workflows 编排动作,提供“先试运行再确认”的交互体验,让用户在任何状态变更前先看到候选集。

主要能力:清理符合陈旧阈值的工作流;默认陈旧阈值为 10080 分钟(7 天),可用 thresholdMinutes 调整;默认包含 oneshot 工作流,可用 includeOneShot 调整。清理时除底层取消路径发出的 workflow.cancelled 事件外,还会发出 workflow.pruned 事件,便于下游区分用户主动取消与批处理清理。

使用方式:触发条件包括运行 /exarchos:prune 命令,或用户说“prune workflows”“clean stale workflows”“pipeline cleanup”。第一步始终以 dryRun: true 调用 mcp__plugin_exarchos_exarchos__exarchos_orchestrate,参数为 action: "prune_stale_workflows" 与 args: { dryRun: true },仅做候选选择与保护评估,不变更状态。随后以表格展示候选与跳过的条目,若无候选且无跳过则提示“No stale workflows to prune. Pipeline is clean.”并退出。接着等待用户明确选择 proceed、abort 或 force,不得自动继续。proceed 时以 dryRun: false 再调用;force 时额外传入 force: true,跳过保护但仍记录审计信息;abort 则不再次调用。最后汇总结果。

保护机制:开放 PR 检查会执行 gh pr list --head <branch> --state open,若有结果则跳过,原因键为 open-pr;近期提交检查会执行 git log --since "24 hours ago" origin/<branch>,若有提交则跳过,原因键为 active-branch。force: true 会绕过这两项检查,但跳过内容会记录在 workflow.pruned 事件负载的 skippedSafeguards 中。状态中没有 branchName 的工作流因无 PR 或分支活动,会短路保护并直接符合清理条件。

适用场景:需要批量清理流水线中长时间未推进的非终态工作流时。限制:需要存在 exarchos 状态目录且含一个或多个非终态工作流;保护检查需要 PATH 中有 gh 和 git;该技能不宜在每个会话中运行,应仅在流水线堆积明显时使用;force 应仅在用户明确同意时使用。其余细节暂未提供。