> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equa.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Soul evil

# SOUL Evil Hook

The SOUL Evil hook swaps the **injected** `SOUL.md` content with `SOUL_EVIL.md` during
a purge window or by random chance. It does **not** modify files on disk.

## How It Works

When `agent:bootstrap` runs, the hook can replace the `SOUL.md` content in memory
before the system prompt is assembled. If `SOUL_EVIL.md` is missing or empty,
Equabot logs a warning and keeps the normal `SOUL.md`.

Sub-agent runs do **not** include `SOUL.md` in their bootstrap files, so this hook
has no effect on sub-agents.

## Enable

```bash theme={null}
equabot hooks enable soul-evil
```

Then set the config:

```json theme={null}
{
  "hooks": {
    "internal": {
      "enabled": true,
      "entries": {
        "soul-evil": {
          "enabled": true,
          "file": "SOUL_EVIL.md",
          "chance": 0.1,
          "purge": { "at": "21:00", "duration": "15m" }
        }
      }
    }
  }
}
```

Create `SOUL_EVIL.md` in the agent workspace root (next to `SOUL.md`).

## Options

* `file` (string): alternate SOUL filename (default: `SOUL_EVIL.md`)
* `chance` (number 0–1): random chance per run to use `SOUL_EVIL.md`
* `purge.at` (HH:mm): daily purge start (24-hour clock)
* `purge.duration` (duration): window length (e.g. `30s`, `10m`, `1h`)

**Precedence:** purge window wins over chance.

**Timezone:** uses `agents.defaults.userTimezone` when set; otherwise host timezone.

## Notes

* No files are written or modified on disk.
* If `SOUL.md` is not in the bootstrap list, the hook does nothing.

## See Also

* [Hooks](/hooks)
