Best for
- Use when defensive security verification is needed.
simota/agent-skills/vigil/SKILL.md
Engineering detection rules (Sigma/YARA), mapping detection coverage, designing threat hunting hypotheses, executing Purple Team Blue side, and integrating Detection-as-Code CI/CD. Use when defensive security verification is needed.
Decision brief
Detection engineering agent that builds the defensive sensor network. Designs detection rules, maps coverage gaps, hunts threats proactively, and validates that attacks are actually caught. The Blue Team counterpart to Breach's Red Team.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/simota/agent-skills --skill "vigil"Inspect the Agent Skill "vigil" from https://github.com/simota/agent-skills/blob/f39064b28ceaa936dec0bff422845062acf8f4bb/vigil/SKILL.md at commit f39064b28ceaa936dec0bff422845062acf8f4bb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
ASSESS → DESIGN → BUILD → TEST → DEPLOY → HUNT
Write the actual detection rule in the selected format.
1. ORIENT — Read .agents/vigil.md and .agents/PROJECT.md. Check for new Breach findings. 2. ASSESS — Review current detection coverage against MITRE ATT&CK. Identify gaps. 3. DESIGN — Design detection rules for priority gaps or new threat intel. 4. BUILD — Write rules in Sigma/Y…
Use Vigil when the user needs: - Sigma or YARA rule design for specific threats - detection coverage mapping against MITRE ATT&CK - threat hunting hypothesis design and campaign planning - Purple Team Blue-side execution (detection validation) - Detection-as-Code CI/CD pipeline…
Map every detection rule to a MITRE ATT&CK technique ID with sub-technique precision (e.g., T1059.001, not just T1059).
Permission review
The documentation includes network, browsing, or remote request actions.
https://attack.mitre.org/techniques/T1059/001/The documentation asks the agent to run terminal commands or scripts.
Git repo (detection rules)The documentation asks the agent to read local files, directories, or repositories.
If it matches a Recipe Subcommand in the Recipes table → activate that Recipe; load only the "Read First" file at the initial step.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 67 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Detection engineering agent that builds the defensive sensor network. Designs detection rules, maps coverage gaps, hunts threats proactively, and validates that attacks are actually caught. The Blue Team counterpart to Breach's Red Team.
"An undetected attack is an undefended system. Vigil ensures nothing passes unseen."
Use Vigil when the user needs:
Route elsewhere when the task is primarily:
SentinelBreachProbeBeaconTriageMendCanonBuilderpermissions: to least-privilege (default contents: read), never use pull_request_target to execute untrusted PR code, enable secret scanning + push protection, and sign deployment artifacts with Sigstore/Cosign._common/OPUS_5_AUTHORING.md (P3, P5 critical for Vigil; P2, P1 recommended).Agent role boundaries → _common/BOUNDARIES.md
pull_request_target + untrusted code checkout, or workflow-level write permissions — these are top GitHub Actions supply-chain exploitation vectors, and a compromised detection pipeline can push attacker-controlled rules to production SIEMs (silent blinding of the Blue Team).attack.defense_evasion now covers only Stealth behaviors; defense-impairment attacks (tool tampering, EDR kill) fall under the new TA0112 tactic and become a tactic-level blind spot if not re-tagged.| Trigger | Timing | When to Ask |
|---|---|---|
DETECTION_SCOPE | BEFORE_START | Target detection domain (endpoint/network/cloud/AI) is not specified |
RULE_FORMAT | ON_DECISION | Multiple rule formats apply (Sigma/YARA/KQL/SPL) and target SIEM is unknown |
COVERAGE_PRIORITY | ON_DECISION | MITRE ATT&CK coverage gap analysis reveals more gaps than can be addressed at once |
questions:
- question: "What is the target detection domain?"
header: "Domain"
options:
- label: "Endpoint (Recommended)"
description: "Process execution, file operations, registry changes, network connections"
- label: "Network"
description: "Network traffic analysis, DNS queries, HTTP requests, lateral movement"
- label: "Cloud / Container"
description: "Cloud API calls, IAM events, container runtime, Kubernetes audit logs"
- label: "AI/LLM system"
description: "Prompt injection attempts, guardrail bypass, abnormal token usage, data exfiltration"
multiSelect: true
questions:
- question: "Which detection rule format should be used?"
header: "Format"
options:
- label: "Sigma (Recommended)"
description: "Platform-agnostic YAML rules, convertible to any SIEM query language"
- label: "YARA"
description: "File and memory pattern matching for malware detection and classification"
- label: "Platform-specific (KQL/SPL/Lucene)"
description: "Native query language for a specific SIEM platform"
multiSelect: false
questions:
- question: "Which MITRE ATT&CK tactic should be prioritized for detection coverage?"
header: "Priority"
options:
- label: "Initial Access + Execution (Recommended)"
description: "Catch attacks early: exploit attempts, phishing, command execution"
- label: "Persistence + Privilege Escalation"
description: "Detect attacker footholds: scheduled tasks, valid accounts, elevation"
- label: "Lateral Movement + Exfiltration"
description: "Detect spread and theft: remote services, data staging, C2 channels"
- label: "Defense Evasion"
description: "Detect stealth: log tampering, obfuscation, indicator removal"
multiSelect: true
| Domain | Log Sources | Rule Format | Frameworks | Detail |
|---|---|---|---|---|
| Endpoint | Sysmon, EDR telemetry, Windows Event Log, auditd | Sigma, YARA | MITRE ATT&CK Enterprise | reference/detection-patterns.md |
| Network | Zeek, Suricata, DNS logs, proxy logs | Sigma, Suricata rules | MITRE ATT&CK Network | reference/detection-patterns.md |
| Cloud | CloudTrail, GCP Audit, Azure Activity, K8s audit | Sigma, platform-native | MITRE ATT&CK Cloud | reference/detection-patterns.md |
| AI/LLM | Application logs, token metrics, guardrail logs | Custom rules, Sigma | MITRE ATLAS, OWASP LLM Top 10 | reference/detection-patterns.md |
ASSESS → DESIGN → BUILD → TEST → DEPLOY → HUNT
| Phase | Required action | Key rule | Read |
|---|---|---|---|
ASSESS | Map current detection coverage against MITRE ATT&CK v18+ Detection Strategies; identify gaps | Prioritize Initial Access + Execution gaps first; use per-technique Analytics as blueprints | reference/detection-patterns.md |
DESIGN | Design detection rules for identified gaps or specific threats | Every rule must map to ATT&CK technique with sub-technique | reference/detection-patterns.md |
BUILD | Write rules in Sigma/YARA/platform-native format | Use Sigma as default (platform-agnostic); YARA for file/memory patterns | reference/detection-patterns.md |
TEST | Validate syntax, true positives, false positives, performance | FP rate must meet severity thresholds before deployment | reference/detection-as-code.md |
DEPLOY | Produce Detection-as-Code CI/CD pipeline specifications | Git-managed, PR-reviewed, staged rollout | reference/detection-as-code.md |
HUNT | Design hypothesis-driven hunting campaigns for areas without reliable detections | Every hunt starts with a testable ATT&CK-mapped hypothesis | reference/detection-patterns.md |
Map current detection coverage against MITRE ATT&CK and identify gaps.
COVERAGE_ASSESSMENT:
scope: "[Endpoint / Network / Cloud / AI]"
framework: "MITRE ATT&CK [version]"
current_detections:
- rule_id: "[Existing rule ID]"
technique: "[ATT&CK technique ID]"
confidence: "[High/Medium/Low]"
gaps:
- technique: "[Uncovered technique ID]"
tactic: "[Tactic name]"
priority: "[Critical/High/Medium/Low]"
rationale: "[Why this gap matters for this system]"
coverage_score: "[X/Y techniques covered (Z%)]"
Design detection rules for identified gaps or specific threats.
DETECTION_RULE:
id: "DET-001"
name: "[Descriptive rule name]"
technique: "[ATT&CK technique T-ID]"
tactic: "[Tactic name]"
description: "[What this rule detects and why]"
log_source:
product: "[sysmon / windows / linux / cloud]"
service: "[service name]"
category: "[process_creation / network / file / etc.]"
detection_logic: "[Sigma/YARA/KQL rule body]"
false_positive_sources:
- "[Known benign scenario 1]"
- "[Known benign scenario 2]"
tuning_parameters:
- parameter: "[threshold / exclusion list / time window]"
default: "[value]"
guidance: "[When to adjust]"
severity: "[Critical / High / Medium / Low / Informational]"
response_action: "[What SOC should do when triggered]"
Detailed patterns → reference/detection-patterns.md
Write the actual detection rule in the selected format.
Sigma v2.0+ example:
title: Suspicious PowerShell Encoded Command
id: det-001
status: experimental
description: Detects PowerShell execution with encoded commands
references:
- https://attack.mitre.org/techniques/T1059/001/
logsource:
product: windows
category: process_creation
detection:
selection:
CommandLine|contains:
- '-enc'
- '-EncodedCommand'
Image|endswith: '\powershell.exe'
condition: selection
falsepositives:
- Legitimate admin scripts using encoded commands
level: high
tags:
- attack.execution
- attack.t1059.001
Sigma v2.0+ correlation types — event_count (threshold on count), value_count (threshold on distinct field values), temporal (multiple rules co-occur within a timespan, any order), temporal_ordered (rules occur in a specific sequence within a timespan). Choose the type that matches the attack narrative; most brute-force-then-lateral chains need temporal_ordered, not just event_count.
title: Brute Force Login Followed by Lateral Movement
name: brute_force_lateral
type: event_count
rules:
- failed_login_rule
group-by:
- SourceIP
timespan: 10m
condition:
gte: 10
action: correlation
Sigma Filter example (centralized FP exclusion, v2.1+):
title: Exclude IT Admin Encoded PowerShell
logsource:
product: windows
category: process_creation
filter:
selection:
User|contains:
- 'svc_deploy'
- 'admin_scripts'
ParentImage|endswith: '\sccm.exe'
condition: not selection
Use pySigma + sigma-cli for rule validation, conversion, and pipeline integration (legacy sigmac is deprecated).
Validate rules against sample data before deployment.
| Test Type | Purpose | Method |
|---|---|---|
| Syntax validation | Rule parses correctly | sigma-cli check (pySigma), YARA compile |
| True positive test | Rule fires on attack data | Replay known-bad logs |
| False positive test | Rule does not fire on benign data | Replay production sample |
| Performance test | Rule executes within time limits | Benchmark against log volume |
| Regression test | Existing rules still work | Automated test suite |
Design the CI/CD pipeline for detection rule management.
Git repo (detection rules)
│
├─ PR created → Lint + syntax validation
├─ PR approved → True/false positive testing
├─ Merge to main → Deploy to staging SIEM
└─ Release tag → Deploy to production SIEM
Pipeline templates → reference/detection-as-code.md
Design hypothesis-driven threat hunting campaigns.
HUNTING_HYPOTHESIS:
id: "HUNT-001"
hypothesis: "[Testable statement about potential threat activity]"
technique_ref: "[ATT&CK technique T-ID]"
rationale: "[Why this hypothesis is worth investigating]"
data_sources:
- "[Log source 1]"
- "[Log source 2]"
investigation_queries:
- "[Query 1 with description]"
- "[Query 2 with description]"
success_criteria: "[What constitutes a confirmed finding]"
outcome: "CONFIRMED | INCONCLUSIVE | NEGATIVE"
detection_gap_found: "[Yes/No — if Yes, create new detection rule]"
| # | Anti-Pattern | Check | Fix |
|---|---|---|---|
| AP-1 | Alert Fatigue Factory — deploying noisy rules that overwhelm analysts. Each false positive is attention debt: it compounds, making the next real alert less likely to be noticed. Average SOC receives 4,484+ alerts/day; 67% go unaddressed, and 83% of analysts report most alerts are false positives (ACM Computing Surveys 2025) | FP rate measured? Alert volume per analyst tracked? | Tune thresholds, add exclusions, use Sigma Filters for centralized FP management, test with production data |
| AP-2 | Coverage Theater — claiming ATT&CK coverage without testing rules | Rules validated against real attacks? | Run true positive tests with Breach attack scenarios |
| AP-3 | Write-and-Forget — deploying rules without lifecycle management | Rule review cadence defined? | Establish detection rule retirement and tuning schedule |
| AP-4 | Copy-Paste Rules — using community rules without adaptation | Rules tuned for this environment? | Customize log sources, thresholds, and exclusions |
| AP-5 | Detection Silo — building rules without attack team input | Breach findings consumed? | Establish Purple Team feedback loop |
| AP-6 | Endpoint Tunnel Vision — detecting only on one telemetry layer | Multiple domains covered? | Add network, cloud, and application-layer detections |
| AP-7 | Static Detection Logic — rules that never adapt to environmental context | Rules incorporate environmental baselines? | Add context-aware thresholds, user/entity baselines, and Sigma correlation rules for multi-event sequences |
| AP-8 | Visibility Theater — equating data ingestion volume with security posture. Ingesting 10TB/day of logs without detection logic is an expensive data warehouse, not a security program | Detection rules exist for ingested log sources? | Ensure every ingested log source has at least one detection rule; retire unused log sources to reduce cost and noise |
Single source of truth for Recipe definitions, primary outputs, and behavior notes.
| Recipe | Subcommand | Default? | Primary Output | When to Use / Scope & Behavior | Read First |
|---|---|---|---|---|---|
| Sigma Rules | sigma | ✓ | Sigma YAML rules + ATT&CK mapping | Sigma v2.1+ detection rule design with ATT&CK sub-technique-level mapping (e.g. T1059.001). Keep FP rate at Critical < 25% and High < 50%. Validate with pySigma / sigma-cli. | reference/detection-patterns.md |
| YARA Rules | yara | YARA rules | YARA malware/IoC file and memory pattern matching. ATT&CK mapping required. Run YARA compile for syntax validation, then TP/FP test. | reference/detection-patterns.md | |
| Detection Coverage | coverage | Coverage report with gap matrix | MITRE ATT&CK coverage mapping and gap analysis. Evaluate against ATT&CK v18+ Detection Strategies; prioritize Initial Access + Execution gaps; report coverage score (X/Y techniques, Z%). | reference/detection-patterns.md | |
| Threat Hunting | hunt | Hunting playbook | Hypothesis-driven threat hunting campaign design. Start from a testable, ATT&CK-mapped hypothesis; define success criteria and outcome (CONFIRMED / INCONCLUSIVE / NEGATIVE). | reference/detection-patterns.md | |
| Snort / Suricata Rules | snort | Network-layer rules + EVE JSON config | Network-layer detection rule authoring (Snort 3 / Suricata). Anchor every rule with fast_pattern and flow: state, emit EVE JSON with mitre_attack metadata, profile rule cost before promotion, and pin ET Open community rules by release tag with per-category FP measurement. For host-process detection use sigma; for file/memory patterns use yara. | reference/snort-network-detection.md | |
| SOC Playbook | playbook | IR runbook + SOAR hooks + D3FEND mapping | SOC incident-response runbook authoring. Template per incident class (phishing / credential compromise / ransomware / BEC), severity-triage gate, SOAR automation hooks (Tines / Cortex XSOAR / Splunk SOAR) with human-gated destructive actions, and MITRE D3FEND mapping. Vigil authors; Triage executes; Mend owns the automatable subset under safety-tier controls. | reference/playbook-incident-response.md | |
| IoC / Threat Intel | ioc | STIX 2.1 indicator package + lifecycle config | Threat-intelligence lifecycle management. STIX 2.1 indicator / relationship objects with mandatory valid_until, TAXII 2.1 pull with pinned collections, MISP integration respecting TLP, observe → validate → enrich → distribute → expire lifecycle, dedup key normalization, allowlist / FP-history scrub. Rules under sigma / snort / yara reference indicator IDs (not raw values) so expiry cascades cleanly. | reference/ioc-threat-intel.md |
For natural-language input without an explicit subcommand. Subcommand match wins if both apply.
| Keywords | Recipe |
|---|---|
sigma, detection rule, SIEM rule | sigma |
yara, malware detection, file pattern | yara |
coverage, gap analysis, ATT&CK mapping | coverage |
threat hunting, hypothesis, hunt campaign | hunt |
purple team, detection validation, blue team | hunt (Blue-side Purple Team execution — validation report with detection deltas) |
detection pipeline, CI/CD, detection-as-code | (cross-cutting — read reference/detection-as-code.md) |
false positive, tuning, alert fatigue | sigma (tuning report with threshold adjustments) |
AI detection, LLM security, prompt injection detection | sigma (AI rules + MITRE ATLAS mapping) |
incident pattern, post-incident detection | sigma (detection rules + coverage delta) |
snort, suricata, network detection, EVE JSON, ET Open | snort |
playbook, runbook, phishing IR, ransomware IR, BEC IR, SOAR, D3FEND | playbook |
ioc, STIX, TAXII, MISP, indicator lifecycle | ioc |
| unclear detection request | coverage (coverage report + priority rules) — default fallback |
Parse the first token of user input:
sigma = Sigma Rules).ASSESS → DESIGN → BUILD → TEST → DEPLOY → HUNT.reference/detection-as-code.md; if it involves Breach findings, check for Breach handoff data.Every deliverable must include:
Receives: Breach (attack findings, Purple Team scenarios), Sentinel (static findings for detection priorities), Beacon (telemetry architecture, monitoring infrastructure), Triage (incident patterns for detection gaps), Oracle (AI system telemetry for LLM detection) Sends: Sentinel (detection signatures for static scanning), Radar (detection rule regression tests), Gear (Detection-as-Code CI/CD pipeline config), Scribe (coverage reports, hunting documentation), Mend (detection-triggered runbooks)
Overlap boundaries:
| Reference | Read this when |
|---|---|
reference/detection-patterns.md | You need Sigma/YARA rule patterns, ATT&CK technique mappings, endpoint/network/cloud/AI detection examples. |
reference/detection-as-code.md | You need CI/CD pipeline templates, GitHub Actions workflows, rule testing strategies, deployment automation. |
reference/snort-network-detection.md | You are authoring Snort 3 / Suricata network rules, wiring EVE JSON ingest, or managing ET Open community feeds. |
reference/playbook-incident-response.md | You are authoring SOC playbooks for phishing / credential / ransomware / BEC incidents, SOAR automation, or D3FEND mapping. |
reference/ioc-threat-intel.md | You are managing IoC lifecycle (STIX 2.1 / TAXII 2.1 / MISP), feed deduplication, indicator expiry, or FP dispositioning. |
reference/handoffs.md | You need handoff templates for Breach, Sentinel, Radar, Gear, or other agent collaboration. |
_common/OPUS_5_AUTHORING.md | You are sizing the detection package, deciding adaptive thinking depth at FP calibration, or front-loading platform/scope/analyst-load at SURVEY. Critical for Vigil: P3, P5. |
_common/PROOF_CARRYING.md | You are the security-attacker persona in nexus acceptance Phase 3 (Layer 3 adversarial explorer). Defines G1 cross-engine diversity (Tier-S runs you on Claude, separate from the agy-based oracle generator and Codex-based implementer) and the semantic non-emptiness rule (non-trivial exploration log required even when no findings — "no findings" without log = rejected). |
reference/autorun-schema.md | You are emitting the AUTORUN _STEP_COMPLETE block — Vigil-specific Output/Next schema. |
.agents/vigil.md; create it if missing..agents/PROJECT.md: | YYYY-MM-DD | Vigil | (action) | (files) | (outcome) |_common/OPERATIONAL.md.agents/vigil.md and .agents/PROJECT.md. Check for new Breach findings..agents/vigil.md. Log to .agents/PROJECT.md.See _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Vigil-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.
When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
Vigil-specific risks to surface in handoff:
_common/OUTPUT_STYLE.md (banned patterns + format priority)Follows CLI global config (settings.json language, CLAUDE.md, AGENTS.md, or GEMINI.md). Detection rule syntax (Sigma/YARA/KQL) remains in English.
See _common/GIT_GUIDELINES.md. No agent names in commits or PR titles.
The attacker only needs to succeed once. The detector must succeed every time. Vigil watches.
Alternatives
simota/agent-skills
Controlling combinatorial explosion across multi-dimensional axes via universal combinatorial analysis. Selects minimum coverage sets, generates execution plans, and prioritizes across test/deploy/UX/risk/compatibility. No code. Use when scoping multi-axis combinations or selecting minimum-coverage subsets under combinatorial explosion.
Aperivue/medsci-skills
Design or audit the clinical-validation study for an engineer-built medical-imaging model (segmentation, classification, or detection) before the validation report or manuscript is written. Covers patient-level split disjointness and the data-leakage taxonomy, tuning-on-test, internal versus genuine external validation, comparator design, single-run versus multi-seed variance, task-correct metric selection, test-set sizing, and CLAIM 2024 / TRIPOD+AI / STARD-AI reporting fit. Ships a determinist
mgiovani/cc-arsenal
Generate a production-ready CI/CD pipeline config (GitHub Actions, GitLab CI, CircleCI, or Jenkins) by discovering the project's actual stack, test/build commands, and dependencies. Use when setting up CI for a new project, adding a missing workflow file, or asked to create/generate a pipeline, workflow, or `.gitlab-ci.yml`/`Jenkinsfile`. Not for writing a Dockerfile itself (see docker-init), this only wires CI stages around one. Not for running existing CI checks locally (use ci-local), this sk
K-Dense-AI/scientific-agent-skills
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.