Skip to main content
skill CX Codex

guard — Claude Code skill: what it does, how to install

Activates full safety mode by catching destructive shell commands and locking file edits to a chosen directory.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add garrytan/gstack --skill guard -a claude-code
Open on GitHub

What guard does

This skill bundles two safeguards from gstack into a single mode by merging /careful and /freeze. On start, the agent asks for a target path via AskUserQuestion. The freeze-state.sh helper then enforces this boundary, stopping Edit, Write, and NotebookEdit actions on any files located outside that directory.

Every shell run through Bash or PowerShell passes through check-careful.sh. Risky commands such as DROP TABLE or forced Git pushes trigger explicit warnings, while catastrophic patterns like rm -rf / or forced pushes to default branches are blocked outright. The skill fails without its sibling folders careful and freeze, since its hooks invoke their internal scripts directly. You clear the edit boundary later with /unfreeze.

What it helps with

  • Block destructive shell executions like rm -rf or table drops
  • Restrict file modifications to a single designated folder
  • Stop force-push attempts against the default Git branch
  • Halt accidental edits to files outside the target workspace

Example prompts for the agent

  • Activate full safety mode for the src folder
  • Guard against mistakes and prevent dangerous shell commands
  • Turn on maximum safety for this session

How to install guard

1Skills CLI (Vercel)

npx skills add garrytan/gstack --skill guard -a claude-code

2Manually: put the files in place

~/.claude/skills/guard/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/guard/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about guard

How to install guard in Claude Code?

Run npx skills add garrytan/gstack --skill guard -a claude-code in your terminal.

What does guard do?

It guards terminal executions against destructive commands and blocks file writes outside a user-defined directory.

What dependencies does guard require?

It requires the sibling /careful and /freeze modules from the gstack suite to run its underlying validation scripts.

Source text

SKILL.md · MIT
---
name: guard
version: 0.1.0
description: "Full safety mode: destructive command warnings + directory-scoped edits. (gstack)"
triggers:
  - full safety mode
  - guard against mistakes
  - maximum safety
allowed-tools:
  - Bash
  - Read
  - AskUserQuestion
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/careful/bin/check-careful.sh\""'
          statusMessage: "Checking for destructive commands..."
    - matcher: "PowerShell"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/careful/bin/check-careful.sh\""'
          statusMessage: "Checking for destructive commands..."
    - matcher: "Edit"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
    - matcher: "Write"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
    - matcher: "NotebookEdit"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
---
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs -->

# /guard — Full Safety Mode

Activates both destructive command warnings and directory-scoped edit restrictions.
This is the combination of `/careful` + `/freeze` in a single command.

**Dependency note:** This skill references hook scripts from the sibling `/careful`
and `/freeze` skill directories. Both must be installed (they are installed together
by the gstack setup script).

```bash
GSTACK_STATE_ROOT=$(~/.claude/skills/gstack/bin/gstack-paths --get GSTACK_STATE_ROOT); : "${GSTACK_STATE_ROOT:?gstack-paths failed; reinstall with ./setup or /gstack-upgrade}"
mkdir -p "$GSTACK_STATE_ROOT"/analytics
echo '{"skill":"guard","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}'  >> "$GSTACK_STATE_ROOT"/analytics/skill-usage.jsonl 2>/dev/null || true
```

## Setup

Ask the user which directory to restrict edits to. Use AskUserQuestion:

- Question: "Guard mode: which directory should edits be restricted to? Destructive command warnings are always on. Files outside the chosen path will be blocked from editing."
- Text input (not multiple choice) — the user types a path.

Once the user provides a directory path:

Set the user-selected boundary with the shared writer, which resolves a physical absolute path and serializes replacement with investigation cleanup:
```bash
bash "$HOME/.claude/skills/gstack/freeze/bin/freeze-state.sh" set "<user-provided-path>"
```

On helper failure, do not claim the boundary is active. Preserve the state and report recovery; never bypass the shared writer with a direct write or deletion.

Tell the user:
- "**Guard mode active.** Two protections are now running:"
- "1. **Destructive command guard** — rm -rf, DROP TABLE, force-push, etc. warn before executing (overridable); catastrophic shapes (recursive delete of / or ~, force-push to the default branch) are hard-denied"
- "2. **Edit boundary** — file edits restricted to `<path>/`. Edits outside this directory are blocked."
- "To remove the persistent edit boundary, run `/unfreeze`. Ending the session stops its hooks but does not delete that boundary."

## What's protected

See `/careful` for the full list of destructive command patterns and safe exceptions.
See `/freeze` for how edit boundary enforcement works.

© garrytan · MIT · garrytan/gstack

Similar skills

All skills for Security →

From the same set14

cso Audits code and infrastructure for security findings, with reproduction and repair candidates in comprehensive mode. Use it when reviewing a project. CX Codex +1 405installs qa-only Reports bugs across browser apps, APIs, CLI tools, and background workers without touching your codebase. Useful for verification runs before a release. CX Codex +1 397installs careful Intercepts Bash and PowerShell commands before execution to catch destructive actions like forced git pushes or database drops. Useful when giving agents terminal access. CX Codex +1 375installs freeze The skill blocks Edit, Write and NotebookEdit outside one directory. The hook returns a deny, not a warning. CX Codex +1 352installs plan-devex-review An interactive read of a plan from the developer's side: it flags where someone opening the project for the first time will stumble, and asks before editing. CX Codex +1 347installs setup-browser-cookies This skill transfers cookies from your local Chromium browser into a headless browsing session. Use it to test authenticated sites without re-entering credentials each run. CX Codex +1 342installs unfreeze Clears the freeze boundary set by /freeze, allowing edits to all directories again. Use it when you need to unlock restricted folders or return to unrestricted editing. CX Codex +1 327installs open-gstack-browser A skill that launches an AI-controlled Chromium browser with the GStack sidebar extension baked in. Use it when you need an agent to open web pages and interact with them during coding. CX Codex +1 318installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor