mcpField
G
guard

guard

github.com/garrytanエージェントワークフロー138.1k353 回インストール今日更新
リポジトリ

guard について

guard は、破壊的なコマンドへの警告と指定ディレクトリ内への編集制限を同時に有効にする gstack スキルです。両方の保護を一度に設定したいユーザー向けです。

主な機能

  1. 01破壊的なコマンドへの警告
  2. 02重大なコマンドパターンの拒否
  3. 03ディレクトリ単位の編集制限

活用シーン

  1. 01rm -rf や強制プッシュの実行前に警告
  2. 02選択したディレクトリ外の編集をブロック

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/garrytan/gstack --skill guard

インストール後、Claude Code で/guardを入力して読み込まれたか確認します。

同梱ファイルSKILL.md.tmpl

詳細

/guard — 完全安全モード

破壊的なコマンドへの警告と、ディレクトリ単位の編集制限を両方有効にします。 /careful と /freeze を1つのコマンドにまとめたものです。

依存関係に関する注意: このスキルは、兄弟関係にある /careful および /freeze スキルディレクトリのフックスクリプトを参照します。両方をインストールしておく必要があります(gstack セットアップスクリプトによって同時にインストールされます)。

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

セットアップ

編集を制限するディレクトリをユーザーに尋ねてください。AskUserQuestion を使用します。

  • 質問: "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."
  • テキスト入力(複数選択ではありません) — ユーザーがパスを入力します。

ユーザーがディレクトリパスを指定したら、共有ライターを使ってユーザーが選択した境界を設定します。物理的な絶対パスを解決し、調査状態のクリーンアップとともに置き換えをシリアライズします。

bash "$HOME/.claude/skills/gstack/freeze/bin/freeze-state.sh" set "<user-provided-path>"

ヘルパーが失敗した場合、境界が有効になったと主張してはいけません。状態を保持して復旧方法を報告し、共有ライターを迂回して直接書き込みや削除を行ってはいけません。

ユーザーに次のように伝えます。

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

保護の対象

破壊的なコマンドのパターンと安全な例外の全一覧は、/careful を参照してください。 編集境界の適用方法については、/freeze を参照してください。

コメント