Back to Skills

Guard

Safety guardrails — blocks destructive commands (rm -rf, DROP TABLE, force-push, git reset --hard) and optionally restricts file edits to a specific directory. Use when working on critical systems or when you want extra protection.

restai

Skill Content

# Guard — Safety Guardrails

Guard protects you from accidental destructive actions by intercepting dangerous commands before they execute. It uses Claude Code's PreToolUse hooks to catch risky patterns in real-time.

**Announce at start:** "I'm activating Guard — destructive commands will be blocked until you explicitly approve them."

## What Guard Blocks

### Destructive Bash Commands
- `rm -rf` / `rm -r` on important directories
- `DROP TABLE` / `DROP DATABASE` / `TRUNCATE`
- `git push --force` / `git push -f` (to main/master)
- `git reset --hard`
- `git checkout .` / `git restore .` (discard all changes)
- `git clean -f` / `git clean -fd`
- `git branch -D` (force delete branch)
- `kubectl delete` (Kubernetes resource deletion)
- `docker system prune` / `docker volume rm`
- `:> file` / `> file` (truncate files)

### File Edit Restrictions (Optional)
When the user specifies a directory to freeze to, Guard blocks edits outside that directory:

```
User: "Only edit files in src/api/"
→ Guard blocks Edit/Write calls to any path not under src/api/
```

## How It Works

Guard installs PreToolUse hooks that run BEFORE Claude executes Bash, Edit, or Write tools:

1. **Bash hook** — Scans the command string for destructive patterns. If matched, outputs a warning and blocks execution.
2. **Edit/Write hook** — If a freeze directory is set, checks that the target file is within the allowed path.

The hooks are defined in this skill's configuration and activate when the skill is loaded.

## Usage

### Activate full protection
Just invoke `/guard` — destructive command blocking is immediate.

### Set a directory freeze
Tell Claude which directory to restrict edits to:
```
"Only edit files in packages/api/"
"Freeze edits to src/components/"
```

Guard will write the freeze path to `.ultraship/guard-freeze.txt` and enforce it on all Edit/Write operations.

### Remove freeze
```
"Unfreeze" or "Remove edit restrictions"
```

### Override a blocked command
If Guard blocks something you actually need to run, explicitly confirm:
```
"Yes, I want to force-push to main"
"Confirmed: drop the users table"
```

Guard will allow explicitly confirmed destructive actions.

## Integration with Other Skills

- **`/investigate`** — Guard pairs well with investigation. No accidental fixes while diagnosing.
- **`/deploy`** — Guard prevents accidental force-pushes during deployment.
- **`/rescue`** — During incidents, Guard ensures rollback commands are deliberate.

## Key Principles

1. **Block by default, allow on confirmation.** Better to stop and ask than to destroy.
2. **No silent failures.** Always explain what was blocked and why.
3. **The user is sovereign.** Explicit confirmation overrides any guard.
4. **Minimal friction for safe operations.** Guard only triggers on genuinely dangerous patterns.

How to use

  1. Copy the skill content above
  2. Create a .claude/skills directory in your project
  3. Save as .claude/skills/ultraship-guard.md
  4. Use /ultraship-guard in Claude Code to invoke this skill
View source on GitHub