资讯详情

用 loop-gate 与 gate.yaml 为 AI 编码循环构建静态安全合并门控

发布时间:2026/9/24 1:48:43

500+
企业客户服务经验
120+
行业领域内容覆盖
3000+
原创页面设计沉淀
98%
客户满意度

用 loop-gate 与 gate.yaml 为 AI 编码循环构建静态安全合并门控

人工智能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 仓库中的loop-gate工具与gate.yaml策略文件如何把docs/safety.md里的路径黑名单Path Denylist与自动合并白名单Auto-Merge Policy散文规则翻译成机器可读、可强制执行的门控配置并用npx cobusgreyling/loop-gate check在任何commit/merge/auto-merge动作前做一次确定性检查。读完本文你将掌握gate.yaml的version: 1 denylist maxFiles autoMergeAllowlist固定模式、CLI 参数与退出码约定、与loop-context链式编排的典型控制脚本以及loop-audit --auto-fix自动生成gate.yaml、loop-sync检测策略漂移的闭环用法。为什么需要机器可读的安全门在 loop-engineering 的模型中docs/safety.md用散文定义了安全护栏哪些路径绝不能未经人工审批就自动修改如**/.env、**/secrets/**、**/auth/**、**/payments/**、**/billing/**等以及默认不自动合并、只有允许列表内的平凡变更文档、测试才可无人值守合并。问题在于散文规则无法被执行。循环loop是否读过docs/safety.md、是否理解其中的风险模型完全取决于提示词与模型自觉。loop-gate的存在正是为了消除这个不确定性——如 tools/loop-gate/README.md 所述它是docs/safety.md的机器可读孪生the code behind docs/safety.mds Path Denylist and Auto-Merge Policy把LOOP.md中 No auto-merge on main except trivial dependency patches 与 Denylist... without human review 的规则变成了一段可调用的、确定性的检查代码。loop-gate check --action auto-merge --paths a.ts,b.ts || exit 2 # policy basedloop-gate 的设计边界只管改了什么不管跑得如何理解loop-gate的第一步是理解它故意不做什么。从源码注释tools/loop-gate/src/gate.ts可以确认Deliberately has no knowledge of run history. Stagnation, repeated failures, and token/daily budgets already belong to loop-contexts circuit breaker — loop-gate only looks atwhatis being proposed (which paths, what action type), nothow the run has behaved so far.即停滞stagnation、重复失败、token/每日预算等运行历史类信号归 tools/loop-context 的断路器circuit breaker管loop-gate只评估将要做什么涉及哪些路径、什么动作类型两者在源码层面保持解耦但在控制脚本里按约定配对——这与loop-worktree与loop-context的关系一致。典型链式调用摘自 tools/loop-gate/README.mdloop-context --check --ledger run.json ... || exit 2 # run-history based loop-gate check --action auto-merge --paths a.ts,b.ts || exit 2 # policy based do-the-merge安装与快速开始最简方式是使用 npx无需本地安装npx cobusgreyling/loop-gate check --action auto-merge --paths docs/guide.md从本仓库源码运行开发/贡献场景cd tools/loop-gate npm install npm test包信息tools/loop-gate/package.json包名cobusgreyling/loop-gateNode.js18通过bin字段暴露loop-gate命令npm test会先执行tsc构建再跑node --test test/*.test.mjs。gate.yaml固定模式的策略文件而非自由格式门列表gate.yaml不是一堆任意的门gates清单而是三个固定键组成的模式。这是docs/QUICKSTART.md第 4b 小节Set the merge gate与本次 issue 验收标准共同强调的关键点。用 templates/gate.yaml.template 复制到仓库根目录即可开工本仓库自己吃自己的狗粮dogfood的 gate.yaml 是完整参考version: 1 denylist: - **/.env - **/.env.* - **/secrets/** - **/credentials/** - **/*_key* - **/*_secret* - **/.terraform/** - **/k8s/production/** - **/migrations/** - **/auth/** - **/payments/** - **/billing/** maxFiles: 10 autoMergeAllowlist: - docs/** - **/*.md四个键的语义如下键类型默认含义version数字必填当前必须为1不是 1 会被loadGateConfig直接拒绝denylist字符串数组必填命中任一 glob 的路径无论何种--action一律升级escalate到人工审批maxFiles数字可选变更路径数超过该阈值即升级对应docs/safety.md的 Changes touching N files 人工门autoMergeAllowlist字符串数组可选仅在--action auto-merge时检查每个变更路径都必须命中其中一个 glob否则升级从源码tools/loop-gate/src/gate.ts 的GateConfig接口与loadGateConfig看校验是严格的denylist必须是字符串数组、maxFiles必须是有限数字ten这类字符串会被拒绝而不是被静默忽略、autoMergeAllowlist必须是数组、version不匹配或缺少必填字段都会抛错并附明确原因。这些校验都有对应测试用例例如 tools/loop-gate/test/gate.test.mjs 中的loadGateConfig rejects a non-numeric maxFiles instead of silently disabling the check。检查顺序三条规则如何排队checkGatetools/loop-gate/src/gate.ts按先检查最便宜、最严重的顺序执行与loop-context断路器的 most specific trigger first 约定一致denylist—— 任何路径命中黑名单 glob立即升级无论--action是什么maxFiles—— 变更路径数超过阈值升级autoMergeAllowlist—— 仅在--action auto-merge时检查只要有一个路径不在白名单上就升级。每次只返回一个触发原因trigger优先级为denylistfile-countnot-allowlistedok表示放行。测试checkGate denylist takes priority over file-count专门验证了黑名单优先于文件数限制。glob 语义minimatch 与dot: true陷阱所有 glob 匹配走minimatch与.gitignore风格 glob 相同语义**可跨路径段匹配。但checkGate显式传入了dot: true选项这一点在源码中有详细注释是极易踩坑的细节without it,*never matches a path segment starting with., so denylist entries like**/secrets/**or**/*_key*would silently miss.secrets/prod.jsonor.aws_key, exactly the paths a denylist most needs to catch.即若不开dot: true.aws_key、.config/secrets/prod.json这类以点开头的敏感路径会被黑名单静默漏过。对应测试见checkGate denylist globs match dotfile leaves (dot: true)与checkGate denylist ** traverses into a hidden (dot) directory (dot: true)。CLI 用法与退出码约定完整命令格式tools/loop-gate/src/cli.ts 的 HELP 文本loop-gate check --action commit|merge|auto-merge --paths f1,f2,... [--gate-file gate.yaml] [--json]参数默认说明--action commit\|merge\|auto-merge必填循环即将执行的动作取值受限deploy等非法值会报错--paths f1,f2,...必填逗号分隔的变更文件路径空值/纯逗号会被拒绝--gate-file pathgate.yaml当前目录要评估的策略文件路径--json关闭输出机器可读的决策 JSON-h, --help—打印帮助退出码0放行allowed·2升级escalate·1出错非法参数、配置缺失或无效。非 JSON 模式下输出形如ALLOWED [ok] — Within policy — cleared to proceed. ESCALATE [denylist] — 1 path(s) match the denylist: auth/login.ts. Escalating for human review.--json模式输出GateDecision结构含allowed、trigger、reason、matchedPaths便于控制脚本把决策折叠进已有的升级摘要。CLI 层的关键行为都有测试覆盖tools/loop-gate/test/cli.test.mjs非法 action 退出 1、纯空格/纯逗号的--paths退出 1、缺失 gate 文件给出明确提示、--gate-file自定义路径生效、未知子命令退出 1。一个实用的真实场景——直接把 git 暂存区/工作区变更喂给门控loop-gate check --action auto-merge --paths $(git diff --name-only | tr \n ,)在 QUICKSTART 中的落点Set the merge gate本仓库的 docs/QUICKSTART.md 第 4b 小节 Set the merge gate (30 seconds) 就是该 issue 落地的位置。其操作顺序与本文完全一致从 templates/gate.yaml.template 复制gate.yaml到仓库根目录在任何自动合并动作前强制执行npx cobusgreyling/loop gate check --action auto-merge --paths f1,f2,... # 等价于 npx cobusgreyling/loop-gate check --action auto-merge --paths f1,f2,...记住退出码约定0 允许 ·2 升级到人工。与 loop-audit --auto-fix 的闭环自动生成 gate.yaml无需手工从零编写gate.yaml。loop-audit --auto-fix在检测到治理缺口时会自动写出可加载的gate.yamltools/loop-audit/src/autofixer.ts 内嵌了GATE_YAML_TEMPLATE同样以version: 1开头、注释注明是docs/safety.md的机器可读孪生并在审计结果缺少gateYaml信号时执行safeWriteFile(gate.yaml, GATE_YAML_TEMPLATE, Explicit human approval gates)。审计侧tools/loop-audit/src/auditor.ts则会把没有 gate.yaml标记为 warn 级发现建议补充explicit human approval gates。也就是说loop-audit --auto-fix跑一遍gate.yaml就位loop-gate check立即可用。与 loop-sync 的策略漂移检测gate.yaml文件头注释写着 Keep in sync with docs/safety.md when either changes——但注释本身不产生约束。真正把散文策略 ↔ 机器策略同步变成机械不变量的是 tools/loop-sync/src/policy-drift.ts它从gate.yaml中抽取 denylist 与限制与docs/safety.md的 Path Denylist fenced block 逐条比对loop-sync每次运行都会执行checkPolicyDrift见 tools/loop-sync/src/sync.ts若 gate 文件本身无法解析则建议运行npx cobusgreyling/loop-gate check --action commit --paths .查看解析错误。它从不改写任何一侧文件——哪边正确是人工判断。这种文档即真相、配置即执行的对齐正是loop-gate得以长期可信的基础。局限性与正确使用姿势loop-gate明确不做什么见 tools/loop-gate/README.md 的 What this does not do不读取运行台账run ledger未来也不会——这是与loop-context在源码层面保持解耦的设计决定不生成自己的升级摘要格式——用--json把决策折叠进控制脚本从loop-context --inject组装的人工升级信息即可本身不强制任何东西——与loop-worktree的锁一样它是建议性的跳过loop-gate的控制脚本并不会被物理阻止机制的可靠性取决于调用它的脚本。因此正确姿势是把loop-gate check放在do-the-merge之前的控制脚本里并与loop-context --check串联成运行历史 静态策略双门控对超出maxFiles的大改动、黑名单路径、非白名单路径一律退出 2 升级到人。完整的风险/缓解模型见 docs/safety.md安全门在 Five Building Blocks Memory 模型中的位置见 docs/primitives.md。赞分享人工智能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-gate 源码实战用 gate.yaml 为 AI 编码 Agent 的自动合并与路径变更装上机械安全闸门loop gate 源码实战用 gate.yaml 为 AI 编码 Agent 的自动合并与路径变更装上机械安全闸门 loop gate 是 loop eng人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务loop-engineering 的 loop-verifier Agent为 AI 编码循环构建 maker/checker 校验闸门loop engineering 的 loop verifier Agent为 AI 编码循环构建 maker/checker 校验闸门 loop verif人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务loop-verifier为 AI 编程循环构建 maker/checker 独立验证闸门loop verifier为 AI 编程循环构建 maker/checker 独立验证闸门 导读 loop verifier 是 loop engineeri人工智能AI AgentAgent 工作流CLI研发协作AI 技能MCP 服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
热门专题

