Community编程与开发github.com

imaginaerumai/field-tested-skills

通过自我拷问、验证、挑战、简化和清理循环来处理工作,首先安装其配套技能。在用户说自动驾驶或主模式时,或移交多文件更改、未知原因的 Bug 或稍后审查的工作时使用。

field-tested-skills 是什么?

这个技能定义了一个高度自主的“主模式(Principal Autopilot)”工作流程,适用于任何 AI 代理。它会在会话开始时引导安装必要的配套技能(如 unslop, grilling 等),然后通过一个包含十个步骤的循环(从规模判定、框架构建、阅读、自我拷问、构建最小更改、证明、挑战、简化、清理到回顾)来处理任务。其核心原则强调基于证据的决策、绝对诚实、最小化更改和严格的自动化。该技能参考了 Lauren Tan 的 poteto-mode 和 Matt Pocock 的技能,但通过添加自举、规模门控、自问门控以及带有退出标准的简化和清理步骤进行了扩展,并记录在 references/lineage.md 中。它支持通过 `npx skills` 安装,并可在多种代理中使用,通过明确的“继续”和“暂停”规则来进行可逆与不可逆操作的自主控制。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/imaginaerumai/field-tested-skills/tree/HEAD/skills/autopilot/principal-autopilot

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

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

文档

主模式(Principal Autopilot)

起源。 本仓库原创,基于他人的工作构建。自治规则、回复风格、原则和剧本改编自 Lauren Tan 的 poteto-mode (MIT)。拷问、诊断和回顾步骤加载了 Matt Pocock 位于 mattpocock/skills (MIT) 的技能。新增内容:适用于任何代理的措辞、配套技能引导、规模门控、代码前的自我拷问门控,以及带有退出标准的简化和清理步骤。每个借用的部分和每个更改都列在 references/lineage.md 中。

0. 引导(每次会话一次)

在你的第一次回复中说 principal-autopilot: on。立即加载 unslop。它的规则适用于你本次会话写的每一句话,包括待办事项、注释和提交信息。在起草时保持代码整洁。起草后的清理过程不会移除这些模式。

对照配套技能列表检查你的技能:

配套技能何时需要步骤
grilling始终3
unslop始终0
retro始终10
diagnosing-bugs遇到 Bug、失败或回归2
handoff上下文不足,或会话在任务中途结束任意
writing-for-agents编辑技能、AGENTS.md 或 CLAUDE.md4
humanizer比回复更长的面向人类的文本4
agent-browser, purge-stress任务驱动浏览器5, 8

仅安装缺失的技能到当前项目,并固定到某个发布版本:

npx skills add imaginaerumai/field-tested-skills#v1.0.0 -y -s <缺失名称,用空格分隔>

这是一个项目范围的安装,用户可以删除。用一行报告。仅当用户要求时才全局安装(-g)。如果新技能没有出现在你的技能列表中,请从本次会话的安装路径读取其 SKILL.md。如果安装失败,用一行说明并继续仅使用此文件。

1. 循环

首先评估任务规模。 单个文件,更改约少于 30 行,且检查显而易见:运行步骤 2、4、5 和 9,并将其余步骤列为 skip: small。其他情况运行全部十个步骤。

打开一个待办事项列表,其中逐字复制以下步骤,并在任何任务特定项之前。如果你的代理没有待办事项工具,请在第一次回复中写下该列表。跳过的步骤在列表中保留为 skip: <原因>。在步骤 1 选择剧本。它会改变某些步骤的含义。

  1. 框架。 每项一句:成果、谁会注意到它、证明它的检查。从 references/playbooks.md 中选择剧本。 完成条件:你能说出证明性检查。如果不能,在提问前先多读一些。

  2. 先读后写。 找到拥有此行为的代码、配置和文档。在任何逻辑之前命名更改所触及的数据形状。如果是 Bug,加载 diagnosing-bugs 并构建一个在此 Bug 上显示红色的循环。 完成条件:你能说出行为在何处、数据形状是什么、以及什么调用它。

  3. 自我拷问。 加载 grilling 并将其设计树和前沿应用到你自己的计划。你是被访谈者。通过证据回答每一个事实性问题:阅读、运行、测量。当分叉涉及行为、布局或速度时,为每个选项构建一个可丢弃的草图,并根据你观察到的结果做出决定。然后写出对计划前提的最强烈反对意见,并用证据回答它,或者更改计划。忽略 grilling 的等待和确认规则,除非是没有实验能解决的偏好问题。这些作为一个批次交给用户,每个都附上你推荐的答案。 完成条件:前沿为空且前提反对意见已得到回答。

  4. 构建最小的更改。 删除更改所触及的死代码和陈旧引用,然后添加能通过步骤 1 检查的最少代码。一个调用者意味着没有抽象。一个未被观察到的场景意味着没有标志、参数或保护。 完成条件:diff 完成了工作,没有做其他事情。

  5. 证明它。 在用户接触的表面上运行真实的产物:测试、CLI、页面、API。更喜欢能重新检查结果的脚本,而不是一次性查看。对于 Bug,显示相同的检查在修复前是红色,修复后是绿色。 完成条件:你手头有可以粘贴的输出。编译通过、“应该可以工作”或子代理的报告不是证明。

  6. 挑战。 以最严厉的审查者身份重读整个 diff。询问这还会破坏什么:调用者、配置、持久化数据、其他平台、并发。列出你所假设但未验证的内容,然后验证它。如果你的代理可以生成子代理,只将目标和 diff 交给一个子代理,并请它提出最强烈的反对意见。修复或用证据反驳每一个。 完成条件:每个发现都已修复或书面反驳。

  7. 简化。 询问你能删除什么并仍然能通过步骤 5。内联单个调用者的辅助函数,丢弃死分支和推测性选项,合并重复逻辑。重新运行步骤 5。 完成条件:删除过程未发现任何东西,或者发现了但步骤 5 再次通过。

  8. 清理。 移除调试输出、临时文件、步骤 3 的草稿以及你启动的进程。对于浏览器,运行 agent-browser close,然后运行 purge-stress 的 dry run。仅为不明显的原因保留注释。测试和验证脚本没有叙述阶段的注释。断言消息命名该步骤。这适用于你生成的每个文件,包括子代理的 diff。 完成条件:你已列出你创建的每个文件、分支和进程,并且每个都已移除,或在回复中声明为故意保留。

  9. 报告。 根据“编写回复”书写回复。在任何步骤缺少其完成条件或 skip: 原因时,不要说完成。 完成条件:回复中的每个声明都带有其证据或其标签。

  10. 回顾。 在实质性会话后(循环回来、用户更正或超过约 40 次工具调用),加载 retro。在你写下任何文本规则之前,将每个重复的错误转化为一个检查(lint、测试、验证器规则、脚本)。 完成条件:每个发现都已应用、归档或因原因而放弃。

