mcpField
P
planetscale-codebase-sqlcommenter-instrumentation

planetscale-codebase-sqlcommenter-instrumentation

github.com/planetscaleDevelopment1361.7k installsUpdated 8w ago
Repository

About planetscale-codebase-sqlcommenter-instrumentation

A PlanetScale agent skill for inspecting an application repository and recommending SQLCommenter-style query attribution. It maps detected frameworks and database tools to instrumentation options, tags, and validation steps without making changes.

Key features

  1. 01Repository stack inspection
  2. 02Framework-specific instrumentation mapping
  3. 03Query tag schema recommendations
  4. 04Sensitive-data and cardinality guidance
  5. 05Instrumentation validation checklist

Use cases

  1. 01Planning query attribution for an application
  2. 02Choosing instrumentation for a detected ORM
  3. 03Checking query tags before merging

MCP support

The skill inspects repository context connected to PlanetScale and targets query attribution in PlanetScale Insights and Postgres Traffic Control. It does not specify MCP server tools or protocols.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/planetscale/skills --skill planetscale-codebase-sqlcommenter-instrumentation

After installing, type/planetscale-codebase-sqlcommenter-instrumentationin Claude Code to confirm it loaded.

Details

From the project README

Codebase SQLCommenter instrumentation

Purpose

Inspect the application repository connected to PlanetScale and recommend the correct SQLCommenter-style instrumentation so PlanetScale Insights and Postgres Traffic Control can attribute queries to application code paths. Do not edit files or install dependencies without approval.

Repository inspection

Identify:

  • Language and framework.
  • ORM or query builder.
  • Database adapter.
  • Migration tool.
  • Background job system.
  • Routing framework.
  • Deployment metadata source, such as git SHA or release ID.
  • Existing SQL comments, query tags, tracing, OpenTelemetry, or database middleware.
  • PlanetScale connection configuration.
  • Whether the repository connects to Vitess, Postgres, or both.

Recommended package mapping

Use the most native maintained option for the detected stack.

Ruby on Rails / ActiveRecord

Preferred for PlanetScale tag compatibility:

  • activerecord-sql_commenter from PlanetScale when Rails query comments need SQLCommenter format for PlanetScale Query Insights.

Other options:

  • Rails built-in query logs when sufficient and compatible with the target database/Insights behavior.
  • marginalia for older Rails or when Basecamp-style ActiveRecord query attribution is already in use.
  • sqlcommenter_rails where the project already uses the OpenTelemetry SQLCommenter ecosystem.

Recommend tags:

  • application
  • controller
  • action
  • job
  • route
  • release_sha
Laravel / PHP

Preferred:

  • spatie/laravel-sql-commenter for SQLCommenter-format comments compatible with PlanetScale Query Insights.

Recommend tags:

  • application
  • route
  • controller
  • action
  • job
  • queue
  • release_sha
Prisma / TypeScript / JavaScript

Preferred:

  • Prisma’s first-party SQL comments packages when Prisma is detected:
    • @prisma/sqlcommenter
    • @prisma/sqlcommenter-query-tags
    • @prisma/sqlcommenter-trace-context

Note: PlanetScale’s Postgres query-tag docs may list Prisma as lacking official SQLCommenter support, but Prisma’s own current docs provide first-party SQLCommenter packages. Prefer current Prisma docs when Prisma is detected.

Recommend tags:

  • application
  • service
  • route
  • operation
  • feature
  • release_sha
Knex / Sequelize / Express / Node

Use SQLCommenter-compatible middleware or instrumentation from the OpenTelemetry SQLCommenter ecosystem where maintained and compatible.

Recommend tags:

  • application
  • service
  • route
  • controller
  • action
  • feature
  • release_sha
Kysely / Drizzle / Bun / custom query builders

If there is no maintained SQLCommenter package, recommend manual tagging at the database client boundary or query builder extension layer.

Requirements:

  • Tags must be structured SQL comments.
  • Tags must be inserted before the statement terminator.
  • Tags must survive ORM, proxy, and pooler behavior.
  • Values must be URL encoded and safe for SQL comments.
  • Tags must be low-cardinality.
Django / SQLAlchemy / psycopg2 / Flask / Python

Use SQLCommenter instrumentation from the OpenTelemetry SQLCommenter ecosystem where compatible.

Recommend tags:

  • application
  • framework
  • route
  • view
  • job
  • release_sha
Java / Hibernate / Spring

Use SQLCommenter-compatible instrumentation for Hibernate/Spring where compatible.

Recommend tags:

  • application
  • service
  • controller
  • action
  • route
  • release_sha
Go / database/sql / net/http / gorilla/mux

Use SQLCommenter-compatible instrumentation or a database wrapper at the query boundary.

Recommend tags:

  • application
  • service
  • handler
  • route
  • job
  • release_sha

Standard tag policy

Recommend this baseline across all frameworks:

  • Stable, bounded values only.
  • Normalize routes before tagging.
  • Include app/service/job attribution.
  • Include deploy SHA.
  • Include source type for agents, scripts, BI, workers, and integrations.
  • Do not include secrets, PII, user IDs, request IDs, raw tenant IDs, or raw URLs.

Validation plan

Before recommending merge:

  • Confirm generated SQL comments appear in local/staging query logs.
  • Confirm comments survive the ORM, driver, pooler, and PlanetScale connection path.
  • Confirm Insights displays tags.
  • Confirm tag cardinality is bounded.
  • Confirm Traffic Control can match the intended tags for Postgres.
  • Confirm no sensitive data is present.

Output

Return:

  • Detected stack.
  • Current query tagging state.
  • Recommended package or manual instrumentation path.
  • Proposed tag schema.
  • Files likely to change.
  • Validation steps.
  • Risks.
  • Proposed changes requiring approval.

End with:

“No repository files or dependencies have been changed.”

Comments

Markdown supported