Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

sql-params-generate

verified

Generate parameter bindings for SQL files by analyzing database schema and extracting SQL placeholders. Queries the live database for table structures, matches placeholders to column types, and generates appropriate test values based on column patterns (IDs, dates, status enums, etc).

View on GitHub

Marketplace

sql-quality

koriym/Koriym.SqlQuality

Plugin

sql-quality

Repository

koriym/Koriym.SqlQuality
3stars

skills/sql-params-generate/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/koriym/Koriym.SqlQuality/blob/main/skills/sql-params-generate/SKILL.md -a claude-code --skill sql-params-generate

Installation paths:

Claude
.claude/skills/sql-params-generate/
Powered by add-skill CLI

Instructions

# SQL Parameters Generator

Generate parameter bindings for SQL files by analyzing database schema and SQL placeholders.

## Arguments
- `$ARGUMENTS`: SQL directory path (e.g., "tests/sql")

## Prerequisites
- MySQL/MariaDB database must be running with the target schema loaded

## Steps

### 1. Get Schema from Database

Query the database directly for the latest schema:

```sql
-- Get all tables
SHOW TABLES;

-- For each table, get columns
SELECT column_name, data_type, column_type, column_key
FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'table_name';

-- Or use SHOW CREATE TABLE for complete DDL
SHOW CREATE TABLE table_name;
```

### 2. Scan SQL Files

For each `.sql` file in the directory:
1. Extract placeholder parameters (`:param_name` or `?` style)
2. Parse SQL to identify referenced tables and columns
3. Match placeholders to column types from schema

### 3. Generate Values by Type

| Column Pattern | Type | Generated Value |
|---------------|------|-----------------|
| `*_id`, `id` | INT | `rand(1, 1000)` |
| `status` | VARCHAR/ENUM | Pick from actual ENUM values or common: 'active', 'pending' |
| `email` | VARCHAR | `'test@example.com'` |
| `name`, `title` | VARCHAR | `'Test Value'` |
| `*_at`, `*_date` | DATETIME/DATE | `'2024-01-01'` |
| `price`, `amount`, `total*` | DECIMAL | `100.00` |
| `count`, `quantity`, `limit` | INT | `10` |
| `is_*`, `has_*` | TINYINT | `1` |
| `content`, `body`, `text` | TEXT | `'Sample text content'` |

### 4. Write Parameter File

Output to `{sql_dir}/../params/sql_params.php`:

```php
<?php

declare(strict_types=1);

return [
    '1_full_table_scan.sql' => ['min_views' => 1000],
    '2_filesort.sql' => ['status' => 'published', 'limit' => 10],
    // SQL files without placeholders use empty array
    '12_select1.sql' => [],
];
```

### 5. Validation

- Warn if placeholder cannot be matched to any column
- Skip files that are DDL-only (CREATE, DROP, ALTER)
- Report any SQL files missing from

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2173 chars