Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add planetscale/skills --skill planetscale-customer-report-template -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/planetscale-customer-report-template/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/planetscale-customer-report-template/

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

Similar skills

All skills for Data and databases →

From the same set14

planetscale-postgres-safety-review Reviews PlanetScale Postgres setups across roles, pg_strict, Traffic Control, and backups. It flags database reliability gaps without applying unapproved changes. CX Codex +1 1,800installs planetscale-best-practices-matrix The skill maps database findings to PlanetScale recommendations and tells you what applies to Vitess and what to Postgres. CX Codex +1 1,800installs planetscale-vitess-safety-review Reviews a PlanetScale Vitess database for safe migrations, deploy requests, Insights and webhooks. Produces a report, applies nothing. CX Codex +1 1,700installs planetscale-webhook-automation-recommendations Recommends PlanetScale webhook subscriptions and safe automation patterns for database alerts, anomalies, and deploy requests. CX Codex +1 1,700installs planetscale-traffic-control-recommendations This skill drafts a recommendation plan for PlanetScale Postgres Traffic Control budgets and rules, and applies nothing without approval. CX Codex +1 1,700installs planetscale-readonly-inventory Collects read-only inventory data from PlanetScale databases, branches, backups, and Query Insights. It audits infrastructure setup without risking mutations or secret generation. CX Codex +1 1,700installs planetscale-codebase-sqlcommenter-instrumentation Inspects a repo connected to PlanetScale and recommends an SQLCommenter-compatible package for tagging queries. Use it when queries in Insights and Traffic Control need to map back to code paths. CX Codex +1 1,700installs planetscale-pscale-cli-automation Teaches coding agents to run the PlanetScale CLI non-interactively with JSON output. Useful when automating database tasks and verifying authentication. CX Codex +1 1,700installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor