guard
GitHub提供最高级别的安全防护,结合破坏性命令警告与目录编辑限制。用于生产环境操作或调试时锁定安全模式,防止误删数据或越权修改文件。
Trigger Scenarios
Install
npx skills add garrytan/gstack --skill guard -g -y
SKILL.md
Frontmatter
{
"name": "guard",
"hooks": {
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "bash $HOME\/.claude\/skills\/gstack\/careful\/bin\/check-careful.sh",
"statusMessage": "Checking for destructive commands..."
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "bash $HOME\/.claude\/skills\/gstack\/freeze\/bin\/check-freeze.sh",
"statusMessage": "Checking freeze boundary..."
}
],
"matcher": "Edit"
},
{
"hooks": [
{
"type": "command",
"command": "bash $HOME\/.claude\/skills\/gstack\/freeze\/bin\/check-freeze.sh",
"statusMessage": "Checking freeze boundary..."
}
],
"matcher": "Write"
}
]
},
"version": "0.1.0",
"triggers": [
"full safety mode",
"guard against mistakes",
"maximum safety"
],
"description": "Full safety mode: destructive command warnings + directory-scoped edits. (gstack)",
"allowed-tools": [
"Bash",
"Read",
"AskUserQuestion"
]
}
When to invoke this skill
Combines /careful (warns before rm -rf, DROP TABLE, force-push, etc.) with /freeze (blocks edits outside a specified directory). Use for maximum safety when touching prod or debugging live systems. Use when asked to "guard mode", "full safety", "lock it down", or "maximum safety".
/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).
mkdir -p ~/.gstack/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/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:
- Resolve it to an absolute path:
FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd)
echo "$FREEZE_DIR"
- Ensure trailing slash and save to the freeze state file:
FREEZE_DIR="${FREEZE_DIR%/}/"
eval "$(~/.claude/skills/gstack/bin/gstack-paths)"
STATE_DIR="$GSTACK_STATE_ROOT"
mkdir -p "$STATE_DIR"
echo "$FREEZE_DIR" > "$STATE_DIR/freeze-dir.txt"
echo "Freeze boundary set: $FREEZE_DIR"
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 edit boundary, run
/unfreeze. To deactivate everything, end the session."
What's protected
See /careful for the full list of destructive command patterns and safe exceptions.
See /freeze for how edit boundary enforcement works.
Version History
-
28d59ad
Current 2026-08-20 05:28
修复了冻结边界钩子的四个关键Bug(JSON提取、路径解析等),引入共享辅助脚本;新增HIGH级硬拒绝规则(如递归删除根目录);增加内容地址化陈旧性检测功能。
- a325940 2026-07-25 11:04


