Community编程与开发github.com

heithmurray/agent-skills

为更改状态的工作提供计划和审批关卡。

agent-skills 是什么?

该技能定义了一个“计划关卡”(Plan Gate),要求代理在执行任何有副作用的操作之前,先提出一个清晰、可审查的书面计划并获得明确批准。它区分了“计划”和“审批”,强调计划是行动前的可见性展示,而非批准本身。该技能支持完整关卡和简短关卡两种模式,适用于文件修改、命令执行、重构、配置更改等多种场景。它严格规定了审批边界、敏感操作(如凭证处理、网络访问)的特殊流程,以及中断后恢复的规则,确保代理行为在既定的操作权限内安全、可追溯。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heithmurray/agent-skills/tree/HEAD/skills/plan-gate

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

在你喜欢的 AI 中提问

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

文档

计划关卡

在行动之前让计划可见。计划并非批准。

遵循 AGENTS.md 中的操作权限、委派、恢复和报告规则。此技能仅定义计划关卡;它不要求工作 SOP 或任务板应用程序。

只读预检

检查所需内容,以确定精确目标、现有状态和风险。预检期间不得更改状态或暴露机密。

在请求执行批准前解决实质性的未知项。不要要求用户重复已知事实。

何时使用关卡

文件更改、状态更改命令、实施、重构、配置、安装和持久工作流更改需要关卡。

对于琐碎的、有界限的单次更改,使用简短关卡——而不是没有关卡。对话中呈现的问题、分析和草稿不需要执行关卡。

完整关卡

计划关卡 — · 修订 <编号>

理解的任务 / 目标

  • <要求的成果>

假设

  • [输入] <用户提供的假设>
  • [执行] <工具或环境假设>
  • [范围] <包含或排除的假设>

范围内

  • <有界限的操作>

范围外

  • <明确排除项>

受影响的文件/系统

  • <精确目标和预期更改>

执行

  1. <步骤>

验证

  • <可观察的验收检查>

回滚

  • <如何撤销任务所拥有的更改,或恢复限制>

批准边界

  • <此批准授权的内容>
  • <需要新决策的内容>

待决策事项

  • <未解决的实质性决策,或无>

关卡状态

  • 等待批准
  • 或 已阻塞 — 需要决策

省略不适用的假设类别。不要仅仅为了填充模板而编造假设。

简短关卡

计划关卡 — · 修订 <编号>

  • 任务: <要求的成果>
  • 目标: <精确的文件/系统>
  • 更改: <有界限的更改>
  • 假设: <标记的假设,如果有>
  • 验证: <检查>
  • 回滚: <撤销或恢复限制>
  • 状态: 等待批准

如果任务不再是琐碎的,则切换到完整关卡。

批准

等待对可见范围的明确批准。“已批准”、“继续”、“进行”或直接确认即表示批准当前识别的修订版本。

批准在范围不变的情况下保持有效。不要重复请求批准,也不要让工作代理再次获取批准。

目标、操作、需求、验证、回滚或权限的重大变更需要修订后的关卡。在该修订版获得批准前,停止受影响的工作。

未解决的实质性决策意味着“已阻塞 — 需要决策”,而非“等待批准”。未知的目标不能通过称之为“相关文件”来授权。

敏感边界

始终暴露具体范围,并在更改以下内容前获得明确批准:

  • 凭证、身份验证或权限。
  • 服务器、网络、远程访问(SSH、VPN)或公共端口。
  • 代理运行时设置:通道、路由或模型设置。
  • 持久身份或操作指令。
  • 外部发送、发布、账户或支出。
  • 破坏性操作或客户数据。

在当前对话中对用户的常规回复不属于第三方发送。普通的对话起草不是持久指令更改。

当添加、替换或更正凭证时,在只读预检期间确认目标实际如何使用该凭证(它自己的凭证存储库、它拥有的文件、环境变量,或在传输过程中注入机密的代理),使用集成的模式、文档或代码,而不是假设。如果目标必须自己读取凭证,不要通过代理在传输过程中替换值;请使用该集成支持的凭证存储库或它自己的文件。在请求机密之前,确定机密名称、存储位置、允许使用该机密的确切主机,以及集成所需的任何运行时配置或重启。对于集成拥有的凭证文件,请由人工进行遮蔽输入、拒绝覆盖现有文件、设置确切的所有者和严格的权限、进行一次从不打印值的验证,以及仅删除该文件作为回滚;如果集成需要,则包括重启。仅通过遮蔽提示或工具自己的机密存储库收集机密;绝不要通过聊天、日志、命令行参数或通过聊天粘贴的多行 shell 进行收集,并且绝不要复制或别名化现有机密。以所需的名称请求新的条目。如果没有可用的遮蔽提示或机密存储库,或者遮蔽请求未到达用户,则停止并告知用户确切的机密名称、必须放置的位置以及可能使用该机密的主机,以便他们可以自行在那里输入。保留旧凭证,直到下次运行时验证新凭证,并且仅当该删除在已批准的范围内时才删除旧凭证。

对于从纯文本配置迁移到机密存储库,请对每个机密的所有者集进行把关,并在验证后将纯文本删除视为单向操作。仅快照非机密结构和哈希值;绝不要创建纯文本回滚副本。通过遮蔽条目收集每个当前值,然后使用工具支持的审计或迁移规划器证明每个存储的值与其确切的纯文本源匹配,而无需显示任一方。审查并试运行一个仅限于已批准路径的计划,在应用前立即重新检查配置和计划哈希值,然后一次性应用。验证确切的机密引用、零残留的纯文本、未解决或隐藏的值、工具保留的任何其他存储库(缓存、会话或身份验证存储库、备份、临时或迁移文件)中无机密残留,以及在重启任何内容之前配置有效。仅重启需要重启的所有者,证明新进程正在运行,而不是依赖计划报告,并对每个凭证所有者进行端到端测试。保留非机密迁移计划,直到所有重启后检查通过,然后仅删除该计划。除非暴露或单独的轮换决策要求,否则不要轮换凭证。

连续性与恢复

对于多步骤工作,在写入范围内包含一个商定的任务记录位置。在那里保留已批准的修订版、批准引用和执行证据。不需要特定的跟踪应用程序。

将记录标识符限定在一个工作流中。当工作转移到实质性不同的目标或工件系列时,开始一个新的记录系列并交叉链接先前的证据,而不是继续其序列或合并历史。如果范围不当的关卡未获批准且未创建工件,则撤销其提议的标识符,并在正确的系列下重新发布未更改的范围;不要创建迁移工作。

对于版本敏感的清单,记录观察到的运行时/目录版本并保留该快照。如果升级待处理,请在冻结允许列表或依赖目标之前完成并验证升级,然后创建可比较的升级后修订版;切勿静默重写升级前状态。

中断后,在恢复前检查实际状态。不要重复结果不确定的操作。

应用 AGENTS.md 中的恢复限制;如果未设置,则允许最多一次安全的、逻辑性的、在范围内的尝试来处理阻塞项,该尝试由主导代理和任何工作代理共享。重试不是强制性的,也不能扩展权限。重新关卡或启动新的工作代理不会重置允许次数。

报告成功的恢复以及不成功的恢复。保留失败的内容、尝试的内容、原因以及观察到的结果。

正确报告的阻塞性是有效的结果——而不是即兴完成的许可。当所要求的交付物仍未完成时,请直截了当地说明。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能