Skip to main content

sql-review

Pre-merge SQL quality gate — lint 26 anti-patterns, grade readability/performance A-F, validate syntax, and scan for injection threats. Use before committing or reviewing SQL changes.

Quellinformationen

Repository
AltimateAI/altimate-code
Letzte Quellaktivität
18. März 2026 um 04:33
Erkannte Sprache von SKILL.md
Englisch
Sterne
815
Forks
135

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
sql-review
description
Pre-merge SQL quality gate — lint 26 anti-patterns, grade readability/performance A-F, validate syntax, and scan for injection threats. Use before committing or reviewing SQL changes.
# SQL Review ## Requirements **Agent:** any (read-only analysis) **Tools used:** altimate_core_check, altimate_core_grade, sql_analyze, read, glob, bash (for git operations) ## When to Use This Skill **Use when the user wants to:** - Review SQL quality before merging a PR - Get a quality grade (A-F) on a query or model - Run a comprehensive lint + safety + syntax check in one pass - Audit SQL files in a directory for anti-patterns **Do NOT use for:** - Optimizing query performance -> use `query-optimize` - Fixing broken SQL -> use `dbt-troubleshoot` - Translating between dialects -> use `sql-translate` ## Workflow ### 1. Collect SQL to Review Either: - Read SQL from a file path provided by the user - Accept SQL directly from the conversation - Auto-detect changed SQL files from git: ```bash git diff --name-only HEAD~1 | grep '\.sql$' ``` For dbt models, compile first to get the full SQL: ```bash altimate-dbt compile --model <name> ``` ### 2. Run Comprehensive Check Call `altimate_core_check` — this is the single-call code review that composes: - **Syntax validation**: Parse errors with line/column positions - **Lint (26 anti-patterns)**: SELECT *, unused CTEs, implicit casts, NULL comparisons, missing WHERE on DELETE/UPDATE, cartesian joins, non-sargable predicates, missing partition filters, and more - **Injection scan**: Tautology attacks, UNION injection, stacked queries, comment injection, Jinja template injection - **PII exposure**: Flags queries accessing columns classified as PII ``` altimate_core_check(sql: <sql>, schema_context: <schema_object>) ``` ### 3. Grade the SQL Call `altimate_core_grade` to get an A-F quality score with per-category breakdown: ``` altimate_core_grade(sql: <sql>, schema_context: <schema_object>) ``` Categories scored: - **Readability**: Naming, formatting, CTE structure - **Performance**: Anti-patterns, index usage, scan efficiency - **Correctness**: NULL handling, join logic, type safety - **Best Practices**: Explicit columns, proper materialization hints ### 4. Run Anti-Pattern Analysis Call `sql_analyze` for the detailed anti-pattern breakdown with severity levels and concrete recommendations: ``` sql_analyze(sql: <sql>, dialect: <dialect>) ``` ### 5. Present the Review ``` SQL Review: <file_or_query_name> ============================== Grade: B+ (82/100) Readability: A (clear CTEs, good naming) Performance: B- (missing partition filter on large table) Correctness: A (proper NULL handling) Best Practices: C (SELECT * in staging model) Issues Found: 3 [HIGH] SELECT_STAR — Use explicit column list for contract stability [MEDIUM] MISSING_PARTITION_FILTER — Add date filter to avoid full scan [LOW] IMPLICIT_CAST — VARCHAR compared to INTEGER on line 23 Safety: PASS (no injection vectors detected) PII: PASS (no PII columns exposed) Verdict: Fix HIGH issues before merging. MEDIUM issues are recommended. ``` ### 6. Batch Mode When reviewing multiple files (e.g., all changed SQL in a PR): - Run the check on each file - Present a summary table: ``` | File | Grade | Issues | Safety | Verdict | |------|-------|--------|--------|---------| | stg_orders.sql | A | 0 | PASS | Ship | | int_revenue.sql | B- | 2 | PASS | Fix HIGH | | mart_daily.sql | C | 5 | WARN | Block | ``` ## Usage - `/sql-review models/marts/fct_orders.sql` -- Review a specific file - `/sql-review` -- Review all SQL files changed in the current git diff - `/sql-review --all models/` -- Review all SQL files in a directory
Auf GitHub ansehen