azure/kql-validator
Validate KQL (Kusto Query Language) files used in Azure Quick Review (azqr) against their recommendation definitions. Use when the user wants to validate KQL syntax, check semantic alignment with recommendations, verify property names against Azure REST API schemas, or audit KQL queries before a pull request. WHEN: "validate kql", "check kql files", "kql syntax error", "validate aks kql", "run kql validator", "validate azure resource graph queries", "check recommendations alignment", "validate kql for <service>".
npx skills add https://github.com/Azure/azqr --skill kql-validator
This skill validates KQL query files in Azure Quick Review by delegating to the KQLValidator subagent. The subagent handles the full validation pipeline — discovery, structural/semantic/schema checks, and report generation.
recommendationId matches aprlGuidParse what the user wants to validate:
| User says | Scope argument to pass |
|-----------|----------------------|
| "validate all KQL" / no specific target | *(empty — validate everything)* |
| "validate ContainerService" / "validate AKS" | Service name, e.g. ContainerService |
| "validate aks-004.kql" | Filename, e.g. aks-004.kql |
| "validate internal/graph/azqr/azure-resources/Sql/" | Directory path |
Spawn the subagent using the agent file at .agents/skills/kql-validator/agents/kql-validator.md. Pass the scope as the user argument.
Subagent prompt template:
Read and follow the instructions in .agents/skills/kql-validator/agents/kql-validator.md exactly.
User argument: <SCOPE_ARGUMENT_OR_EMPTY>
Workspace: /home/cmendibl3/_dev/azqr
The subagent is self-contained — it will discover files, validate them, and generate a full markdown report. Do not attempt to re-implement its logic inline.
Once the subagent completes, present its markdown report directly. If the subagent encountered issues, highlight the critical ones and suggest fixes.
Take azure/kql-validator 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.