Skip to main content

Rules Overview

BouncerFox has 35 built-in rules across 4 categories. All rules are deterministic. Pattern matching and structural analysis, no AI inference.

Categories

CategoryPrefixRulesWhat It Catches
SecuritySEC16Hardcoded secrets, destructive commands, reverse shells, credential exfiltration, external URLs, invisible unicode
QualityQA10Missing descriptions, empty skill bodies, invalid names, oversized files
ConfigCFG8Unrestricted Bash, wildcard MCP permissions, shell injection in hooks, hook review
Prompt SafetyPS1Hidden HTML comments with instructions

Severity Levels

LevelMeaningDefault Action
CRITICALActive security threatBlock merge
HIGHSignificant riskBlock merge
WARNPotential issueReport only
INFOBest practice suggestionReport only

How Scanning Works

  1. Discovery. Walks the project tree, identifies supported config files by path patterns.
  2. Parsing. Routes files to appropriate parsers (frontmatter, JSON, markdown).
  3. Rule execution. Runs applicable rules filtered by file type.
  4. 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.yml so they don't reappear -- each finding gets a stable fingerprint derived from its rule ID, file path, and matched content.
  5. 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.