Agent Skills › garrytan/gstack › careful

careful

GitHub

提供破坏性命令的安全护栏,在执行 rm -rf、DROP TABLE、git push --force 等操作前进行警告并允许用户确认。新增对 PowerShell 和 cmd 命令的覆盖,防止 Windows 环境下的误操作风险。

careful/SKILL.md garrytan/gstack

Trigger Scenarios

执行 rm -rf、DROP TABLE 等危险命令 用户要求开启安全模式或谨慎模式

Install

npx skills add garrytan/gstack --skill careful -g -y
More Options

Non-standard path

npx skills add https://github.com/garrytan/gstack/tree/main/careful -g -y

Use without installing

npx skills use garrytan/gstack@careful

指定 Agent (Claude Code)

npx skills add garrytan/gstack --skill careful -a claude-code -g -y

安装 repo 全部 skill

npx skills add garrytan/gstack --all -g -y

预览 repo 内 skill

npx skills add garrytan/gstack --list

SKILL.md

Frontmatter
{
    "name": "careful",
    "hooks": {
        "PreToolUse": [
            {
                "hooks": [
                    {
                        "type": "command",
                        "command": "bash -c \"exec bash \\\"$HOME\/.claude\/skills\/gstack\/careful\/bin\/check-careful.sh\\\"\"",
                        "statusMessage": "Checking for destructive commands..."
                    }
                ],
                "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"
            }
        ]
    },
    "version": "0.1.0",
    "triggers": [
        "be careful",
        "warn before destructive",
        "safety mode"
    ],
    "description": "Safety guardrails for destructive commands. (gstack)",
    "allowed-tools": [
        "Bash",
        "Read"
    ]
}

When to invoke this skill

Warns before rm -rf, DROP TABLE, force-push, git reset --hard, kubectl delete, and similar destructive operations. User can override each warning. Use when touching prod, debugging live systems, or working in a shared environment. Use when asked to "be careful", "safety mode", "prod mode", or "careful mode".

/careful — Destructive Command Guardrails

Safety mode is now active. Every Bash and PowerShell command will be checked for destructive patterns before running. If a destructive command is detected, you'll be warned and can choose to proceed or cancel.

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":"careful","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

What's protected

Pattern Example Risk
rm -rf / rm -r / rm --recursive rm -rf /var/data Recursive delete
DROP TABLE / DROP DATABASE DROP TABLE users; Data loss
TRUNCATE TRUNCATE orders; Data loss
git push --force / -f git push -f origin main History rewrite
git reset --hard git reset --hard HEAD~3 Uncommitted work loss
git checkout . / git restore . git checkout . Uncommitted work loss
kubectl delete kubectl delete pod Production impact
docker rm -f / docker system prune docker system prune -a Container/image loss

PowerShell and cmd (Windows)

