用途:careful 是 gstack 中的安全模式技能,用于在触碰生产环境、调试线上系统或在共享环境中工作时,对破坏性命令提供警告护栏。触发说法包括“be careful”“safety mode”“prod mode”“careful mode”。
主要能力:启用后,每条 Bash 和 PowerShell 命令在执行前都会被检查是否命中破坏性模式。命中时返回 permissionDecision 为 ask 的警告,用户可选择继续或取消。受保护模式包括:递归删除(rm -rf、rm -r、rm --recursive)、DROP TABLE、DROP DATABASE、TRUNCATE、git push --force/-f、git reset --hard、git checkout .、git restore .、kubectl delete、docker rm -f、docker system prune,以及 Windows 下的 Remove-Item/ri/del/erase/rd/rmdir 搭配 -Recurse 或 -Force、cmd rd /s、rmdir /s、del /s、Format-Volume、Clear-Disk、Clear-Content、[IO.Directory]::Delete、[IO.File]::Delete、-EncodedCommand、iex、Start-Process 启动 shell、& $cmd 等。匹配忽略大小写,覆盖命令位置别名,接受 -r、-fo 这类参数前缀,并剥离 cmd 的 ^ 转义。
git reset --hard 会丢失未提交改动,但可通过 git reset --hard <commit> 回退丢失内容;git checkout -- <file> 也可恢复单文件。
HIGH 层级(硬拒绝):两类灾难性形态会被直接拒绝而非询问——对 /、~ 或 $HOME 本身执行 rm -r/-R,以及向仓库默认分支强制推送。仅限简单命令(不含 ;、&&、||、|、换行);复合写法落到 MEDIUM ask;--force-with-lease 永不进入 HIGH。这是尽力而为的咨询式硬停,不是策略边界,退出方式是结束本次可选的、会话级的 /careful 会话。
安全例外:rm -rf node_modules、.next、dist、pycache、.cache、build、.turbo、coverage 不警告。
项目自定义模式:可在 ~/.gstack/careful-patterns.txt(全局)或 ~/.gstack/projects/<slug>/careful-patterns.txt(按项目)添加 warn 规则,每行一条 POSIX ERE,# 可注释。自定义规则在内置家族之后检查,因此只能新增规则,不能抑制基线警告;无效正则行会被跳过。
使用方式:该技能为会话级钩子,停用方式是结束对话或开始新对话。钩子通过 bash 运行,因此 Windows 需要 Git Bash。官方给出的安装/状态路径示例为 GSTACK_STATE_ROOT=$(~/.claude/skills/gstack/bin/gstack-paths --get GSTACK_STATE_ROOT),若失败可用 ./setup 或 /gstack-upgrade 重装。
限制:对 PowerShell 为尽力而为,字符串匹配无法识别运行时拼接的命令;如需硬性阻止,可在 .claude/settings.json 添加 Claude Code 权限拒绝规则,例如 "deny": ["PowerShell(Remove-Item *)"]。资料未提供收费、平台与效果等更多信息。