loop-engineering 实战:在 Cursor 中实现 Changelog Drafter 循环(Automations 调度 + 草稿隔离 + 人工发布闸门)
人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址https://gitcode.com/gh_mirrors/lo/loop-engineering点击查看免费下载本文以 loop-engineering 仓库中 Cursor 平台的 Changelog Drafter 示例文档为核心完整讲解如何用 CursorAutomations云端定时任务驱动changelog-scan与draft-release-notes两个 Skill每天自动扫描合并记录并产出RELEASE_NOTES_DRAFT.md草稿同时通过.cursor/rules/、最小权限工具与人工发布闸门确保「只提议、不发布」。读完本文你将掌握在 Cursor 中搭建一条低成本、低风险、高回报的发布说明自动生成循环的完整实操方案并理解其背后的 Skill 契约与状态机设计。一、Changelog Drafter 模式先讲清楚这条循环在做什么在进入 Cursor 的具体配置之前先明确这条循环的业务边界。根据 patterns/changelog-drafter.md 的定义Changelog Drafter 的目标是扫描自上次发布或按固定节奏以来的合并 PR、提交与标签产出一份高质量、分类清晰的发布说明 / CHANGELOG 草稿由人类审阅批准后才允许发布或打 tag。它是一条典型的L1 草稿循环draft-only循环本身只负责「读 提议」永远不执行publish。这正是它在 Cursor 示例中被定义为低风险、最高 ROI循环的原因——第一周严格限制为只允许写两个文件RELEASE_NOTES_DRAFT.md草稿文件changelog-drafter-state.md状态文件推荐调度节奏来自 pattern 文档活跃项目/loop 1d早晨或收工前最合适发布准备期通过 tag webhook 或 GitHub Actionon: [release, workflow_dispatch]手动触发节奏较慢的项目每周一次即可。这是一条绝佳的「非高峰时段 / 冲刺收尾」循环紧急程度低于 CI Sweeper 或 PR Babysitter适合作为 Daily Triage 稳定之后的第二条或第三条循环。二、Cursor 落地的整体设计Automations .cursor/skills/.cursor/rules/Cursor 平台实现该循环的完整示例位于 examples/cursor/changelog-drafter.md其整体架构由三块拼成组件作用位置Automations云端定时任务或 GitHub 事件触发器负责按节奏唤起循环Cursor 云端管理仓库之外.cursor/skills/持久化的项目级 Skill 上下文存放共享的 scan / draft 两个技能项目仓库内.cursor/rules/常驻规则声明双文件写入范围与发布拒绝清单项目仓库内关键设计约束原文强调第一周保持 L1Automation 只能写RELEASE_NOTES_DRAFT.md与changelog-drafter-state.md人类拥有所有发布动作的所有权。规则是建议性而非强制沙箱.cursor/rules/只是始终开启的提示不是被强制执行的文件沙箱因此必须用「最窄可用的工具权限 仓库权限范围」来兜底。Automation 不需要 release、tag、Discussions 或 merge 权限——如果配置允许移除打开 PR工具就移除Cursor Automations 默认可以开 PR否则就以「没有可推送分支 / 开 PR / 合并的凭据」来运行并把两文件 diff 导出为工件交给人类应用。三、Setup把共享 Skill 拷进 Cursor 的项目路径示例文档给出了可直接复制的安装命令。由于两个核心 Skill 在仓库的 starters 中以.claude/、.grok/、.codex/等多份实现存在Cursor 侧采用复制共享实现的方式接入mkdir -p .cursor/skills/changelog-scan \ .cursor/skills/draft-release-notes cp starters/changelog-drafter/.claude/skills/changelog-scan/SKILL.md \ .cursor/skills/changelog-scan/SKILL.md cp starters/changelog-drafter/.claude/skills/draft-release-notes/SKILL.md \ .cursor/skills/draft-release-notes/SKILL.md cp starters/changelog-drafter/changelog-drafter-state.md.example \ changelog-drafter-state.md这些命令的来源都在仓库内可核对两个 Skill 的 Claude 版实现changelog-scan/SKILL.md 与 draft-release-notes/SKILL.md状态文件模板starters/changelog-drafter/changelog-drafter-state.md.exampleStarter 的完整说明starters/changelog-drafter/README.md。复制完成后把双文件写入范围 发布拒绝清单写进.cursor/rules/作为常驻指令。至此调度层Automations、技能层Skills、规则层Rules三件套齐备。四、Automation Prompt一周期的完整可运行 Prompt示例文档给出了完整的自动化 Prompt这是整条循环的「大脑」。创建一个每日 Automation或使用绑定了发布工作流的 GitHub / webhook 触发配上如下 PromptRead AGENTS.md, changelog-drafter-state.md, and the existing release-note style. Run the changelog-scan skill for merges to the default branch since the last release tag or the last completed scan window. For every included item, cite its PR number or commit SHA. Exclude bot-only dependency updates and internal chores unless they are security-relevant. Surface breaking and security changes at the top for human review. Run draft-release-notes and write RELEASE_NOTES_DRAFT.md. Update changelog-drafter-state.md with the exact scan window, source count, draft path, and status pending human review. Only those two files may be changed in the Automations sandbox. Do not edit CHANGELOG.md. Do not create or push tags, publish a GitHub Release, post to Discussions, open or merge a pull request, or send release notifications. Stop and request human review when sources conflict or attribution is unclear.这份 Prompt 把 pattern 文档中的「典型运行周期」压缩成了 Automation 可直接执行的指令要点包括先读AGENTS.md、状态文件与既有发布说明风格保证语气一致每个条目必须引用 PR 号或 commit SHA可溯源排除 bot 依赖更新与内部杂务除非涉安全breaking / security 置顶供人审显式声明「只允许改两个文件」「禁止 tag / Release / Discussions / PR / 通知」冲突或归属不明时停下请求人审。五、Skill 契约拆解changelog-scan 与 draft-release-notes 的源码级细节两个 Skill 的具体契约定义在 starters 的 Grok 版本中最为完整Claude 版只是声明与 Grok 版同一契约见 .claude 版 changelog-scan实现见 starters/changelog-drafter/.grok/skills/changelog-scan/SKILL.md 与 starters/changelog-drafter/.grok/skills/draft-release-notes/SKILL.md。5.1changelog-scan发现与分类输入由循环提供上次 release tag 或上次运行时间戳来自 state 或 git、当前日期、可选的 since 覆盖值。输出每个显著条目的结构化块 末尾的 Scan Summary。条目块格式如下### PR #1234 — feat(auth): add magic link login (merged 2026-06-08) - Type: feature - Labels: enhancement - Breaking: no - Security: no - Linked: #1220 - Summary (one sentence from PR or commit): Users can now log in via emailed magic links. - Files touched (high level): auth/, emails/收录规则Skill 内明文规定窗口内所有合并到 main 的 PRmain 上直接提交且属于用户可见类型conventional commit 的feat/fix/perf/security或有关联 issue忽略纯依赖升级、内部杂务、bot PR除非涉安全——那些归 dependency-sweeper 管。必须额外浮出的信号含 BREAKING / breaking change /!conventional commit 的提交CVE、vuln、security 相关关键词或标签含 deprecate / remove 措辞的条目。末尾的 Scan Summary固定结构## Scan Summary - Total items: N - Features: N - Fixes: N - Breaking: N (list them) - Security: N (list them) - Recommended next action for loop: draft-release-notes | human review needed first | too many items — split window最后一行Recommended next action直接驱动循环下一步是直接起草、先人审、还是拆分窗口——这是把判断权交给扫描结果而不是让 Agent 自行发挥的关键设计。Skill 还强制要求「引用来源PR 号 / SHA不得编造细节」。5.2draft-release-notes把结构清单变成可发布的草稿输入changelog-scan的结构化输出与 Summary、上一版本号来自 state、目标版本或 unreleased / next、可选的 Release voice 语气指导来自 AGENTS.md 或项目 Skill。输出写入RELEASE_NOTES_DRAFT.md的待审草稿采用标准分类结构空分类直接省略# Release Notes — vX.Y.Z (unreleased) ## Breaking Changes - ... ## Features - ... ## Bug Fixes - ... ## Performance - ... ## Security - ... ## Documentation Examples - ... ## Internal / Maintenance (usually omitted from public notes) - ... **Thanks** to contributor1, contributor2 for contributions to this release. **Full changelog**: https://github.com/ORG/REPO/compare/vPREV...HEAD硬性规则简明可扫读每项尽量一行并带 PR 链接用扫描到的真实标题 / 一句话摘要不润色、不加营销话术除非项目语气明确要求breaking 与 security 必须置顶若某改动有显而易见的用户升级步骤加一句 Upgrade note绝不声称扫描输入中不存在的改动草稿末尾固定追加Draft generated by loop — please review for accuracy and tone before publishing.升级为人工介入Escalate的条件单窗口超过约 40 条 → 建议拆分发布或人工整理出现任何 breaking / security 项 → 加显著 callout 并建议人工措辞扫描 Summary 明确说 human review needed first。写完草稿后循环必须更新状态文件中的草稿路径与状态为 pending human review。5.3 验证策略谁给草稿打分pattern 文档对验证策略有明确约束这也是本循环与让 Agent 自产自销式自动化最大的区别drafter 永不发布只提议必须有独立的 verifier Skill或人类批准草稿——绝不让起草者给自己打分若自动化 PR 要更新 CHANGELOG该 PR 必须通过项目常规审查门或对该循环显式放行前几次运行、以及任何含 breaking changes 的发布优先让人类过目。仓库的 starters 中提供了现成的 verifier 实现可复用.claude/agents/verifier.md 与 .grok/skills/loop-verifier/SKILL.md。六、状态文件让窗口与进度可追溯changelog-drafter-state.md是整个循环的记忆记录已扫描内容与待审草稿。模板见 starters/changelog-drafter/changelog-drafter-state.md.exampleCursor 示例文档则给出了一个贴近 Automation 场景的填写范例# Changelog Drafter State Last run: 2026-07-23 06:00 UTC Last release tag: v2.14.0 Scan window: v2.14.0..abc1234 ## Pending draft - File: RELEASE_NOTES_DRAFT.md - Sources: 8 merged PRs, 1 direct commit - Breaking changes: 1 (human wording required) - Security items: 0 - Status: pending human review ## Publish gate - Source verification: pending - Attribution review: pending - Tag / GitHub Release / Discussions: denied to Automation状态文件还应该承载 pattern 文档要求的Post-Run Critique段落在## Post-Run Critique标题下记录上轮扫描遗漏的项Missed items、误报项False positives、分类错误Grouping issues、重试次数Retries以及下轮要做的 Prompt / 策略调整Prompt/policy adjustments。L1 内测阶段即使偶尔记录也能防止同类问题反复出现。模板中给出的示例字段包括## Post-Run Critique (from last run) - **Missed items**: 0 reported - **False positives**: 2 internal chore PRs — tightened bot filter - **Grouping issues**: 1 fix in Features — add label check - **Retries**: 0 - **Prompt/policy adjustments**: None needed this runpattern 文档还补充了两个扫描窗口约定忽略 Dependabot / Renovate PR交给 dependency-sweeper 处理main 上的直接提交若带 conventional type 或关联 issue 则纳入。一旦某个版本已打 tag 且草稿已合入循环应剪除对应条目。七、人工发布闸门五步验收缺一不可Cursor 示例把发布前的人类验收明确为五个步骤逐条核对每个条目都要对照其合并的 PR 或 commit 验证确认窗口无缺口、无重复扫描窗口没有遗漏或重复条目审阅措辞贡献者署名、发布语气、升级说明、breaking changes 与安全相关措辞批准最终去向与精确 diff草稿最终落到哪里、diff 是什么由人类拍板单独执行发布动作tag、GitHub Release、Discussions 发帖或 merge 必须由人类亲自完成或授权。即使草稿无需任何修改Automation 也绝不直接发布——这是该循环与普通自动发版工具的本质差异。这条闸门同样呼应了仓库的全局安全基线 docs/safety.md 中「默认不自动合并」「人类必须参与 security / auth / 发布类动作」的原则。八、失败模式与成本画像pattern 文档给出了可直接对照的失败模式表与成本数据失败模式缓解措施幻觉功能 / 归属错误Verifier 对照真实 PR 标题与 commit 消息逐条核查state 记录来源 PR遗漏重要变更同时扫描 PR和main 上的直接提交使用 labels conventional commits草稿过长 / 噪音多严格分类 draft Skill 的 user-facing only 规则人类可裁剪语气与项目不符在 AGENTS.md 或项目 Skill 中提供简短 Release voice 段落供 drafter 读取意外发布绝不授予循环对 tag 或线上 CHANGELOG 的写权限必须有人工闸门 PR批评记录过期无人处理当批评条目累积超过阈值如 3 次运行未解决时触发人工交接成本画像pattern 文档数据无新合并时的 no-op 约 5k tokens/次扫描 分类约 35k草稿 验证约 80k。建议节奏1d层级low建议每日上限100k tokens。可用仓库配套的 loop-cost 工具快速估算npx cobusgreyling/loop-cost --pattern changelog-drafter --level L1成功指标pattern 文档从最后一次合并到发布说明上线的耗时补丁版目标 1 天首次发布即带说明的发布占比每次发布的人类审阅耗时循环学会项目语气后应下降用户发现的漏报项数量目标趋近于零。九、真实收益一周实战的数据stories/changelog-drafter-week-one.md 记录了该循环第一周的真实运行结果可作为预期参考changelog-scan很快给出干净、可引用的 PR 直接提交清单draft-release-notes首次即产出分类正确的草稿Features / Fixes / Breaking 正确浮出首版草稿混入过多内部 chore PRDependabot 噪音——通过加强 scan Skill 中 ignore bot pure deps 规则修复语气偏干——在 AGENTS.md 增加 Release voice 段落后解决一处 breaking change 曾被埋没——verifier 发现并强制置顶加 callout前 5 次运行的数据平均每窗口 11 条人工审阅每份草稿约4 分钟对比从零手写约 15–20 分钟草稿误报 2 条 → 规则调整后归零breaking / security 项在 verifier 通过后始终正确浮出。十、收尾检查与配套工具按 Cursor 示例与 starter 文档的建议完成复制后运行审计命令检查循环配置是否完整npx cobusgreyling/loop-audit . --suggest该命令来自仓库的 tools/loop-audit会对循环的 Skill、状态、门禁配置给出改进建议。其他可直接参考的配套资源Cursor 平台的循环示例索引examples/cursor/README.md其中 Changelog Drafter 一行注明 Daily or release event; draft-only风险等级 Low模式总纲patterns/changelog-drafter.mdStarter 的完整 README 与 LOOP.mdstarters/changelog-drafter/README.md、starters/changelog-drafter/LOOP.md其中定义了本项目的人类闸门breaking → 必审、security/CVE → 人类批准措辞、前 3 次发布人类必须批准完整草稿、每轮最多 2 个子 Agent全局安全基线docs/safety.md。结语Changelog Drafter 是「读 提议」型循环的代表作收益极高每个用户都能看到输出、风险极低永远不越权发布、还能反向倒逼团队养成 conventional commits 与 label 的好习惯。在 Cursor 上落地时记住三条铁律——Automation 只写两个文件、Skills 负责结构化产出、人类掌握唯一发布闸门你就能在 Daily Triage 之后快速拥有第二条低成本高价值的常驻循环。赞分享人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址https://gitcode.com/gh_mirrors/lo/loop-engineering点击查看免费下载相关推荐Cursor Changelog Drafter 实战用 Cursor Automations 与 Skill 构建 L1 发布说明草稿循环loop-engineeringCursor Changelog Drafter 实战用 Cursor Automations 与 Skill 构建 L1 发布说明草稿循环loop eng人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务在 Opencode 中落地 Changelog Drafter 循环loop-engineering 的 L1 草稿循环配置与实战在 Opencode 中落地 Changelog Drafter 循环loop engineering 的 L1 草稿循环配置与实战 导读 Changelog人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务在 Windsurf 中用 Cascade Workflow 构建 Changelog Drafter 循环loop-engineering 的发布说明草稿自动化实战在 Windsurf 中用 Cascade Workflow 构建 Changelog Drafter 循环loop engineering 的发布说明草稿自人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考