Skip to main content
skill CX Codex

planetscale-autonomous-execution-mode — Claude Code skill

Lets an agent carry approved PlanetScale changes through plan, execution, verification and reporting without per-step approval. The operator accepts the risk once, for a named scope.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add planetscale/skills --skill planetscale-autonomous-execution-mode -a claude-code
Open on GitHub

What planetscale-autonomous-execution-mode does

Autonomous mode turns on only when the operator's message carries three things: an explicit risk acknowledgment, a named scope, and a statement about whether production-affecting changes are included. Soft phrasing like "go ahead" does not activate it — that stays a per-change approval. The acknowledgment covers this run and this scope only. If a new problem surfaces mid-run, the skill adds it to the report instead of fixing it.

Before the first mutation the agent shows an execution plan: dependency order first, then risk order, a live-state pre-flight, and safety prerequisites as real steps. A backup must be confirmed before any Class D DDL, and revertible vehicles are preferred. Changes run one at a time, Class D steps are never parallelized, and state is read back after each one. Class E operations — dropping production databases, disabling every safety mechanism at once, exposing secrets — are refused in every mode. If a change set contains one, the rest still executes and the exclusion lands in the report.

Scheduled runs (cron, Cursor Automations, webhooks) replace interactive acknowledgment with a written standing authorization in AGENTS.md or a dedicated file: owner, scope, class ceiling, an operation allowlist and an expiry date. The author recommends reviewing it every 90 days. A scheduled run with no delivery channel must not execute mutations at all, because status with no reader is not status.

What it helps with

  • run an approved set of schema changes without approving each step
  • ship production DDL through a deploy request with a revert window
  • halt a run when branch or recommendation state has drifted
  • write a bounded standing authorization for a cron-driven agent
  • get a partial-run report after the operator says stop

Example prompts for the agent

  • I understand the risk. Execute VIT-1 and VIT-3 in storefront-demo, leave production alone.
  • I accept the risk — everything in the report for storefront-demo, Class D included.
  • Stop after the current step and give me the partial-run report.

How to install planetscale-autonomous-execution-mode

1Skills CLI (Vercel)

npx skills add planetscale/skills --skill planetscale-autonomous-execution-mode -a claude-code

2Manually: put the files in place

~/.claude/skills/planetscale-autonomous-execution-mode/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/planetscale-autonomous-execution-mode/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about planetscale-autonomous-execution-mode

How do I install planetscale-autonomous-execution-mode in Claude?

Run npx skills add planetscale/skills --skill planetscale-autonomous-execution-mode -a claude-code. The skill lands at ~/.claude/skills/planetscale-autonomous-execution-mode/SKILL.md.

What does planetscale-autonomous-execution-mode do?

It lets the agent take approved PlanetScale changes end to end: plan, execute, verify, report, with status at every stage. Per-step approval is dropped; verification and rollback discipline are not.

Which changes will the skill never execute?

Class E operations: dropping production databases or tables, disabling all safety mechanisms at once, exposing secrets, removing private-only network posture. No phrasing unlocks them, and the remaining changes in the set still run.

Source text

SKILL.md · MIT
---
name: planetscale-autonomous-execution-mode
description: Execute approved PlanetScale changes end-to-end without per-step approval when the operator has explicitly acknowledged the risk. Defines the risk-acknowledgment contract, scoped autonomy levels, sensible execution ordering, continuous status reporting, halt conditions, and rollback discipline. Extremely safe, very enabling.
---

# Autonomous execution mode

## Purpose

Let an operator who has explicitly accepted the risk hand the whole job to the agent: plan, execute, verify, and report — with live status the entire way — instead of approving each change one by one. This mode removes the per-step approval friction. It does not remove any verification, ordering, rollback, or halt discipline. Autonomy changes who clicks "go", never how carefully the work is done.

## Activation contract

Autonomous mode activates only when the operator's message contains all three:

1. **Explicit risk acknowledgment.** An unambiguous statement such as "I understand the risk", "I accept the risk", "I know this can affect production". Softer phrasings — "go ahead", "sounds good", "do it" — do NOT activate autonomous mode; they remain per-change approvals under the change-gates skill.
2. **A named scope.** One of:
   - Named change IDs ("VIT-1, VIT-3, WEB-1"), or
   - A named database or org with a change-class ceiling ("everything in the report for storefront-demo"), or
   - "All recommendations in the report" — valid in this mode only, because the report already names every change.
3. **A production statement.** Whether production-affecting (Class D) changes are included. If the operator does not say, ask once; if still unstated, run at `auto-safe` (Class D excluded).

