Planetscale Autonomous Execution Mode logo

Planetscale Autonomous Execution Mode

Organization
planetscale
planetscale-autonomous-execution-mode

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.

Overview

Publisherplanetscale
Repositoryskills
Skill nameplanetscale-autonomous-execution-mode
Stars
136
Forks
6
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by planetscale on GitHub. Read the source before you install it.

Installation

Install the Planetscale Autonomous Execution Mode AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/planetscale/skills/tree/main/planetscale-autonomous-execution-mode
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/planetscale/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/planetscale-autonomous-execution-mode .claude/skills/planetscale-autonomous-execution-mode
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Planetscale Autonomous Execution Mode in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Planetscale Autonomous Execution Mode on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Planetscale Autonomous Execution Mode is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

LevelUnlocksRequires
auto-safeClass B + Class C within scopeRisk acknowledgment + scope
auto-productionAdds Class D within scopeRisk acknowledgment + scope + explicit production statement
—Class ENever 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.

Frequently asked questions

What does the Planetscale Autonomous Execution Mode AI skill do?

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.

Why use Planetscale Autonomous Execution Mode on TypingMind?

Because you install it once and use it with any model. Planetscale Autonomous Execution Mode is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Planetscale Autonomous Execution Mode in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/planetscale/skills/tree/main/planetscale-autonomous-execution-mode. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Planetscale Autonomous Execution Mode?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Planetscale Autonomous Execution Mode?

As many as you like. As long as a model supports skills, you can use Planetscale Autonomous Execution Mode with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Planetscale Autonomous Execution Mode AI skill free?

Yes. It is published on GitHub by planetscale under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