# Deny prefix_rule(pattern = ["git", "push", ["--force", "-f", "--force-with-lease"]], decision = "forbidden", justification = "Force-push rewrites shared history.") prefix_rule(pattern = ["git", "reset", "--hard"], decision = "forbidden", justification = "Discards work.") prefix_rule(pattern = ["git", "clean"], decision = "forbidden", justification = "Deletes untracked files.") prefix_rule(pattern = ["git", "add", ["-f", "--force"]], decision = "forbidden", justification = "Stages ignored files, e.g. secrets.") prefix_rule(pattern = ["git", "commit", ["--no-verify", "-n"]], decision = "forbidden", justification = "Skips hooks.") prefix_rule(pattern = ["rm", ["-r", "-R", "-rf", "-fr", "-Rf", "-fR", "--recursive"]], decision = "forbidden", justification = "Recursive delete.") prefix_rule(pattern = ["sudo"], decision = "forbidden", justification = "No privilege escalation.") # Ask prefix_rule(pattern = ["git", ["push", "merge", "rebase", "switch", "restore"]], decision = "prompt") prefix_rule(pattern = ["git", "commit", "--amend"], decision = "prompt") prefix_rule(pattern = ["rm"], decision = "prompt") prefix_rule(pattern = ["bun", ["add", "remove", "update", "upgrade"]], decision = "prompt") prefix_rule(pattern = ["bunx"], decision = "prompt") prefix_rule(pattern = ["npx"], decision = "prompt") prefix_rule(pattern = ["docker"], decision = "prompt")