Zerf home

4 settings.json · her rules

Her confidentiality rules: .claude/settings.json. Allow, deny, and three checks that run before every action.

{
  "permissions": {
    "allow": [
      "Read(./data/**)",
      "Read(./config/**)",
      "Read(./schemas/**)",
      "Read(./templates/**)",
      "Edit(./outputs/**)",
      "Edit(./outbox/**)",
      "Bash(python3 scripts/*)"
    ],
    "deny": [
      "Read(./data/opera/**)",
      "Read(./.env)",
      "Read(./secrets/**)",
      "WebSearch",
      "WebFetch",
      "Bash(curl *)",
      "Bash(rm *)",
      "Bash(git push *)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit|Bash|mcp__.*",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/hooks/block_guest_data.py"
          }
        ]
      },
      {
        "matcher": "Bash|Write|Edit|NotebookEdit",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/hooks/block_destructive.py"
          }
        ]
      },
      {
        "matcher": "Bash|Read|Grep|Glob",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/hooks/protect_raw_export.py"
          }
        ]
      }
    ]
  }
}

The checks (code, not AI)