Agent skill

Writing Sigma Rules

by trilwu in trilwu/secskills

Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with…

MITAuto-check passedSecurity

Install Writing Sigma Rules

skills CLI
$ npx skills add trilwu/secskills --skill writing-sigma-rules -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install trilwu/secskills writing-sigma-rules --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/trilwu/secskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/secskills-defense/skills/writing-sigma-rules .claude/skills/writing-sigma-rules && rm -rf skills-src

Use ~/.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/

Facts

Skill name
writing-sigma-rules
GitHub stars
157
Token cost
~4.1k tokens
SKILL.md length
1,427 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
MIT

At a glance

Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with…

  • Works in 5 steps: Collect sample logs. Run the technique… → Verify detection. Run Hayabusa/Chainsaw… → Verify exclusion. Run against clean… → …
  • Translating threat intel into vendor-agnostic detection logic
  • SKILL.md covers When to Use, When NOT to Use, Sigma Rule Structure and Logsource Taxonomy, plus 6 more sections
  • Calls pip and curl; reaches attack.mitre.org and defuddle.md

What it does

Writing Sigma Rules is an agent skill from trilwu/secskills. Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with Hayabusa or Chainsaw. Use when translating threat intel into vendor-agnostic detection logic, building a detection-as-code pipeline around Sigma, reviewing or tuning existing Sigma rules, or converting rules across SIEM backends.

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Security, covering Security operations and Translation. The repository describes itself as: Transform Claude Code into your personal security engineer. The licence is MIT.

When your agent uses it

  • Translating threat intel into vendor-agnostic detection logic
  • Building a detection-as-code pipeline around Sigma
  • Tuning existing Sigma rules
  • Converting rules across SIEM backends

