.claude/skills/analytic-story-builder/SKILL.md
Create grouped detection narratives that tie individual rules into coherent threat stories. Covers Splunk Analytic Stories, Elastic detection rule groups, and Sentinel analytics grouping.
npx skillsauth add mhaggis/security-detections-mcp Analytic Story BuilderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An analytic story groups related detections into a narrative around a threat scenario, campaign, or attacker behavior chain. While the "analytic story" concept originated in Splunk's ESCU, the principle — grouping detections by threat context — applies to every SIEM.
| SIEM | Concept | Implementation |
|------|---------|---------------|
| Splunk ESCU | Analytic Story | YAML story file + detection references |
| Elastic Security | Detection rule group / Tag | Tags + rule grouping in Kibana |
| Microsoft Sentinel | Analytics rule template | Grouping via Solution/Content Hub |
| Sigma | Tags / rule collections | tags field + directory structure |
| Chronicle SOAR | Playbook grouping | Playbooks referencing detection sets |
The canonical format. Other SIEMs can adapt this structure to their own grouping mechanism.
name: Story Name Here
id: <uuid>
version: 1
date: 'YYYY-MM-DD'
author: Your Name
description: >-
One to three sentences describing the threat scenario. What is the attacker
trying to do? Why should a defender care?
narrative: >-
Three to five sentences providing deeper context. Include references to
real-world campaigns, common attack chains, and why these detections were
grouped together. Explain how the detections work together to provide
coverage across the kill chain.
references:
- https://attack.mitre.org/techniques/TXXXX/
- https://relevant-blog-or-advisory.example.com
tags:
analytic_story: Story Name Here
category:
- Malware # or: Adversary Tactics, Abuse, Cloud Security, etc.
product:
- Splunk Enterprise
- Splunk Cloud
usecase: Security Monitoring
mitre_attack:
- T1059.001
- T1547.001
Stories should be 17–19 lines of YAML (excluding blank lines). Keep it tight:
description: 1–3 sentences. What is the threat?narrative: 3–5 sentences. Why do these detections belong together?references: 2–5 links. ATT&CK technique page + source blog/advisory.tags.mitre_attack: List every technique covered by detections in the story.Anti-patterns to avoid:
Create a new story when:
| Category | Description | Example | |----------|-------------|---------| | Malware | Specific malware families | "IcedID", "QakBot Execution Chain" | | Adversary Tactics | Technique-focused groups | "Windows Persistence Techniques" | | Abuse | Legitimate tool abuse | "Living Off The Land Binaries" | | Cloud Security | Cloud-specific threats | "AWS IAM Privilege Escalation" | | Vulnerability | CVE-specific detection sets | "Log4Shell CVE-2021-44228" | | Compliance | Regulatory monitoring | "PCI DSS Log Monitoring" |
Start from one of:
Check if a story already exists that this fits into:
search_stories("ransomware")
search_stories("persistence")
Use the YAML format above. Focus on:
Each detection references its story via tags:
# In the detection YAML
tags:
analytic_story:
- Story Name Here
For non-Splunk SIEMs, use whatever grouping mechanism is available (tags, folders, rule groups).
mitre_attack list matches the union of all detection technique mappingsGroup detections using tags in the rule YAML:
tags:
- "campaign:storm-0501"
- "story:ransomware-encryption"
Use Sentinel Solutions or Content Hub packages to group related analytics rules. Alternatively, use consistent naming prefixes: [STORM-0501] - Detection Name.
Use directory structure and tags:
rules/
windows/
storm-0501/
proc_creation_storm0501_initial_access.yml
proc_creation_storm0501_persistence.yml
testing
Expert at analyzing unstructured threat intelligence reports (CISA alerts, vendor blogs, research papers) and extracting actionable detection logic, TTPs, behavioral indicators, and MITRE ATT&CK mappings. Focuses on behaviors over IOCs. Use when provided with threat reports, security advisories, or campaign documentation.
testing
Analyze software supply chain attacks across package registries (npm, PyPI, RubyGems), CI/CD pipelines (GitHub Actions, GitLab CI), and container ecosystems. Includes detection engineering patterns for Splunk, Sentinel, Elastic, and Sigma.
testing
Optimize detection queries for performance across Splunk (SPL), Microsoft Sentinel (KQL), and Elastic Security (EQL/ES|QL). Covers search pipeline internals, common anti-patterns, and optimization techniques for detection rules on each platform.
tools
Analyze pull requests for detection coverage gaps and recommend additional detections, story alignments, and test coverage to extend PRs before merge.