소스 정보
- 저장소
- evrendom/rudel
- 최근 소스 활동
- 2026년 7월 29일 11:28
- 감지된 SKILL.md 언어
- 영어
- 스타
- 288
- 포크
- 16
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/evrendom/rudel --skill clickhouse-query명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Test the local Rudel API with authenticated requests. Use when the user wants to test API endpoints, debug RPC calls, verify auth flows, or inspect API responses against the local dev server.
Environment variable management patterns. CRITICAL use when adding new environment variables (secrets, API keys, config), debugging "X not defined" or missing env var errors, tests passing locally but failing in CI, Turborepo not passing env vars to tasks, or troubleshooting deployment configuration errors.
CRITICAL - Invoke BEFORE writing ANY test code. Use when creating new tests, adding test cases, modifying existing tests, writing `it()` or `describe()` blocks, or touching any `*.test.ts` or `*.spec.ts` file. Enforces no try-catch in positive tests, no early returns, no test skipping.
| name | clickhouse-query |
| description | Run bounded, read-only ClickHouse queries through the repository wrapper. |
| metadata | {"author":"rudel","version":"2.0"} |
| compatibility | Requires Bun and a reachable ClickHouse instance. |
| allowed-tools | Bash(bun run --cwd packages/ch-schema chcli --:*) Read Write |
Use one command:
bun run --cwd packages/ch-schema chcli -- -F json -q "<SQL>"
The wrapper reads CLICKHOUSE_URL, CLICKHOUSE_USERNAME, and
CLICKHOUSE_PASSWORD from the current process. The URL must not contain
credentials. See references/connection.md.
-F json by default; use -F jsonl only for bounded streaming output.Per ClickHouse's
agent-query-safety
rule, every application-data query must have:
LIMIT;max_execution_time;max_rows_to_read or max_bytes_to_read.LIMIT does not cap scanned rows. Metadata queries must also have a finite
LIMIT, a time limit, and a read limit.
Per ClickHouse's
agent-discovery-schema
rule, run these steps in order. Execute every SQL block with the wrapper command
above and structured output.
SELECT name
FROM system.databases
WHERE name NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
ORDER BY name
LIMIT 100
SETTINGS max_execution_time = 10, max_rows_to_read = 100000
Replace analytics with the selected database.
SELECT
t.name,
t.engine,
coalesce(sumIf(p.rows, p.active), 0) AS rows,
formatReadableSize(coalesce(sumIf(p.bytes_on_disk, p.active), 0)) AS size
FROM system.tables AS t
LEFT JOIN system.parts AS p
ON p.database = t.database AND p.table = t.name
WHERE t.database = 'analytics'
GROUP BY t.name, t.engine
ORDER BY sumIf(p.bytes_on_disk, p.active) DESC
LIMIT 200
SETTINGS max_execution_time = 15, max_rows_to_read = 1000000
SELECT position, name, type, default_expression, comment
FROM system.columns
WHERE database = 'analytics' AND table = 'events'
ORDER BY position
LIMIT 500
SETTINGS max_execution_time = 10, max_rows_to_read = 100000
SELECT sorting_key, primary_key, partition_key
FROM system.tables
WHERE database = 'analytics' AND name = 'events'
LIMIT 1
SETTINGS max_execution_time = 10, max_rows_to_read = 100000
SELECT name, type_full, expr, granularity
FROM system.data_skipping_indices
WHERE database = 'analytics' AND table = 'events'
ORDER BY name
LIMIT 100
SETTINGS max_execution_time = 10, max_rows_to_read = 100000
Use fields discovered in steps 3–4. This example assumes event_date is a key:
SELECT event_date, user_id, event_type
FROM analytics.events
WHERE event_date >= today() - 1
LIMIT 10
SETTINGS max_execution_time = 30,
max_rows_to_read = 10000000,
timeout_before_checking_execution_speed = 0
Explain the exact bounded query:
EXPLAIN indexes = 1
SELECT event_type, count() AS events
FROM analytics.events
WHERE event_date >= today() - 1
GROUP BY event_type
ORDER BY events DESC
LIMIT 100
SETTINGS max_execution_time = 30,
max_rows_to_read = 10000000,
timeout_before_checking_execution_speed = 0
If the plan shows useful part or granule pruning, run the same query without
EXPLAIN. Otherwise narrow the key filter. On timeout, read-limit, or memory
errors, narrow the query rather than increasing limits.