[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-planetscale-planetscale-change-gates-and-approval-contract":3,"mdc--7fqr5v-key":34,"related-repo-planetscale-planetscale-change-gates-and-approval-contract":637,"related-org-planetscale-planetscale-change-gates-and-approval-contract":742},{"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-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},"planetscale","PlanetScale","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fplanetscale.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Governance","governance","tag",{"name":17,"slug":18,"type":15},"Database","database",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Approvals","approvals",50,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills","2026-07-07T06:38:42.512288",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\u002F11-change-gates-and-approval-contract","---\nname: planetscale-change-gates-and-approval-contract\ndescription: Enforce explicit approval gates for any PlanetScale, database, repository, credential, network, or automation mutation.\n---\n\n# Change gates and approval contract\n\n## Purpose\n\nPrevent accidental or autonomous changes that can affect availability, safety, security, data, or developer workflows.\n\n## Operation classes\n\n### Class A: read-only by default\n\nAllowed without approval:\n\n- List databases, branches, keyspaces, webhooks, backups, roles, traffic budgets, schema recommendations, deploy requests, and Insights data.\n- Inspect repository code.\n- Read schema metadata.\n- Read non-sensitive database metadata.\n- Produce reports and proposed change sets.\n\n### Class B: state-creating proposals\n\nAllowed by default; requires approval only when the operator has demanded strict no-mutation mode:\n\n- Creating a query-pattern report through an API POST, even if the result is read-only telemetry.\n- Triggering a webhook test event.\n- Creating temporary local branches or files.\n- Opening PRs or issues in external tools.\n- Creating database development branches.\n- Applying DDL or migrations to non-production development branches.\n- Opening deploy requests targeting a branch protected by a review workflow.\n\nThe last three are proposals inside an existing review system: nothing\nreaches production until a human merges or deploys. The gate belongs on\nthe merge\u002Fdeploy action (Class C\u002FD), not on proposal creation. An agent\nthat stops to ask permission to open a PR is misclassifying.\n\n### Class C: behavior-changing\n\nAlways requires explicit approval:\n\n- Enable safe migrations.\n- Disable safe migrations.\n- Change deploy request approval settings.\n- Create\u002Fupdate\u002Fdelete Traffic Control budget or rule.\n- Move Traffic Control budget to enforce mode.\n- Create\u002Fupdate\u002Fdelete webhook.\n- Enable raw query collection.\n- Enable\u002Fdisable extensions or settings that require restart.\n- Create\u002Fupdate\u002Fdelete role.\n- Reset passwords.\n- Change pg_strict settings.\n- Change connection pooling behavior.\n- Change IP restrictions, PrivateLink, PSC, or public access.\n- Change backup schedule or retention.\n- Create restore branch.\n- Create backup beyond automatic backups.\n- Change branch size or replica topology.\n- Edit repository files or dependencies.\n\n### Class D: production data\u002Favailability impacting\n\nRequires explicit approval, named target confirmation, rollback plan, and ideally a second human review:\n\n- Production DDL.\n- Production DML.\n- Applying schema recommendation to production.\n- Queueing or applying Vitess deploy request to production.\n- Promoting or restoring branches.\n- Deleting branches, databases, roles, webhooks, backups, or traffic rules.\n- Enforcing Traffic Control on production.\n- Changing production network access.\n- Rotating production credentials.\n- Emergency backup during high load.\n\n### Class E: never autonomous\n\nNever do without direct human operation or separately approved incident procedure:\n\n- Delete a production database.\n- Disable all production safety mechanisms.\n- Drop production tables or columns.\n- Remove IP restrictions or private-only posture.\n- Store or expose secrets in logs, issues, PRs, Slack, or reports.\n- Auto-merge code generated from database telemetry.\n- Auto-apply DDL generated by an LLM.\n\n## Approval requirements\n\nA valid approval must include:\n\n- Change ID.\n- Target organization\u002Fdatabase\u002Fbranch.\n- Whether production is affected.\n- Permission to execute the exact action.\n\nInvalid approvals:\n\n- “Do the best practices.”\n- “Fix everything.”\n- “Apply recommendations.”\n- “Go ahead” without named change IDs.\n\n## Autonomous execution exception\n\nThere is exactly one alternative to per-change approval: the risk-acknowledged\nautonomous mode defined in `..\u002F13-autonomous-execution-mode\u002FSKILL.md`. When the\noperator explicitly acknowledges the risk, names a scope, and states whether\nproduction is included, that acknowledgment substitutes for per-change approval\nof Class B\u002FC (and Class D when production is included) actions **within the\nnamed scope only**.\n\nEverything else in this skill still applies in autonomous mode:\n\n- Class E is never unlocked by any phrasing.\n- The pre-execution checklist must still be produced for every Class C\u002FD step\n  (shown as the execution plan, not as a stop-and-wait).\n- The post-execution report is still required.\n- Out-of-scope work still requires new approval or new acknowledgment.\n\n## Required pre-execution checklist\n\nBefore any Class C or D action, produce:\n\n- Exact command, API endpoint, dashboard action, SQL, or repository diff.\n- Target confirmation.\n- Expected effect.\n- Availability impact.\n- Data risk.\n- Security risk.\n- Rollback plan.\n- Validation plan.\n- Monitoring plan.\n\nThen stop for approval.\n\n## Required post-execution report\n\nIf an approved change is later executed, report:\n\n- What changed.\n- When it changed.\n- Who approved.\n- Interface used.\n- Evidence of success.\n- Any warnings.\n- Rollback state.\n- Follow-up monitoring.\n\n## Required refusal behavior\n\nIf asked to apply broad or ambiguous production changes, refuse the broad action and produce a safer named change plan.\n\nUse this sentence:\n\n“I will not apply broad production changes from an ambiguous instruction. I can produce a named change set with risk and rollback details.”\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,55,61,67,74,79,109,115,120,158,163,169,174,267,273,278,331,337,342,380,386,391,414,419,442,448,470,475,498,504,509,557,562,568,573,616,622,627,632],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"change-gates-and-approval-contract",[45],{"type":46,"value":47},"text","Change gates and approval contract",{"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],{"type":46,"value":60},"Prevent accidental or autonomous changes that can affect availability, safety, security, data, or developer workflows.",{"type":40,"tag":49,"props":62,"children":64},{"id":63},"operation-classes",[65],{"type":46,"value":66},"Operation classes",{"type":40,"tag":68,"props":69,"children":71},"h3",{"id":70},"class-a-read-only-by-default",[72],{"type":46,"value":73},"Class A: read-only by default",{"type":40,"tag":56,"props":75,"children":76},{},[77],{"type":46,"value":78},"Allowed without approval:",{"type":40,"tag":80,"props":81,"children":82},"ul",{},[83,89,94,99,104],{"type":40,"tag":84,"props":85,"children":86},"li",{},[87],{"type":46,"value":88},"List databases, branches, keyspaces, webhooks, backups, roles, traffic budgets, schema recommendations, deploy requests, and Insights data.",{"type":40,"tag":84,"props":90,"children":91},{},[92],{"type":46,"value":93},"Inspect repository code.",{"type":40,"tag":84,"props":95,"children":96},{},[97],{"type":46,"value":98},"Read schema metadata.",{"type":40,"tag":84,"props":100,"children":101},{},[102],{"type":46,"value":103},"Read non-sensitive database metadata.",{"type":40,"tag":84,"props":105,"children":106},{},[107],{"type":46,"value":108},"Produce reports and proposed change sets.",{"type":40,"tag":68,"props":110,"children":112},{"id":111},"class-b-state-creating-proposals",[113],{"type":46,"value":114},"Class B: state-creating proposals",{"type":40,"tag":56,"props":116,"children":117},{},[118],{"type":46,"value":119},"Allowed by default; requires approval only when the operator has demanded strict no-mutation mode:",{"type":40,"tag":80,"props":121,"children":122},{},[123,128,133,138,143,148,153],{"type":40,"tag":84,"props":124,"children":125},{},[126],{"type":46,"value":127},"Creating a query-pattern report through an API POST, even if the result is read-only telemetry.",{"type":40,"tag":84,"props":129,"children":130},{},[131],{"type":46,"value":132},"Triggering a webhook test event.",{"type":40,"tag":84,"props":134,"children":135},{},[136],{"type":46,"value":137},"Creating temporary local branches or files.",{"type":40,"tag":84,"props":139,"children":140},{},[141],{"type":46,"value":142},"Opening PRs or issues in external tools.",{"type":40,"tag":84,"props":144,"children":145},{},[146],{"type":46,"value":147},"Creating database development branches.",{"type":40,"tag":84,"props":149,"children":150},{},[151],{"type":46,"value":152},"Applying DDL or migrations to non-production development branches.",{"type":40,"tag":84,"props":154,"children":155},{},[156],{"type":46,"value":157},"Opening deploy requests targeting a branch protected by a review workflow.",{"type":40,"tag":56,"props":159,"children":160},{},[161],{"type":46,"value":162},"The last three are proposals inside an existing review system: nothing\nreaches production until a human merges or deploys. The gate belongs on\nthe merge\u002Fdeploy action (Class C\u002FD), not on proposal creation. An agent\nthat stops to ask permission to open a PR is misclassifying.",{"type":40,"tag":68,"props":164,"children":166},{"id":165},"class-c-behavior-changing",[167],{"type":46,"value":168},"Class C: behavior-changing",{"type":40,"tag":56,"props":170,"children":171},{},[172],{"type":46,"value":173},"Always requires explicit approval:",{"type":40,"tag":80,"props":175,"children":176},{},[177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262],{"type":40,"tag":84,"props":178,"children":179},{},[180],{"type":46,"value":181},"Enable safe migrations.",{"type":40,"tag":84,"props":183,"children":184},{},[185],{"type":46,"value":186},"Disable safe migrations.",{"type":40,"tag":84,"props":188,"children":189},{},[190],{"type":46,"value":191},"Change deploy request approval settings.",{"type":40,"tag":84,"props":193,"children":194},{},[195],{"type":46,"value":196},"Create\u002Fupdate\u002Fdelete Traffic Control budget or rule.",{"type":40,"tag":84,"props":198,"children":199},{},[200],{"type":46,"value":201},"Move Traffic Control budget to enforce mode.",{"type":40,"tag":84,"props":203,"children":204},{},[205],{"type":46,"value":206},"Create\u002Fupdate\u002Fdelete webhook.",{"type":40,"tag":84,"props":208,"children":209},{},[210],{"type":46,"value":211},"Enable raw query collection.",{"type":40,"tag":84,"props":213,"children":214},{},[215],{"type":46,"value":216},"Enable\u002Fdisable extensions or settings that require restart.",{"type":40,"tag":84,"props":218,"children":219},{},[220],{"type":46,"value":221},"Create\u002Fupdate\u002Fdelete role.",{"type":40,"tag":84,"props":223,"children":224},{},[225],{"type":46,"value":226},"Reset passwords.",{"type":40,"tag":84,"props":228,"children":229},{},[230],{"type":46,"value":231},"Change pg_strict settings.",{"type":40,"tag":84,"props":233,"children":234},{},[235],{"type":46,"value":236},"Change connection pooling behavior.",{"type":40,"tag":84,"props":238,"children":239},{},[240],{"type":46,"value":241},"Change IP restrictions, PrivateLink, PSC, or public access.",{"type":40,"tag":84,"props":243,"children":244},{},[245],{"type":46,"value":246},"Change backup schedule or retention.",{"type":40,"tag":84,"props":248,"children":249},{},[250],{"type":46,"value":251},"Create restore branch.",{"type":40,"tag":84,"props":253,"children":254},{},[255],{"type":46,"value":256},"Create backup beyond automatic backups.",{"type":40,"tag":84,"props":258,"children":259},{},[260],{"type":46,"value":261},"Change branch size or replica topology.",{"type":40,"tag":84,"props":263,"children":264},{},[265],{"type":46,"value":266},"Edit repository files or dependencies.",{"type":40,"tag":68,"props":268,"children":270},{"id":269},"class-d-production-dataavailability-impacting",[271],{"type":46,"value":272},"Class D: production data\u002Favailability impacting",{"type":40,"tag":56,"props":274,"children":275},{},[276],{"type":46,"value":277},"Requires explicit approval, named target confirmation, rollback plan, and ideally a second human review:",{"type":40,"tag":80,"props":279,"children":280},{},[281,286,291,296,301,306,311,316,321,326],{"type":40,"tag":84,"props":282,"children":283},{},[284],{"type":46,"value":285},"Production DDL.",{"type":40,"tag":84,"props":287,"children":288},{},[289],{"type":46,"value":290},"Production DML.",{"type":40,"tag":84,"props":292,"children":293},{},[294],{"type":46,"value":295},"Applying schema recommendation to production.",{"type":40,"tag":84,"props":297,"children":298},{},[299],{"type":46,"value":300},"Queueing or applying Vitess deploy request to production.",{"type":40,"tag":84,"props":302,"children":303},{},[304],{"type":46,"value":305},"Promoting or restoring branches.",{"type":40,"tag":84,"props":307,"children":308},{},[309],{"type":46,"value":310},"Deleting branches, databases, roles, webhooks, backups, or traffic rules.",{"type":40,"tag":84,"props":312,"children":313},{},[314],{"type":46,"value":315},"Enforcing Traffic Control on production.",{"type":40,"tag":84,"props":317,"children":318},{},[319],{"type":46,"value":320},"Changing production network access.",{"type":40,"tag":84,"props":322,"children":323},{},[324],{"type":46,"value":325},"Rotating production credentials.",{"type":40,"tag":84,"props":327,"children":328},{},[329],{"type":46,"value":330},"Emergency backup during high load.",{"type":40,"tag":68,"props":332,"children":334},{"id":333},"class-e-never-autonomous",[335],{"type":46,"value":336},"Class E: never autonomous",{"type":40,"tag":56,"props":338,"children":339},{},[340],{"type":46,"value":341},"Never do without direct human operation or separately approved incident procedure:",{"type":40,"tag":80,"props":343,"children":344},{},[345,350,355,360,365,370,375],{"type":40,"tag":84,"props":346,"children":347},{},[348],{"type":46,"value":349},"Delete a production database.",{"type":40,"tag":84,"props":351,"children":352},{},[353],{"type":46,"value":354},"Disable all production safety mechanisms.",{"type":40,"tag":84,"props":356,"children":357},{},[358],{"type":46,"value":359},"Drop production tables or columns.",{"type":40,"tag":84,"props":361,"children":362},{},[363],{"type":46,"value":364},"Remove IP restrictions or private-only posture.",{"type":40,"tag":84,"props":366,"children":367},{},[368],{"type":46,"value":369},"Store or expose secrets in logs, issues, PRs, Slack, or reports.",{"type":40,"tag":84,"props":371,"children":372},{},[373],{"type":46,"value":374},"Auto-merge code generated from database telemetry.",{"type":40,"tag":84,"props":376,"children":377},{},[378],{"type":46,"value":379},"Auto-apply DDL generated by an LLM.",{"type":40,"tag":49,"props":381,"children":383},{"id":382},"approval-requirements",[384],{"type":46,"value":385},"Approval requirements",{"type":40,"tag":56,"props":387,"children":388},{},[389],{"type":46,"value":390},"A valid approval must include:",{"type":40,"tag":80,"props":392,"children":393},{},[394,399,404,409],{"type":40,"tag":84,"props":395,"children":396},{},[397],{"type":46,"value":398},"Change ID.",{"type":40,"tag":84,"props":400,"children":401},{},[402],{"type":46,"value":403},"Target organization\u002Fdatabase\u002Fbranch.",{"type":40,"tag":84,"props":405,"children":406},{},[407],{"type":46,"value":408},"Whether production is affected.",{"type":40,"tag":84,"props":410,"children":411},{},[412],{"type":46,"value":413},"Permission to execute the exact action.",{"type":40,"tag":56,"props":415,"children":416},{},[417],{"type":46,"value":418},"Invalid approvals:",{"type":40,"tag":80,"props":420,"children":421},{},[422,427,432,437],{"type":40,"tag":84,"props":423,"children":424},{},[425],{"type":46,"value":426},"“Do the best practices.”",{"type":40,"tag":84,"props":428,"children":429},{},[430],{"type":46,"value":431},"“Fix everything.”",{"type":40,"tag":84,"props":433,"children":434},{},[435],{"type":46,"value":436},"“Apply recommendations.”",{"type":40,"tag":84,"props":438,"children":439},{},[440],{"type":46,"value":441},"“Go ahead” without named change IDs.",{"type":40,"tag":49,"props":443,"children":445},{"id":444},"autonomous-execution-exception",[446],{"type":46,"value":447},"Autonomous execution exception",{"type":40,"tag":56,"props":449,"children":450},{},[451,453,460,462,468],{"type":46,"value":452},"There is exactly one alternative to per-change approval: the risk-acknowledged\nautonomous mode defined in ",{"type":40,"tag":454,"props":455,"children":457},"code",{"className":456},[],[458],{"type":46,"value":459},"..\u002F13-autonomous-execution-mode\u002FSKILL.md",{"type":46,"value":461},". When the\noperator explicitly acknowledges the risk, names a scope, and states whether\nproduction is included, that acknowledgment substitutes for per-change approval\nof Class B\u002FC (and Class D when production is included) actions ",{"type":40,"tag":463,"props":464,"children":465},"strong",{},[466],{"type":46,"value":467},"within the\nnamed scope only",{"type":46,"value":469},".",{"type":40,"tag":56,"props":471,"children":472},{},[473],{"type":46,"value":474},"Everything else in this skill still applies in autonomous mode:",{"type":40,"tag":80,"props":476,"children":477},{},[478,483,488,493],{"type":40,"tag":84,"props":479,"children":480},{},[481],{"type":46,"value":482},"Class E is never unlocked by any phrasing.",{"type":40,"tag":84,"props":484,"children":485},{},[486],{"type":46,"value":487},"The pre-execution checklist must still be produced for every Class C\u002FD step\n(shown as the execution plan, not as a stop-and-wait).",{"type":40,"tag":84,"props":489,"children":490},{},[491],{"type":46,"value":492},"The post-execution report is still required.",{"type":40,"tag":84,"props":494,"children":495},{},[496],{"type":46,"value":497},"Out-of-scope work still requires new approval or new acknowledgment.",{"type":40,"tag":49,"props":499,"children":501},{"id":500},"required-pre-execution-checklist",[502],{"type":46,"value":503},"Required pre-execution checklist",{"type":40,"tag":56,"props":505,"children":506},{},[507],{"type":46,"value":508},"Before any Class C or D action, produce:",{"type":40,"tag":80,"props":510,"children":511},{},[512,517,522,527,532,537,542,547,552],{"type":40,"tag":84,"props":513,"children":514},{},[515],{"type":46,"value":516},"Exact command, API endpoint, dashboard action, SQL, or repository diff.",{"type":40,"tag":84,"props":518,"children":519},{},[520],{"type":46,"value":521},"Target confirmation.",{"type":40,"tag":84,"props":523,"children":524},{},[525],{"type":46,"value":526},"Expected effect.",{"type":40,"tag":84,"props":528,"children":529},{},[530],{"type":46,"value":531},"Availability impact.",{"type":40,"tag":84,"props":533,"children":534},{},[535],{"type":46,"value":536},"Data risk.",{"type":40,"tag":84,"props":538,"children":539},{},[540],{"type":46,"value":541},"Security risk.",{"type":40,"tag":84,"props":543,"children":544},{},[545],{"type":46,"value":546},"Rollback plan.",{"type":40,"tag":84,"props":548,"children":549},{},[550],{"type":46,"value":551},"Validation plan.",{"type":40,"tag":84,"props":553,"children":554},{},[555],{"type":46,"value":556},"Monitoring plan.",{"type":40,"tag":56,"props":558,"children":559},{},[560],{"type":46,"value":561},"Then stop for approval.",{"type":40,"tag":49,"props":563,"children":565},{"id":564},"required-post-execution-report",[566],{"type":46,"value":567},"Required post-execution report",{"type":40,"tag":56,"props":569,"children":570},{},[571],{"type":46,"value":572},"If an approved change is later executed, report:",{"type":40,"tag":80,"props":574,"children":575},{},[576,581,586,591,596,601,606,611],{"type":40,"tag":84,"props":577,"children":578},{},[579],{"type":46,"value":580},"What changed.",{"type":40,"tag":84,"props":582,"children":583},{},[584],{"type":46,"value":585},"When it changed.",{"type":40,"tag":84,"props":587,"children":588},{},[589],{"type":46,"value":590},"Who approved.",{"type":40,"tag":84,"props":592,"children":593},{},[594],{"type":46,"value":595},"Interface used.",{"type":40,"tag":84,"props":597,"children":598},{},[599],{"type":46,"value":600},"Evidence of success.",{"type":40,"tag":84,"props":602,"children":603},{},[604],{"type":46,"value":605},"Any warnings.",{"type":40,"tag":84,"props":607,"children":608},{},[609],{"type":46,"value":610},"Rollback state.",{"type":40,"tag":84,"props":612,"children":613},{},[614],{"type":46,"value":615},"Follow-up monitoring.",{"type":40,"tag":49,"props":617,"children":619},{"id":618},"required-refusal-behavior",[620],{"type":46,"value":621},"Required refusal behavior",{"type":40,"tag":56,"props":623,"children":624},{},[625],{"type":46,"value":626},"If asked to apply broad or ambiguous production changes, refuse the broad action and produce a safer named change plan.",{"type":40,"tag":56,"props":628,"children":629},{},[630],{"type":46,"value":631},"Use this sentence:",{"type":40,"tag":56,"props":633,"children":634},{},[635],{"type":46,"value":636},"“I will not apply broad production changes from an ambiguous instruction. I can produce a named change set with risk and rollback details.”",{"items":638,"total":741},[639,657,670,677,695,712,724],{"slug":640,"name":640,"fn":641,"description":642,"org":643,"tags":644,"stars":23,"repoUrl":24,"updatedAt":656},"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},[645,648,649,652,653],{"name":646,"slug":647,"type":15},"Automation","automation",{"name":17,"slug":18,"type":15},{"name":650,"slug":651,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},{"name":654,"slug":655,"type":15},"Risk Assessment","risk-assessment","2026-07-05T06:32:41.490537",{"slug":658,"name":658,"fn":659,"description":660,"org":661,"tags":662,"stars":23,"repoUrl":24,"updatedAt":669},"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},[663,664,665,668],{"name":646,"slug":647,"type":15},{"name":17,"slug":18,"type":15},{"name":666,"slug":667,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-27T06:07:48.188419",{"slug":4,"name":4,"fn":5,"description":6,"org":671,"tags":672,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[673,674,675,676],{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":678,"name":678,"fn":679,"description":680,"org":681,"tags":682,"stars":23,"repoUrl":24,"updatedAt":694},"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},[683,686,687,690,691],{"name":684,"slug":685,"type":15},"Code Analysis","code-analysis",{"name":17,"slug":18,"type":15},{"name":688,"slug":689,"type":15},"Observability","observability",{"name":9,"slug":8,"type":15},{"name":692,"slug":693,"type":15},"SQL","sql","2026-07-07T06:38:43.813568",{"slug":696,"name":696,"fn":697,"description":698,"org":699,"tags":700,"stars":23,"repoUrl":24,"updatedAt":711},"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},[701,704,705,708],{"name":702,"slug":703,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},{"name":706,"slug":707,"type":15},"Reporting","reporting",{"name":709,"slug":710,"type":15},"Templates","templates","2026-07-07T06:38:37.362061",{"slug":713,"name":713,"fn":714,"description":715,"org":716,"tags":717,"stars":23,"repoUrl":24,"updatedAt":723},"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},[718,721,722],{"name":719,"slug":720,"type":15},"MCP","mcp",{"name":650,"slug":651,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:38.675213",{"slug":725,"name":725,"fn":726,"description":727,"org":728,"tags":729,"stars":23,"repoUrl":24,"updatedAt":740},"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},[730,733,734,737],{"name":731,"slug":732,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":735,"slug":736,"type":15},"PostgreSQL","postgresql",{"name":738,"slug":739,"type":15},"Security","security","2026-07-07T06:38:34.75135",15,{"items":743,"total":859},[744,761,772,783,796,804,811,818,826,833,839,846],{"slug":745,"name":745,"fn":746,"description":747,"org":748,"tags":749,"stars":758,"repoUrl":759,"updatedAt":760},"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},[750,753,754,756,757],{"name":751,"slug":752,"type":15},"Data Modeling","data-modeling",{"name":17,"slug":18,"type":15},{"name":755,"slug":745,"type":15},"MySQL",{"name":666,"slug":667,"type":15},{"name":692,"slug":693,"type":15},557,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fdatabase-skills","2026-04-06T18:43:45.381961",{"slug":762,"name":762,"fn":763,"description":764,"org":765,"tags":766,"stars":758,"repoUrl":759,"updatedAt":771},"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},[767,768,769,770],{"name":17,"slug":18,"type":15},{"name":666,"slug":667,"type":15},{"name":9,"slug":8,"type":15},{"name":735,"slug":736,"type":15},"2026-07-24T05:38:09.09841",{"slug":773,"name":773,"fn":774,"description":775,"org":776,"tags":777,"stars":758,"repoUrl":759,"updatedAt":782},"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},[778,779,780,781],{"name":17,"slug":18,"type":15},{"name":666,"slug":667,"type":15},{"name":735,"slug":736,"type":15},{"name":692,"slug":693,"type":15},"2026-04-06T18:43:44.126777",{"slug":784,"name":784,"fn":785,"description":786,"org":787,"tags":788,"stars":758,"repoUrl":759,"updatedAt":795},"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},[789,790,791,792,793],{"name":17,"slug":18,"type":15},{"name":666,"slug":667,"type":15},{"name":9,"slug":8,"type":15},{"name":692,"slug":693,"type":15},{"name":794,"slug":784,"type":15},"Vitess","2026-04-06T18:43:42.890969",{"slug":640,"name":640,"fn":641,"description":642,"org":797,"tags":798,"stars":23,"repoUrl":24,"updatedAt":656},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[799,800,801,802,803],{"name":646,"slug":647,"type":15},{"name":17,"slug":18,"type":15},{"name":650,"slug":651,"type":15},{"name":9,"slug":8,"type":15},{"name":654,"slug":655,"type":15},{"slug":658,"name":658,"fn":659,"description":660,"org":805,"tags":806,"stars":23,"repoUrl":24,"updatedAt":669},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[807,808,809,810],{"name":646,"slug":647,"type":15},{"name":17,"slug":18,"type":15},{"name":666,"slug":667,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":812,"tags":813,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[814,815,816,817],{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":678,"name":678,"fn":679,"description":680,"org":819,"tags":820,"stars":23,"repoUrl":24,"updatedAt":694},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[821,822,823,824,825],{"name":684,"slug":685,"type":15},{"name":17,"slug":18,"type":15},{"name":688,"slug":689,"type":15},{"name":9,"slug":8,"type":15},{"name":692,"slug":693,"type":15},{"slug":696,"name":696,"fn":697,"description":698,"org":827,"tags":828,"stars":23,"repoUrl":24,"updatedAt":711},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[829,830,831,832],{"name":702,"slug":703,"type":15},{"name":9,"slug":8,"type":15},{"name":706,"slug":707,"type":15},{"name":709,"slug":710,"type":15},{"slug":713,"name":713,"fn":714,"description":715,"org":834,"tags":835,"stars":23,"repoUrl":24,"updatedAt":723},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[836,837,838],{"name":719,"slug":720,"type":15},{"name":650,"slug":651,"type":15},{"name":9,"slug":8,"type":15},{"slug":725,"name":725,"fn":726,"description":727,"org":840,"tags":841,"stars":23,"repoUrl":24,"updatedAt":740},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[842,843,844,845],{"name":731,"slug":732,"type":15},{"name":9,"slug":8,"type":15},{"name":735,"slug":736,"type":15},{"name":738,"slug":739,"type":15},{"slug":847,"name":847,"fn":848,"description":849,"org":850,"tags":851,"stars":23,"repoUrl":24,"updatedAt":858},"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},[852,853,856,857],{"name":646,"slug":647,"type":15},{"name":854,"slug":855,"type":15},"CLI","cli",{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:33.465495",19]