The hook also checks the PowerShell tool (Claude Code's main Windows shell) and any pwsh/powershell/cmd launched from Bash. Matching ignores case, covers aliases in command position, accepts parameter prefixes (-r, -fo) and strips cmd ^ escapes. All rows above apply there too.

Pattern Example
Remove-Item/rm/ri/del/erase/rd/rmdir + -Recurse or -Force gci | ri -r -fo
cmd rd /s, rmdir /s, del /s, erase /s cmd /c rd /s /q C:\proj
Format-Volume, Clear-Disk, Clear-Content, [IO.Directory]::Delete, [IO.File]::Delete Clear-Disk -Number 1
-EncodedCommand, iex, Start-Process of a shell, & $cmd (can't be inspected) irm $url | iex

Best-effort on PowerShell. String matching can't see a command built at runtime. For a hard stop, add Claude Code permission deny rules, which parse PowerShell and its aliases: "deny": ["PowerShell(Remove-Item *)"] in .claude/settings.json. The hook runs through bash, so Windows needs Git Bash.

Safe exceptions

These patterns are allowed without warning:

  • rm -rf node_modules / .next / dist / __pycache__ / .cache / build / .turbo / coverage

How it works

The hook reads tool_name and the command from the tool input JSON, checks it against the patterns above, and returns a hookSpecificOutput payload with permissionDecision: "ask" and a warning reason if a match is found (the decision must be nested under hookSpecificOutput — Claude Code ignores a top-level permissionDecision). You can always override a MEDIUM warning and proceed.

HIGH tier (hard deny)

Two catastrophic shapes are denied, not asked: rm -r/-R of exactly /, ~, or $HOME, and force-push to the repo's default branch. SIMPLE commands only (no ;, &&, ||, |, newline) — compound shapes fall through to the MEDIUM ask; --force-with-lease is never HIGH. A best-effort advisory hard-stop, not a policy boundary: the escape hatch is ending the opt-in, session-scoped /careful session.

Project patterns (additive only)

Add warn rules — one POSIX ERE per line, # comments OK — in ~/.gstack/careful-patterns.txt (global) or ~/.gstack/projects/<slug>/careful-patterns.txt (per-project). Consulted after the built-in families, so config can only ADD rules, never suppress a baseline warning. Invalid regex lines are skipped.

To deactivate, end the conversation or start a new one. Hooks are session-scoped.

Version History

  • 2d42e4e Current 2026-10-19 13:42

    修复 /careful 仅检查 Bash 工具的问题,增加对 PowerShell 和 cmd 命令的检查支持;修复 NotebookEdit 忽略冻结边界的问题;增加 Windows 平台的测试覆盖。

  • 28d59ad 2026-08-20 05:27

    新增 HIGH 级别硬拒绝机制(禁止删除根目录/主分支强制推送),修复 JSON 提取器缺陷,增加项目级自定义规则支持。

  • a325940 2026-07-25 11:04

Same Skill Collection

autoplan/SKILL.md
browse/SKILL.md
browser-skills/hackernews-frontpage/SKILL.md
capy/skill/gstack/SKILL.md
context-restore/SKILL.md
cso/SKILL.md
design-consultation/SKILL.md
design-html/SKILL.md
design-review/SKILL.md
design-shotgun/SKILL.md
deslop-shared-libs/SKILL.md
diagram/SKILL.md
eval-plan/SKILL.md
freeze/SKILL.md
guard/SKILL.md
investigate/SKILL.md
ios-clean/SKILL.md
ios-design-review/SKILL.md
ios-sync/SKILL.md
landing-report/SKILL.md
make-pdf/SKILL.md
open-gstack-browser/SKILL.md
openclaw/skills/gstack-openclaw-ceo-review/SKILL.md
openclaw/skills/gstack-openclaw-investigate/SKILL.md
openclaw/skills/gstack-openclaw-office-hours/SKILL.md
openclaw/skills/gstack-openclaw-retro/SKILL.md
pair-agent/SKILL.md
plan-design-review/SKILL.md
plan-devex-review/SKILL.md
plan-tune/SKILL.md
qa-only/SKILL.md
qa/SKILL.md
scrape/SKILL.md
setup-browser-cookies/SKILL.md
setup-deploy/SKILL.md
setup-gbrain/SKILL.md
ship/SKILL.md
skillify/SKILL.md
spec/SKILL.md
sync-gbrain/SKILL.md
test-audit/SKILL.md
test/fixtures/context-bill/tree-a/alpha/SKILL.md
test/fixtures/golden/agy-ship-SKILL.md
test/fixtures/golden/claude-ship-SKILL.md
test/fixtures/golden/codex-ship-SKILL.md
test/fixtures/golden/factory-ship-SKILL.md
unfreeze/SKILL.md
benchmark-models/SKILL.md
benchmark/SKILL.md

Metadata

Files
0
Version
2d42e4e
Hash
8e8e918b
Indexed
2026-07-25 11:04

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-25 10:25
浙ICP备14020137号-1