Community写作与编辑github.com

Lzeutschler/bun-loop-skill

将 Jarred Sumner 的 Bun 重写工作流转化为适用于 AI 智能体的 Oracle 驱动工程循环。

bun-loop-skill 是什么?

该技能将 Jarred Sumner 在重写 Bun 时使用的 Oracle 驱动工程循环转化为一套严谨的多智能体协作协议。它通过可执行的 Oracle(测试、编译器、重构检查等)作为完成标准的唯一来源,并以对抗性审查作为缺陷过滤器。技能支持两种模式:**Factory 模式** 适用于批量处理具有相似结构的工作项(如移植文件、修复测试),通过隔离的子代理上下文实现并行处理;**Patch 模式** 适用于单个高风险变更集,使用标准的四个角色(实现者、两审阅者、修复者)进行审查与修复。该技能明确规定了代理角色的分离、证据的优先级排序、禁止的捷径,以及预算管理,确保工程过程的可衡量性和可重复性。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add Lzeutschler/bun-loop-skill

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Bun Loop

借鉴 Jarred Sumner 的 Bun 重写工作流,应用 Oracle 驱动的工程循环。将对抗性审查视为缺陷过滤器。将可执行的 Oracle——测试、编译器、linter、复现、一致性检查或基准测试——作为完成标准的唯一来源。

路由明确请求

尊重显式的 $bun-loop-skill factory 或 $bun-loop-skill patch 选择。对于纯 $bun-loop-skill 调用,仅当所有四个条件成立时选择 Factory 模式:

  1. 源可以生成多个结构相似的工作项,例如文件、编译器诊断、失败测试、堆栈跟踪或迁移记录。
  2. 可以在批量实施之前建立可重复执行的 Oracle。
  3. 对当前工作流的修正可以改进同类的剩余项。
  4. 准备工作和三项试运行预计消耗不超过总工程工作量的四分之一。当此分摊不明确时,优先选择 Patch 模式并报告估算。

否则选择 Patch 模式。不要对琐碎的编辑或只读问题使用任何一种模式;解释该技能的多代理成本不合理。如果用户明确请求 Factory 模式但无法建立 Oracle,则完成准备审计,将运行标记为 blocked,并报告缺失的 Oracle,而不是静默地回退。

在委托之前,说明选择的模式以及选择的证据。

维护通用操作约定

  • 尊重仓库说明、用户范围、审批要求和现有更改。
  • 使用真实的独立子代理上下文。加载此技能的代理是编排器,即使它本身也是一个子代理。
  • 保持角色分离:编排器协调;实现者和修复者编写;审阅者保持只读。编排器不得编写生产变更或发起审查发现。
  • 每个工作项只允许一个编写者。绝不允许在一个工作树中出现重叠的编写者。仅在 Factory 模式的隔离规则下使用并行编写者。
  • 向审阅者提供项目合同、相关参考工件、基线或源材料、最终差异和原始 Oracle 输出。排除实现者的推理和说服性解释。
  • 保留不相关的工作。永远不要使用 git stash、破坏性重置或 checkout,或丢弃另一个代理或用户更改的命令。未经明确授权,不得提交、推送或打开拉取请求。
  • 在开始之前设定上下文、编写者和昂贵 Oracle 的预算。预算是停止条件,绝不是削弱证据或宣布未完成工作已完成的许可。
  • 当独立上下文或所需的隔离不可用时,以能力阻塞器停止。切勿在编排器上下文中模拟缺失的角色。

一致使用证据

为每个项定义一个紧凑的合同,包含:

  • 目标、拥有的路径和可观察的验收标准;
  • 相关的映射指南、不变量或真相来源工件;
  • 针对性的项目 Oracle 和完整的集成 Oracle;
  • 禁止的捷径和兼容性约束;
  • 依赖项、当前队列状态和声明的增长边界。

按此顺序使用证据:明确的用户验收标准;记录的公共行为和任务陈述;独立的可执行 Oracle;基线测试和仓库约定(排除所谓的缺陷);然后作者添加的测试。当排名较高的证据冲突或留下未解决的实质性语义决策时,阻塞以获取澄清。

审阅者必须返回 CLEAN 或以下形式的发现:

severity: critical | high | medium | low
location: path and tight line or symbol reference
failure_mode: what breaks and under which conditions
evidence: reasoning, reproduction, or command output
required_correction: the behavior that must change

仅接受由复现、命令输出、逻辑演示或项目合同支持的、相关的发现。去重报告,并记录拒绝不支持、重复或范围扩展的发现的简短原因。审查活动和 CLEAN 标签不是可执行的证据。

仅当项目涉及相应的风险类别时,才读取 references/review-rubrics.md:状态转换、精确的结构语义、解析器或兼容性边界、异步生命周期或迁移。默认情况下不加载每个评估标准。

在两种模式下拒绝虚假进展:

  • 存根、占位符返回、新的未解决 TODO、忽略的错误、或仅编译的必需行为替代品;
  • 删除、禁用、跳过或弱化的测试和断言;
  • 未请求的泛化,拓宽了语法或兼容性边界;
  • 需要段落长度的注释来论证其安全的变通方法;
  • 仅仅为了保持补丁本地化而对仓库拥有的解析器、状态模型或算法进行并行实现。

运行 Factory 模式

将 Factory 模式用作工程生产系统,包含内部项循环和外部过程改进循环。

