All skills
garrytan avatar

/careful

@1cab5e1 official
by Garry Tangarrytan/gstack135k stars
20,051

Safety guardrails for destructive commands. (gstack)

Use this Skill: https://skilld.dev/gh/garrytan/gstack/careful

This session only. Nothing lands on disk.

SKILL.md

≈15 tokens always: the name and description. ≈771 when used: this file.

<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- Regenerate: bun run gen:skill-docs -->

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

mkdir -p ~/.gstack/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/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

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

Source: SKILL.md on GitHub

No alerts9d3 checks · Risk SAFE
  • Gen Agent Trust Hub9d

    The skill provides safety guardrails by intercepting bash commands and warning the user before potentially destructive operations like file deletion or database drops are executed.

  • Socket9d

    No alerts

  • Snyk9d

    Risk: LOW · No issues

Signed by skilld at 1cab5e1. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 13 hours ago.

Activeupdated 2 months ago
What it can do
Runs commands Reads files
version
0.1.0
triggers
[
  "be careful",
  "warn before destructive",
  "safety mode"
]
All 2 allowed tools
BashRead
Other metadata
hooks
{
  "PreToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "bash $HOME/.claude/skills/gstack/careful/bin/check-careful.sh",
          "statusMessage": "Checking for destructive commands..."
        }
      ]
    }
  ]
}
  • Git/VCS
  • Database
  • bash
  • safety
  • guardrails
  • destructive-commands
  • kubernetes
  • docker
  • production

README badge

README badge for garrytan/gstack/careful

Intercepts bash commands to warn before rm -rf, DROP TABLE, git push -f, kubectl delete, and similar destructive operations. Allows override on each warning and exempts safe deletions like node_modules and dist directories.

Generated from the current SKILL.md.

What commands does this skill warn about?
It warns before rm -rf, DROP TABLE, TRUNCATE, git push --force, git reset --hard, git checkout ., kubectl delete, and docker rm -f / docker system prune. Safe build directories like node_modules and dist are excluded.
Can I override the warnings?
Yes. When a destructive command is detected, you're prompted to confirm or cancel. You can always choose to proceed.
How long does this skill stay active?
The skill is session-scoped. It remains active for the current conversation and deactivates when you end the session or start a new one.
Does this work with SQL databases other than the examples shown?
The skill checks for the SQL patterns DROP TABLE, DROP DATABASE, and TRUNCATE. It will catch these in any SQL dialect but is not customizable per database type.

Generated from the current SKILL.md. These answers refresh after source changes.