KubeEye Cluster Inspection
kubesphere/kubesphere
Deploys KubeEye on KubeSphere and writes InspectRule and InspectPlan resources to inspect cluster health, then retrieves the inspection reports.
Validate, lint, audit, or fix PromQL queries and alerting rules; detects anti-patterns.
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install akin-ozer/cc-devops-skills promql-validator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .claude/skills/promql-validator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .claude/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install akin-ozer/cc-devops-skills promql-validator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .agents/skills/promql-validator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .agents/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install akin-ozer/cc-devops-skills promql-validator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .cursor/skills/promql-validator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .cursor/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/akin-ozer/cc-devops-skills.git --path devops-skills-plugin/skills/promql-validator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install akin-ozer/cc-devops-skills promql-validator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .gemini/skills/promql-validator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .gemini/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install akin-ozer/cc-devops-skills promql-validatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .github/skills/promql-validator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .github/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install akin-ozer/cc-devops-skills promql-validator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/devops-skills-plugin/skills/promql-validator .opencode/skills/promql-validator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "promql-validator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/promql-validator into .opencode/skills/promql-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "promql-validator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
promql-validatorValidate, lint, audit, or fix PromQL queries and alerting rules; detects anti-patterns.
Promql Validator is an agent skill from akin-ozer/cc-devops-skills. Validate, lint, audit, or fix PromQL queries and alerting rules; detects anti-patterns.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts (for example `docs/anti_patterns.md`, `docs/best_practices.md` and `scripts/check_best_practices.py`).
It sits in DevOps & Cloud. It works with Prometheus. The repository describes itself as: DevOps skills for Claude Code and Codex. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 276af75. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Promql Validator loads about 4k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 1,724 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from akin-ozer/cc-devops-skills at commit 276af75, republished under its Apache-2.0 licence (© akin-ozer). 1,724 words, ~3,982 tokens.
.claude/skills/promql-validator/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.This skill performs multi-level validation and provides interactive query planning:
When a user provides a PromQL query, follow this workflow:
Run validation commands from the repository root so relative paths resolve correctly:
cd "$(git rev-parse --show-toplevel)"If running from another location, use absolute paths to scripts/ files.
Run the syntax validation script to check for basic correctness:
python3 devops-skills-plugin/skills/promql-validator/scripts/validate_syntax.py "<query>"Output parsing notes:
0: syntax validThe script will check for:
Run the best practices checker to detect anti-patterns and optimization opportunities:
python3 devops-skills-plugin/skills/promql-validator/scripts/check_best_practices.py "<query>"Output parsing notes:
manual-reviewThe script will identify:
Parse and explain what the query does in plain English:
Required Output Details (always include these explicitly):
**Output Labels**: [list labels that will be in the result, or "None (fully aggregated to scalar)"]
**Expected Result Structure**: [instant vector / range vector / scalar] with [N series / single value]Example:
**Output Labels**: job, instance
**Expected Result Structure**: Instant vector with one series per job/instance combinationWhen citing examples/docs in recommendations, include file path + 1-based line numbers:
examples/good_queries.promql:42
docs/best_practices.md:88Rules:
line number unavailable and provide file pathAsk the user clarifying questions to verify the query matches their intent:
Understand the Goal: "What are you trying to monitor or measure?"
Verify Metric Type: "Is this a counter (always increasing), gauge (can go up/down), histogram, or summary?"
Clarify Time Range: "What time window do you need?"
Confirm Aggregation: "Do you need to aggregate data across labels? If so, which labels?"
Check Output Intent: "Are you using this for alerting, dashboarding, or ad-hoc analysis?"
IMPORTANT: Two-Phase Dialogue
After presenting Steps 1-4 results (Syntax, Best Practices, Query Explanation, and Intent Questions):
⏸️ STOP HERE AND WAIT FOR USER RESPONSE
Do NOT proceed to Steps 5-7 until the user answers the clarifying questions. This ensures the subsequent recommendations are tailored to the user's actual intent.
Only proceed to this step after the user has answered the clarifying questions from Step 4.
After understanding the user's intent:
When relevant, mention known limitations:
_bytes suffix. Please confirm if this is correct.")Based on validation results:
Reference Examples: When suggesting corrections, cite relevant examples using this format:
As shown in `examples/bad_queries.promql` (lines 91-97):
❌ BAD: `avg(http_request_duration_seconds{quantile="0.95"})`
✅ GOOD: Use histogram_quantile() with histogram bucketsCitation sources:
examples/good_queries.promql - for well-formed patternsexamples/optimization_examples.promql - for before/after comparisonsexamples/bad_queries.promql - for showing what to avoiddocs/best_practices.md - for detailed explanationsdocs/anti_patterns.md - for anti-pattern deep divesCitation Format: file_path (lines X-Y) with the relevant code snippet quoted
Give the user control:
[a-zA-Z_:][a-zA-Z0-9_:]* or use UTF-8 quoting syntax (Prometheus 3.0+):{"my.metric.with.dots"}{__name__="my.metric.with.dots"}= (equal), != (not equal), =~ (regex match), !~ (regex not match)[0-9]+(ms|s|m|h|d|w|y) - e.g., 5m, 1h, 7dmetric_name[duration] - e.g., http_requests_total[5m]offset <duration> - e.g., metric_name offset 5m@ <timestamp> or @ start() / @ end()_total, _count, _sum, or _bucket)rate() or increase(), not raw valuesrate() or increase()histogram_quantile() with le label and rate() on _bucket metrics_sum and _countby() or without() to control output labels= instead of =~ when possible for exact matches[2m] minimum)rate() for longer periods❌ Bad: http_requests_total{}
✅ Good: http_requests_total{job="api", instance="prod-1"}
❌ Bad: http_requests_total{status=~"2.."}
✅ Good: http_requests_total{status="200"}
❌ Bad: http_requests_total
✅ Good: rate(http_requests_total[5m])
❌ Bad: rate(memory_usage_bytes[5m])
✅ Good: memory_usage_bytes
avg_over_time()❌ Bad: avg(http_request_duration_seconds{quantile="0.95"})
✅ Good: histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))
❌ Bad: rate(metric[5m])[90d:1m]
✅ Good: Use recording rules or limit range to necessary duration
❌ Bad: irate(metric[1h])
✅ Good: rate(metric[1h]) or irate(metric[5m])
❌ Bad: avg(http_request_duration_seconds{quantile="0.95"}) / rate(node_memory_usage_bytes[1h]) + sum(http_requests_total)
✅ Good: Keep each metric type in separate, purpose-specific queries:
histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))node_memory_usage_bytes{instance="prod-1"}rate(http_requests_total{job="api"}[5m])Provide validation results in this structure:
## PromQL Validation Results
### Syntax Check
- Status: ✅ VALID / ⚠️ WARNING / ❌ ERROR
- Issues: [list any syntax errors with line/position]
### Semantic Check
- Status: ✅ VALID / ⚠️ WARNING / ❌ ERROR
- Issues: [list any logical problems]
### Performance Analysis
- Status: ✅ OPTIMIZED / ⚠️ CAN BE IMPROVED / ❌ INEFFICIENT
- Issues: [list optimization opportunities]
- Suggestions: [specific improvements]
### Query Explanation
Your query: `<query>`
This query does:
- [Plain English explanation]
- Metrics: [list metrics and their types]
- Functions: [explain each function]
- Output: [describe result structure]
### Intent Verification
Let me verify this matches your needs:
1. What are you trying to measure? [your goal here]
2. Is this a counter/gauge/histogram/summary? [metric type]
3. What time range interests you? [time window]
4. Do you need aggregation? If so, by which labels? [aggregation needs]
5. Is this for alerting, dashboarding, or analysis? [use case]
### Recommendations
[Based on the analysis, suggest improvements or alternatives]After validation, engage in dialogue:
Claude: "I've validated your query. It's syntactically correct, but I notice it queries http_requests_total without any label filters. This could match thousands of time series. What specific service or endpoint are you trying to monitor?"
User: [provides intent]
Claude: "Great! Based on that, here's an optimized version: rate(http_requests_total{job="api-service", path="/users"}[5m]). This calculates the per-second rate of requests to the /users endpoint over the last 5 minutes. Does this match what you need?"
User: [confirms or asks for changes]
Claude: [provides refined query or alternatives]
See the examples/ directory for:
good_queries.promql: Well-written queries following best practicesbad_queries.promql: Common mistakes and anti-patterns (with corrections)optimization_examples.promql: Before/after optimization examplesSee the docs/ directory for:
best_practices.md: Comprehensive PromQL best practices guideanti_patterns.md: Detailed anti-pattern reference with explanationsThis skill can be used:
The skill uses two main Python scripts:
Both scripts output JSON for programmatic parsing and human-readable messages for display.
A successful validation session should:
The validation scripts have some limitations to be aware of:
_total, _bytes)job:http_requests:rate5m) are valid without label filtersThe scripts detect common anti-patterns but cannot catch:
The goal is not just to validate queries, but to help users write better PromQL and understand their monitoring data. Always be educational, interactive, and helpful!
© akin-ozer, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (scripts) in devops-skills-plugin/skills/promql-validator of akin-ozer/cc-devops-skills.
Open the folder on GitHubat commit 276af75
Promql Validator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Promql Validator this skillakin-ozer/cc-devops-skills | 319 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| KubeEye Cluster Inspectionkubesphere/kubesphere | 17k | — | ~3.6k | Automated safety check: Pass | Custom licence | |
| Happy Infra Metrics and Grafanaslopus/happy | 24k | — | ~2k | Automated safety check: Notes | MIT | |
| Syncmetapawurb/hotpath-rs | 1.9k | — | ~1.2k | Automated safety check: Notes | MIT | |
| WizTelemetry Platform Servicekubesphere/kubesphere | 17k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Collectors Prometheus Profilesnetdata/netdata | 81k | — | ~4.7k | Automated safety check: Pass | GPL-3.0 |
kubesphere/kubesphere
Deploys KubeEye on KubeSphere and writes InspectRule and InspectPlan resources to inspect cluster health, then retrieves the inspection reports.
slopus/happy
Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.
pawurb/hotpath-rs
Sync changes from the hotpath, hotpath-macros and hotpath-drain crates to their meta counterparts (hotpath-meta, hotpath-macros-meta and hotpath-drain-meta).
kubesphere/kubesphere
Installs and configures the WizTelemetry Platform Service extension for KubeSphere, the shared API server behind its observability extensions.
netdata/netdata
Create, review or validate Netdata Prometheus chart profiles, exporter dashboard design, collection policy and stock semantic proofs.
NVlabs/alpasim
Optimize AlpaSim Slurm topology throughput using persistent local Prometheus/Grafana telemetry and run artifacts.
akin-ozer/cc-devops-skills
Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
akin-ozer/cc-devops-skills
Create, scaffold, or generate Helm charts, Chart.yaml, values.yaml, templates, helpers.
akin-ozer/cc-devops-skills
Generate/create/scaffold Jenkinsfile — declarative, scripted, shared library, CI/CD pipelines.
akin-ozer/cc-devops-skills
Validate, lint, audit, or scan a Dockerfile for security and best practices.
akin-ozer/cc-devops-skills
Validate, lint, audit, fix GitHub Actions workflows (.github/workflows).
akin-ozer/cc-devops-skills
Validate, lint, audit, or check Jenkinsfiles and shared libraries.
Works with
Categories
Validate, lint, audit, or fix PromQL queries and alerting rules; detects anti-patterns. Promql Validator is an agent skill from akin-ozer/cc-devops-skills. Validate, lint, audit, or fix PromQL queries and alerting rules; detects anti-patterns.
Promql Validator fits situations like: devOps & Cloud work in your project.
Run `npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a claude-code`. Or copy the skill folder (devops-skills-plugin/skills/promql-validator in akin-ozer/cc-devops-skills) into .claude/skills/promql-validator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a codex`. Or copy the skill folder (devops-skills-plugin/skills/promql-validator in akin-ozer/cc-devops-skills) into .agents/skills/promql-validator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akin-ozer/cc-devops-skills --skill promql-validator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/promql-validator, .gemini/skills/promql-validator, .github/skills/promql-validator and .opencode/skills/promql-validator in your project.
Going by SKILL.md and its folder, Promql Validator needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Promql Validator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Promql Validator: KubeEye Cluster Inspection (kubesphere/kubesphere, 17k stars), Happy Infra Metrics and Grafana (slopus/happy, 24k stars), Syncmeta (pawurb/hotpath-rs, 1.9k stars) and WizTelemetry Platform Service (kubesphere/kubesphere, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
akin-ozer (a GitHub user) maintains it in akin-ozer/cc-devops-skills, which has 319 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on July 26, 2026.
Source: akin-ozer/cc-devops-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.