Record the acknowledgment verbatim in the run log before executing anything.

### Autonomy levels

| Level | Unlocks | Requires |
|---|---|---|
| `auto-safe` | Class B + Class C within scope | Risk acknowledgment + scope |
| `auto-production` | Adds Class D within scope | Risk acknowledgment + scope + explicit production statement |
| — | Class E | Never available. No phrasing unlocks it. |

Class E operations (dropping production databases/tables, disabling all safety mechanisms simultaneously, exposing secrets, removing private-only network posture) are refused in every mode. If a requested change set contains a Class E item, execute the rest and report the exclusion — do not silently skip and do not ask the operator to "confirm harder".

### Acknowledgment lifetime

- Applies to **this run only**. A new session, a new report, or a materially changed database state requires re-acknowledgment.
- Applies to **the named scope only**. Discovering a new problem mid-run does not authorize fixing it — add it to the report and continue.
- The operator can say **"stop"** at any time; halt after the current atomic step and produce the partial-run report.

### Standing authorization (scheduled automation)

Interactive acknowledgment is single-run. Scheduled agents (cron, Cursor
Automations, webhook-triggered runs) instead operate under a **standing
authorization**: a written artifact, committed where the agent reads its
instructions (an `AGENTS.md` section or a dedicated authorization file),
containing:

- Automation name and owner.
- Scope: organization, database, branches.
- Class ceiling: B, C, or D. Class E is not authorizable.
- Operation allowlist, stated as bounded operations, not intents.
  Valid: "open deploy requests for additive DDL from open schema
  recommendations; deploy with revert window; additive only (ADD INDEX,
  ADD COLUMN NULL)". Invalid: "keep the schema optimized".
- Numeric bounds where applicable: max changes per run, max branch age
  for deletion, budget modes permitted (warn only vs enforce).
- Expiry date. Expired authorization = report-only mode. Recommended
  review interval: 90 days.

Per-run rules for standing authorization:

- The agent re-reads the authorization at the start of every run;
  execution is bounded by the artifact as written, not by memory of it.
- Everything outside the allowlist is report-only for that run.
- All halt conditions apply unchanged. A halted scheduled run does not
  self-resume; it reports and waits for the owner.
- Status streams to a configured delivery channel (webhook, Slack,
  issue tracker) since no operator is watching an interactive session.
  A scheduled run with no delivery channel must not execute mutations —
  status with no reader is not status.
- The run log is persisted per run and referenced in the delivery
  channel message.

## Sensible execution: the plan

Before the first mutation, produce and show an **execution plan**:

