[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-planetscale-planetscale-traffic-control-recommendations":3,"mdc--rjqunu-key":34,"related-org-planetscale-planetscale-traffic-control-recommendations":767,"related-repo-planetscale-planetscale-traffic-control-recommendations":943},{"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-traffic-control-recommendations","recommend PlanetScale database traffic control rules","Build a safe recommendation plan for PlanetScale Postgres Database Traffic Control budgets and rules without applying them.",{"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},"Configuration","configuration",{"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:39.940207",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\u002F05-traffic-control-recommendations","---\nname: planetscale-traffic-control-recommendations\ndescription: Build a safe recommendation plan for PlanetScale Postgres Database Traffic Control budgets and rules without applying them.\n---\n\n# Database Traffic Control recommendations\n\n## Purpose\n\nFor PlanetScale Postgres, recommend Traffic Control budgets and rules that protect critical traffic from runaway queries, traffic spikes, batch jobs, agents, and third-party integrations. Do not create or change budgets without approval.\n\n## Preconditions\n\nRun this skill only for PlanetScale Postgres.\n\nBefore recommending rules, inspect:\n\n- Current budgets and rules.\n- Insights query patterns.\n- Current query tags.\n- Application routes and jobs.\n- Known critical paths.\n- Known expensive non-critical paths.\n- Active incidents or recent anomalies.\n\nIf query tags are missing, recommend tagging first unless a fingerprint-specific rule is clearly needed for an immediate known offender.\n\n## Candidate traffic slices\n\nLook for:\n\n- Exports.\n- Reports.\n- Search endpoints.\n- Admin dashboards.\n- Backfills.\n- Workers and queues.\n- Webhooks from third-party systems.\n- BI tools.\n- Agent-generated read queries.\n- High-frequency polling.\n- Known expensive query fingerprints.\n- Customer-triggered endpoints with high variance.\n\n## Budget modes\n\nRecommend in this order:\n\n1. `warn` mode first for normal rollout.\n2. Observe warnings and false positives.\n3. Tune tags, fingerprints, and thresholds.\n4. Move to `enforce` only with explicit approval and an emergency rollback path.\n\nDo not recommend starting directly in `enforce` unless there is an active incident and the operator explicitly asks for emergency mitigation.\n\n## Rule strategy\n\nPrefer tag-based rules when tags are stable and bounded:\n\n- `source=agent`\n- `source=bi`\n- `feature=export`\n- `feature=report`\n- `route=\u002Fadmin\u002Freports`\n- `job=DailyBackfill`\n- `service=analytics-worker`\n\nUse fingerprint rules when:\n\n- A specific known query pattern is dangerous.\n- Tagging is missing or unreliable.\n- The query source is hard to attribute.\n\nUse a separate budget for each materially different traffic class.\n\nDo not combine unrelated traffic in one budget because it hides who is consuming the budget.\n\n## Suggested default budgets\n\nUse these as recommendation patterns, not as values to apply blindly.\n\n### Agent budget\n\nTarget: queries tagged `source=agent` or `source=mcp`.\n\nIntent: prevent agents from starving application traffic.\n\nMode: start in `warn`.\n\nRecommendation: agents should prefer replicas and read-only scopes. Writes require human approval.\n\n### Export\u002Freporting budget\n\nTarget: `feature=export`, `feature=report`, or specific report route\u002Fjob.\n\nIntent: keep customer-triggered reporting from consuming all database resources.\n\nMode: start in `warn`; consider `enforce` after observation.\n\n### Background job budget\n\nTarget: worker service, queue, or job tags.\n\nIntent: prevent backfills and retries from starving interactive traffic.\n\nMode: `warn` first; enforce only after confirming queue backpressure behavior.\n\n### Third-party integration budget\n\nTarget: `source=integration`, partner-specific bounded tags, or route templates for inbound integration calls.\n\nIntent: isolate unpredictable partner behavior.\n\nMode: `warn` first.\n\n### Known fingerprint budget\n\nTarget: specific expensive query fingerprint.\n\nIntent: contain a known pathological query while code or schema fixes are developed.\n\nMode: `warn` first unless emergency.\n\n## “Each tag value” strategy\n\nWhen PlanetScale supports applying a budget separately for each unique value of a selected tag, recommend it for bounded tags such as:\n\n- `application`\n- `service`\n- `route` when normalized\n- `job`\n- `feature`\n- `source`\n\nDo not recommend it for unbounded tags such as user IDs, request IDs, raw tenant IDs, emails, UUIDs, or raw URLs.\n\n## Limits and caveats to include\n\nEvery recommendation must explain:\n\n- Traffic Control limits resource use; it does not replace query tuning.\n- It is not a web application firewall.\n- It does not replace application-level rate limits.\n- Limits are guardrails, not exact guarantees for every failure mode.\n- Bad tags create bad rules.\n- Enforce mode can reject queries and affect application behavior.\n\n## Output format\n\nFor each proposed budget:\n\n- Budget name.\n- Target branch.\n- Mode: off, warn, or enforce.\n- Matched traffic slice.\n- Rule type: tag, fingerprint, keyspace, query kind.\n- Proposed tags or fingerprint.\n- Limit rationale.\n- Queries seen in Insights that justify it.\n- Safety risk.\n- Test\u002Fobserve plan.\n- Rollback plan.\n- Approval requirement.\n\nEnd with:\n\n“No Traffic Control budgets or rules have been created, updated, deleted, or enforced.”\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,55,61,67,72,77,117,122,128,133,196,202,207,246,258,264,269,335,340,358,363,368,374,379,386,406,411,422,427,433,452,457,475,481,486,491,503,509,521,526,537,543,548,553,564,570,575,634,639,645,650,683,689,694,757,762],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"database-traffic-control-recommendations",[45],{"type":46,"value":47},"text","Database Traffic Control recommendations",{"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},"For PlanetScale Postgres, recommend Traffic Control budgets and rules that protect critical traffic from runaway queries, traffic spikes, batch jobs, agents, and third-party integrations. Do not create or change budgets without approval.",{"type":40,"tag":49,"props":62,"children":64},{"id":63},"preconditions",[65],{"type":46,"value":66},"Preconditions",{"type":40,"tag":56,"props":68,"children":69},{},[70],{"type":46,"value":71},"Run this skill only for PlanetScale Postgres.",{"type":40,"tag":56,"props":73,"children":74},{},[75],{"type":46,"value":76},"Before recommending rules, inspect:",{"type":40,"tag":78,"props":79,"children":80},"ul",{},[81,87,92,97,102,107,112],{"type":40,"tag":82,"props":83,"children":84},"li",{},[85],{"type":46,"value":86},"Current budgets and rules.",{"type":40,"tag":82,"props":88,"children":89},{},[90],{"type":46,"value":91},"Insights query patterns.",{"type":40,"tag":82,"props":93,"children":94},{},[95],{"type":46,"value":96},"Current query tags.",{"type":40,"tag":82,"props":98,"children":99},{},[100],{"type":46,"value":101},"Application routes and jobs.",{"type":40,"tag":82,"props":103,"children":104},{},[105],{"type":46,"value":106},"Known critical paths.",{"type":40,"tag":82,"props":108,"children":109},{},[110],{"type":46,"value":111},"Known expensive non-critical paths.",{"type":40,"tag":82,"props":113,"children":114},{},[115],{"type":46,"value":116},"Active incidents or recent anomalies.",{"type":40,"tag":56,"props":118,"children":119},{},[120],{"type":46,"value":121},"If query tags are missing, recommend tagging first unless a fingerprint-specific rule is clearly needed for an immediate known offender.",{"type":40,"tag":49,"props":123,"children":125},{"id":124},"candidate-traffic-slices",[126],{"type":46,"value":127},"Candidate traffic slices",{"type":40,"tag":56,"props":129,"children":130},{},[131],{"type":46,"value":132},"Look for:",{"type":40,"tag":78,"props":134,"children":135},{},[136,141,146,151,156,161,166,171,176,181,186,191],{"type":40,"tag":82,"props":137,"children":138},{},[139],{"type":46,"value":140},"Exports.",{"type":40,"tag":82,"props":142,"children":143},{},[144],{"type":46,"value":145},"Reports.",{"type":40,"tag":82,"props":147,"children":148},{},[149],{"type":46,"value":150},"Search endpoints.",{"type":40,"tag":82,"props":152,"children":153},{},[154],{"type":46,"value":155},"Admin dashboards.",{"type":40,"tag":82,"props":157,"children":158},{},[159],{"type":46,"value":160},"Backfills.",{"type":40,"tag":82,"props":162,"children":163},{},[164],{"type":46,"value":165},"Workers and queues.",{"type":40,"tag":82,"props":167,"children":168},{},[169],{"type":46,"value":170},"Webhooks from third-party systems.",{"type":40,"tag":82,"props":172,"children":173},{},[174],{"type":46,"value":175},"BI tools.",{"type":40,"tag":82,"props":177,"children":178},{},[179],{"type":46,"value":180},"Agent-generated read queries.",{"type":40,"tag":82,"props":182,"children":183},{},[184],{"type":46,"value":185},"High-frequency polling.",{"type":40,"tag":82,"props":187,"children":188},{},[189],{"type":46,"value":190},"Known expensive query fingerprints.",{"type":40,"tag":82,"props":192,"children":193},{},[194],{"type":46,"value":195},"Customer-triggered endpoints with high variance.",{"type":40,"tag":49,"props":197,"children":199},{"id":198},"budget-modes",[200],{"type":46,"value":201},"Budget modes",{"type":40,"tag":56,"props":203,"children":204},{},[205],{"type":46,"value":206},"Recommend in this order:",{"type":40,"tag":208,"props":209,"children":210},"ol",{},[211,223,228,233],{"type":40,"tag":82,"props":212,"children":213},{},[214,221],{"type":40,"tag":215,"props":216,"children":218},"code",{"className":217},[],[219],{"type":46,"value":220},"warn",{"type":46,"value":222}," mode first for normal rollout.",{"type":40,"tag":82,"props":224,"children":225},{},[226],{"type":46,"value":227},"Observe warnings and false positives.",{"type":40,"tag":82,"props":229,"children":230},{},[231],{"type":46,"value":232},"Tune tags, fingerprints, and thresholds.",{"type":40,"tag":82,"props":234,"children":235},{},[236,238,244],{"type":46,"value":237},"Move to ",{"type":40,"tag":215,"props":239,"children":241},{"className":240},[],[242],{"type":46,"value":243},"enforce",{"type":46,"value":245}," only with explicit approval and an emergency rollback path.",{"type":40,"tag":56,"props":247,"children":248},{},[249,251,256],{"type":46,"value":250},"Do not recommend starting directly in ",{"type":40,"tag":215,"props":252,"children":254},{"className":253},[],[255],{"type":46,"value":243},{"type":46,"value":257}," unless there is an active incident and the operator explicitly asks for emergency mitigation.",{"type":40,"tag":49,"props":259,"children":261},{"id":260},"rule-strategy",[262],{"type":46,"value":263},"Rule strategy",{"type":40,"tag":56,"props":265,"children":266},{},[267],{"type":46,"value":268},"Prefer tag-based rules when tags are stable and bounded:",{"type":40,"tag":78,"props":270,"children":271},{},[272,281,290,299,308,317,326],{"type":40,"tag":82,"props":273,"children":274},{},[275],{"type":40,"tag":215,"props":276,"children":278},{"className":277},[],[279],{"type":46,"value":280},"source=agent",{"type":40,"tag":82,"props":282,"children":283},{},[284],{"type":40,"tag":215,"props":285,"children":287},{"className":286},[],[288],{"type":46,"value":289},"source=bi",{"type":40,"tag":82,"props":291,"children":292},{},[293],{"type":40,"tag":215,"props":294,"children":296},{"className":295},[],[297],{"type":46,"value":298},"feature=export",{"type":40,"tag":82,"props":300,"children":301},{},[302],{"type":40,"tag":215,"props":303,"children":305},{"className":304},[],[306],{"type":46,"value":307},"feature=report",{"type":40,"tag":82,"props":309,"children":310},{},[311],{"type":40,"tag":215,"props":312,"children":314},{"className":313},[],[315],{"type":46,"value":316},"route=\u002Fadmin\u002Freports",{"type":40,"tag":82,"props":318,"children":319},{},[320],{"type":40,"tag":215,"props":321,"children":323},{"className":322},[],[324],{"type":46,"value":325},"job=DailyBackfill",{"type":40,"tag":82,"props":327,"children":328},{},[329],{"type":40,"tag":215,"props":330,"children":332},{"className":331},[],[333],{"type":46,"value":334},"service=analytics-worker",{"type":40,"tag":56,"props":336,"children":337},{},[338],{"type":46,"value":339},"Use fingerprint rules when:",{"type":40,"tag":78,"props":341,"children":342},{},[343,348,353],{"type":40,"tag":82,"props":344,"children":345},{},[346],{"type":46,"value":347},"A specific known query pattern is dangerous.",{"type":40,"tag":82,"props":349,"children":350},{},[351],{"type":46,"value":352},"Tagging is missing or unreliable.",{"type":40,"tag":82,"props":354,"children":355},{},[356],{"type":46,"value":357},"The query source is hard to attribute.",{"type":40,"tag":56,"props":359,"children":360},{},[361],{"type":46,"value":362},"Use a separate budget for each materially different traffic class.",{"type":40,"tag":56,"props":364,"children":365},{},[366],{"type":46,"value":367},"Do not combine unrelated traffic in one budget because it hides who is consuming the budget.",{"type":40,"tag":49,"props":369,"children":371},{"id":370},"suggested-default-budgets",[372],{"type":46,"value":373},"Suggested default budgets",{"type":40,"tag":56,"props":375,"children":376},{},[377],{"type":46,"value":378},"Use these as recommendation patterns, not as values to apply blindly.",{"type":40,"tag":380,"props":381,"children":383},"h3",{"id":382},"agent-budget",[384],{"type":46,"value":385},"Agent budget",{"type":40,"tag":56,"props":387,"children":388},{},[389,391,396,398,404],{"type":46,"value":390},"Target: queries tagged ",{"type":40,"tag":215,"props":392,"children":394},{"className":393},[],[395],{"type":46,"value":280},{"type":46,"value":397}," or ",{"type":40,"tag":215,"props":399,"children":401},{"className":400},[],[402],{"type":46,"value":403},"source=mcp",{"type":46,"value":405},".",{"type":40,"tag":56,"props":407,"children":408},{},[409],{"type":46,"value":410},"Intent: prevent agents from starving application traffic.",{"type":40,"tag":56,"props":412,"children":413},{},[414,416,421],{"type":46,"value":415},"Mode: start in ",{"type":40,"tag":215,"props":417,"children":419},{"className":418},[],[420],{"type":46,"value":220},{"type":46,"value":405},{"type":40,"tag":56,"props":423,"children":424},{},[425],{"type":46,"value":426},"Recommendation: agents should prefer replicas and read-only scopes. Writes require human approval.",{"type":40,"tag":380,"props":428,"children":430},{"id":429},"exportreporting-budget",[431],{"type":46,"value":432},"Export\u002Freporting budget",{"type":40,"tag":56,"props":434,"children":435},{},[436,438,443,445,450],{"type":46,"value":437},"Target: ",{"type":40,"tag":215,"props":439,"children":441},{"className":440},[],[442],{"type":46,"value":298},{"type":46,"value":444},", ",{"type":40,"tag":215,"props":446,"children":448},{"className":447},[],[449],{"type":46,"value":307},{"type":46,"value":451},", or specific report route\u002Fjob.",{"type":40,"tag":56,"props":453,"children":454},{},[455],{"type":46,"value":456},"Intent: keep customer-triggered reporting from consuming all database resources.",{"type":40,"tag":56,"props":458,"children":459},{},[460,461,466,468,473],{"type":46,"value":415},{"type":40,"tag":215,"props":462,"children":464},{"className":463},[],[465],{"type":46,"value":220},{"type":46,"value":467},"; consider ",{"type":40,"tag":215,"props":469,"children":471},{"className":470},[],[472],{"type":46,"value":243},{"type":46,"value":474}," after observation.",{"type":40,"tag":380,"props":476,"children":478},{"id":477},"background-job-budget",[479],{"type":46,"value":480},"Background job budget",{"type":40,"tag":56,"props":482,"children":483},{},[484],{"type":46,"value":485},"Target: worker service, queue, or job tags.",{"type":40,"tag":56,"props":487,"children":488},{},[489],{"type":46,"value":490},"Intent: prevent backfills and retries from starving interactive traffic.",{"type":40,"tag":56,"props":492,"children":493},{},[494,496,501],{"type":46,"value":495},"Mode: ",{"type":40,"tag":215,"props":497,"children":499},{"className":498},[],[500],{"type":46,"value":220},{"type":46,"value":502}," first; enforce only after confirming queue backpressure behavior.",{"type":40,"tag":380,"props":504,"children":506},{"id":505},"third-party-integration-budget",[507],{"type":46,"value":508},"Third-party integration budget",{"type":40,"tag":56,"props":510,"children":511},{},[512,513,519],{"type":46,"value":437},{"type":40,"tag":215,"props":514,"children":516},{"className":515},[],[517],{"type":46,"value":518},"source=integration",{"type":46,"value":520},", partner-specific bounded tags, or route templates for inbound integration calls.",{"type":40,"tag":56,"props":522,"children":523},{},[524],{"type":46,"value":525},"Intent: isolate unpredictable partner behavior.",{"type":40,"tag":56,"props":527,"children":528},{},[529,530,535],{"type":46,"value":495},{"type":40,"tag":215,"props":531,"children":533},{"className":532},[],[534],{"type":46,"value":220},{"type":46,"value":536}," first.",{"type":40,"tag":380,"props":538,"children":540},{"id":539},"known-fingerprint-budget",[541],{"type":46,"value":542},"Known fingerprint budget",{"type":40,"tag":56,"props":544,"children":545},{},[546],{"type":46,"value":547},"Target: specific expensive query fingerprint.",{"type":40,"tag":56,"props":549,"children":550},{},[551],{"type":46,"value":552},"Intent: contain a known pathological query while code or schema fixes are developed.",{"type":40,"tag":56,"props":554,"children":555},{},[556,557,562],{"type":46,"value":495},{"type":40,"tag":215,"props":558,"children":560},{"className":559},[],[561],{"type":46,"value":220},{"type":46,"value":563}," first unless emergency.",{"type":40,"tag":49,"props":565,"children":567},{"id":566},"each-tag-value-strategy",[568],{"type":46,"value":569},"“Each tag value” strategy",{"type":40,"tag":56,"props":571,"children":572},{},[573],{"type":46,"value":574},"When PlanetScale supports applying a budget separately for each unique value of a selected tag, recommend it for bounded tags such as:",{"type":40,"tag":78,"props":576,"children":577},{},[578,587,596,607,616,625],{"type":40,"tag":82,"props":579,"children":580},{},[581],{"type":40,"tag":215,"props":582,"children":584},{"className":583},[],[585],{"type":46,"value":586},"application",{"type":40,"tag":82,"props":588,"children":589},{},[590],{"type":40,"tag":215,"props":591,"children":593},{"className":592},[],[594],{"type":46,"value":595},"service",{"type":40,"tag":82,"props":597,"children":598},{},[599,605],{"type":40,"tag":215,"props":600,"children":602},{"className":601},[],[603],{"type":46,"value":604},"route",{"type":46,"value":606}," when normalized",{"type":40,"tag":82,"props":608,"children":609},{},[610],{"type":40,"tag":215,"props":611,"children":613},{"className":612},[],[614],{"type":46,"value":615},"job",{"type":40,"tag":82,"props":617,"children":618},{},[619],{"type":40,"tag":215,"props":620,"children":622},{"className":621},[],[623],{"type":46,"value":624},"feature",{"type":40,"tag":82,"props":626,"children":627},{},[628],{"type":40,"tag":215,"props":629,"children":631},{"className":630},[],[632],{"type":46,"value":633},"source",{"type":40,"tag":56,"props":635,"children":636},{},[637],{"type":46,"value":638},"Do not recommend it for unbounded tags such as user IDs, request IDs, raw tenant IDs, emails, UUIDs, or raw URLs.",{"type":40,"tag":49,"props":640,"children":642},{"id":641},"limits-and-caveats-to-include",[643],{"type":46,"value":644},"Limits and caveats to include",{"type":40,"tag":56,"props":646,"children":647},{},[648],{"type":46,"value":649},"Every recommendation must explain:",{"type":40,"tag":78,"props":651,"children":652},{},[653,658,663,668,673,678],{"type":40,"tag":82,"props":654,"children":655},{},[656],{"type":46,"value":657},"Traffic Control limits resource use; it does not replace query tuning.",{"type":40,"tag":82,"props":659,"children":660},{},[661],{"type":46,"value":662},"It is not a web application firewall.",{"type":40,"tag":82,"props":664,"children":665},{},[666],{"type":46,"value":667},"It does not replace application-level rate limits.",{"type":40,"tag":82,"props":669,"children":670},{},[671],{"type":46,"value":672},"Limits are guardrails, not exact guarantees for every failure mode.",{"type":40,"tag":82,"props":674,"children":675},{},[676],{"type":46,"value":677},"Bad tags create bad rules.",{"type":40,"tag":82,"props":679,"children":680},{},[681],{"type":46,"value":682},"Enforce mode can reject queries and affect application behavior.",{"type":40,"tag":49,"props":684,"children":686},{"id":685},"output-format",[687],{"type":46,"value":688},"Output format",{"type":40,"tag":56,"props":690,"children":691},{},[692],{"type":46,"value":693},"For each proposed budget:",{"type":40,"tag":78,"props":695,"children":696},{},[697,702,707,712,717,722,727,732,737,742,747,752],{"type":40,"tag":82,"props":698,"children":699},{},[700],{"type":46,"value":701},"Budget name.",{"type":40,"tag":82,"props":703,"children":704},{},[705],{"type":46,"value":706},"Target branch.",{"type":40,"tag":82,"props":708,"children":709},{},[710],{"type":46,"value":711},"Mode: off, warn, or enforce.",{"type":40,"tag":82,"props":713,"children":714},{},[715],{"type":46,"value":716},"Matched traffic slice.",{"type":40,"tag":82,"props":718,"children":719},{},[720],{"type":46,"value":721},"Rule type: tag, fingerprint, keyspace, query kind.",{"type":40,"tag":82,"props":723,"children":724},{},[725],{"type":46,"value":726},"Proposed tags or fingerprint.",{"type":40,"tag":82,"props":728,"children":729},{},[730],{"type":46,"value":731},"Limit rationale.",{"type":40,"tag":82,"props":733,"children":734},{},[735],{"type":46,"value":736},"Queries seen in Insights that justify it.",{"type":40,"tag":82,"props":738,"children":739},{},[740],{"type":46,"value":741},"Safety risk.",{"type":40,"tag":82,"props":743,"children":744},{},[745],{"type":46,"value":746},"Test\u002Fobserve plan.",{"type":40,"tag":82,"props":748,"children":749},{},[750],{"type":46,"value":751},"Rollback plan.",{"type":40,"tag":82,"props":753,"children":754},{},[755],{"type":46,"value":756},"Approval requirement.",{"type":40,"tag":56,"props":758,"children":759},{},[760],{"type":46,"value":761},"End with:",{"type":40,"tag":56,"props":763,"children":764},{},[765],{"type":46,"value":766},"“No Traffic Control budgets or rules have been created, updated, deleted, or enforced.”",{"items":768,"total":942},[769,788,801,812,825,843,854,869,885,902,914,929],{"slug":770,"name":770,"fn":771,"description":772,"org":773,"tags":774,"stars":785,"repoUrl":786,"updatedAt":787},"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},[775,778,779,781,782],{"name":776,"slug":777,"type":15},"Data Modeling","data-modeling",{"name":20,"slug":21,"type":15},{"name":780,"slug":770,"type":15},"MySQL",{"name":13,"slug":14,"type":15},{"name":783,"slug":784,"type":15},"SQL","sql",557,"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fdatabase-skills","2026-04-06T18:43:45.381961",{"slug":789,"name":789,"fn":790,"description":791,"org":792,"tags":793,"stars":785,"repoUrl":786,"updatedAt":800},"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},[794,795,796,797],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":798,"slug":799,"type":15},"PostgreSQL","postgresql","2026-07-24T05:38:09.09841",{"slug":802,"name":802,"fn":803,"description":804,"org":805,"tags":806,"stars":785,"repoUrl":786,"updatedAt":811},"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},[807,808,809,810],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":798,"slug":799,"type":15},{"name":783,"slug":784,"type":15},"2026-04-06T18:43:44.126777",{"slug":813,"name":813,"fn":814,"description":815,"org":816,"tags":817,"stars":785,"repoUrl":786,"updatedAt":824},"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},[818,819,820,821,822],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":783,"slug":784,"type":15},{"name":823,"slug":813,"type":15},"Vitess","2026-04-06T18:43:42.890969",{"slug":826,"name":826,"fn":827,"description":828,"org":829,"tags":830,"stars":23,"repoUrl":24,"updatedAt":842},"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},[831,834,835,838,839],{"name":832,"slug":833,"type":15},"Automation","automation",{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},{"name":840,"slug":841,"type":15},"Risk Assessment","risk-assessment","2026-07-05T06:32:41.490537",{"slug":844,"name":844,"fn":845,"description":846,"org":847,"tags":848,"stars":23,"repoUrl":24,"updatedAt":853},"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},[849,850,851,852],{"name":832,"slug":833,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-27T06:07:48.188419",{"slug":855,"name":855,"fn":856,"description":857,"org":858,"tags":859,"stars":23,"repoUrl":24,"updatedAt":868},"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},[860,863,864,867],{"name":861,"slug":862,"type":15},"Approvals","approvals",{"name":20,"slug":21,"type":15},{"name":865,"slug":866,"type":15},"Governance","governance",{"name":9,"slug":8,"type":15},"2026-07-07T06:38:42.512288",{"slug":870,"name":870,"fn":871,"description":872,"org":873,"tags":874,"stars":23,"repoUrl":24,"updatedAt":884},"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},[875,878,879,882,883],{"name":876,"slug":877,"type":15},"Code Analysis","code-analysis",{"name":20,"slug":21,"type":15},{"name":880,"slug":881,"type":15},"Observability","observability",{"name":9,"slug":8,"type":15},{"name":783,"slug":784,"type":15},"2026-07-07T06:38:43.813568",{"slug":886,"name":886,"fn":887,"description":888,"org":889,"tags":890,"stars":23,"repoUrl":24,"updatedAt":901},"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},[891,894,895,898],{"name":892,"slug":893,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15},"Reporting","reporting",{"name":899,"slug":900,"type":15},"Templates","templates","2026-07-07T06:38:37.362061",{"slug":903,"name":903,"fn":904,"description":905,"org":906,"tags":907,"stars":23,"repoUrl":24,"updatedAt":913},"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},[908,911,912],{"name":909,"slug":910,"type":15},"MCP","mcp",{"name":836,"slug":837,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:38.675213",{"slug":915,"name":915,"fn":916,"description":917,"org":918,"tags":919,"stars":23,"repoUrl":24,"updatedAt":928},"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},[920,923,924,925],{"name":921,"slug":922,"type":15},"Audit","audit",{"name":9,"slug":8,"type":15},{"name":798,"slug":799,"type":15},{"name":926,"slug":927,"type":15},"Security","security","2026-07-07T06:38:34.75135",{"slug":930,"name":930,"fn":931,"description":932,"org":933,"tags":934,"stars":23,"repoUrl":24,"updatedAt":941},"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},[935,936,939,940],{"name":832,"slug":833,"type":15},{"name":937,"slug":938,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:38:33.465495",19,{"items":944,"total":995},[945,953,960,967,975,982,988],{"slug":826,"name":826,"fn":827,"description":828,"org":946,"tags":947,"stars":23,"repoUrl":24,"updatedAt":842},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[948,949,950,951,952],{"name":832,"slug":833,"type":15},{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},{"name":9,"slug":8,"type":15},{"name":840,"slug":841,"type":15},{"slug":844,"name":844,"fn":845,"description":846,"org":954,"tags":955,"stars":23,"repoUrl":24,"updatedAt":853},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[956,957,958,959],{"name":832,"slug":833,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":855,"name":855,"fn":856,"description":857,"org":961,"tags":962,"stars":23,"repoUrl":24,"updatedAt":868},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[963,964,965,966],{"name":861,"slug":862,"type":15},{"name":20,"slug":21,"type":15},{"name":865,"slug":866,"type":15},{"name":9,"slug":8,"type":15},{"slug":870,"name":870,"fn":871,"description":872,"org":968,"tags":969,"stars":23,"repoUrl":24,"updatedAt":884},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[970,971,972,973,974],{"name":876,"slug":877,"type":15},{"name":20,"slug":21,"type":15},{"name":880,"slug":881,"type":15},{"name":9,"slug":8,"type":15},{"name":783,"slug":784,"type":15},{"slug":886,"name":886,"fn":887,"description":888,"org":976,"tags":977,"stars":23,"repoUrl":24,"updatedAt":901},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[978,979,980,981],{"name":892,"slug":893,"type":15},{"name":9,"slug":8,"type":15},{"name":896,"slug":897,"type":15},{"name":899,"slug":900,"type":15},{"slug":903,"name":903,"fn":904,"description":905,"org":983,"tags":984,"stars":23,"repoUrl":24,"updatedAt":913},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[985,986,987],{"name":909,"slug":910,"type":15},{"name":836,"slug":837,"type":15},{"name":9,"slug":8,"type":15},{"slug":915,"name":915,"fn":916,"description":917,"org":989,"tags":990,"stars":23,"repoUrl":24,"updatedAt":928},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[991,992,993,994],{"name":921,"slug":922,"type":15},{"name":9,"slug":8,"type":15},{"name":798,"slug":799,"type":15},{"name":926,"slug":927,"type":15},15]