{
  "version": 1,
  "defaults": {
    "onUnmatched": "allow"
  },
  "rules": [
    {
      "id": "no-remote-pipe-shell",
      "when": {
        "type": "shell",
        "matches": "curl(?:(?!curl).)*(?:\\|\\s*(bash|sh)|(?<!\\|)\\|(?!\\|)\\s*(?:(?:[^\\s|]*/(?![^\\s|/]*/))?env(?:(?:[^\\S\\n]|\\\\\\n)+(?!;|&(?!>))[^\\s|]+)*?(?:[^\\S\\n]|\\\\\\n)+(?:[^\\s|]*/(?![^\\s|/]*/))?|[^\\s|]*/(?![^\\s|/]*/))(bash|sh)\\b)"
      },
      "action": "deny",
      "severity": "critical"
    },
    {
      "id": "force-push-needs-approval",
      "when": {
        "type": "shell",
        "matches": "git push(?:(?!git push).)*?(--force(?!-with-lease|-if-includes)|-f)\\b"
      },
      "action": "require_approval"
    },
    {
      "id": "block-nonexistent-packages",
      "when": {
        "type": "package_install",
        "detector": "deps",
        "finding": "nonexistent"
      },
      "action": "deny"
    },
    {
      "id": "redact-secrets-outbound",
      "when": {
        "type": "mcp_tool_call",
        "detector": "secrets"
      },
      "action": "redact"
    }
  ],
  "overrides": {
    "allowRules": [],
    "disableRules": []
  }
}
