
Cursor 新增 GitHub Actions 工作流完成触发器后CI 失败可以自动进入日志分析、原因定位和修复建议流程。本文用一个 Node.js 项目演示如何配置自动分诊并给出可直接复用的智能体指令和安全边界。CI 红灯出现后最耗时间的往往不是修代码一次 Pull Request 提交后GitHub Actions 报错了。开发者通常要打开 Actions 页面找到失败任务展开日志再从几百行输出里识别第一条有效错误。如果问题涉及依赖版本、测试环境或多个文件后面还要切回编辑器搜索代码。一个五分钟能修好的错误前面的定位过程可能先花掉十几分钟。Cursor 在 2026 年 6 月发布的自动化更新中增加了Workflow run completed触发器。GitHub Actions 工作流在分支或 PR 上运行结束后可以触发常驻智能体继续处理。官方还提供了失败 Actions 分诊模板。需要注意的是“运行结束”不等于“运行失败”自动化指令仍要明确过滤成功、取消和跳过状态。Cursor 更新日志这类功能最合适的定位不是“让 AI 自动改完并合并”而是先替开发者完成重复的第一轮分诊。准备一个可以复现的 CI 工作流假设项目使用 Node.js测试命令已经写入package.json。在仓库中创建.github/workflows/ci.yml写入下面的工作流name:Node CIon:pull_request:branches:-mainpush:branches:-mainpermissions:contents:readjobs:test:runs-on:ubuntu-lateststeps:-name:Checkout repositoryuses:actions/checkoutv4-name:Setup Node.jsuses:actions/setup-nodev4with:node-version:22cache:npm-name:Install dependenciesrun:npm ci-name:Run testsrun:npm testGitHub 要求工作流文件放在.github/workflows目录使用.yml或.yaml扩展名。GitHub Actions 工作流语法这里有两个值得保留的细节使用npm ci让 CI 严格按照锁文件安装依赖默认只授予contents: read测试任务本身不需要写仓库。如果项目没有package-lock.jsonnpm ci会直接失败。这个失败并非坏事它把“开发环境能装、CI 环境装不了”的隐患提前暴露出来了。用/automate创建失败分诊任务更新 Cursor 后在本地智能体会话中输入/automate然后描述需要自动化的任务。根据官方说明它会据此配置触发器、指令和工具。触发条件建议选择GitHub → Workflow run completed不要只写一句“CI 失败后帮我修复”。这类指令权限太宽也没有规定交付格式。可以使用下面这份提示词当 GitHub Actions 工作流运行完成时执行。 处理规则 1. 读取 workflow、branch、commit、PR 和 conclusion。 2. 如果 conclusion 不是 failure 或 timed_out立即停止不创建评论或 PR。 3. 获取失败 job 和失败 step 的日志只围绕本次运行分析。 4. 找出第一条具有因果意义的错误不要把后续连锁报错当作根因。 5. 在仓库中定位相关代码、配置、依赖文件和最近变更。 6. 输出以下内容 - 失败位置 - 根因判断 - 支持判断的日志证据 - 最小修复方案 - 建议执行的验证命令 - 当前判断的置信度 7. 置信度低于 0.8 时只提交分析不修改代码。 8. 不修改密钥、发布流程、权限配置和生产环境文件。 9. 不自动合并 PR不绕过测试不删除失败测试。 10. 如果是明显且低风险的代码错误可以创建修复分支和草稿 PR PR 中必须列出改动文件、验证结果和仍需人工确认的风险。这份提示词的核心不是让智能体“更大胆”而是把它的动作拆成观察、判断、修改和交付四层。我更建议第一次运行时删掉第 10 条只让它输出分析报告。连续观察几次确认日志读取、根因判断和权限范围都符合预期再允许创建草稿 PR。判断日志时先找第一条有效错误下面是一段常见的测试失败输出FAIL tests/order.test.js Expected: 200 Received: 500 TypeError: Cannot read properties of undefined (reading id) at createOrder (src/services/order.js:42:18)低质量分诊可能只复述“期望 200实际返回 500”。有效的分诊应该继续追到src/services/order.js:42检查id所属对象为什么是undefined再结合本次提交的 diff 判断是测试数据缺失、参数结构变化还是业务代码没有处理空值。可以把排查顺序固定成一条工作流否是否是工作流完成是否失败停止读取失败 Job提取第一条有效错误定位代码与最近变更置信度是否足够输出分析报告生成最小修复执行验证创建草稿 PR这里的“第一条有效错误”很重要。编译失败后测试、覆盖率和产物上传可能一起失败但后三项只是连锁反应。智能体如果同时处理所有红色日志很容易把一个简单问题修成一次大范围改动。三道边界比“自动修复”更重要只允许最小改动自动化最怕顺手重构。提示词应明确限制修改范围不升级无关依赖、不调整公共接口、不格式化整个仓库。一个空值错误只改必要代码和对应测试不要顺便重写服务层。不接触生产权限GitHub 官方特别提醒基于workflow_run启动的后续工作流可能获得密钥和写入令牌如果运行不受信任的代码可能引入缓存投毒或意外权限暴露风险。GitHub 事件文档因此测试阶段应使用只读权限。任何部署密钥、发布步骤和生产配置都不应交给首次上线的自动分诊任务。修复必须重新验证智能体创建修复后至少重新运行npmcinpmtest项目存在 lint、类型检查和构建任务时再补充npmrun lintnpmrun typechecknpmrun build验证失败就保留日志不要通过删除测试、降低覆盖率阈值或添加忽略规则制造“绿灯”。一次合格的自动分诊应该交付什么开发者最终需要的不是一句“发现测试失败”而是一份可以直接做决定的报告失败任务Node CI / Run tests 根因位置src/services/order.js:42 日志证据order.user 为 undefined读取 id 时抛出 TypeError 关联变更本次 PR 修改了 createOrder 的参数结构 最小方案调用处传入 user服务层增加输入校验 验证范围单元测试、lint、构建 置信度0.91 人工确认空用户应返回 400 还是业务错误码看到这份报告维护者可以快速判断直接接受修复、补充业务规则还是交给原作者处理。这才是自动化真正节省的时间——不是省掉敲几行代码而是压缩从“CI 红了”到“知道该怎么修”的路径。如果长期使用 Cursor、ChatGPT Plus、Claude Pro、Gemini Advanced、Grok 或 Kiro也可以通过gpt108.com了解相应会员充值需求。它的定位是第三方 AI会员充值平台不替代工具本身使用前应看清套餐、账号和售后规则。结论先自动分诊再逐步开放修改权限Cursor 的工作流完成触发器值得用但不适合第一天就接管修复和合并。更稳妥的行动顺序是先配置只读分诊观察三到五次真实失败确认它能识别根因而不是追逐连锁报错后再开放最小代码修改和草稿 PR 权限。生产部署、密钥配置与最终合并继续保留人工审核。