Rules Overview
BouncerFox has 35 built-in rules across 4 categories. All rules are deterministic. Pattern matching and structural analysis, no AI inference.
Categories
| Category | Prefix | Rules | What It Catches |
|---|---|---|---|
| Security | SEC | 16 | Hardcoded secrets, destructive commands, reverse shells, credential exfiltration, external URLs, invisible unicode |
| Quality | QA | 10 | Missing descriptions, empty skill bodies, invalid names, oversized files |
| Config | CFG | 8 | Unrestricted Bash, wildcard MCP permissions, shell injection in hooks, hook review |
| Prompt Safety | PS | 1 | Hidden HTML comments with instructions |
Severity Levels
| Level | Meaning | Default Action |
|---|---|---|
| CRITICAL | Active security threat | Block merge |
| HIGH | Significant risk | Block merge |
| WARN | Potential issue | Report only |
| INFO | Best practice suggestion | Report only |
How Scanning Works
- Discovery. Walks the project tree, identifies supported config files by path patterns.
- Parsing. Routes files to appropriate parsers (frontmatter, JSON, markdown).
- Rule execution. Runs applicable rules filtered by file type.
- Suppression. Rule-to-rule suppression (e.g. SEC_001 suppresses SEC_018 on the same line) removes redundant findings. Fingerprint-based suppression lets you acknowledge known findings in
.bouncerfox.ymlso they don't reappear -- each finding gets a stable fingerprint derived from its rule ID, file path, and matched content. - Output. Formats results (table, JSON, SARIF), sets exit codes.
Profiles
BouncerFox ships with two built-in profiles:
- recommended (default). Disables some INFO-level rules to reduce noise. This is the profile used when no profile is explicitly specified.
- all_rules. Enables every rule, including all INFO-level checks. Use this for thorough audits.