AlexanderMattTurner/agent-glovebox
A minimal-friction secure experience that lets agents do their work. (beta)
ARCHETYPE
Skill Collector
Ten-plus skills loaded on demand. A procedural-knowledge library.
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)
babysit-prsci-triagedefect-to-guarddoctrine-captureexplore-plangit-workflowhandoffmarkdown-blockparallel-auditpeer-reviewpr-creationrun-control-towerrun-ctfstress-testvuln-researchwriting-tests
Subagents (1)
| code-reviewer model: opus | > |
Hooks (22)
| event | matcher | runs |
|---|---|---|
| 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 |
| PreToolUse | WebFetch | _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 | Bash | 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 | Bash|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 |
| PostToolUse | Bash|mcp__.*__create_pull_request|mcp__.*__subscribe_pr_activity | 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 [ -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
wondping0/wondev
Write your AI agent knowledge once. Compile it to every agent config format - CLAUDE.md, AGENTS.md, .cursor/rules and more.
Pragmatist 229 tok ·
LeeYudok/agents-scaffold
Fork-and-fill bootstrap for AI coding agents (Claude Code first, Codex/Gemini via AGENTS.md) — agents, skills, hooks, tiered rules (P0/P1/P2) and stack presets composed into one enforced pre-commit gate. 한국어/English
Fort Knox 2.3k tok ·
andiupn/claude-code-starter
🤖 Clean Claude Code CLI starter template with 3 core agents and 6 essential workflows. Optimize your agentic software engineering pipeline instantly.
Orchestrator 9.0k tok ·
anIcedAntFA/goshort
Self-hosted URL shortener in Go — single binary, SQLite-backed, zero config. Custom aliases, expiration, CLI, Redis cache, MCP server for AI agents (Claude Code, Cursor). Deploy anywhere: Docker, Fly.io, bare VPS.
Pragmatist 2.8k tok ·