Shared TypeScript library for the Lightdash platform containing common types, utilities, and business logic for analytics workflows
72
Pending
Does it follow best practices?
Impact
72%
1.09xAverage score across 20 eval scenarios
Pending
The risk profile of this skill
{
"context": "This criteria evaluates how well the engineer uses @lightdash/common's filter compilation functions to generate SQL WHERE clauses for different data types (string, number, date, boolean) with warehouse-specific SQL generation.",
"type": "weighted_checklist",
"checklist": [
{
"name": "String Filter Compilation",
"description": "Correctly uses FilterOperator enum values (EQUALS, NOT_EQUALS, INCLUDE, NOT_INCLUDE, STARTS_WITH, ENDS_WITH, NULL, NOT_NULL) to generate appropriate SQL patterns. INCLUDE operator should use LOWER() function with LIKE '%value%' pattern. STARTS_WITH should use 'value%' pattern. ENDS_WITH should use '%value' pattern. EQUALS should generate IN clause. Multiple INCLUDE values should be joined with OR logic.",
"max_score": 25
},
{
"name": "Number Filter Compilation",
"description": "Correctly uses FilterOperator enum values (EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IN_BETWEEN, NOT_IN_BETWEEN, NULL, NOT_NULL) to generate numeric comparison SQL. IN_BETWEEN should use >= and <= with AND. NOT_IN_BETWEEN should use < OR >. All operators should validate numeric values and handle NaN/Infinity.",
"max_score": 20
},
{
"name": "Date Warehouse-Specific SQL",
"description": "Correctly generates warehouse-specific SQL for date filters based on SupportedDbtAdapter or warehouse type. For Trino/TRINO adapter, dates must be wrapped with CAST('value' AS timestamp). For other warehouses (Postgres, Snowflake, BigQuery, etc.), dates should be wrapped in quoted strings like ('value'). Uses date formatters appropriately (formatDate for dates, formatTimestamp for timestamps).",
"max_score": 25
},
{
"name": "Date Relative Filters",
"description": "Correctly implements relative date filters (IN_THE_PAST, IN_THE_NEXT, IN_THE_CURRENT) using UnitOfTime enum (days, weeks, months, years, hours, minutes) from @lightdash/common. Uses moment-timezone or similar for date arithmetic. IN_THE_PAST and IN_THE_NEXT should support 'completed' period mode. IN_THE_CURRENT should handle timezone-aware boundaries using startOf/endOf period functions.",
"max_score": 20
},
{
"name": "Boolean Filter Compilation",
"description": "Correctly uses FilterOperator values (equals/EQUALS, notEquals/NOT_EQUALS, isNull/NULL, notNull/NOT_NULL) to generate boolean SQL. Converts boolean values to SQL TRUE/FALSE literals (or 1/0 depending on warehouse). Uses convertToBooleanValue or similar utility from @lightdash/common for boolean conversion.",
"max_score": 10
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20