{
  "model": "opus",
  "hooks": {
    "PreCompact": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason pre-compact"
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason session-start-compact"
          }
        ]
      },
      {
        "matcher": "resume|clear",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason session-start-rollover --bump-generation"
          }
        ]
      }
    ],
    "UserPromptSubmit": [
      {
        "matcher": "^/mosaic-promote$",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.config/mosaic/tools/lease-broker/promote-begin.py",
            "timeout": 15
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.config/mosaic/tools/lease-broker/mutator-gate.py --runtime claude --recovery-command ~/.config/mosaic/tools/lease-broker/recover-context.py",
            "timeout": 3
          }
        ]
      },
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "~/.config/mosaic/tools/qa/prevent-memory-write.sh",
            "timeout": 10
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.config/mosaic/tools/git/wrapper-guard.sh",
            "timeout": 10
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit|MultiEdit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "~/.config/mosaic/tools/qa/qa-hook-stdin.sh",
            "timeout": 60
          }
        ]
      },
      {
        "matcher": "Edit|MultiEdit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "~/.config/mosaic/tools/qa/typecheck-hook.sh",
            "timeout": 30
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.config/mosaic/tools/lease-broker/receipt-observer-client.py --runtime claude --latest-entry; observer_status=$?; python3 ~/.config/mosaic/tools/lease-broker/promote-complete.py; exit $observer_status",
            "timeout": 15
          },
          {
            "type": "command",
            "command": "~/.config/mosaic/tools/qa/reflect-stop-hook.sh",
            "timeout": 15
          }
        ]
      }
    ]
  },
  "enabledPlugins": {
    "frontend-design@claude-plugins-official": true,
    "feature-dev@claude-plugins-official": true,
    "code-review@claude-plugins-official": true,
    "pr-review-toolkit@claude-plugins-official": true
  },
  "skipDangerousModePermissionPrompt": true,
  "allowedCommands": [
    "npm",
    "npm install",
    "npm run",
    "npm test",
    "npm build",
    "npm start",
    "npm run dev",
    "npm run build",
    "npm run lint",
    "npm run typecheck",
    "npm run test:ci",
    "npm run test:e2e",
    "npm run test:unit",
    "npm run test:integration",
    "npm run test:cov",
    "npm run test:security",
    "npm run security:scan",
    "npm run security:audit",
    "npm run performance:benchmark",
    "npm run build:dev",
    "npm run build:prod",
    "npm run test",
    "npm run test:watch",
    "npm run migrate",
    "npm run migrate:rollback",
    "npm run db:seed",
    "npm run db:reset",
    "node",
    "yarn",
    "pnpm",
    "npx",
    "npx tsc",
    "npx eslint",
    "npx prettier",
    "npx jest",
    "npx vitest",
    "git",
    "git add",
    "git commit",
    "git push",
    "git pull",
    "git status",
    "git diff",
    "git log",
    "git branch",
    "git checkout",
    "git merge",
    "git init",
    "git remote",
    "git fetch",
    "git reset",
    "git rebase",
    "git stash",
    "git tag",
    "git show",
    "git config",
    "gh",
    "gh issue",
    "gh pr",
    "gh repo",
    "gh api",
    "docker",
    "docker build",
    "docker run",
    "docker ps",
    "docker logs",
    "docker exec",
    "docker stop",
    "docker start",
    "docker pull",
    "docker push",
    "docker-compose",
    "docker-compose up",
    "docker-compose down",
    "docker-compose build",
    "docker-compose logs",
    "docker-compose ps",
    "docker-compose exec",
    "kubectl",
    "kubectl get",
    "kubectl describe",
    "kubectl logs",
    "kubectl apply",
    "kubectl delete",
    "kubectl port-forward",
    "mkdir",
    "touch",
    "chmod",
    "chown",
    "ls",
    "cd",
    "pwd",
    "cp",
    "mv",
    "rm",
    "cat",
    "echo",
    "head",
    "tail",
    "grep",
    "grep -E",
    "grep -r",
    "find",
    "find -name",
    "find -type",
    "find -path",
    "find -exec",
    "find . -type f",
    "find . -type d",
    "wc",
    "sort",
    "uniq",
    "curl",
    "wget",
    "ping",
    "netstat",
    "ss",
    "lsof",
    "psql",
    "pg_dump",
    "pg_restore",
    "sqlite3",
    "jest",
    "vitest",
    "playwright",
    "cypress",
    "artillery",
    "lighthouse",
    "tsc",
    "eslint",
    "prettier",
    "snyk",
    "semgrep",
    "tar",
    "gzip",
    "unzip",
    "zip",
    "which",
    "whoami",
    "id",
    "env",
    "export",
    "source",
    "sleep",
    "date",
    "uptime",
    "df",
    "du",
    "free",
    "top",
    "htop",
    "ps",
    "tree",
    "jq",
    "sed",
    "awk",
    "xargs",
    "tee",
    "test",
    "true",
    "false",
    "basename",
    "dirname",
    "realpath",
    "readlink",
    "stat",
    "file",
    "make",
    "cmake",
    "gcc",
    "g++",
    "clang",
    "python",
    "python3",
    "pip",
    "pip3",
    "pip install",
    "poetry",
    "pipenv",
    "go",
    "go build",
    "go test",
    "go run",
    "go mod",
    "cargo",
    "rustc",
    "ruby",
    "gem",
    "bundle",
    "rake",
    "java",
    "javac",
    "mvn",
    "gradle",
    "dotnet",
    "msbuild",
    "php",
    "composer",
    "perl",
    "cpan",
    "nohup"
  ],
  "enableAllMcpTools": true
}
