~ / rigs / AlexanderMattTurner / agent-glovebox

AlexanderMattTurner/agent-glovebox

A minimal-friction secure experience that lets agents do their work. (beta)

↗ GitHub ★ 67 Apache-2.0 updated today project Claude CodeCodex
share on X
ARCHETYPE
Skill Collector
Ten-plus skills loaded on demand. A procedural-knowledge library.
CONTEXT TAX · EVERY TURN
~26.2k tokens
Context hog · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit AlexanderMattTurner/agent-glovebox/.claude ./rig-agent-glovebox  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/babysit-prs .claude/skills/babysit-prs
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/ci-triage .claude/skills/ci-triage
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/defect-to-guard .claude/skills/defect-to-guard
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/doctrine-capture .claude/skills/doctrine-capture
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/explore-plan .claude/skills/explore-plan
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/git-workflow .claude/skills/git-workflow
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/handoff .claude/skills/handoff
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/markdown-block .claude/skills/markdown-block
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/parallel-audit .claude/skills/parallel-audit
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/peer-review .claude/skills/peer-review
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/pr-creation .claude/skills/pr-creation
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/run-control-tower .claude/skills/run-control-tower
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/run-ctf .claude/skills/run-ctf
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/stress-test .claude/skills/stress-test
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/vuln-research .claude/skills/vuln-research
$ npx degit AlexanderMattTurner/agent-glovebox/.claude/skills/writing-tests .claude/skills/writing-tests
$ curl -fsSL --create-dirs -o .claude/agents/code-reviewer.md https://raw.githubusercontent.com/AlexanderMattTurner/agent-glovebox/main/.claude/agents/code-reviewer.md

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "deny": [
      "Bash(*curl*|*sh)",
      "Bash(*curl*|*sh *)",
      "Bash(*wget*|*sh)",
      "Bash(*wget*|*sh *)",
      "Bash(*base64*|*sh)",
      "Bash(*base64*|*sh *)",
      "mcp__github__create_or_update_file",
      "mcp__github__push_files",
      "mcp__github__delete_file",
      "mcp__github__merge_pull_request",
      "mcp__github__enable_pr_auto_merge",
      "EnterPlanMode"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "if [ -d \"${CLAUDE_PROJECT_DIR:-}\" ]; then _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/safe-launch.sh; \"$_gb_lau"
          },
          {
            "type": "command",
            "command": "_gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/safe-launch.sh; \"$_gb_launcher\" \"$CLAUDE_PROJECT_DIR\"/.claude/hooks"
          },
          {
            "type": "command",
            "command": "if [ -n \"${WATCHER_URL:-}\" ] && [ -n \"${WATCHER_GATE:-}\" ]; then _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/sa"
          }
        ]
      },
      {
        "matcher": "WebFetch",
        "hooks": [
          {
            "type": "command",
            "command": "_gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/safe-launch.sh; \"$_gb_launcher\" \"$CLAUDE_PROJECT_DIR\"/.claude/hooks"
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "if [ -d \"${CLAUDE_PROJECT_DIR:-}\" ]; then _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/safe-launch.sh; \"$_gb_lau"
          }
        ]
      },
      {
        "matcher": "Bash|mcp__github__.*",
        "hooks": [
          {
            "type": "command",
            "command": "_gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/.hookpin-\"${CLAUDE_CODE_SESSION_ID:-}\"/safe-launch.sh; [ -x \"$_gb_launcher\" ] || _gb_launcher=\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/safe-launch.sh; \"$_gb_launcher\" \"$CLAUDE_PROJECT_DIR\"/.claude/hooks"
          }
        ]
      }
    ]
  }
}

Skills (16)

Subagents (1)

code-reviewer
model: opus
>

Hooks (22)

eventmatcherruns
SessionStart*"$CLAUDE_PROJECT_DIR"/.claude/hooks/session-setup.sh
SessionStart*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
SessionStart*if [ -n "${WATCHER_URL:-}" ] && [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/ho
PreToolUse*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
PreToolUse*_gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_launcher" "$CLAUDE_PROJECT_DIR"/.claude/hooks
PreToolUseWebFetch_gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_launcher" "$CLAUDE_PROJECT_DIR"/.claude/hooks
PreToolUseBashif [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
PreToolUseBash|mcp__github__.*_gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_launcher" "$CLAUDE_PROJECT_DIR"/.claude/hooks
PreToolUse*if [ -n "${WATCHER_URL:-}" ] && [ -n "${WATCHER_GATE:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/sa
PermissionDenied*_gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_launcher" --event PermissionDenied "$CLAUDE_P
PostToolUse*if [ -n "${WATCHER_URL:-}" ] && [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/ho
PostToolUse*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
PostToolUse*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
PostToolUseBash|mcp__.*__create_pull_request|mcp__.*__subscribe_pr_activityif [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
UserPromptSubmit*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
UserPromptSubmit*if [ -n "${WATCHER_URL:-}" ] && [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/ho
Notification*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
SessionEnd*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
SessionEnd*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau
SessionEnd*if [ -n "${WATCHER_URL:-}" ] && [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/ho
Stop*if [ -n "${WATCHER_URL:-}" ] && [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/ho
Stop*if [ -d "${CLAUDE_PROJECT_DIR:-}" ]; then _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/.hookpin-"${CLAUDE_CODE_SESSION_ID:-}"/safe-launch.sh; [ -x "$_gb_launcher" ] || _gb_launcher="$CLAUDE_PROJECT_DIR"/.claude/hooks/safe-launch.sh; "$_gb_lau

Slash commands (1)

/handoff

Permissions

deny (12)
Bash(*curl*|*sh)
Bash(*curl*|*sh *)
Bash(*wget*|*sh)
Bash(*wget*|*sh *)
Bash(*base64*|*sh)
Bash(*base64*|*sh *)
mcp__github__create_or_update_file
mcp__github__push_files
mcp__github__delete_file
mcp__github__merge_pull_request
mcp__github__enable_pr_auto_merge
EnterPlanMode
ask (0)
—
allow (120)
Read
Bash(git status)
Bash(git status -s)
Bash(git status --short)
Bash(git status --porcelain)
Bash(git branch)
Bash(git branch -a)
Bash(git branch -r)
Bash(git branch --show-current)
Bash(git branch --list)
Bash(git rev-parse)
Bash(git rev-parse *)
Bash(git ls-files)
Bash(git ls-files *)
Bash(git ls-tree)
Bash(git ls-tree *)
Bash(git for-each-ref)
Bash(git for-each-ref *)
Bash(git describe)
Bash(git describe *)
Bash(git rev-list)
Bash(git rev-list *)
Bash(git name-rev)
Bash(git name-rev *)
Bash(git merge-base)
Bash(git merge-base *)
Bash(git count-objects)
Bash(git count-objects *)
Bash(git reflog)
Bash(git reflog show)
Bash(git stash list)
Bash(git tag -l)
Bash(git tag -l *)
Bash(git tag --list)
Bash(git tag --list *)
Bash(git check-ignore)
Bash(git check-ignore *)
Bash(git config --get)
Bash(git config --get *)
Bash(git config --list)
Bash(git config --list *)
Bash(git remote -v)
Bash(git remote get-url)
Bash(git remote get-url *)
Bash(ls *)
Bash(stat *)
Bash(du *)
Bash(df *)
Bash(readlink *)
Bash(realpath *)
Bash(dirname *)
Bash(basename *)
Bash(which *)
Bash(type *)
Bash(grep *)
Bash(wc *)
Bash(cat *)
Bash(head *)
Bash(tail *)
Bash(diff *)

Similar rigs

copied ✓