36 rules across 8 categories. Fixable rules are marked ✓ — run --fix to apply them
automatically.
| ID | Description | Fixable |
| CP01 | Keywords must be lowercase | ✓ |
| CP02 | Unquoted identifiers must be lowercase | ✓ |
| CP03 | Function names must be lowercase | ✓ |
| CP04 | Boolean/null literals must be lowercase | ✓ |
| CP05 | Data type names must be lowercase | ✓ |
| ID | Description | Fixable |
| LT01 | No space before comma; no consecutive mid-line spaces; no space between function and ( | ✓ |
| LT02 | Indentation must use spaces, multiple of 4 | |
| LT03 | No trailing whitespace on lines | ✓ |
| LT05 | Lines must not exceed max_line_length (default 120) | |
| LT06 | No space between function name and ( | ✓ |
| LT07 | CTE closing ) must be on its own line | |
| LT08 | Blank line required after each CTE closing ) | |
| LT09 | Clauses in standard order: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT | |
| LT10 | DISTINCT/ALL must be on the same line as SELECT | |
| LT11 | Set operators (UNION, INTERSECT, EXCEPT) must be on their own line | |
| LT12 | File must end with exactly one trailing newline | ✓ |
| ID | Description | Fixable |
| CV03 | Trailing comma policy in SELECT clauses | |
| CV04 | Consistent row-counting syntax: COUNT(*) vs COUNT(1) | |
| CV05 | NULL comparisons must use IS NULL / IS NOT NULL | ✓ |
| CV10 | Identifiers must use a consistent quoting style within a file | |
| ID | Description | Fixable |
| AL02 | Column aliases must use explicit AS keyword | |
| AL03 | Expressions in SELECT must have an alias | |
| AL04 | Table aliases must be unique within a query | |
| AL05 | Table aliases that are defined but never referenced | |
| AL06 | Table alias length must be within configured bounds | |
| AL08 | Column aliases in SELECT must be unique (case-insensitive) | |
| AL09 | A column must not be aliased to itself (col AS col) | |
| ID | Description | Fixable |
| AM01 | SELECT DISTINCT with GROUP BY is redundant | |
| AM02 | UNION must be followed by ALL or DISTINCT | |
| AM05 | Implicit comma joins are forbidden; use explicit JOIN | |
| AM06 | GROUP BY / ORDER BY must use a consistent reference style | |
| ID | Description | Fixable |
| RF01 | Qualified column references must use a known table alias | |
| RF02 | Wildcard (SELECT *) is not allowed; list columns explicitly | |
| ID | Description | Fixable |
| ST03 | CTEs that are defined but never referenced | |
| ST08 | COUNT(DISTINCT *) is not valid SQL | |
| ID | Description | Fixable |
| JJ01 | Jinja tags must have single-space padding inside delimiters | |