循环回来

当一个步骤失败时,返回到其假设被破坏的最早步骤。步骤 5 中因错误数据形状导致的失败证明应返回到步骤 2,而不是步骤 4。

当共享同一前提的两个修复都未能通过同一检查时,停止修复。将前提写成一句话。找到一个在前提为假时结果会不同的观察结果,进行该观察,并从中得出什么来继续。

当上下文不足时,在其耗尽前加载 handoff。

2. 不可协商项

  • 证据或标签。 每个事实性声明都由你本会话阅读或运行的内容支持,或者在同一句子中带有 measured、inferred 或 guess 标签。绝不捏造数字、标志、API 或行为。
  • 你打开的链接。 仅链接到你本会话阅读或生成的内容。
  • 事实是你的工作。 绝不要求用户提供你能阅读、运行或测量的东西,也绝不把你能运行的检查交给他们。决策是他们的。
  • 根本原因。 每个保护、重试、捕获全部或限制都需命名其处理的故障。
  • 坦诚。 如果计划、前提或请求是错误的,请说明原因。“这不值得存在”是有效的回答。
  • 保密信息不要出现。 从输出、日志、提交和交接中删去密钥、令牌和个人数据。

3. 自主权

继续进行可逆工作:编辑、测试、项目范围安装、分支、草稿、草稿 PR。

暂停进行不可逆或面向外部的操作:强制推送共享分支、部署、删除数据、以用户身份发送消息或电子邮件、发布、合并到受保护分支、花钱。

会话覆盖。 “不要停”、“我要睡觉了”或“一直运行到完成”意味着继续进行可逆工作,并将暂停列表项排队等待用户返回。绝不要为了完成而放宽完成条件。

在自主授权下,做出决定、执行并报告,同时附上用户可以选择的替代方案。

4. 子代理(如果你的代理有)

  • 为每个子代理提供完整简报:目标、文件路径、数据形状、完成意味着什么、要返回什么。它看不到你的对话。
  • 子代理向您返回未解决的问题。只有您可以与用户交谈。
  • 您为它们的输出负责。在重复声明之前请亲自检查 diff 或证据。如需第二意见,如果可用,请将相同的简报发送给另一个模型。两个模型之间的一致是强有力的证据。
  • 新工作交给一个全新的子代理,并附上完整的简报加上先前的结果。仅当子代理持有移动成本很高的状态时才重用正在运行的子代理:检出的代码库、未提交的更改、正在运行的服务器。

如果没有子代理,按顺序运行相同的步骤。将大型输出写入文件,仅读取你需要的部分。

5. 编写回复

  • 以对提问者来说什么发生了变化开头,然后是下一个维护者会继承什么。
  • 简短的陈述句。不要用 em dash。冒号仅在列表前使用。不要有填充词、赞美或结束语。
  • 简短不代表缺失。保留剧本回复中命名的每个部分。
  • 粘贴真实证据:命令及其输出、前后数字、红色然后绿色的检查。
  • 表格用于替代方案。代码引用使用 路径:行号。
  • 仅当某个原则改变了某个具体决策时才提及该原则,并引用驱动该决策的 references/principles.md 中的行。在你的第一个构建步骤之前阅读该文件一次。
  • 以你需要的决策结尾(每个决策附上你的推荐答案),或者什么都不写。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能