Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By cameronsjo
Git safety hooks: block pushes and gh writes to repos you don't own, branch warnings, commit nudges
npx claudepluginhub cameronsjo/workbench --plugin cadence-guardrailsExecutes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
githubUsernameYour GitHub username for repo ownership checks
${user_config.githubUsername}Git safety hooks for Claude Code. Blocks force-push, protects main/master branch, prevents hard-reset, guards interactive rebase, and blocks git clean -fd.
Prevents accidental pushes to main branch in Claude Code bypassPermissions mode. Designed for user scope installation.
Harness-native ECC plugin for engineering teams - 64 agents, 262 skills, 84 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
Intelligent prompt optimization: injects the right context at the right moment so Claude lands a better first output. Clarifies vague prompts with research-based questions, plus targeted nudges for approach selection, plan readability, workflow routing, background execution, subagent routing, output readability, user-decision questions, and plan-mode assessment
Manus-style persistent markdown files for planning, progress tracking, and knowledge storage. Works with Claude Code, Kiro, Clawd CLI, Gemini CLI, Cursor, Continue, Hermes, and 17+ AI coding assistants. Now with Arabic, German, Spanish, and Chinese (Simplified & Traditional) support.
Cameron's personal design system — Artificer. AuDHD-optimized, dark-first, Jazz Age Deco palette. For tools, dashboards, agent UIs, terminals, settings panels.
Headless Obsidian orchestrator via Docker Compose
Disney parks data MCP server with attraction wait times and fuzzy search
How to work with code — language standards, security, quality, git, CI/CD, Docker, MCP, documentation
Vault backup sidecar with AI commit messages and restic cloud storage
Safety guardrails for Claude Code's git and GitHub CLI operations. Blocks pushes and gh
write commands targeting repos you don't own, warns when editing directly on main/master,
and nudges toward committing after idle periods. The design philosophy is guardrails, not
gates — biased toward blocking suspicious operations rather than letting them through.
Claude can always run a command manually if a block is incorrect; it cannot undo a push to
upstream.
These guardrails enforce policy at the Claude Code level. They run as PreToolUse
hooks — evaluated before a command executes — and guard against accidental self-harm: an
errant git push, a gh write to a repo you don't own, an edit landing straight on main.
They decide whether an operation is allowed to start.
They do not provide OS isolation. A hook cannot contain a process it has already
allowed — once git push or a build script is running, nothing here stops it from reaching
the filesystem or network. Guardrails are the policy layer; an OS sandbox is the
containment layer, and the two are complementary rather than interchangeable.
For unattended or low-supervision runs, pair these guardrails with real isolation:
--dangerously-skip-permissions MUST run inside a container/VM or under
@anthropic-ai/sandbox-runtime, which wraps
the entire Claude Code process in OS-level filesystem and network boundaries.A sandbox is OS-enforced but not a complete boundary, and these guardrails are policy-only. Use both for unattended work; neither replaces the other.
guard-push-remote.shGuards: git push to remotes you don't own.
Fires: PreToolUse on Bash.
How it works:
git push,
follows branch tracking config to find the remote. For explicit git push <remote>,
resolves that remote's push URL.GIT_GUARDRAILS_ALLOWED_OWNERS using both HTTPS and
SSH GitHub URL patterns.git push calls or loop constructs — these
cannot be safely resolved statically.cd DIR && git push by extracting the leading cd target.Config read:
GIT_GUARDRAILS_ALLOWED_OWNERS — REQUIRED. If unset, all pushes are blocked.guard-gh-write.shGuards: gh CLI write operations to repos you don't own.
Fires: PreToolUse on Bash.
How it works:
gh <resource> <write-action> where write actions include create, merge, close,
comment, edit, delete, transfer, archive, rename, review, reopen,
ready, lock, unlockgh api with explicit -X POST|PUT|PATCH|DELETEgh api with field flags (-f, -F, --field, --raw-field) indicating an
implicit POST-R/--repo flag > gh repo create positional arg > gh api path > git remotes.upstream remote, resolution is ambiguous (is the
target the fork or the parent?). Requires -R to disambiguate.-R is explicitly provided.bash-parser (Node.js) to distinguish real shell
loops from loop keywords inside string arguments (--body content, python3 -c
strings, heredocs). Falls back to regex if the parser chokes on exotic syntax.Config read:
GIT_GUARDRAILS_ALLOWED_OWNERS — REQUIRED. If unset, all gh writes are blocked.GIT_GUARDRAILS_ALLOWED_REPOS — Optional. Space-separated owner/repo pairs for
repos you collaborate on but don't own.warn-main-branch.shGuards: Accidental edits directly on main/master.
Fires: PreToolUse on Edit and Write.
How it works:
main or master, emits a one-time advisory
asking whether the work should be on a feature branch instead./tmp to fire at most once per session.Config read: None.
check-idle-return.shGuards: Uncommitted work after periods of inactivity.
Fires: PreToolUse on Edit and Write.
How it works: