# SOUL Evil Hook Documentation

## Overview

The SOUL Evil hook is a feature that replaces injected `SOUL.md` content with `SOUL_EVIL.md` during specified conditions, operating entirely in memory without modifying disk files.

## Core Functionality

When `agent:bootstrap` runs, the hook can replace the `SOUL.md` content in memory before the system prompt is assembled. If the evil variant is unavailable, the system logs a warning and maintains the standard SOUL configuration.

An important limitation: this hook does not function for sub-agent runs, as they exclude `SOUL.md` from their bootstrap files.

## Configuration

Enable the hook via command:
```bash
openclaw hooks enable soul-evil
```

Then configure using JSON with these parameters:
- `file`: alternate SOUL filename (defaults to `SOUL_EVIL.md`)
- `chance`: probability value between 0–1 for random activation
- `purge.at`: scheduled daily trigger in HH:mm format (24-hour)
- `purge.duration`: window length (examples: `30s`, `10m`, `1h`)

The purge window takes precedence over random chance when both are active.

## Key Characteristics

The hook respects the timezone setting from `agents.defaults.userTimezone`, falling back to host timezone if unspecified. It requires creating `SOUL_EVIL.md` in the agent workspace root directory alongside the standard SOUL file.
