frankchen021/diagnose-clickhouse-clusters
Diagnose ClickHouse cluster health and provide concrete remediation.
npx skills add https://github.com/FrankChen021/datastoria --skill diagnose-clickhouse-clusters
collect_cluster_status before health conclusions about current cluster health.collect_rca_evidence directly when the symptom and target are already clear. Use collect_cluster_status first only when you need current health context, severity/outliers, or help choosing the RCA symptom/scope.high_part_count and unknown.status_analysis_mode="windowed" and reuse the same time window in follow-up calls.visualization skill. Do not emit chart specs directly from this skill.Do not hardcode parts thresholds in responses. Use the thresholds and severities returned by collect_cluster_status.
Use one of these two formats:
Always print a table title line exactly before the table: ### Summary.
| Status | Nodes with Issues | Checks Run | Timestamp |
|--------|-------------------|------------|-----------|
| 🟢 OK / 🟠 WARNING / 🔴 CRITICAL | N | categories | ISO8601 |
Always print a table title line exactly before the table: ### Findings by Category.
Use a markdown table (not bullets) with one row per category.
Required columns:
| Category | Status | Key Metrics | Top Outlier / Scope | Notes |
|----------|--------|-------------|----------------------|-------|
| parts / errors / replication / ... | 🟢 OK / 🟠 WARNING / 🔴 CRITICAL | concise metric values with thresholds | node/table if present, else - | one short phrase |
Table rules:
collect_cluster_status in stable order.🟠 WARNING), never emoji-only.Key Metrics, put the 1-2 most important metrics only (single-line, semicolon-separated if needed).Notes as compact key/value items (single-line).max_parts_per_table=533 (>500)), avoid prose-heavy sentences. db.table or db ) in all table cells.Notes as compact comma-separated items.Top Outlier / Scope to -.Use compact structure only:
cause | support_score | evidence.In evidence, render up to 3 evidence_for items prefixed with ✓ and up to 2 evidence_against items prefixed with ✗, separated by <br/>.
When excluded_candidates is non-empty, include at least one excluded reason as a ✗ item for the most relevant row.
Evidence fidelity rules:
candidate.evidence_for and candidate.evidence_against from collect_rca_evidence for that row.observations, other candidates, or status output into the evidence cell.candidate.evidence_for or candidate.evidence_against.indicators_matched/indicators_checked, but never imply more matched checks than the tool returned.Formatting rule: print the line 3. Possible Actions, then a blank line, then an indented nested numbered list using exactly 1., 2., 3..
Do not continue the outer top-level numbering for action items.
Formatting rule: print the line 4. Gaps / Next Checks, then a blank line, then indented bullets using exactly -.
RCA brevity limits:
collect_cluster_status before giving any opinion on current health.status_analysis_mode="windowed" when user asks for a bounded time window or historical context.collect_rca_evidence. collect_cluster_status is optional unless current health context is needed.gaps[] is non-empty, explicitly state what evidence is missing.support_score < 0.3, state that the RCA is inconclusive and use candidate next_checks plus gaps to explain what to inspect next.0.30-0.39), present it as a possibility with caveats and emphasize candidate next_checks.evidence_for and evidence_against.collect_rca_evidence.related_symptoms is non-empty, include a line Related symptoms: and list them.Take frankchen021/diagnose-clickhouse-clusters from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.