[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-planetscale-planetscale-pscale-cli-automation":3,"mdc-xr3nrq-key":34,"related-org-planetscale-planetscale-pscale-cli-automation":1072,"related-repo-planetscale-planetscale-pscale-cli-automation":1241},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"planetscale-pscale-cli-automation","automate PlanetScale CLI operations","Use the PlanetScale CLI (pscale) from automated agents with --format json, auth check, pscale sql, and per-command --force. Run before other PlanetScale skills when driving pscale directly. Use when the user asks to automate pscale, run CLI commands headless, or verify pscale auth from an agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"planetscale","PlanetScale","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fplanetscale.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"Database","database",{"name":9,"slug":8,"type":15},50,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills","2026-07-07T06:38:33.465495",null,1,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Skills that help you configure and get the most out of PlanetScale","https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills\u002Ftree\u002FHEAD\u002F14-pscale-cli-automation","---\nname: planetscale-pscale-cli-automation\ndescription: >-\n  Use the PlanetScale CLI (pscale) from automated agents with --format json,\n  auth check, pscale sql, and per-command --force. Run before other PlanetScale\n  skills when driving pscale directly. Use when the user asks to automate\n  pscale, run CLI commands headless, or verify pscale auth from an agent.\n---\n\n# PlanetScale CLI automation\n\n## Purpose\n\nTeach agents how to invoke `pscale` non-interactively. This skill covers **CLI\nconventions only**. Operational workflows (inventory, safety review, schema\nrecommendations) use the other skills in this repo — start with\n`..\u002F00-safe-orchestrator\u002FSKILL.md` for a full assessment.\n\n## Two AGENTS.md files (do not confuse them)\n\n| Document | Where | Purpose |\n|----------|-------|---------|\n| **CLI agent guide** | Shipped with `pscale` (`AGENTS.md` in the CLI repo, or `pscale agent-guide`) | How to call `pscale`: auth, `--format json`, flag placement, `pscale sql` |\n| **Project agent guide** | Your application repository's `AGENTS.md` | Which org, database, branch, engine, prod branch, MCP scope, approval rules |\n\nDo not edit project `AGENTS.md` without operator approval (see\n`..\u002F09-mcp-agent-operating-model\u002FSKILL.md`).\n\n## Bootstrap (always start here)\n\n```bash\npscale agent-guide --format json\npscale auth check --format json\n```\n\nIf `auth check` returns `\"status\": \"action_required\"`, follow `issues` and\n`next_steps` in the JSON. For login, the human may need to approve in the\nbrowser; use `pscale auth login --format json`.\n\n## Conventions\n\n- Always pass **`--format json`** for automation.\n- Put **`--org \u003Corg>`** on resource subcommands (`database`, `branch`, `sql`,\n  `api`, …) — not on root `pscale`.\n- Put **positional arguments before flags** (`pscale sql mydb main --org bb …`).\n- Use **`pscale sql`**, not `pscale shell` (shell requires a TTY).\n- Default SQL role is **reader**; pass `--role admin` (or writer\u002Freadwriter) for\n  writes. Match `pscale shell` semantics for `--role` and `--replica`.\n- **`--force`** is per subcommand only (e.g. `database delete … --force`, `pscale\n  sql … --force`). There is no global `--force` or `PSCALE_FORCE`.\n- **`--format json` alone never skips confirmations** — add `--force` on the\n  destructive subcommand after explicit user approval.\n\n## Typical workflow\n\n```bash\npscale auth check --format json\npscale org list --format json\npscale database list --org \u003Corg> --format json\npscale branch list \u003Cdatabase> --org \u003Corg> --format json\npscale sql \u003Cdatabase> \u003Cbranch> --org \u003Corg> --format json --query \"SELECT 1\"\n```\n\nMySQL uses `@primary` by default (same as `pscale shell`); pass `--keyspace` only\nfor multi-keyspace databases.\n\n## MCP vs CLI\n\n- **MCP clients** — use the hosted PlanetScale MCP server (see `pscale agent-guide\n  --format json` for the current URL).\n- **Shell scripts and coding agents** — use `pscale` with `--format json` as above.\n\n## When this skill is not enough\n\nInstall the full PlanetScale skills pack (if not already):\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills.git && cd skills && script\u002Fsetup\n# or: npx skills add planetscale\u002Fskills -g -y\n```\n\nThen run sub-skills or `..\u002F00-safe-orchestrator\u002FSKILL.md` for database operations\nbeyond basic CLI invocation.\n\n## Current conventions source of truth\n\nPrefer live output over memorized flag syntax:\n\n```bash\npscale agent-guide --format json\n```\n\nThe embedded `guide` field contains the full CLI agent guide shipped with your\n`pscale` binary.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,55,86,92,215,235,241,304,349,355,574,580,846,874,880,925,931,936,997,1009,1015,1020,1046,1066],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"planetscale-cli-automation",[45],{"type":46,"value":47},"text","PlanetScale CLI automation",{"type":40,"tag":49,"props":50,"children":52},"h2",{"id":51},"purpose",[53],{"type":46,"value":54},"Purpose",{"type":40,"tag":56,"props":57,"children":58},"p",{},[59,61,68,70,76,78,84],{"type":46,"value":60},"Teach agents how to invoke ",{"type":40,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":46,"value":67},"pscale",{"type":46,"value":69}," non-interactively. This skill covers ",{"type":40,"tag":71,"props":72,"children":73},"strong",{},[74],{"type":46,"value":75},"CLI\nconventions only",{"type":46,"value":77},". Operational workflows (inventory, safety review, schema\nrecommendations) use the other skills in this repo — start with\n",{"type":40,"tag":62,"props":79,"children":81},{"className":80},[],[82],{"type":46,"value":83},"..\u002F00-safe-orchestrator\u002FSKILL.md",{"type":46,"value":85}," for a full assessment.",{"type":40,"tag":49,"props":87,"children":89},{"id":88},"two-agentsmd-files-do-not-confuse-them",[90],{"type":46,"value":91},"Two AGENTS.md files (do not confuse them)",{"type":40,"tag":93,"props":94,"children":95},"table",{},[96,119],{"type":40,"tag":97,"props":98,"children":99},"thead",{},[100],{"type":40,"tag":101,"props":102,"children":103},"tr",{},[104,110,115],{"type":40,"tag":105,"props":106,"children":107},"th",{},[108],{"type":46,"value":109},"Document",{"type":40,"tag":105,"props":111,"children":112},{},[113],{"type":46,"value":114},"Where",{"type":40,"tag":105,"props":116,"children":117},{},[118],{"type":46,"value":54},{"type":40,"tag":120,"props":121,"children":122},"tbody",{},[123,189],{"type":40,"tag":101,"props":124,"children":125},{},[126,135,163],{"type":40,"tag":127,"props":128,"children":129},"td",{},[130],{"type":40,"tag":71,"props":131,"children":132},{},[133],{"type":46,"value":134},"CLI agent guide",{"type":40,"tag":127,"props":136,"children":137},{},[138,140,145,147,153,155,161],{"type":46,"value":139},"Shipped with ",{"type":40,"tag":62,"props":141,"children":143},{"className":142},[],[144],{"type":46,"value":67},{"type":46,"value":146}," (",{"type":40,"tag":62,"props":148,"children":150},{"className":149},[],[151],{"type":46,"value":152},"AGENTS.md",{"type":46,"value":154}," in the CLI repo, or ",{"type":40,"tag":62,"props":156,"children":158},{"className":157},[],[159],{"type":46,"value":160},"pscale agent-guide",{"type":46,"value":162},")",{"type":40,"tag":127,"props":164,"children":165},{},[166,168,173,175,181,183],{"type":46,"value":167},"How to call ",{"type":40,"tag":62,"props":169,"children":171},{"className":170},[],[172],{"type":46,"value":67},{"type":46,"value":174},": auth, ",{"type":40,"tag":62,"props":176,"children":178},{"className":177},[],[179],{"type":46,"value":180},"--format json",{"type":46,"value":182},", flag placement, ",{"type":40,"tag":62,"props":184,"children":186},{"className":185},[],[187],{"type":46,"value":188},"pscale sql",{"type":40,"tag":101,"props":190,"children":191},{},[192,200,210],{"type":40,"tag":127,"props":193,"children":194},{},[195],{"type":40,"tag":71,"props":196,"children":197},{},[198],{"type":46,"value":199},"Project agent guide",{"type":40,"tag":127,"props":201,"children":202},{},[203,205],{"type":46,"value":204},"Your application repository's ",{"type":40,"tag":62,"props":206,"children":208},{"className":207},[],[209],{"type":46,"value":152},{"type":40,"tag":127,"props":211,"children":212},{},[213],{"type":46,"value":214},"Which org, database, branch, engine, prod branch, MCP scope, approval rules",{"type":40,"tag":56,"props":216,"children":217},{},[218,220,225,227,233],{"type":46,"value":219},"Do not edit project ",{"type":40,"tag":62,"props":221,"children":223},{"className":222},[],[224],{"type":46,"value":152},{"type":46,"value":226}," without operator approval (see\n",{"type":40,"tag":62,"props":228,"children":230},{"className":229},[],[231],{"type":46,"value":232},"..\u002F09-mcp-agent-operating-model\u002FSKILL.md",{"type":46,"value":234},").",{"type":40,"tag":49,"props":236,"children":238},{"id":237},"bootstrap-always-start-here",[239],{"type":46,"value":240},"Bootstrap (always start here)",{"type":40,"tag":242,"props":243,"children":248},"pre",{"className":244,"code":245,"language":246,"meta":247,"style":247},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pscale agent-guide --format json\npscale auth check --format json\n","bash","",[249],{"type":40,"tag":62,"props":250,"children":251},{"__ignoreMap":247},[252,278],{"type":40,"tag":253,"props":254,"children":256},"span",{"class":255,"line":27},"line",[257,262,268,273],{"type":40,"tag":253,"props":258,"children":260},{"style":259},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[261],{"type":46,"value":67},{"type":40,"tag":253,"props":263,"children":265},{"style":264},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[266],{"type":46,"value":267}," agent-guide",{"type":40,"tag":253,"props":269,"children":270},{"style":264},[271],{"type":46,"value":272}," --format",{"type":40,"tag":253,"props":274,"children":275},{"style":264},[276],{"type":46,"value":277}," json\n",{"type":40,"tag":253,"props":279,"children":281},{"class":255,"line":280},2,[282,286,291,296,300],{"type":40,"tag":253,"props":283,"children":284},{"style":259},[285],{"type":46,"value":67},{"type":40,"tag":253,"props":287,"children":288},{"style":264},[289],{"type":46,"value":290}," auth",{"type":40,"tag":253,"props":292,"children":293},{"style":264},[294],{"type":46,"value":295}," check",{"type":40,"tag":253,"props":297,"children":298},{"style":264},[299],{"type":46,"value":272},{"type":40,"tag":253,"props":301,"children":302},{"style":264},[303],{"type":46,"value":277},{"type":40,"tag":56,"props":305,"children":306},{},[307,309,315,317,323,325,331,333,339,341,347],{"type":46,"value":308},"If ",{"type":40,"tag":62,"props":310,"children":312},{"className":311},[],[313],{"type":46,"value":314},"auth check",{"type":46,"value":316}," returns ",{"type":40,"tag":62,"props":318,"children":320},{"className":319},[],[321],{"type":46,"value":322},"\"status\": \"action_required\"",{"type":46,"value":324},", follow ",{"type":40,"tag":62,"props":326,"children":328},{"className":327},[],[329],{"type":46,"value":330},"issues",{"type":46,"value":332}," and\n",{"type":40,"tag":62,"props":334,"children":336},{"className":335},[],[337],{"type":46,"value":338},"next_steps",{"type":46,"value":340}," in the JSON. For login, the human may need to approve in the\nbrowser; use ",{"type":40,"tag":62,"props":342,"children":344},{"className":343},[],[345],{"type":46,"value":346},"pscale auth login --format json",{"type":46,"value":348},".",{"type":40,"tag":49,"props":350,"children":352},{"id":351},"conventions",[353],{"type":46,"value":354},"Conventions",{"type":40,"tag":356,"props":357,"children":358},"ul",{},[359,375,427,444,467,509,552],{"type":40,"tag":360,"props":361,"children":362},"li",{},[363,365,373],{"type":46,"value":364},"Always pass ",{"type":40,"tag":71,"props":366,"children":367},{},[368],{"type":40,"tag":62,"props":369,"children":371},{"className":370},[],[372],{"type":46,"value":180},{"type":46,"value":374}," for automation.",{"type":40,"tag":360,"props":376,"children":377},{},[378,380,389,391,396,398,404,405,411,413,419,421,426],{"type":46,"value":379},"Put ",{"type":40,"tag":71,"props":381,"children":382},{},[383],{"type":40,"tag":62,"props":384,"children":386},{"className":385},[],[387],{"type":46,"value":388},"--org \u003Corg>",{"type":46,"value":390}," on resource subcommands (",{"type":40,"tag":62,"props":392,"children":394},{"className":393},[],[395],{"type":46,"value":21},{"type":46,"value":397},", ",{"type":40,"tag":62,"props":399,"children":401},{"className":400},[],[402],{"type":46,"value":403},"branch",{"type":46,"value":397},{"type":40,"tag":62,"props":406,"children":408},{"className":407},[],[409],{"type":46,"value":410},"sql",{"type":46,"value":412},",\n",{"type":40,"tag":62,"props":414,"children":416},{"className":415},[],[417],{"type":46,"value":418},"api",{"type":46,"value":420},", …) — not on root ",{"type":40,"tag":62,"props":422,"children":424},{"className":423},[],[425],{"type":46,"value":67},{"type":46,"value":348},{"type":40,"tag":360,"props":428,"children":429},{},[430,431,436,437,443],{"type":46,"value":379},{"type":40,"tag":71,"props":432,"children":433},{},[434],{"type":46,"value":435},"positional arguments before flags",{"type":46,"value":146},{"type":40,"tag":62,"props":438,"children":440},{"className":439},[],[441],{"type":46,"value":442},"pscale sql mydb main --org bb …",{"type":46,"value":234},{"type":40,"tag":360,"props":445,"children":446},{},[447,449,457,459,465],{"type":46,"value":448},"Use ",{"type":40,"tag":71,"props":450,"children":451},{},[452],{"type":40,"tag":62,"props":453,"children":455},{"className":454},[],[456],{"type":46,"value":188},{"type":46,"value":458},", not ",{"type":40,"tag":62,"props":460,"children":462},{"className":461},[],[463],{"type":46,"value":464},"pscale shell",{"type":46,"value":466}," (shell requires a TTY).",{"type":40,"tag":360,"props":468,"children":469},{},[470,472,477,479,485,487,492,494,500,502,508],{"type":46,"value":471},"Default SQL role is ",{"type":40,"tag":71,"props":473,"children":474},{},[475],{"type":46,"value":476},"reader",{"type":46,"value":478},"; pass ",{"type":40,"tag":62,"props":480,"children":482},{"className":481},[],[483],{"type":46,"value":484},"--role admin",{"type":46,"value":486}," (or writer\u002Freadwriter) for\nwrites. Match ",{"type":40,"tag":62,"props":488,"children":490},{"className":489},[],[491],{"type":46,"value":464},{"type":46,"value":493}," semantics for ",{"type":40,"tag":62,"props":495,"children":497},{"className":496},[],[498],{"type":46,"value":499},"--role",{"type":46,"value":501}," and ",{"type":40,"tag":62,"props":503,"children":505},{"className":504},[],[506],{"type":46,"value":507},"--replica",{"type":46,"value":348},{"type":40,"tag":360,"props":510,"children":511},{},[512,521,523,529,530,536,538,543,545,551],{"type":40,"tag":71,"props":513,"children":514},{},[515],{"type":40,"tag":62,"props":516,"children":518},{"className":517},[],[519],{"type":46,"value":520},"--force",{"type":46,"value":522}," is per subcommand only (e.g. ",{"type":40,"tag":62,"props":524,"children":526},{"className":525},[],[527],{"type":46,"value":528},"database delete … --force",{"type":46,"value":397},{"type":40,"tag":62,"props":531,"children":533},{"className":532},[],[534],{"type":46,"value":535},"pscale sql … --force",{"type":46,"value":537},"). There is no global ",{"type":40,"tag":62,"props":539,"children":541},{"className":540},[],[542],{"type":46,"value":520},{"type":46,"value":544}," or ",{"type":40,"tag":62,"props":546,"children":548},{"className":547},[],[549],{"type":46,"value":550},"PSCALE_FORCE",{"type":46,"value":348},{"type":40,"tag":360,"props":553,"children":554},{},[555,565,567,572],{"type":40,"tag":71,"props":556,"children":557},{},[558,563],{"type":40,"tag":62,"props":559,"children":561},{"className":560},[],[562],{"type":46,"value":180},{"type":46,"value":564}," alone never skips confirmations",{"type":46,"value":566}," — add ",{"type":40,"tag":62,"props":568,"children":570},{"className":569},[],[571],{"type":46,"value":520},{"type":46,"value":573}," on the\ndestructive subcommand after explicit user approval.",{"type":40,"tag":49,"props":575,"children":577},{"id":576},"typical-workflow",[578],{"type":46,"value":579},"Typical workflow",{"type":40,"tag":242,"props":581,"children":583},{"className":244,"code":582,"language":246,"meta":247,"style":247},"pscale auth check --format json\npscale org list --format json\npscale database list --org \u003Corg> --format json\npscale branch list \u003Cdatabase> --org \u003Corg> --format json\npscale sql \u003Cdatabase> \u003Cbranch> --org \u003Corg> --format json --query \"SELECT 1\"\n",[584],{"type":40,"tag":62,"props":585,"children":586},{"__ignoreMap":247},[587,610,635,687,750],{"type":40,"tag":253,"props":588,"children":589},{"class":255,"line":27},[590,594,598,602,606],{"type":40,"tag":253,"props":591,"children":592},{"style":259},[593],{"type":46,"value":67},{"type":40,"tag":253,"props":595,"children":596},{"style":264},[597],{"type":46,"value":290},{"type":40,"tag":253,"props":599,"children":600},{"style":264},[601],{"type":46,"value":295},{"type":40,"tag":253,"props":603,"children":604},{"style":264},[605],{"type":46,"value":272},{"type":40,"tag":253,"props":607,"children":608},{"style":264},[609],{"type":46,"value":277},{"type":40,"tag":253,"props":611,"children":612},{"class":255,"line":280},[613,617,622,627,631],{"type":40,"tag":253,"props":614,"children":615},{"style":259},[616],{"type":46,"value":67},{"type":40,"tag":253,"props":618,"children":619},{"style":264},[620],{"type":46,"value":621}," org",{"type":40,"tag":253,"props":623,"children":624},{"style":264},[625],{"type":46,"value":626}," list",{"type":40,"tag":253,"props":628,"children":629},{"style":264},[630],{"type":46,"value":272},{"type":40,"tag":253,"props":632,"children":633},{"style":264},[634],{"type":46,"value":277},{"type":40,"tag":253,"props":636,"children":638},{"class":255,"line":637},3,[639,643,648,652,657,663,668,674,679,683],{"type":40,"tag":253,"props":640,"children":641},{"style":259},[642],{"type":46,"value":67},{"type":40,"tag":253,"props":644,"children":645},{"style":264},[646],{"type":46,"value":647}," database",{"type":40,"tag":253,"props":649,"children":650},{"style":264},[651],{"type":46,"value":626},{"type":40,"tag":253,"props":653,"children":654},{"style":264},[655],{"type":46,"value":656}," --org",{"type":40,"tag":253,"props":658,"children":660},{"style":659},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[661],{"type":46,"value":662}," \u003C",{"type":40,"tag":253,"props":664,"children":665},{"style":264},[666],{"type":46,"value":667},"or",{"type":40,"tag":253,"props":669,"children":671},{"style":670},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[672],{"type":46,"value":673},"g",{"type":40,"tag":253,"props":675,"children":676},{"style":659},[677],{"type":46,"value":678},">",{"type":40,"tag":253,"props":680,"children":681},{"style":264},[682],{"type":46,"value":272},{"type":40,"tag":253,"props":684,"children":685},{"style":264},[686],{"type":46,"value":277},{"type":40,"tag":253,"props":688,"children":690},{"class":255,"line":689},4,[691,695,700,704,708,713,718,722,726,730,734,738,742,746],{"type":40,"tag":253,"props":692,"children":693},{"style":259},[694],{"type":46,"value":67},{"type":40,"tag":253,"props":696,"children":697},{"style":264},[698],{"type":46,"value":699}," branch",{"type":40,"tag":253,"props":701,"children":702},{"style":264},[703],{"type":46,"value":626},{"type":40,"tag":253,"props":705,"children":706},{"style":659},[707],{"type":46,"value":662},{"type":40,"tag":253,"props":709,"children":710},{"style":264},[711],{"type":46,"value":712},"databas",{"type":40,"tag":253,"props":714,"children":715},{"style":670},[716],{"type":46,"value":717},"e",{"type":40,"tag":253,"props":719,"children":720},{"style":659},[721],{"type":46,"value":678},{"type":40,"tag":253,"props":723,"children":724},{"style":264},[725],{"type":46,"value":656},{"type":40,"tag":253,"props":727,"children":728},{"style":659},[729],{"type":46,"value":662},{"type":40,"tag":253,"props":731,"children":732},{"style":264},[733],{"type":46,"value":667},{"type":40,"tag":253,"props":735,"children":736},{"style":670},[737],{"type":46,"value":673},{"type":40,"tag":253,"props":739,"children":740},{"style":659},[741],{"type":46,"value":678},{"type":40,"tag":253,"props":743,"children":744},{"style":264},[745],{"type":46,"value":272},{"type":40,"tag":253,"props":747,"children":748},{"style":264},[749],{"type":46,"value":277},{"type":40,"tag":253,"props":751,"children":753},{"class":255,"line":752},5,[754,758,763,767,771,775,779,783,788,793,797,801,805,809,813,817,821,826,831,836,841],{"type":40,"tag":253,"props":755,"children":756},{"style":259},[757],{"type":46,"value":67},{"type":40,"tag":253,"props":759,"children":760},{"style":264},[761],{"type":46,"value":762}," sql",{"type":40,"tag":253,"props":764,"children":765},{"style":659},[766],{"type":46,"value":662},{"type":40,"tag":253,"props":768,"children":769},{"style":264},[770],{"type":46,"value":712},{"type":40,"tag":253,"props":772,"children":773},{"style":670},[774],{"type":46,"value":717},{"type":40,"tag":253,"props":776,"children":777},{"style":659},[778],{"type":46,"value":678},{"type":40,"tag":253,"props":780,"children":781},{"style":659},[782],{"type":46,"value":662},{"type":40,"tag":253,"props":784,"children":785},{"style":264},[786],{"type":46,"value":787},"branc",{"type":40,"tag":253,"props":789,"children":790},{"style":670},[791],{"type":46,"value":792},"h",{"type":40,"tag":253,"props":794,"children":795},{"style":659},[796],{"type":46,"value":678},{"type":40,"tag":253,"props":798,"children":799},{"style":264},[800],{"type":46,"value":656},{"type":40,"tag":253,"props":802,"children":803},{"style":659},[804],{"type":46,"value":662},{"type":40,"tag":253,"props":806,"children":807},{"style":264},[808],{"type":46,"value":667},{"type":40,"tag":253,"props":810,"children":811},{"style":670},[812],{"type":46,"value":673},{"type":40,"tag":253,"props":814,"children":815},{"style":659},[816],{"type":46,"value":678},{"type":40,"tag":253,"props":818,"children":819},{"style":264},[820],{"type":46,"value":272},{"type":40,"tag":253,"props":822,"children":823},{"style":264},[824],{"type":46,"value":825}," json",{"type":40,"tag":253,"props":827,"children":828},{"style":264},[829],{"type":46,"value":830}," --query",{"type":40,"tag":253,"props":832,"children":833},{"style":659},[834],{"type":46,"value":835}," \"",{"type":40,"tag":253,"props":837,"children":838},{"style":264},[839],{"type":46,"value":840},"SELECT 1",{"type":40,"tag":253,"props":842,"children":843},{"style":659},[844],{"type":46,"value":845},"\"\n",{"type":40,"tag":56,"props":847,"children":848},{},[849,851,857,859,864,866,872],{"type":46,"value":850},"MySQL uses ",{"type":40,"tag":62,"props":852,"children":854},{"className":853},[],[855],{"type":46,"value":856},"@primary",{"type":46,"value":858}," by default (same as ",{"type":40,"tag":62,"props":860,"children":862},{"className":861},[],[863],{"type":46,"value":464},{"type":46,"value":865},"); pass ",{"type":40,"tag":62,"props":867,"children":869},{"className":868},[],[870],{"type":46,"value":871},"--keyspace",{"type":46,"value":873}," only\nfor multi-keyspace databases.",{"type":40,"tag":49,"props":875,"children":877},{"id":876},"mcp-vs-cli",[878],{"type":46,"value":879},"MCP vs CLI",{"type":40,"tag":356,"props":881,"children":882},{},[883,901],{"type":40,"tag":360,"props":884,"children":885},{},[886,891,893,899],{"type":40,"tag":71,"props":887,"children":888},{},[889],{"type":46,"value":890},"MCP clients",{"type":46,"value":892}," — use the hosted PlanetScale MCP server (see ",{"type":40,"tag":62,"props":894,"children":896},{"className":895},[],[897],{"type":46,"value":898},"pscale agent-guide --format json",{"type":46,"value":900}," for the current URL).",{"type":40,"tag":360,"props":902,"children":903},{},[904,909,911,916,918,923],{"type":40,"tag":71,"props":905,"children":906},{},[907],{"type":46,"value":908},"Shell scripts and coding agents",{"type":46,"value":910}," — use ",{"type":40,"tag":62,"props":912,"children":914},{"className":913},[],[915],{"type":46,"value":67},{"type":46,"value":917}," with ",{"type":40,"tag":62,"props":919,"children":921},{"className":920},[],[922],{"type":46,"value":180},{"type":46,"value":924}," as above.",{"type":40,"tag":49,"props":926,"children":928},{"id":927},"when-this-skill-is-not-enough",[929],{"type":46,"value":930},"When this skill is not enough",{"type":40,"tag":56,"props":932,"children":933},{},[934],{"type":46,"value":935},"Install the full PlanetScale skills pack (if not already):",{"type":40,"tag":242,"props":937,"children":941},{"className":938,"code":939,"language":940,"meta":247,"style":247},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills.git && cd skills && script\u002Fsetup\n# or: npx skills add planetscale\u002Fskills -g -y\n","sh",[942],{"type":40,"tag":62,"props":943,"children":944},{"__ignoreMap":247},[945,988],{"type":40,"tag":253,"props":946,"children":947},{"class":255,"line":27},[948,953,958,963,968,974,979,983],{"type":40,"tag":253,"props":949,"children":950},{"style":259},[951],{"type":46,"value":952},"git",{"type":40,"tag":253,"props":954,"children":955},{"style":264},[956],{"type":46,"value":957}," clone",{"type":40,"tag":253,"props":959,"children":960},{"style":264},[961],{"type":46,"value":962}," https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills.git",{"type":40,"tag":253,"props":964,"children":965},{"style":659},[966],{"type":46,"value":967}," &&",{"type":40,"tag":253,"props":969,"children":971},{"style":970},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[972],{"type":46,"value":973}," cd",{"type":40,"tag":253,"props":975,"children":976},{"style":264},[977],{"type":46,"value":978}," skills",{"type":40,"tag":253,"props":980,"children":981},{"style":659},[982],{"type":46,"value":967},{"type":40,"tag":253,"props":984,"children":985},{"style":259},[986],{"type":46,"value":987}," script\u002Fsetup\n",{"type":40,"tag":253,"props":989,"children":990},{"class":255,"line":280},[991],{"type":40,"tag":253,"props":992,"children":994},{"style":993},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[995],{"type":46,"value":996},"# or: npx skills add planetscale\u002Fskills -g -y\n",{"type":40,"tag":56,"props":998,"children":999},{},[1000,1002,1007],{"type":46,"value":1001},"Then run sub-skills or ",{"type":40,"tag":62,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":46,"value":83},{"type":46,"value":1008}," for database operations\nbeyond basic CLI invocation.",{"type":40,"tag":49,"props":1010,"children":1012},{"id":1011},"current-conventions-source-of-truth",[1013],{"type":46,"value":1014},"Current conventions source of truth",{"type":40,"tag":56,"props":1016,"children":1017},{},[1018],{"type":46,"value":1019},"Prefer live output over memorized flag syntax:",{"type":40,"tag":242,"props":1021,"children":1023},{"className":244,"code":1022,"language":246,"meta":247,"style":247},"pscale agent-guide --format json\n",[1024],{"type":40,"tag":62,"props":1025,"children":1026},{"__ignoreMap":247},[1027],{"type":40,"tag":253,"props":1028,"children":1029},{"class":255,"line":27},[1030,1034,1038,1042],{"type":40,"tag":253,"props":1031,"children":1032},{"style":259},[1033],{"type":46,"value":67},{"type":40,"tag":253,"props":1035,"children":1036},{"style":264},[1037],{"type":46,"value":267},{"type":40,"tag":253,"props":1039,"children":1040},{"style":264},[1041],{"type":46,"value":272},{"type":40,"tag":253,"props":1043,"children":1044},{"style":264},[1045],{"type":46,"value":277},{"type":40,"tag":56,"props":1047,"children":1048},{},[1049,1051,1057,1059,1064],{"type":46,"value":1050},"The embedded ",{"type":40,"tag":62,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":46,"value":1056},"guide",{"type":46,"value":1058}," field contains the full CLI agent guide shipped with your\n",{"type":40,"tag":62,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":46,"value":67},{"type":46,"value":1065}," binary.",{"type":40,"tag":1067,"props":1068,"children":1069},"style",{},[1070],{"type":46,"value":1071},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1073,"total":1240},[1074,1094,1107,1118,1131,1147,1158,1173,1189,1206,1218,1233],{"slug":1075,"name":1075,"fn":1076,"description":1077,"org":1078,"tags":1079,"stars":1091,"repoUrl":1092,"updatedAt":1093},"mysql","plan and optimize MySQL database schemas","Plan and review MySQL\u002FInnoDB schema, indexing, query tuning, transactions, and operations. Use when creating or modifying MySQL tables, indexes, or queries; diagnosing slow\u002Flocking behavior; planning migrations; or troubleshooting replication and connection issues. Load when using a MySQL database.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1080,1083,1084,1086,1089],{"name":1081,"slug":1082,"type":15},"Data Modeling","data-modeling",{"name":20,"slug":21,"type":15},{"name":1085,"slug":1075,"type":15},"MySQL",{"name":1087,"slug":1088,"type":15},"Performance","performance",{"name":1090,"slug":410,"type":15},"SQL",557,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fdatabase-skills","2026-04-06T18:43:45.381961",{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1098,"tags":1099,"stars":1091,"repoUrl":1092,"updatedAt":1106},"neki","manage sharded PostgreSQL with Neki","Overview and information about Neki, the sharded Postgres product by PlanetScale. Load when working with Neki-related tasks and the need to scale or shard postgres. Load when facing Postgres scaling or sharding issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1100,1101,1102,1103],{"name":20,"slug":21,"type":15},{"name":1087,"slug":1088,"type":15},{"name":9,"slug":8,"type":15},{"name":1104,"slug":1105,"type":15},"PostgreSQL","postgresql","2026-07-24T05:38:09.09841",{"slug":1108,"name":1108,"fn":1109,"description":1110,"org":1111,"tags":1112,"stars":1091,"repoUrl":1092,"updatedAt":1117},"postgres","optimize PostgreSQL database performance","PostgreSQL best practices, query optimization, connection troubleshooting, and performance improvement. Load when working with Postgres databases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1113,1114,1115,1116],{"name":20,"slug":21,"type":15},{"name":1087,"slug":1088,"type":15},{"name":1104,"slug":1105,"type":15},{"name":1090,"slug":410,"type":15},"2026-04-06T18:43:44.126777",{"slug":1119,"name":1119,"fn":1120,"description":1121,"org":1122,"tags":1123,"stars":1091,"repoUrl":1092,"updatedAt":1130},"vitess","optimize Vitess database performance and sharding","Vitess best practices, query optimization, and connection troubleshooting for PlanetScale Vitess databases. Load when working with Vitess databases, sharding, VSchema configuration, keyspace management, or MySQL scaling issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1124,1125,1126,1127,1128],{"name":20,"slug":21,"type":15},{"name":1087,"slug":1088,"type":15},{"name":9,"slug":8,"type":15},{"name":1090,"slug":410,"type":15},{"name":1129,"slug":1119,"type":15},"Vitess","2026-04-06T18:43:42.890969",{"slug":1132,"name":1132,"fn":1133,"description":1134,"org":1135,"tags":1136,"stars":23,"repoUrl":24,"updatedAt":1146},"planetscale-autonomous-execution-mode","execute autonomous PlanetScale database changes","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1137,1138,1139,1142,1143],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":1140,"slug":1141,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},{"name":1144,"slug":1145,"type":15},"Risk Assessment","risk-assessment","2026-07-05T06:32:41.490537",{"slug":1148,"name":1148,"fn":1149,"description":1150,"org":1151,"tags":1152,"stars":23,"repoUrl":24,"updatedAt":1157},"planetscale-best-practices-matrix","evaluate PlanetScale best practices feature matrix","A concise feature matrix for deciding which PlanetScale safety, observability, and automation recommendations apply by engine.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1153,1154,1155,1156],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":1087,"slug":1088,"type":15},{"name":9,"slug":8,"type":15},"2026-07-27T06:07:48.188419",{"slug":1159,"name":1159,"fn":1160,"description":1161,"org":1162,"tags":1163,"stars":23,"repoUrl":24,"updatedAt":1172},"planetscale-change-gates-and-approval-contract","enforce approval gates for database mutations","Enforce explicit approval gates for any PlanetScale, database, repository, credential, network, or automation mutation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1164,1167,1168,1171],{"name":1165,"slug":1166,"type":15},"Approvals","approvals",{"name":20,"slug":21,"type":15},{"name":1169,"slug":1170,"type":15},"Governance","governance",{"name":9,"slug":8,"type":15},"2026-07-07T06:38:42.512288",{"slug":1174,"name":1174,"fn":1175,"description":1176,"org":1177,"tags":1178,"stars":23,"repoUrl":24,"updatedAt":1188},"planetscale-codebase-sqlcommenter-instrumentation","instrument PlanetScale applications with SQLCommenter","Inspect an application repository connected to PlanetScale and recommend SQLCommenter-compatible query tagging packages and conventions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1179,1182,1183,1186,1187],{"name":1180,"slug":1181,"type":15},"Code Analysis","code-analysis",{"name":20,"slug":21,"type":15},{"name":1184,"slug":1185,"type":15},"Observability","observability",{"name":9,"slug":8,"type":15},{"name":1090,"slug":410,"type":15},"2026-07-07T06:38:43.813568",{"slug":1190,"name":1190,"fn":1191,"description":1192,"org":1193,"tags":1194,"stars":23,"repoUrl":24,"updatedAt":1205},"planetscale-customer-report-template","generate PlanetScale best practices reports","Produce the final PlanetScale best-practices report after running the inventory and relevant review skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1195,1198,1199,1202],{"name":1196,"slug":1197,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},{"name":1200,"slug":1201,"type":15},"Reporting","reporting",{"name":1203,"slug":1204,"type":15},"Templates","templates","2026-07-07T06:38:37.362061",{"slug":1207,"name":1207,"fn":1208,"description":1209,"org":1210,"tags":1211,"stars":23,"repoUrl":24,"updatedAt":1217},"planetscale-mcp-agent-operating-model","configure safe PlanetScale MCP agent behavior","Configure safe agent behavior around PlanetScale MCP, Insights, schema recommendations, and repository work without autonomous production mutation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1212,1215,1216],{"name":1213,"slug":1214,"type":15},"MCP","mcp",{"name":1140,"slug":1141,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:38.675213",{"slug":1219,"name":1219,"fn":1220,"description":1221,"org":1222,"tags":1223,"stars":23,"repoUrl":24,"updatedAt":1232},"planetscale-postgres-safety-review","review PlanetScale Postgres safety and configuration","Review PlanetScale Postgres for Traffic Control, query tags, roles, pg_strict, backups\u002FPITR, private connectivity, webhooks, branches, and safe agent operation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1224,1227,1228,1229],{"name":1225,"slug":1226,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":1104,"slug":1105,"type":15},{"name":1230,"slug":1231,"type":15},"Security","security","2026-07-07T06:38:34.75135",{"slug":4,"name":4,"fn":5,"description":6,"org":1234,"tags":1235,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1236,1237,1238,1239],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},19,{"items":1242,"total":1293},[1243,1251,1258,1265,1273,1280,1286],{"slug":1132,"name":1132,"fn":1133,"description":1134,"org":1244,"tags":1245,"stars":23,"repoUrl":24,"updatedAt":1146},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1246,1247,1248,1249,1250],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":1140,"slug":1141,"type":15},{"name":9,"slug":8,"type":15},{"name":1144,"slug":1145,"type":15},{"slug":1148,"name":1148,"fn":1149,"description":1150,"org":1252,"tags":1253,"stars":23,"repoUrl":24,"updatedAt":1157},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1254,1255,1256,1257],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":1087,"slug":1088,"type":15},{"name":9,"slug":8,"type":15},{"slug":1159,"name":1159,"fn":1160,"description":1161,"org":1259,"tags":1260,"stars":23,"repoUrl":24,"updatedAt":1172},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1261,1262,1263,1264],{"name":1165,"slug":1166,"type":15},{"name":20,"slug":21,"type":15},{"name":1169,"slug":1170,"type":15},{"name":9,"slug":8,"type":15},{"slug":1174,"name":1174,"fn":1175,"description":1176,"org":1266,"tags":1267,"stars":23,"repoUrl":24,"updatedAt":1188},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1268,1269,1270,1271,1272],{"name":1180,"slug":1181,"type":15},{"name":20,"slug":21,"type":15},{"name":1184,"slug":1185,"type":15},{"name":9,"slug":8,"type":15},{"name":1090,"slug":410,"type":15},{"slug":1190,"name":1190,"fn":1191,"description":1192,"org":1274,"tags":1275,"stars":23,"repoUrl":24,"updatedAt":1205},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1276,1277,1278,1279],{"name":1196,"slug":1197,"type":15},{"name":9,"slug":8,"type":15},{"name":1200,"slug":1201,"type":15},{"name":1203,"slug":1204,"type":15},{"slug":1207,"name":1207,"fn":1208,"description":1209,"org":1281,"tags":1282,"stars":23,"repoUrl":24,"updatedAt":1217},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1283,1284,1285],{"name":1213,"slug":1214,"type":15},{"name":1140,"slug":1141,"type":15},{"name":9,"slug":8,"type":15},{"slug":1219,"name":1219,"fn":1220,"description":1221,"org":1287,"tags":1288,"stars":23,"repoUrl":24,"updatedAt":1232},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1289,1290,1291,1292],{"name":1225,"slug":1226,"type":15},{"name":9,"slug":8,"type":15},{"name":1104,"slug":1105,"type":15},{"name":1230,"slug":1231,"type":15},15]