# フルセーフティモード (guard)

> 危険なコマンドの警告とディレクトリ単位の編集制限を同時に有効にし、/careful と /freeze を一度に適用します。

- カテゴリ: [ハードニング](https://www.myskills.tools/ja/categories/hardening/)
- 提供元: コミュニティ · Garry Tan
- リポジトリ: https://github.com/garrytan/gstack/tree/main/guard (commit 6237994 · v0.1.0)
- SKILL.md: https://github.com/garrytan/gstack/blob/main/guard/SKILL.md
- インストールコマンド: `npx skills add garrytan/gstack --skill guard`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Cursor, Copilot
- 権限: read-repo ✓, write-files ✗, shell ✓, network ✗
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。
- ⚠ ディレクトリ外の編集を止めるフックを登録し、境界はセッション終了後も /unfreeze まで残ります。利用記録はローカルの gstack 分析ファイルに書かれます。

## 基本ルール

境界設定ヘルパーが失敗した場合は境界が有効だと主張せず、共有ライターを迂回した直接の書き込みや削除もしません。

## 実行フェーズ

1. **対象ディレクトリ指定** — AskUserQuestion のテキスト入力で、編集を制限するディレクトリをユーザーに尋ねます。
2. **編集境界を設定** — 共有の freeze-state.sh set でパスを設定します。失敗した場合は状態を保持し、復旧方法を報告します。
3. **保護内容を通知** — rm -rf や force-push などは警告され、致命的なものは拒否されること、ディレクトリ外の編集はブロックされ /unfreeze で解除できることを伝えます。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 不要 | allowed-tools に Write/Edit は含まれず、むしろフックで境界外のファイル編集をブロックします。 |
| コマンド実行 | 一部で必要 | gstack の freeze-state.sh などのヘルパーのみを実行し、フックで危険なコマンドを検査します。 |
| 外部通信 | 不要 | ネットワークアクセスは不要です。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: guard
version: 0.1.0
description: "Full safety mode: destructive command warnings + directory-scoped edits. (gstack)"
triggers:
  - full safety mode
  - guard against mistakes
  - maximum safety
allowed-tools:
  - Bash
  - Read
  - AskUserQuestion
hooks:
  PreToolUse:
    - 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"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/careful/bin/check-careful.sh\""'
          statusMessage: "Checking for destructive commands..."
    - matcher: "Edit"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
    - matcher: "Write"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
    - matcher: "NotebookEdit"
      hooks:
        - type: command
          command: 'bash -c "exec bash \"$HOME/.claude/skills/gstack/freeze/bin/check-freeze.sh\""'
          statusMessage: "Checking freeze boundary..."
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/guard/
