Skill Tracer
Skills › gstack › guard

guard

skill · 84 lines · MIT · guard/SKILL.md

The facts

Its description

Full safety mode: destructive command warnings + directory-scoped edits. (gstack) Triggers: full safety mode; guard against mistakes; maximum safety

The description the agent reads to decide when to use it. Phrases the author says should start it.

From its settingsline 4 line 5

When it starts

A person asks for maximum safety or "full safety mode" — wanting both destructive-command warnings and edits confined to one directory — usually before risky work. The name and description alone are enough for the agent to pick it.

Things a person might say (the model's guesses)

  • “Turn on full safety mode for this session.”
  • “I want maximum safety while I clean up this repo.”
  • “Guard against mistakes — I'm about to do some risky refactoring.”

A model's summary of when it is used.

A model's reading

Tools it may use, or may not

allowed-tools: Bash, Read, AskUserQuestion

Tools it may use while it runs without asking you first.

From its settingsline 9

Runs scripts

bin/gstack-paths, bin/freeze-state.sh

Scripts the text names. Found by matching words, so treat them as pointers.

Found by matching wordsline 54 line 70

Stops for a person

1 line stops to ask a person

Lines that stop and wait for a person before going on. Found by matching words, so treat them as pointers.

Found by matching wordsline 61

Runs automatically at certain moments

Runs commands automatically at set moments

Hooks run commands at moments such as before a tool is used. The linked line shows them as written.

From its settingsline 13

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

Other settings

version: 0.1.0

More settings at the top of the file, shown as written.

From its settingsline 3

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: guard
3version: 0.1.0
4description: "Full safety mode: destructive command warnings + directory-scoped edits. (gstack)"
5triggers:
6 - full safety mode
7 - guard against mistakes
8 - maximum safety
9allowed-tools:
10 - Bash
11 - Read
12 - AskUserQuestion
13hooks:
14 PreToolUse:
15 - matcher: "Bash"
16 hooks:
17 - type: command
18 command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/careful/bin/check-careful.sh\""'
19 statusMessage: "Checking for destructive commands..."
20 - matcher: "PowerShell"
21 hooks:
22 - type: command
23 command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/careful/bin/check-careful.sh\""'
24 statusMessage: "Checking for destructive commands..."
25 - matcher: "Edit"
26 hooks:
27 - type: command
28 command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
29 statusMessage: "Checking freeze boundary..."
30 - matcher: "Write"
31 hooks:
32 - type: command
33 command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
34 statusMessage: "Checking freeze boundary..."
35 - matcher: "NotebookEdit"
36 hooks:
37 - type: command
38 command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
39 statusMessage: "Checking freeze boundary..."
40---
41<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
42<!-- Regenerate: bun run gen:skill-docs -->
44# /guard — Full Safety Mode
46Activates both destructive command warnings and directory-scoped edit restrictions.
47This is the combination of `/careful` + `/freeze` in a single command.
49**Dependency note:** This skill references hook scripts from the sibling `/careful`
50and `/freeze` skill directories. Both must be installed (they are installed together
51by the gstack setup script).
53```bash
54GSTACK_STATE_ROOT=$(~/.claude/skills/gstack/bin/gstack-paths --get GSTACK_STATE_ROOT); : "${GSTACK_STATE_ROOT:?gstack-paths failed; reinstall with ./setup or /gstack-upgrade}"
55mkdir -p "$GSTACK_STATE_ROOT"/analytics
56echo '{"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
57```

<!-- 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).

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
Raw lines 1 to 58
Names a skill careful :47
Names a skill freeze :47
Runs code bin/gstack-paths :54
Names a skill gstack-upgrade :54
59## Setup
61Ask the user which directory to restrict edits to. Use AskUserQuestion:
63- 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."
64- Text input (not multiple choice) — the user types a path.
66Once the user provides a directory path:
68Set the user-selected boundary with the shared writer, which resolves a physical absolute path and serializes replacement with investigation cleanup:
69```bash
70bash "$HOME/.claude/skills/gstack/freeze/bin/freeze-state.sh" set "<user-provided-path>"
71```
73On 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.
75Tell the user:
76- "**Guard mode active.** Two protections are now running:"
77- "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"
78- "2. **Edit boundary** — file edits restricted to `<path>/`. Edits outside this directory are blocked."
79- "To remove the persistent edit boundary, run `/unfreeze`. Ending the session stops its hooks but does not delete that boundary."

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 "$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."
Raw lines 59 to 80
Involves a person Ask the user :61
Involves a person AskUserQuestion :61
Names a skill investigate :68
Runs code bin/freeze-state.sh :70
Names a skill unfreeze :79
81## What's protected
83See `/careful` for the full list of destructive command patterns and safe exceptions.
84See `/freeze` for how edit boundary enforcement works.

What's protected

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

Raw lines 81 to 84
Names a skill careful :83
Names a skill freeze :84

From garrytan/gstack at 3f79d81, 2026-11-01. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.