From Claude DB
Audit query-shape anti-patterns: SELECT *, structural N+1, OFFSET pagination, and non-SARGable predicates. Feeds a Performance & Scale score.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-db:db-query-patternsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
How queries are *written* decides whether the indexes from M11 can even be used. This module inspects
How queries are written decides whether the indexes from M11 can even be used. This module inspects
query shape in ORM source and raw SQL. Feeds the Performance & Scale score (axis performance,
relational Query w18, shared with M3/M19).
SELECT * — fetching all columns defeats covering indexes, bloats network/cache, and couples
code to column order. Flag in hot paths.IN. Static detection is directional (the loop's runtime cardinality is
unknown) — it points at the structure, never claims a row count.LIMIT n OFFSET m degrades linearly with depth; deep pagination should use
keyset/seek (WHERE id > $last ORDER BY id LIMIT n).WHERE lower(email)=…,
WHERE date(created_at)=…, leading-wildcard LIKE '%x', implicit type cast) so the index can't be
used. Recommend an expression index or rewriting the predicate. For the leading-wildcard /
LIKE '%x%' case a B-tree can never help — name the remedy: a pg_trgm GIN/GiST index on the
column (or a dedicated search engine for heavy full-text search).Feeds performance only (relational Query w18; Query category in document/time-series/graph profiles).
Grep ORM call sites and raw SQL for SELECT *, function-wrapped indexed columns, leading-wildcard
LIKE, and OFFSET; detect query calls inside loops/.map/per-item relation access for N+1. All
query-pattern findings are at most directional from source — confirming the actual plan/cost needs
runtime (needs_api / Tier-2).
EXPLAIN (ANALYZE, BUFFERS) <the suspect query>;
Method explain_plan. A Seq Scan where an index exists confirms a non-SARGable predicate; the
actual rows × loops confirms an N+1 amplification. Tier-2 pg_stat_statements (ordered by
total_exec_time) surfaces the real hot queries — without it, hotness is directional.
Emit findings per schema/finding.schema.json. Examples:
M13.orders.select_star_hot_path — SELECT * in a frequent read (severity:2, warn, axis
performance, confidence directional, fixable: proposed).M13.users.n_plus_one_posts — per-row relation load in a loop (severity:3, warn, directional,
fixable: advisory — requires app-side eager load / batching).M13.feed.offset_deep_pagination — OFFSET deep paging (severity:2, warn, directional,
fixable: proposed — keyset rewrite).M13.users.non_sargable_lower_email — function-wrapped indexed column (severity:3, warn,
directional, fixable: proposed — expression index or predicate rewrite).Each finding: evidence.observed quotes the query / call site verbatim (secrets redacted);
verification.reproduce is the EXPLAIN above referencing $DATABASE_URL, or a grep for the
pattern; expected_impact is banded + confidence-tagged (no naked %).
SELECT * is harmless on a small lookup or a one-shot admin query — scope severity to hot paths.proposed/advisory,
never auto; expression-index additions can be proposed.npx claudepluginhub hainrixz/claude-db --plugin claude-dbProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.