{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(curl -s *)",
      "Bash(fnm *)",
      "Bash(git add *)",
      "Bash(git branch *)",
      "Bash(git checkout *)",
      "Bash(git commit *)",
      "Bash(git config *)",
      "Bash(git diff *)",
      "Bash(git fetch *)",
      "Bash(git log *)",
      "Bash(git merge *)",
      "Bash(git pull *)",
      "Bash(git remote *)",
      "Bash(git rev-parse *)",
      "Bash(git show *)",
      "Bash(git stash *)",
      "Bash(git status)",
      "Bash(git tag *)",
      "Bash(node *)",
      "Bash(npm -w *)",
      "Bash(npm install *)",
      "Bash(npm run *)",
      "Bash(npm test *)",
      "Bash(npx *)"
    ],
    "deny": [
      "Bash(git push --force*)",
      "Bash(git push -f *)",
      "Bash(git push origin --force*)",
      "Bash(git reset --hard*)",
      "Bash(git clean -fd*)",
      "Bash(git checkout -- .)",
      "Bash(git restore .)",
      "Bash(rm -rf /)",
      "Bash(rm -rf ~)",
      "Bash(rm -rf .git*)",
      "Bash(rm -rf /*)",
      "Bash(rm -rf node_modules)",
      "Read(./**/.env)",
      "Read(./**/.env.*)",
      "Read(./**/secrets/**)"
    ]
  },
  "hooks": {
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/scripts/on-post-compact.sh",
            "timeout": 10
          }
        ]
      }
    ],
    "PreCompact": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/scripts/on-pre-compact.sh",
            "timeout": 30
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/scripts/on-commit.sh",
            "timeout": 15
          }
        ]
      }
    ]
  },
  "env": {
    "CLAUDE_BOT_TOKEN": "ac15488ad66463bd5c4e3be1fa6dd5b2743813c5"
  }
}
