Files
Charis 600a0ffcec docs(claude): add safe-sql-execution skill (#46171)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Docs (new Claude Code skill).

## What is the current behavior?

There is no shared, written-down reference for the SQL safety model in
Studio. The rules around `SafeSqlFragment`/`UntrustedSqlFragment`,
sanitization utilities, and how to promote snippet content live only in
code and contributor knowledge, which makes it easy for AI-assisted
changes to bypass the type-based guarantees.

## What is the new behavior?

Adds a `safe-sql-execution` skill under `.claude/skills/` that documents
the proven-authorship security model: the three classes of SQL
fragments, provenance tracking with branded types, sanitization
utilities (`ident`/`literal`/`keyword`), the `acceptUntrustedSql` rule
(event handlers only), and the special case that snippet content
(`unchecked_sql`) must never be considered safe. Includes good/bad
examples for the common patterns.

## Additional context

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added a comprehensive guide on secure SQL execution in Supabase
Studio: explains provenance-based SQL safety, distinct categories of SQL
fragments, how unsafe snippets must be explicitly promoted before
execution, available sanitization helpers for user input, strict
execution constraints to prevent accidental runs, and numerous examples
demonstrating safe vs. unsafe usage and safe preview/runner patterns.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46171?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-20 12:24:17 -04:00
..