1. **Order by dependency, then by risk.** Prerequisites first (e.g. stop the app's boot-time DDL before enabling safe migrations, add an index before dropping the one it replaces). Among independent changes, lowest-risk first so early failures cost the least.
2. **Pre-flight each change.** Re-read the live state immediately before mutating (branch flags, recommendation state, webhook config). If the state no longer matches the report evidence, the change is **stale**: skip it, mark it `BLOCKED — state drift`, and continue with independent changes.
3. **Safety prerequisites are steps, not assumptions.** Before any Class D DDL: confirm a backup completed within the retention window, confirm safe migrations or a deploy request is the vehicle where the engine supports it, and prefer revertible mechanisms (deploy requests with revert window, warn-mode before enforce-mode for Traffic Control).
4. **One atomic change at a time.** Never batch unrelated mutations into one command. Never parallelize Class D steps.
5. **Verify after each step.** Read the state back and confirm the expected effect before moving on. A change is not "done" when the command exits 0; it is done when the read-back matches the expected state.

## Status protocol

The operator handed over control; visibility is what they get in return. Emit status at every stage:

- **Plan announcement** — numbered steps, each with target, exact command/interface, expected effect, rollback mechanism, and class. This is the last thing shown before execution begins.
- **Per-step, before**: `[step 3/7] STARTING VIT-3a — deploy request: add idx_orders_on_user_id to storefront-demo/main (Class D, revert window available)`
- **Per-step, after**: `[step 3/7] DONE — deploy request #4 deployed, index visible in schema read-back (took 2m 10s)`
- **Long-running operations** (deploy requests, migrations, restores): poll and report progress at a sensible cadence, not just at completion. Include queue position/state transitions.
- **Skips and blocks**: report immediately with the reason (`BLOCKED — state drift`, `EXCLUDED — Class E`, `SKIPPED — prerequisite failed`), never silently.
- **Run summary** — the post-execution report from the change-gates skill: what changed, when, evidence of success, warnings, rollback state, follow-up monitoring. Plus the acknowledgment quote and the autonomy level used.

Status lines must be specific enough that an operator reading only the status stream could reconstruct the run: name the change ID, the target, and the mechanism every time.

Status is plain text, emitted in the agent's normal output stream as each step happens. It must not depend on any host-specific rendering surface (canvas, HTML, TUI widgets) — those may supplement the stream, never replace it. The plain-text stream and the run log are the record of the run in every agent.

## Halt conditions

Stop-the-line rules. When any of these fires, finish or safely abort the current atomic step, execute the pre-staged rollback if the step half-applied, and report:

1. **Any Class D step fails or verifies incorrectly** → halt the entire run.
2. **A Class B/C step fails** → halt that change's dependency chain; independent changes may continue; say so in status.
3. **An anomaly begins firing on a target database mid-run** → pause the run, report the anomaly, wait for the operator.
4. **State drift on a production target** (someone else changed it mid-run) → halt the run.
5. **Scope pressure** — anything needed that is outside the acknowledged scope → do not do it; report it.
6. **Error on a destructive step** → never auto-retry. Retries are permitted only for idempotent reads and transient network failures on non-destructive calls.

After a halt: report state of every step (done / rolled back / blocked / not started), current database state, and what re-acknowledgment would be needed to resume. Never resume a halted run on the original acknowledgment.

## Rollback discipline

- Before each step, stage the concrete rollback: the exact command or mechanism (deploy request revert, budget back to warn, webhook disable, restore point).
- Auto-rollback without asking when a step half-applies and the rollback is itself non-destructive and pre-declared in the plan.
- Never auto-rollback with a destructive operation (e.g. never auto-restore over data); report and wait instead.

## Run log

Maintain an append-only run log for the whole session: timestamp, step ID, command, result, read-back evidence. Include it (or its path) in the run summary. The log is the audit trail that makes "the agent did it autonomously" reviewable.

## Interaction with other skills

- `../planetscale-change-gates-and-approval-contract/SKILL.md` — the class definitions and pre/post-execution checklists still apply verbatim; a valid risk acknowledgment substitutes for per-change approval within scope. Class E rules are unchanged.
- `../planetscale-safe-orchestrator/SKILL.md` — when a valid acknowledgment accompanies the assessment request ("run the audit and fix what you find, I accept the risk"), run the full assessment first, present the report and execution plan, then proceed directly into execution under this skill without stopping for approval.
- `../planetscale-schema-recommendations-agent-loop/SKILL.md` — in autonomous mode the loop may carry recommendations all the way through branch, deploy request, and deploy, using gated deployments where cutover timing matters.

## Required refusal behavior

If the operator asks for full autonomy without the acknowledgment elements, do not negotiate ambiguity. Reply:

"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.'"

Then wait.

© planetscale · MIT · planetscale/skills

Similar skills

All skills for Data and databases →

From the same set14

planetscale-mcp-agent-operating-model Configures safe agent operations with PlanetScale MCP. It lets agents inspect telemetry and open migration PRs while blocking direct changes to production. CX Codex +1 2,400installs planetscale-safe-orchestrator Runs the complete PlanetScale best-practices assessment across engines and code, then compiles a unified report. Helpful before schema changes or production traffic tuning. CX Codex +1 1,800installs planetscale-schema-recommendations-agent-loop Turns open PlanetScale schema recommendations into a plan, issue, branch or PR. It never applies production changes on its own. CX Codex +1 1,800installs planetscale-query-insights-and-tags A skill that reads PlanetScale Insights to find expensive and risky queries, then recommends SQLCommenter tags so you can trace load back to a route or job. CX Codex +1 1,800installs planetscale-postgres-safety-review Reviews PlanetScale Postgres setups across roles, pg_strict, Traffic Control, and backups. It flags database reliability gaps without applying unapproved changes. CX Codex +1 1,800installs planetscale-best-practices-matrix The skill maps database findings to PlanetScale recommendations and tells you what applies to Vitess and what to Postgres. CX Codex +1 1,800installs planetscale-vitess-safety-review Reviews a PlanetScale Vitess database for safe migrations, deploy requests, Insights and webhooks. Produces a report, applies nothing. CX Codex +1 1,700installs planetscale-webhook-automation-recommendations Recommends PlanetScale webhook subscriptions and safe automation patterns for database alerts, anomalies, and deploy requests. CX Codex +1 1,700installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor