{
  "permissions": {
    "allow": [
      "Bash(lsof -ti:3001 -ti:9229)",
      "Bash(lsof -iTCP:3001 -sTCP:LISTEN)",
      "Bash(lsof -iTCP:3000,3001 -sTCP:LISTEN)",
      "Bash(git status*)",
      "Bash(git status:*)",
      "Bash(git diff:*)",
      "Bash(git diff*)",
      "Bash(git log:*)",
      "Bash(git log*)",
      "Bash(git show:*)",
      "Bash(git show*)",
      "Bash(git branch:*)",
      "Bash(git branch*)",
      "Bash(git blame:*)",
      "Bash(git ls-files:*)",
      "Bash(git rev-parse:*)",
      "Bash(git config --get:*)",
      "Bash(git stash list*)",
      "Bash(git stash show*)",
      "Bash(ls:*)",
      "Bash(ls *)",
      "Bash(cat:*)",
      "Bash(head:*)",
      "Bash(tail:*)",
      "Bash(wc:*)",
      "Bash(find:*)",
      "Bash(grep:*)",
      "Bash(rg:*)",
      "Bash(file:*)",
      "Bash(stat:*)",
      "Bash(tree:*)",
      "Bash(realpath:*)",
      "Bash(readlink:*)",
      "Bash(pwd)",
      "Bash(which:*)",
      "Bash(source testing/*)",
      "Bash(. testing/*)",
      "Bash(source scripts/*)",
      "Bash(. scripts/*)",
      "Bash(bash testing/*)",
      "Bash(bash scripts/*)",
      "Bash(setup_test_db_env*)",
      "Bash(ensure_test_redis*)",
      "Bash(ensure_test_*)",
      "Bash(setup_test_*)",
      "Bash(reset_test_*)",
      "Bash(teardown_test_*)",
      "Bash(npm run db:seed*)",
      "Bash(npm run prisma:*)",
      "Bash(npx prisma:*)",
      "Bash(docker exec*ffoa-dev-postgres*)",
      "Bash(docker ps*)",
      "Bash(docker logs*)",
      "Bash(curl -s -o /dev/null -w \"frontend:%{http_code}\\\\n\" http://localhost:3000 --max-time 3)",
      "Bash(curl -s -o /dev/null -w \"backend:%{http_code}\\\\n\" http://localhost:3001/api/v1 --max-time 3)",
      "Bash(curl -s -o /dev/null -w \"backend-health:%{http_code}\\\\n\" http://localhost:3001/api/v1/health --max-time 3)",
      "Bash(curl -s -o /dev/null -w \"backend-auth:%{http_code}\\\\n\" http://localhost:3001/api/v1/auth/me --max-time 3)",
      "mcp__plugin_playwright_playwright__browser_close",
      "Bash(curl -s http://localhost:3000/audit/help --max-time 5)",
      "Bash(curl -s http://localhost:3000/meetingattendance/help --max-time 5)",
      "Bash(awk '{print $2, $11}')",
      "Bash(ps -o pid,ppid,cmd -p 2979087)",
      "Bash(kill 2979087 2974908 2974907)",
      "mcp__plugin_playwright_playwright__browser_type",
      "mcp__plugin_playwright_playwright__browser_resize",
      "Bash(bash .agents/skills/daily-report/scripts/gather.sh > /tmp/daily-data.txt 2>&1; echo \"EXIT=$?\"; wc -l /tmp/daily-data.txt)"
    ],
    "defaultMode": "bypassPermissions",
    "additionalDirectories": [
      "/tmp"
    ]
  },
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "./.claude/skills/self-improving-agent/scripts/activator.sh"
          },
          {
            "type": "command",
            "command": "./scripts/ops/hooks/main-repo-readonly-guard.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "./.claude/skills/self-improving-agent/scripts/error-detector.sh"
          }
        ]
      }
    ],
    "PostToolUseFailure": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "./.claude/skills/self-improving-agent/scripts/error-detector.sh"
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "./.claude/skills/self-improving-agent/scripts/session-start-context.sh"
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "./.claude/skills/self-improving-agent/scripts/session-end-summary.sh"
          },
          {
            "type": "command",
            "command": "./.agents/skills/daily-report/scripts/stop-hook.sh"
          }
        ]
      }
    ]
  },
  "enabledPlugins": {
    "code-simplifier@claude-plugins-official": true,
    "playwright@claude-plugins-official": true
  }
}
