planetscale-customer-report-template — Claude Code skill: DB report
Turns inventory and review results into the final PlanetScale best-practices report for a customer database, with recommendations tied to measurements.
npx skills add planetscale/skills --skill planetscale-customer-report-template -a claude-codeWhat planetscale-customer-report-template does
This skill covers the last step of a PlanetScale assessment. It takes what the inventory and the review skills found and writes one markdown report with a fixed shape: scope, executive summary, current state, a recommendations table, and a proposed change set that needs approval.
The template is strict about wording. Every recommendation has to cite the finding it addresses — a query fingerprint, a metric, an event count, a time window. Unused features are written up as capability gaps with measured impact, never as "off, and that's fine". Tool failures such as HTTP status codes, MCP errors and timeouts go into the run log, not the findings, because a failed call says nothing about the database; "not configured" needs a successful call that came back empty.
Output is plain markdown with headed sections, prose and pipe tables, and that baseline is always produced in full. A richer surface like Cursor canvas or an HTML preview can be added on top, never used instead. Recommendation IDs carry prefixes OBS-*, VIT-*, PG-*, WEB-*, APP-* and AGENT-*, and the safety and observability sections differ between Vitess and Postgres — worth checking which engine your database runs before you start.
What it helps with
- fold inventory and review results into a single report
- attach a measurement to every recommendation
- keep tooling failures out of the database findings
- describe unused features by their measured impact
- draft a change set with a test and rollback plan
Example prompts for the agent
- Run the PlanetScale assessment and produce the final report from the template
- Assess the database and the connected repository, tag recommendations with OBS- and PG- prefixes
- Write the proposed change set as its own section with a test plan and rollback plan
How to install planetscale-customer-report-template
1Skills CLI (Vercel)
npx skills add planetscale/skills --skill planetscale-customer-report-template -a claude-code2Manually: put the files in place
~/.claude/skills/planetscale-customer-report-template/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/planetscale-customer-report-template/
1Skills CLI (Vercel)
npx skills add planetscale/skills --skill planetscale-customer-report-template -a codex2Manually: put the files in place
.agents/skills/planetscale-customer-report-template/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add planetscale/skills --skill planetscale-customer-report-template -a cursor2Manually: put the files in place
.cursor/skills/planetscale-customer-report-template/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install planetscale/skills planetscale-customer-report-template2Manually: put the files in place
.github/skills/planetscale-customer-report-template/SKILL.md1Skills CLI (Vercel)
npx skills add planetscale/skills --skill planetscale-customer-report-template -a gemini-cli2Platform CLI
gemini skills install https://github.com/planetscale/skills --path planetscale-customer-report-templateManually: put the files in place
.devin/skills/planetscale-customer-report-template/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add planetscale/skills --skill planetscale-customer-report-template -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about planetscale-customer-report-template
How do I install planetscale-customer-report-template in Claude?
Run npx skills add planetscale/skills --skill planetscale-customer-report-template -a claude-code. The skill file then lives at ~/.claude/skills/planetscale-customer-report-template/SKILL.md.
What does planetscale-customer-report-template do?
It produces the final PlanetScale best-practices report for a customer database and, optionally, a connected repository. The content comes from the inventory and the relevant review skills.
How is this different from a normal agent report?
It demands evidence behind each recommendation and forbids framing non-adoption as a positive finding. Run mechanics such as tool errors stay in a separate log instead of the findings.
Source text
SKILL.md · MIT
---
name: planetscale-customer-report-template
description: Produce the final PlanetScale best-practices report after running the inventory and relevant review skills.
---
# Customer report template
## Purpose
Produce a clear assessment report for a customer database and optional connected repository. The report should be actionable, evidence-backed, and safe. It should separate recommendations from applied changes.
## Tone and framing
The report's purpose is an accurate assessment that helps the customer get
full value from the platform they run. Feature adoption follows from
evidence, never from framing. The register is technical and declarative —
an engineer's assessment, not marketing copy.
- **State unused features as capability gaps with quantified impact.**
Never write "off (good)", "not enabled (safe)", or otherwise present
non-adoption as a positive finding. The correct form is: current state,
what the feature provides, the measured finding it applies to.
Example: "Raw query collection: disabled. Enabling it exposes literal
parameter values per execution; applicable to Q1 (38% of total query
time), where the pattern-level data is insufficient to isolate the
triggering invocation."
- **No enthusiasm markers.** Do not use phrases like "earning its keep",
"paying off", "easy to adopt", "cutting root-cause time from hours to
minutes", or exclamation of any kind. State the mechanism and the
measurement; let the numbers carry the argument.
- **Operational costs are stated inline as facts**, not softened:
"literal values become visible to the observability pipeline" is a
property of the feature, stated once, without reassurance.
- **Every recommendation cites the specific finding it addresses** —
fingerprint, metric, event count, time window. A recommendation without
a measurement attached is incomplete.
- **Active features are assessed, not praised.** If a feature is enabled,
report what it is currently doing in measurable terms ("anomaly
detection flagged the connection spike 9 times in 7 days; no delivery
channel is configured") and whether its configuration is complete.
- Fit is part of the analysis: if the evidence does not support a
feature for this customer, state that.
- **Recommendations are framed by what the change provides, not by the
threat of the current state.** Write "a dedicated application role
scopes credentials per service and enables rotation without downtime",
not "limits the blast radius of credential compromise". Avoid
dramatizing vocabulary: "blast radius", "unprotected", "exposed",
"public-by-default", "at risk". Real risks are still stated, as facts —
"the production branch runs zero replicas; recovery from a primary
failure requires a restore" is a finding and belongs in the report.
What is excluded is dramatization, not disclosure.
- **Platform behavior is reported with verified semantics, not
assumptions.** When two API surfaces show different values, they are
usually distinct settings — check the documentation and report the
effective state. Do not label platform behavior inconsistent,
contradictory, or buggy on an unverified assumption. If the semantics
cannot be verified, state what each surface reports without drawing a
conclusion and direct the question to PlanetScale support. If verified
platform behavior is actually wrong, report it factually and route it
to PlanetScale support — it is a platform issue, not a customer
configuration finding.
## Run mechanics are separated from findings
Failures of the assessment tooling — HTTP status codes, MCP errors, CLI
failures, token scope problems, timeouts, endpoint probes — describe the
run, not the database. They belong in the run log, not in the findings.
- Where evidence could not be collected, the report says "not assessed in
this run" with no error mechanics attached.
- The evidence appendix contains collected evidence.
- The run log (tool errors, paths tried, access gaps) accompanies the
report and is available to whoever ran the assessment — nothing is
withheld. The separation exists because tool errors say nothing about
the customer's database.
- Never conclude a feature is unconfigured from a failed call. "Not
configured" requires a successful call that returned an empty result.
## Output surface
The report is plain markdown: headed sections, prose, and pipe tables. This is the baseline and it must always be produced in full — it works in any agent, terminal, or chat surface. If the host agent offers a richer rendering surface (Cursor canvas, HTML preview, a dashboard), it may be used **in addition to** the markdown report, never instead of it.
## Required report format
# PlanetScale best-practices assessment
## Scope
- Organization:
- Database:
- Branches reviewed:
- Engine:
- Repository reviewed:
- Interfaces used:
- Time window:
- Changes applied: none
## Executive summary
Write 3-7 bullets. The first bullet states what the platform is currently
doing for this database, factually and with measurements — for example:
replica topology and failover posture, backup cadence and last successful
backup, Insights collection volume, safety features active. This is not
praise; it is the operating baseline the rest of the report builds on.
Then:
- Highest-risk safety gaps.
- Highest-value observability improvements.
- Highest-value automation opportunities.
- Engine-specific workflow gaps.
- Repository instrumentation gaps.
## Current state
### Database and branch topology
Include evidence.
### Safety workflow
For Vitess:
- Safe migrations.
- Deploy requests.
- Approval requirements.
- Gated deployment usage.
- Schema revert runbook.
For Postgres:
- Branch migration workflow.
- Roles.
- pg_strict.
- Traffic Control.
- Backups/PITR.
- Connection pooling.
- Private connectivity and IP restrictions.
### Observability
- Query Insights state.
- Anomalies.
- Query tags.
- Raw query collection posture.
- Schema recommendations.
### Automation
- Webhooks.
- Agent loops.
- CI/PR workflows.
- Incident routing.
### Repository instrumentation
- Frameworks and ORMs detected.
- Current SQL comments or tracing.
- Recommended SQLCommenter package/path.
- Tag schema.
## Recommendations
Use this table structure:
| ID | Recommendation | Target | Benefit | Risk | Approval needed | Test first? | Evidence |
|---|---|---|---|---|---|---|---|
Recommendation IDs:
- `OBS-*` for Insights/query tags.
- `VIT-*` for Vitess safety/deploy workflow.
- `PG-*` for Postgres roles, pg_strict, Traffic Control, PITR, network.
- `WEB-*` for webhooks and automation.
- `APP-*` for repository instrumentation.
- `AGENT-*` for MCP/agent workflows.
## Proposed change set requiring approval
For every proposed change, include:
- ID.
- Exact target.
- Exact change.
- Interface to use.
- Why it is recommended.
- Expected effect.
- Possible availability impact.
- Test plan.
- Rollback plan.
- Whether it changes production.
## Changes intentionally not applied
State clearly:
- No PlanetScale settings changed.
- No schema changed.
- No traffic controls changed.
- No roles or credentials changed.
- No webhooks changed.
- No code changed.
- No branches, backups, restores, deploy requests, or migrations created.
## Evidence appendix
For each evidence item:
- Source.
- Command/API/MCP/repository path.
- Timestamp.
- Value.
- Notes.
## Final required sentence
End the report with:
“No changes have been applied. Approve specific change IDs before any mutation.”
© planetscale · MIT · planetscale/skills