继续阅读更多专题内容

围绕企业服务、数字化转型与官网运营的常青话题,持续输出深度内容

企业官网建设指南 企业托管服务模式 财税政策与解读 企业数字化转型 官网SEO与获客 网站安全与运维
配套服务

读完这篇文章,了解更多服务

从整站搭建到SEO布局,17项核心服务助您打造高转化的企业官网

01

企业托管整站搭建

从信息架构到栏目预留,搭建可生长的企业站点骨架,每个页面独立原创设计。...

了解详情
02

规整可信网页设计

雪地靴温暖风原创设计,金属铜线条贯穿全页,拒绝通用模板与AI流水线。...

了解详情
03

企业服务SEO布局

关键词体系与语义化结构,从建站源头为搜索排名而生。...

了解详情
04

业务预约咨询表单

多场景表单与线索收集体系,把访问流量转化为可追踪的销售线索。...

了解详情
05

企业服务站点运维

安全巡检、数据备份与内容更新支持,全年守护网站稳定运行。...

了解详情
06

全终端商务适配

电脑、平板、手机一致呈现,移动端体验与转化同样出色。...

了解详情
需要专业建议?

让专业顾问为您解读行业趋势

关于企业官网建设、SEO获客与数字化转型的任何疑问,欢迎一对一咨询我们的专业顾问。