用途
PlanetScale 自主执行模式用于在操作者明确接受风险后,让智能体端到端执行已批准的 PlanetScale 变更。它移除逐步审批的摩擦,但保留所有验证、顺序、回滚和停止规则。自主性改变的是"谁点击执行",而非工作执行的仔细程度。
激活条件
自主模式仅在操作者消息同时包含以下三项时激活:
- 明确的风险确认:如"我理解风险"、"我接受风险"。较模糊的表述(如"继续"、"听起来不错")不会激活自主模式,仍按变更门控技能进行逐项审批。
- 具名范围:具名变更 ID、带变更类上限的具名数据库或组织、或"报告中的所有建议"(仅此模式下有效)。
- 生产声明:说明是否包含影响生产(类 D)的变更。若未说明,询问一次;仍未说明则按 auto-safe 运行(排除类 D)。
执行前须将风险确认原文记录到运行日志。
自主级别
| 级别 | 解锁范围 | 要求 |
|---|---|---|
| auto-safe | 范围内的类 B + 类 C | 风险确认 + 范围 |
| auto-production | 增加范围内的类 D | 风险确认 + 范围 + 明确生产声明 |
| — | 类 E | 永不可用,任何表述都无法解锁 |
类 E 操作(删除生产数据库/表、同时禁用所有安全机制、暴露密钥、移除私有网络姿态)在所有模式下均被拒绝。若请求的变更集包含类 E 项,执行其余项并报告排除情况——不静默跳过,也不要求操作者"更用力确认"。
确认有效期
确认仅适用于本次运行。新会话、新报告或数据库状态发生实质性变化均需重新确认。确认仅适用于具名范围。运行中发现新问题不授权修复,应加入报告后继续。操作者可随时说"停止",在当前原子步骤完成后停止并生成部分运行报告。
常设授权(计划自动化)
交互式确认仅限单次运行。计划自动化(cron、Cursor Automations、webhook 触发运行)改为在常设授权下运行:需要一份书面文件,存放在智能体读取指令的位置(如 AGENTS.md 章节或专用授权文件),包含自动化名称和所有者、范围(组织、数据库、分支)、类上限(B/C/D,类 E 不可授权)、操作允许列表(以有界操作而非意图表述)、数值边界(如每次运行最大变更数、分支最大年龄、允许的预算模式)、到期日期(过期即仅报告模式,建议 90 天审查一次)。
常设授权的每次运行规则:每次运行开始时重新读取授权,执行以文件所写为界;允许列表之外的一切仅报告;所有停止条件不变;已停止的计划运行不会自动恢复;状态流式输出到配置的投递渠道(webhook、Slack、问题跟踪器),无投递渠道的计划运行不得执行变更;运行日志按每次运行持久保存并在投递渠道消息中引用。
执行计划
首次变更前生成并展示执行计划:按依赖排序、再按风险排序(先决条件在前,独立变更中风险最低者优先);每个变更做预检(变更前立即重读实时状态,状态不匹配则标记为 BLOCKED——状态漂移并跳过);安全先决条件是步骤而非假设(类 D DDL 前确认备份完成、确认安全迁移或部署请求为执行载体、优先可回滚机制);一次一个原子变更,不批量、不并行化类 D 步骤;每步后读回验证,命令退出 0 不等于完成,读回匹配预期状态才算完成。
状态协议
在每个阶段输出状态:计划公告(编号步骤,含目标、确切命令/接口、预期效果、回滚机制、变更类);每步执行前(如 [step 3/7] STARTING VIT-3a — deploy request: add idx_orders_on_user_id to storefront-demo/main (Class D, revert window available));每步执行后(如 [step 3/7] DONE — deploy request #4 deployed, index visible in schema read-back (took 2m 10s));长时间运行操作定期轮询报告进度;跳过和阻断立即报告原因。状态行须具体到仅凭状态流即可重建运行过程。状态为纯文本,输出在智能体正常输出流中,不依赖任何宿主特定渲染界面。
停止条件
以下情况触及时,完成或安全中止当前原子步骤,执行预置回滚(若步骤半应用),并报告:任何类 D 步骤失败或验证不正确 → 停止整个运行;类 B/C 步骤失败 → 停止该变更的依赖链,独立变更可继续;目标数据库中途出现异常 → 暂停并等待操作者;生产目标状态漂移 → 停止运行;需要超出已确认范围的内容 → 不做,报告;破坏性步骤出错 → 绝不自动重试(仅幂等读取和非破坏性调用的瞬时网络故障可重试)。停止后报告每步状态、当前数据库状态及恢复所需重新确认。不得凭原始确认恢复已停止的运行。
回滚纪律
每步前准备具体回滚(确切命令或机制:部署请求回滚、预算恢复为警告、禁用 webhook、恢复点)。步骤半应用且回滚本身非破坏性并已在计划中预先声明时,无需询问自动回滚。绝不使用破坏性操作自动回滚(如绝不自动恢复覆盖数据),应报告并等待。
运行日志
为整个会话维护仅追加的运行日志:时间戳、步骤 ID、命令、结果、读回证据。在运行摘要中包含日志或其路径。
与其他技能的交互
../11-change-gates-and-approval-contract/SKILL.md:变更类定义和执行前后检查清单仍逐字适用;有效风险确认在范围内替代逐项审批;类 E 规则不变。../00-safe-orchestrator/SKILL.md:当有效确认伴随评估请求时,先运行完整评估,展示报告和执行计划,然后直接进入执行。../07-schema-recommendations-agent-loop/SKILL.md:自主模式下循环可贯穿分支、部署请求和部署,在切换时机重要处使用受门控部署。
必要拒绝行为
若操作者要求完全自主但缺少确认要素,不协商模糊性,回复:"Autonomous mode needs an explicit risk acknowledgment, a named scope, and whether production changes are included. For example: 'I accept the risk — apply all report recommendations to storefront-demo, production included.'" 然后等待。