Example prompts

  • “/writing-sigma-rules”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Collect sample logs. Run the technique in a lab (Atomic Red Team,
  2. Verify detection. Run Hayabusa/Chainsaw -- rule must fire on the TP log.
  3. Verify exclusion. Run against clean baseline. Every hit characterized.
  4. Convert and test. Run the backend query against 7+ days of production
  5. Document. Record TP/FP counts, FP causes, filters added. Update the

What it can do on your machine

Read from SKILL.md and the folder at commit ca53957. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pip
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • attack.mitre.org
    • defuddle.md

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Writing Sigma Rules loads about 4.1k tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 1,427 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~111
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from trilwu/secskills at commit ca53957, republished under its MIT licence (© trilwu). 1,427 words, ~4,077 tokens.

Download SKILL.mdSave it as .claude/skills/writing-sigma-rules/SKILL.md (or your agent's skills folder).
name
writing-sigma-rules
description
Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with Hayabusa or Chainsaw. Use when translating threat intel into vendor-agnostic detection logic, building a detection-as-code pipeline around Sigma, reviewing or tuning existing Sigma rules, or converting rules across SIEM backends.
verified
2026-07-27

Writing Sigma Rules

Sigma is the common language for detection logic -- write once, convert to any SIEM. The value is portability and reviewability, but only if the rule is precise: a Sigma rule that matches everything is worse than no rule, because it consumes analyst time and trains the team to ignore alerts. The work is specificity without brittleness.

When to Use

  • Translating a TTP, threat intel report, or incident finding into a portable detection rule
  • Writing vendor-agnostic detection logic that converts to multiple SIEM backends
  • Building or maintaining a detection-as-code pipeline centered on Sigma
  • Reviewing or tuning existing Sigma rules for precision and false-positive reduction
  • Converting Sigma rules between backends (Splunk, Elastic, Sentinel, CrowdStrike, Chronicle)
  • Contributing rules upstream to SigmaHQ or maintaining a private rule repository

When NOT to Use

  • Broader detection engineering including YARA, Suricata, and the full detection lifecycle -- use engineering-detections
  • The signature belongs on files or memory, not log telemetry -- use writing-yara-rules
  • Hypothesis-driven threat hunting, not rule writing -- use hunting-threats
  • Active incident response, not rule development -- use responding-to-incidents

Sigma Rule Structure

Every rule is a YAML document with these fields in order:

The specification requires only three fields: title, logsource, and detection (which must contain a condition). Everything else is optional to the spec. Do not confuse that with the SigmaHQ rule repository, which requires far more — id, status, description, author, date, level, and ATT&CK tags — before it will accept a contribution. Write to the stricter SigmaHQ convention by default, because a rule without an id or a level is unmanageable in a real pipeline, but know which constraint you are meeting when a converter accepts a rule your reviewer rejects.

yaml
title: Short Descriptive Name              # REQUIRED by spec, max ~100 chars
id: a1b2c3d4-0000-4000-8000-000000000001  # optional to spec; UUIDv4, never reuse
related:                                    # optional, link to predecessor rules
  - id: <uuid>
    type: derived | obsoletes | merged | renamed | similar
status: experimental                        # optional; see lifecycle below
description: >                              # optional to spec, expected by SigmaHQ
  Detects X behaviour consistent with Y technique.
references:                                 # optional, strongly recommended
  - https://attack.mitre.org/techniques/T1059/001/
author: Your Name                           # optional to spec
date: 2026-07-26                            # optional; ISO 8601 YYYY-MM-DD
modified: 2026-07-26                        # optional; same format, on update
tags:                                       # optional to spec, expected by SigmaHQ
  - attack.execution                        #   tactic (lowercase, dotted)
  - attack.t1059.001                        #   technique (lowercase)
logsource:                                  # REQUIRED by spec
  category: process_creation
  product: windows
detection:                                  # REQUIRED by spec
  selection:
    CommandLine|contains: 'some-indicator'
  condition: selection                      # REQUIRED inside detection
falsepositives:                             # optional to spec
  - Legitimate admin scripts using the same flag
level: medium                               # optional; informational|low|medium|high|critical

Date format. The spec mandates ISO 8601 with hyphens — YYYY-MM-DD. Older rules and much online material use the legacy YYYY/MM/DD; that form is outdated, and some tooling now rejects it.

Status lifecycle. The permitted values are experimental, test, stable, deprecated, and unsupported. In practice: experimental = observation only, no alerting. test = validated against emulation, ready for limited deployment. stable = tuned in production with documented FPs. deprecated = replaced, no longer accurate. unsupported = not usable as written (e.g. depends on homemade fields). Never promote without the corresponding work.

Logsource Taxonomy

The logsource block abstracts the data source. Specify only what is needed.

Categories: process_creation, file_event, file_access, network_connection, registry_event, dns_query, image_load, pipe_created, process_access, driver_load, create_remote_thread.

Product: windows, linux, macos.

Service: sysmon, security, system, powershell, powershell-classic, application, taskscheduler, windefend, firewall-as.

Use category when you care about the event type regardless of collection method. Use product + service when targeting a specific log channel. Do not combine category and service unless the backend requires it.

Detection Logic

Selection and filter pattern

Define what to match (selection), what to exclude (filter_*), combine in condition:

yaml
detection:
  selection:
    ParentImage|endswith: '\explorer.exe'
    CommandLine|contains|all:
      - 'powershell'
      - '-enc'
  filter_legitimate:
    CommandLine|contains: 'company-deploy-script'
    User|startswith: 'SVC_'
  condition: selection and not filter_legitimate
Condition syntax
condition: selection                           # simple match
condition: selection and not filter            # match minus exclusions
condition: selection1 or selection2            # either pattern
condition: (sel1 and sel2) and not (fp1 or fp2)
condition: all of selection*                   # all blocks starting with "selection"
condition: 1 of selection*                     # any one block
Keywords

Match against the full log event (all fields). Blunt instrument -- prefer field-specific selections for production rules:

yaml
detection:
  keywords:
    - 'Invoke-Mimikatz'
    - 'sekurlsa::logonpasswords'
  condition: keywords
Modifiers

Chain with |. Example: CommandLine|contains|all.

ModifierEffect
containsSubstring match
startswith / endswithPrefix / suffix match
reRegular expression (PCRE)
base64offsetMatch base64-encoded variants at all three offsets
allAll list values must match (default is any)
cidrCIDR network range match on IP fields
windashMatch both - and / as argument prefix
expandExpand environment variables like %SystemRoot%
wide / utf16le / utf16be / utf16Match the wide (UTF-16) encoding of the value; wide is an alias for utf16le. There is no utf8 modifier
existsField present (true) or absent (false)

Common Detection Patterns

Process creation -- suspicious command line
yaml
detection:
  selection:
    CommandLine|contains|windash|all: ['bypass', 'hidden', 'noprofile']
  filter_admin:
    ParentImage|endswith: ['\sccm.exe', '\intune_agent.exe']
  condition: selection and not filter_admin
Parent-child relationship (Office spawning shell)
yaml
detection:
  selection:
    ParentImage|endswith: '\winword.exe'
    Image|endswith: ['\cmd.exe', '\powershell.exe', '\wscript.exe', '\mshta.exe']
  condition: selection
File creation in suspicious paths
yaml
detection:
  selection:
    TargetFilename|contains: ['\AppData\Local\Temp\', '\ProgramData\', '\Users\Public\']
    TargetFilename|endswith: ['.exe', '.dll', '.scr', '.hta']
  condition: selection
Registry persistence (run keys)
yaml
detection:
  selection:
    TargetObject|contains: ['\CurrentVersion\Run\', '\CurrentVersion\RunOnce\']
    EventType: SetValue
  filter_installers:
    Image|startswith: 'C:\Windows\Installer\'
  condition: selection and not filter_installers
Named pipe creation (C2 indicators)
yaml
detection:
  selection:
    PipeName: ['\MSSE-*', '\postex_*', '\msagent_*', '\status_*']
  condition: selection
WMI event subscription and scheduled task creation

WMI: logsource product: windows, service: sysmon, match EventID: 21, Operation: Created. Scheduled tasks: logsource category: process_creation, match Image|endswith: '\schtasks.exe' with CommandLine|contains|all: ['/create', '/sc'], filter on SYSTEM + known management tools.

False Positive Handling

The filter pattern

Exclusions go in named filter_* blocks, never inline with the selection. Use condition: selection and not 1 of filter_* to apply all filters.

Known-good exclusions

Filter on properties the attacker cannot control: full file paths of signed vendor binaries (not filenames alone), service account SIDs (not usernames), parent-child pairs from specific software workflows, verified certificate subjects. Never filter on filenames alone, attacker-controllable command-line fragments, or hostnames without justification.

Severity calibration
LevelResponse expectation
informationalAutomated tagging, correlation input only
lowBatch review, daily triage
mediumAnalyst queue, investigate within hours
highPrompt investigation, likely malicious
criticalImmediate response, active compromise

Set level based on expected TP rate and business impact, not on how dangerous the technique sounds. A noisy critical rule causes more damage than a precise medium one.

Correlation rules

When a single event is too common to alert on, use Sigma correlation rules that reference other rules by ID, group by a field (e.g., ComputerName), and require a threshold within a time window:

yaml
title: Correlation - Multiple Suspicious Events from Same Host
type: correlation
rules:
  - id: <uuid-of-rule-1>
  - id: <uuid-of-rule-2>
group-by: [ComputerName]
timespan: 15m
condition:
  gte: 2
level: high

Backend Conversion

sigma-cli with pySigma
bash
pip install sigma-cli pySigma-backend-splunk pySigma-backend-elasticsearch \
  pySigma-backend-kusto pySigma-backend-qradar

sigma convert -t splunk -p sysmon rules/rule.yml
sigma convert -t elasticsearch -p ecs_windows rules/rule.yml
sigma convert -t kusto -p microsoft_xdr rules/rule.yml
sigma convert -t qradar rules/rule.yml
sigma convert -t splunk -p sysmon rules/                     # entire directory
sigma convert -t splunk -p sysmon -f savedsearches rules/    # output format
Pipeline selection
BackendCommon pipelines
Splunksysmon, splunk_windows, splunk_cim
Elasticecs_windows, ecs_zeek, filebeat
Sentinel/XDRmicrosoft_xdr, azure_monitor
CrowdStrikecrowdstrike
Chroniclechronicle_default

Always verify converted output against your actual field names. Pipeline defaults may not match custom parsing configurations.

Testing and Validation

Schema validation
bash
sigma check rules/rule.yml       # single rule
sigma check rules/               # entire directory

Common failures: missing or duplicate id, invalid level, malformed YAML, undefined modifier, empty detection block.

Offline validation against EVTX
bash
hayabusa csv-timeline -d ./sample_evtx/ -r rules/rule.yml
chainsaw hunt ./sample_evtx/ -s rules/rule.yml --mapping mappings/sigma-mapping.yml
Show full SKILL.md (570 more words)Show less
Testing workflow
  1. Collect sample logs. Run the technique in a lab (Atomic Red Team, Caldera) and capture EVTX or JSON.
  2. Verify detection. Run Hayabusa/Chainsaw -- rule must fire on the TP log.
  3. Verify exclusion. Run against clean baseline. Every hit characterized.
  4. Convert and test. Run the backend query against 7+ days of production data. Characterize every match.
  5. Document. Record TP/FP counts, FP causes, filters added. Update the rule's falsepositives field and the PR description.

Quality Standards

SigmaHQ requirements: valid UUIDv4 id; status set appropriately (experimental for new); date/modified in YYYY/MM/DD; at least one ATT&CK tag; non-empty falsepositives (even Unknown); level based on TP rate; descriptive description; references linking to source intel.

YAML formatting: two-space indent, no tabs; pipe-separated modifiers without spaces (field|contains|all); dash-space lists; single-quoted strings with special characters; folded scalar (>) for long descriptions; one rule per file, snake_case filename matching the title.

Field naming: use Sigma standard names (Image, ParentImage, CommandLine, User, TargetFilename, TargetObject, DestinationIp, DestinationPort, SourceIp, PipeName, Hashes). Backend conversion handles translation. Writing backend-specific field names defeats portability.

Tag compliance: attack.<tactic> (lowercase, hyphenated) and attack.t<number> (lowercase, dotted sub-technique). Add cve.YYYY.NNNNN when applicable. Verify IDs against the current ATT&CK release -- stale IDs from retired techniques create mapping errors downstream.

Rationalizations to Reject

  • "The rule is simple enough, it does not need testing." Simple rules have the widest match surface. The simpler the logic, the more important the FP analysis.
  • "We will add filters after it goes live." Every hour a noisy rule runs in production erodes analyst trust. Test and filter before deployment.
  • "Just use keywords, field-specific matching is too narrow." Keywords match across all fields. A hit on a hostname that contains the string is noise.
  • "The converted output looks right, no need to test it." Conversion assumes your field mappings match pipeline defaults. Verify against actual data.
  • "One rule per technique is enough." Techniques have many procedures. T1059 covers PowerShell, cmd, bash, Python, VBScript -- each needs its own logic.
  • "The rule works in Splunk, so it works everywhere." Portability requires correct logsource abstraction. Backend-specific field names break it.
  • "Set it to critical -- credential dumping is always critical." Severity reflects signal quality, not technique category. A noisy critical rule causes more damage than a precise medium one.

Reading External Sources

Fetch public advisories, specifications, and vendor reports as Markdown:

bash
curl -sL "https://defuddle.md/<url>"      # scheme in the path is optional

This strips page boilerplate — roughly 78% fewer tokens on a prose page — and returns the full text rather than a summary, so you can grep it and trust a negative result.

Three things it is not for. Fetch JSON and API responses raw, because readability extraction mangles structured data. Fetch authenticated or JavaScript-rendered pages directly, because it retrieves them anonymously. And never route adversary infrastructure (phishing links, C2, malware hosting), client-owned hosts, or engagement URLs through it — the request leaves your machine to a third party, and for live adversary infrastructure it also tips off the operator.

Some sites block the extractor and return an error blob rather than the page — {"error":"Failed to fetch: 418 I'm a teapot"} from freedesktop.org, for instance. That is the fetch being refused, not the source saying the thing does not exist. Re-fetch the URL directly before drawing any conclusion from it.

References

  • engineering-detections -- the full detection lifecycle including YARA, Suricata, and coverage measurement
  • hunting-threats -- hypothesis-driven hunting that produces the findings rules are built from
  • mapping-attack-techniques -- ATT&CK technique resolution and the purple-team loop
  • reporting-security-findings -- writing up what the detection found

© trilwu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in secskills-defense/skills/writing-sigma-rules of trilwu/secskills.

Open the folder on GitHubat commit ca53957

Compare with similar skills

Writing Sigma Rules 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.

Writing Sigma Rules compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Writing Sigma Rules this skilltrilwu/secskills157—~4.1kAutomated safety check: PassMIT
Security Alert Triageelastic/agent-skills5921 repos~3.5kAutomated safety check: NotesApache-2.0
Kubernetes Network Security Auditkubeshark/kubeshark12k—~7.3kAutomated safety check: NotesApache-2.0
Security Detection Rule Managementelastic/agent-skills5921 repos~3.9kAutomated safety check: NotesApache-2.0
Vbs Scan Securitytanviet12/vbsec289—~5.3kAutomated safety check: NotesMIT
Chaitin CLIchaitin/chaitin-cli115—~15kAutomated safety check: NotesGPL-3.0

Similar skills

  • Security Alert Triage

    elastic/agent-skills

    Official

    Triage Elastic Security alerts — gather context, classify threats, create cases, and acknowledge.

    592 GitHub starsUsed in 1 repo~3.5k tokens
    SecurityAuto-check: notes
  • Hunts for compromised workloads and malicious traffic in a Kubernetes cluster by sweeping network data through Kubeshark MCP, mapped to MITRE ATT&CK.

    12k GitHub stars~7.3k tokensUpdated yesterday
    SecurityAuto-check: notes
  • Official

    Create, tune, and manage Elastic Security detection rules (SIEM and Endpoint).

    592 GitHub starsUsed in 1 repo~3.9k tokens
    SecurityAuto-check: notes
  • Vbs Scan Security

    tanviet12/vbsec

    A skill your agent uses when scanning code for security vulnerabilities.

    289 GitHub stars~5.3k tokensUpdated 12 days ago
    SecurityAuto-check: notes
  • Chaitin CLI

    chaitin/chaitin-cli

    A skill your agent uses when running chaitin-cli commands to manage Chaitin security products: SafeLine WAF (site management, IP blocking, ACL, policy rules, attack logs), X-Ray vulnerability…

    115 GitHub stars~15k tokensUpdated 11 days ago
    SecurityAuto-check: notes
  • Gates

    Nebulock-Inc/agentic-threat-hunting-framework

    GATES method validation for hunt-derived detections. An agent skill from Nebulock-Inc/agentic-threat-hunting-framework.

    388 GitHub stars~12k tokensUpdated 2 days ago
    SecurityAuto-check passed

More from trilwu/secskills

All 50 skills in this repo
  • Audit source code for exploitable vulnerabilities using threat-model-driven review, taint tracing, invariant checking, and variant analysis.

    157 GitHub stars~3.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Perform OSINT, subdomain enumeration, port scanning, web reconnaissance, email harvesting, and cloud asset discovery for initial access.

    157 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Securing AI Systems

    trilwu/secskills

    Assess and harden LLM applications and agentic systems against prompt injection, tool misuse, excessive agency, memory poisoning, RAG data leakage, and model supply-chain risk, mapped to the OWASP…

    157 GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Analyzing Binaries

    trilwu/secskills

    Reverse engineer compiled binaries, firmware, and mobile app packages using triage, static disassembly, decompilation, and dynamic instrumentation.

    157 GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Analyzing Go Binaries

    trilwu/secskills

    Reverse engineer Go binaries by recovering function names and types from pclntab and moduledata using GoReSym, redress, and IDA/Ghidra Go plugins, and by reading Go's non-standard calling…

    157 GitHub stars~2k tokensUpdated 1 mo ago
    Auto-check passed
  • Analyzing iOS Binaries

    trilwu/secskills

    Analyze iOS applications at the binary level — decrypting FairPlay-protected IPAs with frida-ios-dump or bagbak, inspecting Mach-O load commands, recovering Objective-C headers with class-dump, and…

    157 GitHub stars~2k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Writing Sigma Rules

What does Writing Sigma Rules do?

Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with…. Writing Sigma Rules is an agent skill from trilwu/secskills. Author and maintain Sigma detection rules — structure, logsource taxonomy, detection logic with modifiers, false-positive filtering, backend conversion with pySigma, and offline validation with Hayabusa or Chainsaw.

When should I use Writing Sigma Rules?

Writing Sigma Rules fits situations like: translating threat intel into vendor-agnostic detection logic; building a detection-as-code pipeline around Sigma; tuning existing Sigma rules; converting rules across SIEM backends.

How do I install Writing Sigma Rules in Claude Code?

Run `npx skills add trilwu/secskills --skill writing-sigma-rules -a claude-code`. Or copy the skill folder (secskills-defense/skills/writing-sigma-rules in trilwu/secskills) into .claude/skills/writing-sigma-rules in your project. Claude Code loads it when a task matches its description.

How do I install Writing Sigma Rules in Codex?

Run `npx skills add trilwu/secskills --skill writing-sigma-rules -a codex`. Or copy the skill folder (secskills-defense/skills/writing-sigma-rules in trilwu/secskills) into .agents/skills/writing-sigma-rules in your project. Codex loads it when a task matches its description.

Can I use Writing Sigma Rules in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add trilwu/secskills --skill writing-sigma-rules -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/writing-sigma-rules, .gemini/skills/writing-sigma-rules, .github/skills/writing-sigma-rules and .opencode/skills/writing-sigma-rules in your project.

What does Writing Sigma Rules need to run?

Going by SKILL.md and its folder, Writing Sigma Rules needs the command-line tools its instructions call (pip and curl). Our summary lists: Python 3.

Does Writing Sigma Rules access the network?

SKILL.md names 2 domains. In commands or code: attack.mitre.org and defuddle.md; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Writing Sigma Rules safe to install?

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. Review the folder before installing.

What licence does Writing Sigma Rules use?

Writing Sigma Rules is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Writing Sigma Rules use?

About 4.1k 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.

What are the alternatives to Writing Sigma Rules?

Skills that share tags, products or a category with Writing Sigma Rules: Security Alert Triage (elastic/agent-skills, 592 stars), Kubernetes Network Security Audit (kubeshark/kubeshark, 12k stars), Security Detection Rule Management (elastic/agent-skills, 592 stars) and Vbs Scan Security (tanviet12/vbsec, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Writing Sigma Rules?

trilwu (a GitHub user) maintains it in trilwu/secskills, which has 157 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on September 4, 2026.

Source: trilwu/secskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.