azure-kusto-irql
Compose IRQL (Incident Response Query Language) queries for Kusto cybersecurity investigations.
Skill by MicrosoftOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/microsoft-azure-kusto-irql
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud, data, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/azure-kusto-irql
What's inside
- Skill name
azure-kusto-irql- Description
- Compose IRQL (Incident Response Query Language) queries for Kusto cybersecurity investigations. Translates natural language hunting questions into composable IRQL pipelines using Get_*, Extract_*, and Enrich_* functions. WHEN: IRQL query, security hunt, threat hunting KQL, incident response query, compose hunting pipeline, failed logins, phishing investigation, lateral movement, process execution, file creation events.
- License
- MIT
- Metadata
- author: Microsoft · version: 1.2.1
- Instructions
- 233 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- EXAMPLES.md · references/
- KUSTO_EXPLORER_LAUNCH.md · references/
SKILL.md (first lines)
# IRQL -- Incident Response Query Language Compose IRQL function pipelines from selector, extractor, and enricher building blocks. IRQL wraps raw KQL security tables behind intent-revealing, composable functions so analysts (and LLMs) can express hunts without memorizing schemas, cluster locations, or join keys. ## Activation Triggers Use this skill when the user: - Explicitly mentions IRQL, `Get_*`, `Extract_*`, or `Enrich_*` functions - Says "use IRQL" or "write an IRQL query" - Requests a composable hunting pipeline using known IRQL selectors Do **not** activate for generic security queries (e.g. "find failed logins") unless the user explicitly asks for IRQL. Route those to `azure-kusto` instead. **Not a natural-language-to-IRQL converter.** This skill composes IRQL function pipelines and may handle basic natural-language requests that map directly to known selectors and simple filters. For general NL-to-KQL or NL-to-IRQL conversion, use a dedicated query-generation skill (available separately). ## IRQL Function Preflight Before generating a pipeline, verify IRQL is available on the target database: ```kql .show functions | where Name startswith "Get_" or Name startswith "Extract_" or Name startswith "Enrich_" | project Name ``` If no IRQL functions are found, inform the user that IRQL is not deployed on the target database and suggest using `azure-kusto` for raw KQL queries instead. IRQL functions are a prerequisite -- this skill does not deploy base IRQL selectors. ## What IRQL Is IRQL is a **function-based dialect on top of KQL**. It provides: 1. **Unified schema** -- disparate security tables project into consistent column names regardless of the underlying data source 2. **Composability** -- small functions chain via `| invoke` to build complex hunts from simple steps 3. **Portability** -- the same IRQL pipeline works across different clusters/databases; only the `Get_*` primitives need re-pointing IRQL is not a separate language. It's KQL functions you invoke. Any valid KQL works alongside IRQL functions. ## Deploying IRQL IRQL functions are stored KQL functions (`.create-or-alter function`). They must already be deployed to the target database before this skill can generate pipelines. **Public example cluster** (functions pre-deployed): - Cluster: `https://kc7001.eastus.kusto.windows.net` - Databases: `ValdyTimes`, `JoJosHospital` To port IRQL to a new cluster/database, create `Get_*` selectors that project your source tables into the unified schema (column names below), then deploy extractors and enrichers. The extractors and enrichers work unchanged as long as the input schema matches. ## Function Catalog ### 1. Selectors -- `Get_*` Return projected, schema-unified views of source tables. Use the minimal form by default; use `_All` when extra columns are needed. | Function | Columns | |---|---| | `Get_Event_Authentication` | `EnvTime`, `Hostname`, `ClientIp`, `Username`, `Result` | | `Get_Event_Authentication_All` | + `Description`, `UserAgent`, `PasswordHash` | | `Get_Email` | `EnvTime`, `EmailSender`, `EmailRecipient`, `Subject`, `Url` | | `Get_Email_All` | + `ReplyTo`, `Verdict` | | `Get_Employees` | `Name`, `ClientIp`, `Email`, `Username`, `Hostname`, `Role` | | `Get_Employees_All` | + `HireDate`, `UserAgent`, `Domain` | | `Get_Event_FileCreation` | `EnvTime`, `Hostname`, `Filename`, `Path` | | `Get_Event_FileCreation_All` | + `Username`, `Sha256`, `ProcessName` | | `Get_Event_NetworkInbound` | `EnvTime`, `ClientIp`, `Url` | | `Get_Event_NetworkInbound_All` | + `Method`, `UserAgent`, `StatusCode` | | `Get_Event_NetworkOutbound` | `EnvTime`, `ClientIp`, `Url` | | `Get_Event_NetworkOutbound_All` | + `Method`, `UserAgent` | | `Get_Dns_All` | `EnvTime`, `Domain`, `ClientIp` | | `Get_Event_Process` | `EnvTime`, `ProcessCommandLine`, `ProcessName`, `Hostname`, `Username` | | `Get_Event_Process_All` | + `ParentProcessName`, `ParentProcessHash`, `ProcessHash` | | `Get_SecurityAlerts_All` | `EnvTime`, `AlertType`, `Severity`, `Description`, `Indicators` | | `Get_Network_Connection_All` | `EnvTime`, `SourceIp`, `SourcePort`, `DestinationIp`, `DestinationPort`, `Protocol`, `Bytes` | ### 2. Extractors -- `Extract_*` Derive a new column from an existing one. Invoke after a selector. | Function | Input Column | Adds | |---|---|---| | `Extract_Email_Sender_Domain(T)` | `EmailSender` | `Domain` | | `Extract_Employee_Firstname(T)` | `Name` | `Firstname` | | `Extract_Event_Network_Domain(T)` | `Url` | `DomainName` | ### 3. Enrichers -- `Enrich_*` Left-join helpers that attach context from a related table. | Function | Key Column | Enriches With | |---|---|---| | `Enrich_Event_Authentication_Username(T)` | `Username` | Auth events for user | | `Enrich_Ip_Employee(T)` | `ClientIp` | Employee identity from IP | | `Enrich_Username_Employee(T)` | `Username` | Employee identity from username | | `Enrich_Ip_Domain(T)` | `ClientIp` | DNS domains resolved to IP | | `Enrich_Ip_Event_NetworkOutbound(T)` | `ClientIp` | Outbound network from IP | | `Enrich_Ip_Network_Connection(T)` | `ClientIp` | Network flows from IP | ### 4. External Enrichment | Function | Source | Requirement | |---|---|---| | `Enrich_Sha256_VirusTotal(T)` | VirusTotal file report | API key + callout policy | | `Get_CISA_KEV()` / `Enrich_CISA_KEV(T)` | CISA KEV catalog | Callout policy | ## Composition Rules ``` Selector -> Extract -> Filter -> Enrich -> Summarize/Project ``` 1. **Start with a Selector**: `Get_Event_Authentication`, `Get_Email`, etc. 2. **Extract** derived fields: `| invoke Extract_Email_Sender_Domain()` 3. **Filter** to the signal: `| where Result == "Failed Login"` 4. **Enrich** with context: `| invoke Enrich_Username_Employee()` 5. **Summarize / project** the answer Always pipe (`|`) between steps. Extractors and Enrichers use `| invoke FunctionName()`. ## Query Generation Guidelines
From microsoft/skills, MIT.
More from microsoft/skills
- 0.651score
skill-creator
microsoftOfficial
Guide for creating effective skills for AI coding agents working with Azure SDKs and Microsoft Foundry services.
SkillBFreshness: B★ 3.1KClaude Code +9 - 0.643score
aks-network-capture
MicrosoftOfficial
Collects bounded packet captures from AKS nodes and Azure network configuration for wire-level evidence.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
aks-known-issues
MicrosoftOfficial
Lookup documented AKS fixes only when the prompt includes an exact catalog signature and all of its qualifiers: VMCannotFitEphemeralOSDisk…
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-prepare
MicrosoftOfficial
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd)…
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
aks-gpu-inference
MicrosoftOfficial
Diagnose Day-2 AKS GPU and KAITO incidents using profile-aware, read-only evidence.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
foundry-iq
MicrosoftOfficial
Foundry IQ knowledge bases.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
aks-troubleshooting
MicrosoftOfficial
Debug live Azure Kubernetes Service (AKS) incidents with a read-only, evidence-first investigation.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-app-onboard
MicrosoftOfficial
End-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-kubernetes
MicrosoftOfficial
Plan, create, and configure production-ready Azure Kubernetes Service (AKS) clusters.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-compliance
MicrosoftOfficial
Run Azure compliance and security audits with azqr plus Key Vault expiration checks.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
appinsights-instrumentation
MicrosoftOfficial
Guidance for instrumenting webapps with Azure Application Insights.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-search-nav
MicrosoftOfficial
Builds an Azure portal deep link to a specific blade/menu item for supported Microsoft.ContainerService, Microsoft.Kubernetes, and Microsoft.Compute resources…
SkillAFreshness: A★ 3.1KClaude Code +9
Signals
- Stars
- 3,145
- Forks
- 354
- Open issues
- 26
- Contributors
- 32
- Last commit (this folder)
- Aug 10, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.2.1
- License
- MIT
- Repository
- github.com/microsoft/skills
- Website
- microsoft.github.io/skills/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Microsoft
- 0.643score
azure-kubernetes
MicrosoftOfficial
Plan, create, and configure production-ready Azure Kubernetes Service (AKS) clusters.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-prepare
MicrosoftOfficial
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd)…
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-app-onboard
MicrosoftOfficial
End-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
appinsights-instrumentation
MicrosoftOfficial
Guidance for instrumenting webapps with Azure Application Insights.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
azure-compliance
MicrosoftOfficial
Run Azure compliance and security audits with azqr plus Key Vault expiration checks.
SkillAFreshness: A★ 3.1KClaude Code +9 - 0.643score
foundry-iq
MicrosoftOfficial
Foundry IQ knowledge bases.
SkillAFreshness: A★ 3.1KClaude Code +9
Cite this page
azure-kusto-irql skill. Agent Mart. https://agentmart.dev/skills/microsoft-azure-kusto-irql (last updated 2026-10-24)