Expert system for generating, validating, and optimizing ClickHouse SQL. Use this when the user needs data, queries, or analysis.
60
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./resources/skills/sql-expert/SKILL.md🚨 CRITICAL RULE: MANDATORY VALIDATION
You MUST call
validate_sql(sql)for every new query you generate. Context Note: Historical validation steps are pruned to save tokens, but this does NOT excuse you from validating new queries in the current turn. Always validate before executing.
get_tables and explore_schema first.
columns argument of explore_schema instead of loading the full table schema.ProfileEvent_*, CurrentMetric_*, and flattened event columns on system.* tables.explore_schema with a narrower columns list based on the user-mentioned identifier or the closest confirmed column names.explore_schema. Do not assume standard columns exist if they are not in the tool output.WHERE user = '<clickHouseUser>'.system.* tables (e.g., system.query_log, system.parts, system.merges), defer to the clickhouse-system-queries skill - it contains table-specific patterns, predicates, and resource metrics that this skill does not cover. For system.query_log, do not generate SQL until references/system-query-log.md has been loaded via skill_resource, and do not call search_query_log for chart/time-series requests.database.table).;).LIMIT for data exploration queries.event_date or timestamp) first. Use bounded time windows (e.g., last 24h, 7 days) unless the user asks for all history.WHERE event_time > now() - 1h (If PK is event_date, event_time, this scans everything).WHERE event_date >= toDate(now() - 1h) AND event_time > now() - 1h (Uses index, handles midnight crossover).uniq() instead of uniqExact() unless precision is explicitly requested.GLOBAL IN only for distributed queries.validate_sql(sql).
execute_sql(sql).68a8440
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.