guard

Activates maximum safety mode by combining destructive command warnings and edit scope restrictions.

<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs -->

name: guard description: > Maximum safety mode — activates both /careful (destructive command warnings) and /freeze (edit scope restriction) together. Triggers on "guard", "가드", "최대 안전", "max safety", "maximum safety", "안전 모드 풀". allowed-tools:

  • Bash
  • Read
  • AskUserQuestion hooks: PreToolUse:
    • matcher: "Bash" hooks:
      • type: command command: "bash ${CLAUDE_SKILL_DIR}/../careful/bin/check-careful.sh" statusMessage: "Checking for destructive commands..."
    • matcher: "Edit" hooks:
      • type: command command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh" statusMessage: "Checking freeze boundary..."
    • matcher: "Write" hooks:
      • type: command command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh" statusMessage: "Checking freeze boundary..."

/guard — Maximum Safety Mode

Activates both safety layers:

  • Destructive command warnings (/careful) — warns before rm -rf, DROP TABLE, force-push, etc.
  • Edit scope restriction (/freeze) — blocks edits outside a chosen directory

Preamble

Before executing this skill:

  1. Load context from memory:

    memory_search(query: "{skill-relevant-query}", associative: true, limit: 5)
    memory_search(tag: "{skill-name}", limit: 3)
    

    Review returned memories for relevant past context, decisions, and patterns.

  2. Check OMC state for active work:

    state_get_status()
    

    If conflicting active tasks exist, warn the user before proceeding.

  3. Detect current branch (for git-related skills):

    git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "not-a-git-repo"
    
  4. Check proactive mode:

    state_read("occ-proactive")
    

    If "false": do NOT proactively suggest other OpenClaw-CC skills during this session. Only run skills the user explicitly invokes.

  5. Log skill activation:

    memory_daily_log(type: "note", entry: "Skill activated: /{skill-name}")
    

Setup

This skill combines /careful + /freeze. The destructive command warnings are active immediately. For edit restrictions, specify a directory:

Ask via AskUserQuestion: "Guard mode activated. Destructive command warnings are on. Would you also like to restrict edits to a specific directory? Enter a path, or type 'skip' to allow all."

If the user provides a path (not 'skip'):

FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd)
FREEZE_DIR="${FREEZE_DIR%/}/"
STATE_DIR="${CLAUDE_PLUGIN_DATA:-${HOME}/.omc/state}"
mkdir -p "$STATE_DIR"
echo "$FREEZE_DIR" > "$STATE_DIR/freeze-dir.txt"

If the user says 'skip': only /careful is active, /freeze is not set.

Log:

memory_daily_log(type: "note", entry: "Guard mode activated: careful + freeze({path or 'none'})")

Deactivation

  • Run /unfreeze to remove edit restrictions only (keeps destructive warnings)
  • End the conversation to remove both protections
  • Hooks are session-scoped

Completion Status Protocol

Every skill must end with one of these status codes:

CodeMeaningWhen to Use
DONEAll steps completed, evidence providedRoot cause found + fix verified, PR created, review finished
DONE_WITH_CONCERNSCompleted with warnings or caveatsTests pass but coverage dropped, fix applied but can't fully verify
BLOCKEDCannot proceed, requires user intervention3 failed attempts, missing permissions, external dependency down
NEEDS_CONTEXTMissing information to continueUnclear requirements, need user clarification

Escalation Rules

  1. 3-strike rule: After 3 failed attempts at any step, STOP and escalate to user. Do not continue guessing. Present what was tried and ask for direction.

  2. Scope escalation: If fix/change touches 5+ files unexpectedly, pause and confirm with the user before proceeding.

  3. Security uncertainty: If you are unsure about a security implication, STOP and escalate. Never guess on security.

  4. Verification requirement: Never claim DONE without evidence.

    • "Should work" → RUN IT. Confidence is not evidence.
    • "Already tested earlier" → Code changed since. Test again.
    • "Trivial change" → Trivial changes break production.

Output Format

═══════════════════════════════════════
Status: {DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT}
Summary: {one-line description of outcome}
Evidence: {test output, verification results, or blocking reason}
═══════════════════════════════════════