planetscale/planetscale-readonly-inventory
Collect read-only evidence about PlanetScale org, database, branches, webhooks, backups, roles, Insights, recommendations, and traffic configuration.
npx skills add https://github.com/planetscale/skills --skill planetscale-readonly-inventory
Build an evidence-backed inventory of a PlanetScale database without making changes.
Allowed by default:
PlanetScale roles, backups, backup policies, Postgres parameters, and
supported extensions.
Not allowed without explicit approval:
Ground every command and endpoint in the official documentation instead of
guessing. PlanetScale publishes agent-readable docs:
.md to its URLVerify an endpoint path in the API reference before calling it. A 404 from
an unverified path is a wrong path, not a finding; do not record it as
platform state and do not conclude "not configured" from it.
Verified interface notes (recheck against the docs when a command fails):
pscale database show <database> --org <org> — the org is a flag, not apositional argument.
pscale api <path> takes org-relative paths such asorganizations/{org}/databases/{db}/branches/{branch} — there is no
get subcommand and no /v1/ prefix. Pass query parameters with
-Q key=value flags; embedding ?/& in the path breaks under shell
globbing.
pscale webhook list <database> --org <org> — the database is apositional argument. pscale backup list <database> <branch> requires
the branch.
pscale branch connections top <database> <branch> — live read-onlysession inventory works for Postgres and Vitess over a reserved
administrative connection. Do not cancel queries or terminate connections
unless the operator explicitly approves that operational action.
.../branches/{branch}/insights (per-pattern statistics; supports
from/to/period, q, sort, dir, tablet_type, type,
fields, and pagination). Related endpoints under the same branch path:
insights/errors, insights/anomalies, insights/tags,
insights/tags/summaries, insights/{fingerprint} (individual
executions), insights/{fingerprint}/summary, and
insights/{fingerprint}/traffic/budgets. The query-patterns path
returns generated report metadata, not live patterns.
.../branches/{branch}/traffic/budgets. The CLI has nopscale traffic-control budget list; use the API for inventory.
.../branches/{branch}/roles; fetch a singlerole by ID, not name (pscale role get <db> <branch> <role-id>).
organizations/{org}/databases/{db}/cidrs. Branch-level IP-restriction
paths are not valid.
.../databases/{db}/schema-recommendations (the branch-level path is
not valid). Requesting page=2 currently returns 404 even when the
response reports next_page; use the database object's
open_schema_recommendations_count as the authoritative total, treat
the returned page as a sample, and state in the report when the itemized
list covers only part of the total.
record backup posture from pscale backup list and the database-level
backup policy, and mark PITR "not assessed in this run" rather than
probing paths.
exhausted before reporting counts (except the schema-recommendations
case above).
Record access failures (403s, missing token scopes, timeouts) in the
internal run log for the operator. They are not findings and do not enter
the customer report (see ../10-customer-report-template/SKILL.md).
Record:
For Vitess, record:
For Postgres, record:
Record:
by the Insights interface in use.
Record:
Record:
For Postgres only, record:
For Postgres only, record:
connection saturation during an active incident.
For Vitess only, record:
For every finding, include evidence:
Return:
End with:
“No changes have been applied.”
Take planetscale/planetscale-readonly-inventory from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.