[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-planetscale-planetscale-best-practices-matrix":3,"mdc-qqdli8-key":34,"related-org-planetscale-planetscale-best-practices-matrix":584,"related-repo-planetscale-planetscale-best-practices-matrix":754},{"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-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},"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},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Automation","automation",{"name":20,"slug":21,"type":15},"Database","database",{"name":9,"slug":8,"type":15},50,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fskills","2026-07-27T06:07:48.188419",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\u002F12-best-practices-matrix","---\nname: planetscale-best-practices-matrix\ndescription: A concise feature matrix for deciding which PlanetScale safety, observability, and automation recommendations apply by engine.\n---\n\n# Best-practices matrix\n\n## Purpose\n\nMap database findings to recommended PlanetScale features. Use this to ensure the assessment does not miss major safety and operational surfaces.\n\n## Cross-engine recommendations\n\n### Query Insights\n\nRecommend for every production database:\n\n- Review slow, expensive, high-frequency, and erroring query patterns.\n- For Postgres, sort Insights by CPU (`sort=cpuTime` on the Insights API)\n  when diagnosing CPU pressure.\n- For sharded Vitess, review vindex usage per query pattern and the usage\n  trend after index or routing changes.\n- Correlate regressions with deploys.\n- Use tags\u002Fcomments to map queries back to code.\n- Use tag filtering\u002Fnavigation in Query Insights: the tags API\n  (`insights\u002Ftags`, `insights\u002Ftags\u002Fsummaries`) on both engines, plus\n  `tag:key:value` filtering and per-execution tag drill-down in the Vitess\n  dashboard.\n- Use anomalies as alert and automation inputs.\n\n### Webhooks\n\nRecommend for operational events:\n\n- Anomalies.\n- Storage pressure.\n- Branch readiness\u002Fsleeping.\n- Primary promotion.\n- Maintenance.\n- Schema recommendations where available.\n- Deploy request lifecycle for Vitess.\n\n### MCP and agents\n\nRecommend:\n\n- Use insights-only MCP for most autonomous analysis.\n- Use full MCP only with narrow scopes and read-only default.\n- Put database targeting and safety rules in `AGENTS.md`.\n- Agents generate PRs\u002Fissues\u002Fchange plans; humans approve database changes.\n\n### SQLCommenter \u002F query tags\n\nRecommend:\n\n- Add framework-native SQLCommenter-compatible instrumentation.\n- Use low-cardinality tags.\n- Include application, service, route\u002Fjob, feature, source, and release SHA.\n- Avoid PII and unbounded IDs.\n\n### Schema recommendation workflow\n\nRecommend:\n\n- Triage open recommendations.\n- Correlate with code and Insights.\n- Convert into migrations or branch changes.\n- Test before production.\n- Apply only through approved workflow.\n\n## Vitess-specific recommendations\n\n### Safe migrations\n\nRecommend for production branches and staging branches that accept deploy requests.\n\n### Deploy requests\n\nRecommend for schema changes into protected branches.\n\n### Force cutover discipline\n\nRecommend documenting who may use \"force cutover now\" for deploy requests\ndelayed by long-running transactions. It stops running transactions to finish\nschema cutover, so frequent use should trigger workload review before enabling\naggressive cutover as the database default.\n\n### Admin approval\n\nRecommend for production deploy requests in multi-admin organizations.\n\nIn a single-admin organization, approval alone is not a guard against agents: that admin can\nopen and approve the same deploy request. Prefer a separate agent identity, or a service token\nthat cannot approve deploy requests.\n\n### Gated deployments\n\nRecommend when cutover timing and human control matter.\n\n### Schema revert runbook\n\nRecommend documenting revert responsibilities and the application rollback relationship.\n\n### Branch strategy\n\nRecommend production, staging, and short-lived development branches with safe migrations on protected targets.\n\n### Sharding\u002Fkeyspace review\n\nRecommend when query patterns or growth suggest shard-awareness problems. Do not reshard automatically.\n\n## Postgres-specific recommendations\n\n### User-defined roles\n\nRecommend for application servers instead of default role. If roles are managed\nby Terraform and passwords should stay outside Terraform state, prefer\n`planetscale_postgres_redacted_branch_role` plus a separate password reset and\nsecret-manager storage path.\n\n### pg_strict\n\nRecommend for application roles after evaluation, especially to block accidental full-table update\u002Fdelete mistakes.\n\n### Traffic Control\n\nRecommend for resource isolation of agents, exports, reports, workers, integrations, BI, and known expensive fingerprints.\n\n### Backups and PITR\n\nRecommend verifying retention and restore drill coverage.\nIf Terraform is the customer's source of truth, recommend managing backup\npolicies there so backup posture changes are reviewed as infrastructure code.\n\n### PgBouncer and connection pooling\n\nRecommend where connection churn or serverless\u002Fedge behavior creates pressure, subject to transaction-pooling limitations.\n\n### Private connectivity and IP restrictions\n\nRecommend for customers requiring private network posture or reduced public exposure. Treat changes as production-risking.\n\n### Extensions\n\nRecommend only when use case is clear and restart\u002Factivation impact is accepted.\nInclude `auto_explain` when automatic plan logging for slow queries would\nmaterially improve diagnosis and the resulting log volume is acceptable.\nIf Terraform manages Postgres branch parameters or supported extensions, keep\nthat source of truth aligned with approved dashboard\u002FAPI changes.\n\n### Live connections\n\nRecommend inspecting `pscale branch connections top` during active connection\npressure incidents to identify sessions, blockers, and idle-in-transaction\nroots without relying on normal database connection capacity.\n\n## Output\n\nFor each matrix item, mark:\n\n- Applies: yes\u002Fno\u002Funknown.\n- Current state.\n- Gap.\n- Value: the specific measured finding this feature addresses (query\n  fingerprint, anomaly count, incident, metric). State the mechanism and\n  the measurement. Gaps are capability gaps with quantified impact, not\n  risks safely avoided.\n- Recommendation ID.\n- Approval requirement.\n\nEnd with:\n\n“No changes have been applied.”\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,55,61,67,74,79,152,158,163,201,207,212,243,249,253,276,282,286,314,320,326,331,337,342,348,353,359,364,369,375,380,386,391,397,402,408,413,419,425,438,443,448,454,459,465,470,476,481,487,492,498,511,517,530,536,541,574,579],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"best-practices-matrix",[45],{"type":46,"value":47},"text","Best-practices matrix",{"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},"Map database findings to recommended PlanetScale features. Use this to ensure the assessment does not miss major safety and operational surfaces.",{"type":40,"tag":49,"props":62,"children":64},{"id":63},"cross-engine-recommendations",[65],{"type":46,"value":66},"Cross-engine recommendations",{"type":40,"tag":68,"props":69,"children":71},"h3",{"id":70},"query-insights",[72],{"type":46,"value":73},"Query Insights",{"type":40,"tag":56,"props":75,"children":76},{},[77],{"type":46,"value":78},"Recommend for every production database:",{"type":40,"tag":80,"props":81,"children":82},"ul",{},[83,89,103,108,113,118,147],{"type":40,"tag":84,"props":85,"children":86},"li",{},[87],{"type":46,"value":88},"Review slow, expensive, high-frequency, and erroring query patterns.",{"type":40,"tag":84,"props":90,"children":91},{},[92,94,101],{"type":46,"value":93},"For Postgres, sort Insights by CPU (",{"type":40,"tag":95,"props":96,"children":98},"code",{"className":97},[],[99],{"type":46,"value":100},"sort=cpuTime",{"type":46,"value":102}," on the Insights API)\nwhen diagnosing CPU pressure.",{"type":40,"tag":84,"props":104,"children":105},{},[106],{"type":46,"value":107},"For sharded Vitess, review vindex usage per query pattern and the usage\ntrend after index or routing changes.",{"type":40,"tag":84,"props":109,"children":110},{},[111],{"type":46,"value":112},"Correlate regressions with deploys.",{"type":40,"tag":84,"props":114,"children":115},{},[116],{"type":46,"value":117},"Use tags\u002Fcomments to map queries back to code.",{"type":40,"tag":84,"props":119,"children":120},{},[121,123,129,131,137,139,145],{"type":46,"value":122},"Use tag filtering\u002Fnavigation in Query Insights: the tags API\n(",{"type":40,"tag":95,"props":124,"children":126},{"className":125},[],[127],{"type":46,"value":128},"insights\u002Ftags",{"type":46,"value":130},", ",{"type":40,"tag":95,"props":132,"children":134},{"className":133},[],[135],{"type":46,"value":136},"insights\u002Ftags\u002Fsummaries",{"type":46,"value":138},") on both engines, plus\n",{"type":40,"tag":95,"props":140,"children":142},{"className":141},[],[143],{"type":46,"value":144},"tag:key:value",{"type":46,"value":146}," filtering and per-execution tag drill-down in the Vitess\ndashboard.",{"type":40,"tag":84,"props":148,"children":149},{},[150],{"type":46,"value":151},"Use anomalies as alert and automation inputs.",{"type":40,"tag":68,"props":153,"children":155},{"id":154},"webhooks",[156],{"type":46,"value":157},"Webhooks",{"type":40,"tag":56,"props":159,"children":160},{},[161],{"type":46,"value":162},"Recommend for operational events:",{"type":40,"tag":80,"props":164,"children":165},{},[166,171,176,181,186,191,196],{"type":40,"tag":84,"props":167,"children":168},{},[169],{"type":46,"value":170},"Anomalies.",{"type":40,"tag":84,"props":172,"children":173},{},[174],{"type":46,"value":175},"Storage pressure.",{"type":40,"tag":84,"props":177,"children":178},{},[179],{"type":46,"value":180},"Branch readiness\u002Fsleeping.",{"type":40,"tag":84,"props":182,"children":183},{},[184],{"type":46,"value":185},"Primary promotion.",{"type":40,"tag":84,"props":187,"children":188},{},[189],{"type":46,"value":190},"Maintenance.",{"type":40,"tag":84,"props":192,"children":193},{},[194],{"type":46,"value":195},"Schema recommendations where available.",{"type":40,"tag":84,"props":197,"children":198},{},[199],{"type":46,"value":200},"Deploy request lifecycle for Vitess.",{"type":40,"tag":68,"props":202,"children":204},{"id":203},"mcp-and-agents",[205],{"type":46,"value":206},"MCP and agents",{"type":40,"tag":56,"props":208,"children":209},{},[210],{"type":46,"value":211},"Recommend:",{"type":40,"tag":80,"props":213,"children":214},{},[215,220,225,238],{"type":40,"tag":84,"props":216,"children":217},{},[218],{"type":46,"value":219},"Use insights-only MCP for most autonomous analysis.",{"type":40,"tag":84,"props":221,"children":222},{},[223],{"type":46,"value":224},"Use full MCP only with narrow scopes and read-only default.",{"type":40,"tag":84,"props":226,"children":227},{},[228,230,236],{"type":46,"value":229},"Put database targeting and safety rules in ",{"type":40,"tag":95,"props":231,"children":233},{"className":232},[],[234],{"type":46,"value":235},"AGENTS.md",{"type":46,"value":237},".",{"type":40,"tag":84,"props":239,"children":240},{},[241],{"type":46,"value":242},"Agents generate PRs\u002Fissues\u002Fchange plans; humans approve database changes.",{"type":40,"tag":68,"props":244,"children":246},{"id":245},"sqlcommenter-query-tags",[247],{"type":46,"value":248},"SQLCommenter \u002F query tags",{"type":40,"tag":56,"props":250,"children":251},{},[252],{"type":46,"value":211},{"type":40,"tag":80,"props":254,"children":255},{},[256,261,266,271],{"type":40,"tag":84,"props":257,"children":258},{},[259],{"type":46,"value":260},"Add framework-native SQLCommenter-compatible instrumentation.",{"type":40,"tag":84,"props":262,"children":263},{},[264],{"type":46,"value":265},"Use low-cardinality tags.",{"type":40,"tag":84,"props":267,"children":268},{},[269],{"type":46,"value":270},"Include application, service, route\u002Fjob, feature, source, and release SHA.",{"type":40,"tag":84,"props":272,"children":273},{},[274],{"type":46,"value":275},"Avoid PII and unbounded IDs.",{"type":40,"tag":68,"props":277,"children":279},{"id":278},"schema-recommendation-workflow",[280],{"type":46,"value":281},"Schema recommendation workflow",{"type":40,"tag":56,"props":283,"children":284},{},[285],{"type":46,"value":211},{"type":40,"tag":80,"props":287,"children":288},{},[289,294,299,304,309],{"type":40,"tag":84,"props":290,"children":291},{},[292],{"type":46,"value":293},"Triage open recommendations.",{"type":40,"tag":84,"props":295,"children":296},{},[297],{"type":46,"value":298},"Correlate with code and Insights.",{"type":40,"tag":84,"props":300,"children":301},{},[302],{"type":46,"value":303},"Convert into migrations or branch changes.",{"type":40,"tag":84,"props":305,"children":306},{},[307],{"type":46,"value":308},"Test before production.",{"type":40,"tag":84,"props":310,"children":311},{},[312],{"type":46,"value":313},"Apply only through approved workflow.",{"type":40,"tag":49,"props":315,"children":317},{"id":316},"vitess-specific-recommendations",[318],{"type":46,"value":319},"Vitess-specific recommendations",{"type":40,"tag":68,"props":321,"children":323},{"id":322},"safe-migrations",[324],{"type":46,"value":325},"Safe migrations",{"type":40,"tag":56,"props":327,"children":328},{},[329],{"type":46,"value":330},"Recommend for production branches and staging branches that accept deploy requests.",{"type":40,"tag":68,"props":332,"children":334},{"id":333},"deploy-requests",[335],{"type":46,"value":336},"Deploy requests",{"type":40,"tag":56,"props":338,"children":339},{},[340],{"type":46,"value":341},"Recommend for schema changes into protected branches.",{"type":40,"tag":68,"props":343,"children":345},{"id":344},"force-cutover-discipline",[346],{"type":46,"value":347},"Force cutover discipline",{"type":40,"tag":56,"props":349,"children":350},{},[351],{"type":46,"value":352},"Recommend documenting who may use \"force cutover now\" for deploy requests\ndelayed by long-running transactions. It stops running transactions to finish\nschema cutover, so frequent use should trigger workload review before enabling\naggressive cutover as the database default.",{"type":40,"tag":68,"props":354,"children":356},{"id":355},"admin-approval",[357],{"type":46,"value":358},"Admin approval",{"type":40,"tag":56,"props":360,"children":361},{},[362],{"type":46,"value":363},"Recommend for production deploy requests in multi-admin organizations.",{"type":40,"tag":56,"props":365,"children":366},{},[367],{"type":46,"value":368},"In a single-admin organization, approval alone is not a guard against agents: that admin can\nopen and approve the same deploy request. Prefer a separate agent identity, or a service token\nthat cannot approve deploy requests.",{"type":40,"tag":68,"props":370,"children":372},{"id":371},"gated-deployments",[373],{"type":46,"value":374},"Gated deployments",{"type":40,"tag":56,"props":376,"children":377},{},[378],{"type":46,"value":379},"Recommend when cutover timing and human control matter.",{"type":40,"tag":68,"props":381,"children":383},{"id":382},"schema-revert-runbook",[384],{"type":46,"value":385},"Schema revert runbook",{"type":40,"tag":56,"props":387,"children":388},{},[389],{"type":46,"value":390},"Recommend documenting revert responsibilities and the application rollback relationship.",{"type":40,"tag":68,"props":392,"children":394},{"id":393},"branch-strategy",[395],{"type":46,"value":396},"Branch strategy",{"type":40,"tag":56,"props":398,"children":399},{},[400],{"type":46,"value":401},"Recommend production, staging, and short-lived development branches with safe migrations on protected targets.",{"type":40,"tag":68,"props":403,"children":405},{"id":404},"shardingkeyspace-review",[406],{"type":46,"value":407},"Sharding\u002Fkeyspace review",{"type":40,"tag":56,"props":409,"children":410},{},[411],{"type":46,"value":412},"Recommend when query patterns or growth suggest shard-awareness problems. Do not reshard automatically.",{"type":40,"tag":49,"props":414,"children":416},{"id":415},"postgres-specific-recommendations",[417],{"type":46,"value":418},"Postgres-specific recommendations",{"type":40,"tag":68,"props":420,"children":422},{"id":421},"user-defined-roles",[423],{"type":46,"value":424},"User-defined roles",{"type":40,"tag":56,"props":426,"children":427},{},[428,430,436],{"type":46,"value":429},"Recommend for application servers instead of default role. If roles are managed\nby Terraform and passwords should stay outside Terraform state, prefer\n",{"type":40,"tag":95,"props":431,"children":433},{"className":432},[],[434],{"type":46,"value":435},"planetscale_postgres_redacted_branch_role",{"type":46,"value":437}," plus a separate password reset and\nsecret-manager storage path.",{"type":40,"tag":68,"props":439,"children":441},{"id":440},"pg_strict",[442],{"type":46,"value":440},{"type":40,"tag":56,"props":444,"children":445},{},[446],{"type":46,"value":447},"Recommend for application roles after evaluation, especially to block accidental full-table update\u002Fdelete mistakes.",{"type":40,"tag":68,"props":449,"children":451},{"id":450},"traffic-control",[452],{"type":46,"value":453},"Traffic Control",{"type":40,"tag":56,"props":455,"children":456},{},[457],{"type":46,"value":458},"Recommend for resource isolation of agents, exports, reports, workers, integrations, BI, and known expensive fingerprints.",{"type":40,"tag":68,"props":460,"children":462},{"id":461},"backups-and-pitr",[463],{"type":46,"value":464},"Backups and PITR",{"type":40,"tag":56,"props":466,"children":467},{},[468],{"type":46,"value":469},"Recommend verifying retention and restore drill coverage.\nIf Terraform is the customer's source of truth, recommend managing backup\npolicies there so backup posture changes are reviewed as infrastructure code.",{"type":40,"tag":68,"props":471,"children":473},{"id":472},"pgbouncer-and-connection-pooling",[474],{"type":46,"value":475},"PgBouncer and connection pooling",{"type":40,"tag":56,"props":477,"children":478},{},[479],{"type":46,"value":480},"Recommend where connection churn or serverless\u002Fedge behavior creates pressure, subject to transaction-pooling limitations.",{"type":40,"tag":68,"props":482,"children":484},{"id":483},"private-connectivity-and-ip-restrictions",[485],{"type":46,"value":486},"Private connectivity and IP restrictions",{"type":40,"tag":56,"props":488,"children":489},{},[490],{"type":46,"value":491},"Recommend for customers requiring private network posture or reduced public exposure. Treat changes as production-risking.",{"type":40,"tag":68,"props":493,"children":495},{"id":494},"extensions",[496],{"type":46,"value":497},"Extensions",{"type":40,"tag":56,"props":499,"children":500},{},[501,503,509],{"type":46,"value":502},"Recommend only when use case is clear and restart\u002Factivation impact is accepted.\nInclude ",{"type":40,"tag":95,"props":504,"children":506},{"className":505},[],[507],{"type":46,"value":508},"auto_explain",{"type":46,"value":510}," when automatic plan logging for slow queries would\nmaterially improve diagnosis and the resulting log volume is acceptable.\nIf Terraform manages Postgres branch parameters or supported extensions, keep\nthat source of truth aligned with approved dashboard\u002FAPI changes.",{"type":40,"tag":68,"props":512,"children":514},{"id":513},"live-connections",[515],{"type":46,"value":516},"Live connections",{"type":40,"tag":56,"props":518,"children":519},{},[520,522,528],{"type":46,"value":521},"Recommend inspecting ",{"type":40,"tag":95,"props":523,"children":525},{"className":524},[],[526],{"type":46,"value":527},"pscale branch connections top",{"type":46,"value":529}," during active connection\npressure incidents to identify sessions, blockers, and idle-in-transaction\nroots without relying on normal database connection capacity.",{"type":40,"tag":49,"props":531,"children":533},{"id":532},"output",[534],{"type":46,"value":535},"Output",{"type":40,"tag":56,"props":537,"children":538},{},[539],{"type":46,"value":540},"For each matrix item, mark:",{"type":40,"tag":80,"props":542,"children":543},{},[544,549,554,559,564,569],{"type":40,"tag":84,"props":545,"children":546},{},[547],{"type":46,"value":548},"Applies: yes\u002Fno\u002Funknown.",{"type":40,"tag":84,"props":550,"children":551},{},[552],{"type":46,"value":553},"Current state.",{"type":40,"tag":84,"props":555,"children":556},{},[557],{"type":46,"value":558},"Gap.",{"type":40,"tag":84,"props":560,"children":561},{},[562],{"type":46,"value":563},"Value: the specific measured finding this feature addresses (query\nfingerprint, anomaly count, incident, metric). State the mechanism and\nthe measurement. Gaps are capability gaps with quantified impact, not\nrisks safely avoided.",{"type":40,"tag":84,"props":565,"children":566},{},[567],{"type":46,"value":568},"Recommendation ID.",{"type":40,"tag":84,"props":570,"children":571},{},[572],{"type":46,"value":573},"Approval requirement.",{"type":40,"tag":56,"props":575,"children":576},{},[577],{"type":46,"value":578},"End with:",{"type":40,"tag":56,"props":580,"children":581},{},[582],{"type":46,"value":583},"“No changes have been applied.”",{"items":585,"total":753},[586,605,618,629,642,658,665,680,696,713,725,740],{"slug":587,"name":587,"fn":588,"description":589,"org":590,"tags":591,"stars":602,"repoUrl":603,"updatedAt":604},"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},[592,595,596,598,599],{"name":593,"slug":594,"type":15},"Data Modeling","data-modeling",{"name":20,"slug":21,"type":15},{"name":597,"slug":587,"type":15},"MySQL",{"name":13,"slug":14,"type":15},{"name":600,"slug":601,"type":15},"SQL","sql",557,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fdatabase-skills","2026-04-06T18:43:45.381961",{"slug":606,"name":606,"fn":607,"description":608,"org":609,"tags":610,"stars":602,"repoUrl":603,"updatedAt":617},"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},[611,612,613,614],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":615,"slug":616,"type":15},"PostgreSQL","postgresql","2026-07-24T05:38:09.09841",{"slug":619,"name":619,"fn":620,"description":621,"org":622,"tags":623,"stars":602,"repoUrl":603,"updatedAt":628},"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},[624,625,626,627],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":615,"slug":616,"type":15},{"name":600,"slug":601,"type":15},"2026-04-06T18:43:44.126777",{"slug":630,"name":630,"fn":631,"description":632,"org":633,"tags":634,"stars":602,"repoUrl":603,"updatedAt":641},"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},[635,636,637,638,639],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":600,"slug":601,"type":15},{"name":640,"slug":630,"type":15},"Vitess","2026-04-06T18:43:42.890969",{"slug":643,"name":643,"fn":644,"description":645,"org":646,"tags":647,"stars":23,"repoUrl":24,"updatedAt":657},"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},[648,649,650,653,654],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":651,"slug":652,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},{"name":655,"slug":656,"type":15},"Risk Assessment","risk-assessment","2026-07-05T06:32:41.490537",{"slug":4,"name":4,"fn":5,"description":6,"org":659,"tags":660,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[661,662,663,664],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":666,"name":666,"fn":667,"description":668,"org":669,"tags":670,"stars":23,"repoUrl":24,"updatedAt":679},"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},[671,674,675,678],{"name":672,"slug":673,"type":15},"Approvals","approvals",{"name":20,"slug":21,"type":15},{"name":676,"slug":677,"type":15},"Governance","governance",{"name":9,"slug":8,"type":15},"2026-07-07T06:38:42.512288",{"slug":681,"name":681,"fn":682,"description":683,"org":684,"tags":685,"stars":23,"repoUrl":24,"updatedAt":695},"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},[686,689,690,693,694],{"name":687,"slug":688,"type":15},"Code Analysis","code-analysis",{"name":20,"slug":21,"type":15},{"name":691,"slug":692,"type":15},"Observability","observability",{"name":9,"slug":8,"type":15},{"name":600,"slug":601,"type":15},"2026-07-07T06:38:43.813568",{"slug":697,"name":697,"fn":698,"description":699,"org":700,"tags":701,"stars":23,"repoUrl":24,"updatedAt":712},"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},[702,705,706,709],{"name":703,"slug":704,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},{"name":707,"slug":708,"type":15},"Reporting","reporting",{"name":710,"slug":711,"type":15},"Templates","templates","2026-07-07T06:38:37.362061",{"slug":714,"name":714,"fn":715,"description":716,"org":717,"tags":718,"stars":23,"repoUrl":24,"updatedAt":724},"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},[719,722,723],{"name":720,"slug":721,"type":15},"MCP","mcp",{"name":651,"slug":652,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:38.675213",{"slug":726,"name":726,"fn":727,"description":728,"org":729,"tags":730,"stars":23,"repoUrl":24,"updatedAt":739},"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},[731,734,735,736],{"name":732,"slug":733,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":615,"slug":616,"type":15},{"name":737,"slug":738,"type":15},"Security","security","2026-07-07T06:38:34.75135",{"slug":741,"name":741,"fn":742,"description":743,"org":744,"tags":745,"stars":23,"repoUrl":24,"updatedAt":752},"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},[746,747,750,751],{"name":17,"slug":18,"type":15},{"name":748,"slug":749,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:33.465495",19,{"items":755,"total":806},[756,764,771,778,786,793,799],{"slug":643,"name":643,"fn":644,"description":645,"org":757,"tags":758,"stars":23,"repoUrl":24,"updatedAt":657},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[759,760,761,762,763],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":651,"slug":652,"type":15},{"name":9,"slug":8,"type":15},{"name":655,"slug":656,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":765,"tags":766,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[767,768,769,770],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":666,"name":666,"fn":667,"description":668,"org":772,"tags":773,"stars":23,"repoUrl":24,"updatedAt":679},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[774,775,776,777],{"name":672,"slug":673,"type":15},{"name":20,"slug":21,"type":15},{"name":676,"slug":677,"type":15},{"name":9,"slug":8,"type":15},{"slug":681,"name":681,"fn":682,"description":683,"org":779,"tags":780,"stars":23,"repoUrl":24,"updatedAt":695},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[781,782,783,784,785],{"name":687,"slug":688,"type":15},{"name":20,"slug":21,"type":15},{"name":691,"slug":692,"type":15},{"name":9,"slug":8,"type":15},{"name":600,"slug":601,"type":15},{"slug":697,"name":697,"fn":698,"description":699,"org":787,"tags":788,"stars":23,"repoUrl":24,"updatedAt":712},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[789,790,791,792],{"name":703,"slug":704,"type":15},{"name":9,"slug":8,"type":15},{"name":707,"slug":708,"type":15},{"name":710,"slug":711,"type":15},{"slug":714,"name":714,"fn":715,"description":716,"org":794,"tags":795,"stars":23,"repoUrl":24,"updatedAt":724},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[796,797,798],{"name":720,"slug":721,"type":15},{"name":651,"slug":652,"type":15},{"name":9,"slug":8,"type":15},{"slug":726,"name":726,"fn":727,"description":728,"org":800,"tags":801,"stars":23,"repoUrl":24,"updatedAt":739},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[802,803,804,805],{"name":732,"slug":733,"type":15},{"name":9,"slug":8,"type":15},{"name":615,"slug":616,"type":15},{"name":737,"slug":738,"type":15},15]