mcpField
P
planetscale-change-gates-and-approval-contract

planetscale-change-gates-and-approval-contract

github.com/planetscaleAgent 工作流1361.7k 次安装8 周前更新
代码仓库

关于 planetscale-change-gates-and-approval-contract

供操作 PlanetScale 的 Agent 使用的变更管控技能,按风险分类数据库与仓库操作,并规定审批、执行和报告要求。它区分可进入审核流程的提案、影响行为或生产环境的变更,以及绝不可自主执行的操作。

主要功能

  1. 01五类变更风险分级
  2. 02各级别的审批规则
  3. 03执行前风险检查清单
  4. 04执行后报告要求
  5. 05处理模糊请求的拒绝指引

适用场景

  1. 01判断数据库变更是否需要审批
  2. 02准备生产变更计划与回滚方案
  3. 03应对宽泛且含糊的变更请求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/planetscale/skills --skill planetscale-change-gates-and-approval-contract

安装后在 Claude Code 中输入/planetscale-change-gates-and-approval-contract确认已加载。

详细介绍

变更门禁与审批约定

目的

防止意外或自主执行可能影响可用性、安全、数据或开发者工作流的变更。

操作类别

A 类:默认只读

无需审批即可执行:

  • 列出数据库、分支、键空间、Webhook、备份、角色、流量预算、架构建议、部署请求和 Insights 数据。
  • 检查仓库代码。
  • 读取架构元数据。
  • 读取非敏感数据库元数据。
  • 生成报告和拟议变更集。
B 类:创建状态的提案

默认允许;仅当操作人员要求严格的禁止变更模式时,才需要审批:

  • 通过 API POST 创建查询模式报告,即使结果是只读遥测数据。
  • 触发 Webhook 测试事件。
  • 创建临时本地分支或文件。
  • 在外部工具中创建 PR 或问题。
  • 创建数据库开发分支。
  • 在非生产开发分支上应用 DDL 或迁移。
  • 创建目标为受审查工作流保护的分支的部署请求。

最后三项是在现有审查系统中提交提案:在人工合并或部署之前,不会有任何内容进入生产环境。门禁应设置在合并/部署操作(C/D 类),而非提案创建环节。Agent 如果停下来请求批准才能创建 PR,就是对操作类别的错误判断。

C 类:改变行为

始终需要明确审批:

  • 启用安全迁移。
  • 禁用安全迁移。
  • 更改部署请求审批设置。
  • 创建/更新/删除 Traffic Control 预算或规则。
  • 将 Traffic Control 预算切换为强制执行模式。
  • 创建/更新/删除 Webhook。
  • 启用原始查询收集。
  • 启用/禁用需要重启的扩展或设置。
  • 创建/更新/删除角色。
  • 重置密码。
  • 更改 pg_strict 设置。
  • 更改连接池行为。
  • 更改 IP 限制、PrivateLink、PSC 或公共访问设置。
  • 更改备份计划或保留期限。
  • 创建恢复分支。
  • 创建自动备份之外的备份。
  • 更改分支规格或副本拓扑。
  • 编辑仓库文件或依赖项。
D 类:影响生产数据/可用性

需要明确审批、确认指定目标、制定回滚计划,并且最好由第二位人工审核:

  • 生产环境 DDL。
  • 生产环境 DML。
  • 在生产环境应用架构建议。
  • 将 Vitess 部署请求加入队列或应用到生产环境。
  • 提升或恢复分支。
  • 删除分支、数据库、角色、Webhook、备份或流量规则。
  • 在生产环境强制执行 Traffic Control。
  • 更改生产环境的网络访问。
  • 轮换生产凭据。
  • 高负载期间执行紧急备份。
E 类:绝不自主执行

绝不在没有人工直接操作或单独批准的事件处理流程时执行:

  • 删除生产数据库。
  • 禁用所有生产安全机制。
  • 删除生产表或列。
  • 移除 IP 限制或仅限私有访问的安全态势。
  • 在日志、问题、PR、Slack 或报告中存储或暴露机密信息。
  • 自动合并由数据库遥测数据生成的代码。
  • 自动应用由大模型生成的 DDL。

审批要求

有效审批必须包含:

  • 变更 ID。
  • 目标组织/数据库/分支。
  • 是否影响生产环境。
  • 执行确切操作的许可。

无效审批:

  • “采用最佳实践。”
  • “修复所有问题。”
  • “应用建议。”
  • 未指定变更 ID 的“可以开始”。

自主执行例外

除了逐项变更审批外,唯一的替代方案是 ../planetscale-autonomous-execution-mode/SKILL.md 中定义的风险确认自主模式。当操作人员明确确认风险、指定范围并说明是否包含生产环境时,该确认可替代指定范围内 Class B/C(以及包含生产环境时的 Class D)操作的逐项审批。

在自主模式下,本技能中的其他所有要求仍然适用:

  • 任何措辞都不能解锁 Class E。
  • 每个 Class C/D 步骤仍必须提供执行前检查清单(作为执行计划展示,而不是暂停等待)。
  • 仍必须提供执行后报告。
  • 范围外的工作仍需获得新的审批或新的确认。

必需的执行前检查清单

在执行任何 Class C 或 D 操作前,提供:

  • 确切的命令、API 端点、控制面板操作、SQL 或仓库差异。
  • 目标确认。
  • 预期效果。
  • 可用性影响。
  • 数据风险。
  • 安全风险。
  • 回滚计划。
  • 验证计划。
  • 监控计划。

然后暂停等待审批。

必需的执行后报告

如果之后执行了已批准的变更,请报告:

  • 变更内容。
  • 变更时间。
  • 批准人。
  • 使用的接口。
  • 成功证据。
  • 任何警告。
  • 回滚状态。
  • 后续监控。

必需的拒绝行为

如果被要求执行宽泛或含糊的生产环境变更,应拒绝该宽泛操作,并制定更安全的指定变更计划。

使用以下句子:

“我不会根据含糊的指令应用宽泛的生产环境变更。我可以提供包含风险和回滚详情的指定变更集。”

评论

支持 Markdown