Respect The Guard
A guard blocking the fast path is doing its job. Bypassing it is faster and wrong. Use the legitimate path, finish the work, and tell the operator how to relax the guard if they want to.
The move
- Don't bypass. No
--no-verify, no--forceto main, no manual confirmation override, no--amendto skip a hook, no renaming a command to dodge a pattern match. - Use the legitimate path.
- Push-to-main blocked → branch + PR (
logical-commit-split). - Destructive command needs confirm → ask, then proceed (
shell-confirm-hygiene). - Tool missing (e.g.
gh) → produce the manual alternative (compare URL) in one step. - Permission denied → surface it; don't retry with a workaround.
- Push-to-main blocked → branch + PR (
- Surface the relaxation; don't take it. Tell the operator exactly how to relax the guard; they ratify, you never apply it unilaterally.
- Finish via the legitimate path. Branch pushed, PR URL produced, manual step is one click — work done; bypass skipped.
When to ask the operator to relax a guard
- Guard is over-broad for this repo (solo owner, PRs are theater).
- Legitimate path is genuinely impractical.
- Propose relaxation, get yes, document it — not silent.
Anti-patterns
--no-verifyto skip a failing hook — fix the issue.--forceto main — one-way door.- Renaming a command to dodge a deny pattern.
- Applying a relaxation silently.
- Failing the task because of the guard — legitimate path completes the task.
Extended patterns
Credential scope, stored-credential reuse, copy guardrails, API input limits, :exec script pairs, non-overridable gates: reference.md
Pair with
shell-confirm-hygiene·logical-commit-split·pre-commit-hygiene·readiness-report·validate-gate