rule-optimize
Workflow for modifying and benchmarking detection rules
SKILL.md.claude/skills/rule-optimize/SKILL.md
GitHubRule Optimization Workflow
Use after modifying rules in crates/scanner-engine/default_rules.yaml
(loaded by crates/scanner-engine/src/rules/).
Checklist
- Run
cargo testto verify no regressions - Build release:
RUSTFLAGS="-C target-cpu=native" cargo build --release - Benchmark against test repos (optional external corpuses):
./target/release/scanner-rs ../linux ../gitleaks ../tigerbeetle ../trufflehogNote:
../linux,../gitleaks,../tigerbeetle,../trufflehogare external test corpus directories. They are optional and must be cloned separately if not already present. - Compare throughput/findings against baseline
- Document anchor/keyword choice if non-obvious (add inline comment)
Pattern Guidelines
When adding or modifying rules:
Anchors
- Prefer structured prefixes (
sgp_,hvs.,AKIA) over service name keywords - Avoid generic patterns like
[a-fA-F0-9]{40}that match git SHAs - Add inline comments explaining non-obvious anchor/keyword choices
Performance
- Test rule isolation:
cargo bench --bench rule_isolation -- <rule_id> - Check for backtracking: avoid
.*followed by greedy quantifiers - Prefer character classes over alternation when possible
Validation
- Ensure validators don't make network calls in hot paths
- Use entropy checks for high-entropy secrets
- Add checksum validation where applicable (AWS keys, etc.)
Baseline Comparison
Before making changes, capture baseline:
# Run 3x and record median throughput
for i in 1 2 3; do
./target/release/scanner-rs ../linux 2>&1 | tail -1
done
After changes, compare:
# Calculate % change
# Acceptable: <2% regression
# Investigate: 2-5% regression
# Block: >5% regression without justification
Key Paths
| Item | Path |
|---|---|
| Default rules YAML | crates/scanner-engine/default_rules.yaml |
| Rules module | crates/scanner-engine/src/rules/ |
| Release binary | ./target/release/scanner-rs (from scanner-rs-cli) |
Related Skills
/bench-compare- Criterion benchmark comparison/perf-regression- Full performance regression workflow/test-strategy- Choose testing approach for rule changes