1. 准备工厂

启动一个映射器来检查请求和仓库。让其生成紧凑的活动工件:

  • 移植或迁移指南以及显式的不变量;
  • 确定性队列生成器和初始有序队列;
  • 项目和完整集成 Oracle 命令;
  • 所有权分区、依赖项和安全的集成顺序;
  • 仅包含相关风险类别的初始审查评估标准;
  • 上下文、编写者通道、Oracle 运行和项目增长的限制。

将这些工件保存在任务暂存空间中,除非用户授权的项目范围包括将它们写入仓库。将工件发送给两个全新的、只读的对抗性审阅者。启动一个全新的修复者来合并已接受的准备阶段发现。编排器裁决证据,但自己不重写工件。

要求队列生成器和项目 Oracle 在批量实施前工作。当两者中任何一个不可用时,将准备标记为 blocked,并说明确切缺失的能力。

2. 运行三项试运行

选择三个代表不同依赖项或风险类别的项。对于每个试运行项:

  1. 仅为此项启动一个实现者。
  2. 运行项目 Oracle 并捕获原始输出。
  3. 同时启动两个全新的审阅者。
  4. 裁决他们的证据,并在存在接受的发现时启动一个全新的修复者。
  5. 针对集成结果再次运行项目 Oracle。

在所有三项完成后,仅通过基于试运行证据的映射器/修复者交接,更新活跃的映射指南、队列规则、所有权、审查评估标准和并行性。在处理剩余队列之前,冻结最终的工厂合同。

3. 处理队列

对于每个项,使用以下状态流:

queued -> implementing -> reviewing -> fixing -> verifying -> done | requeued | blocked

项循环如下:

  1. 一个实现者做出完整的有限变更,并运行可负担的项目 Oracle。
  2. 两个全新的审阅者并行检查相同的最终差异和原始 Oracle 输出。
  3. 编排器裁决;一个全新的修复者应用所有接受的发现。
  4. 按声明的顺序集成补丁,并运行项目 Oracle。
  5. 仅在项目 Oracle 和验收标准通过且无接受的发现剩余时,将项标记为 done。

不要仅仅因为修复者编写了代码就递归启动另一对审阅者。仅当修复者实质性地跨越了项的声明增长边界或 Oracle 仍然失败时,才创建有界后续项。新的项必须命名剩余的失败,并使用相同的队列纪律。

4. 改进活跃过程

对已证实的失败进行分类。当同一类失败在至少两个项中出现时,将其视为过程缺陷:

  • 启动映射器/修复者更新活跃的指南、队列生成器或相关的审查评估标准;
  • 识别已暴露于该类别的已完成或进行中的项,并仅重新排队这些项;
  • 将修正应用于所有剩余项;
  • 保持此已安装的技能不变。

通过更少的 Oracle 失败和更少的未解决队列项来衡量进展。如果同一阻塞器持续存在,或者连续三次尝试中两个衡量指标均未改善,则将对受影响的工作标记为 blocked,并附上尝试次数和所需的外部决策。

5. 仅并行处理隔离的工作

在共享的工作树中,保持恰好一个编写者活跃。试运行成功后,仅当运行时提供隔离工作树或等效文件系统、每个通道拥有非重叠路径且编排器有确定性集成顺序时,才使用最多四个并发的编写者通道。审阅者保持只读。

一次集成一个通道补丁,并在每次集成后运行相关项目 Oracle。如果安全隔离不可用,则继续顺序执行;不要将降低的并行性视为阻塞器。

6. 完成工厂

队列清空后,运行完整的集成 Oracle。完成需要:

  • 生成的队列为空;
  • 完整 Oracle 通过;
  • 没有测试或检查被移除、跳过、禁用或弱化;
  • 所有接受的发现都已被处理;
  • 报告剩余的限制和风险。

不需要额外的一对全局 CLEAN 审查。如果完整 Oracle 产生失败,则将每个可复现的失败组转换为新的队列项。审查不能替代不可用或失败的完整 Oracle。

运行 Patch 模式

将 Patch 模式用于单个高风险变更集。不要创建 Factory 工件、批量队列、试运行或全局最终审查。

  1. 构建紧凑的项目合同,并声明四个全新角色上下文的标准预算:一个实现者、两个并行审阅者和一个修复者。编排器上下文不计算在内。
  2. 启动实现者做出完整的变更并运行有针对性的检查。
  3. 将最终差异和原始检查输出同时发送给两个审阅者。
  4. 裁决支持的发现。即使没有接受的发现,也启动修复者;在这种情况下,它不执行编辑并确认交接。
  5. 针对结果树运行目标明确且负担得起的集成 Oracle。

当验收标准和 Oracle 通过、无接受的发现剩余且不存在禁止的捷径时完成。仅当修复者实质性地扩展了声明的变更边界或 Oracle 仍然失败时,才重新进入审查。将剩余的失败表示为一个有界的后续项,并将总的新的角色上下文预算保持在或低于七个。否则停止为 blocked,而不是增加推测性的审查轮次。

报告结果

报告选择的模式、已完成和阻塞的项、Oracle 命令和原始结果、接受和拒绝的审查计数、使用的上下文和修复轮次、Factory 模式下进行的过程更改以及明确的残余风险。区分进展、完成以及预算或能力阻塞器。

相关技能