# Understanding Rule Exceptions: When to Override the 10 ADHD-Friendly Rules in i-have-adhd

> Learn when to override the 10 ADHD-friendly rules in i-have-adhd. Discover how to use stop adhd mode and normal mode for temporary plain output and re-enable rules with trigger phrases.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: deep-dive
- Published: 2026-08-05

---

**Use "stop adhd mode" or "normal mode" to temporarily disable ADHD-friendly formatting when you need plain output, then re-enable rules with a trigger phrase.**

The *i-have-adhd* repository by ayghri implements a specialized **ADHD-friendly interaction model** for AI agents. Understanding when and how to override these persistent rules is essential for users who need flexibility without losing the core benefits of structured, actionable output. This guide explains the rule exception mechanism based on the actual source code implementation.

## How the ADHD-Friendly Rules Work by Default

The core behavior of this skill is defined in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md). This file establishes **persistent rules** that remain active for the entire session unless explicitly overridden. According to the source code, these rules include:

- Leading each response with the **next actionable step**
- **Numbering multi-step tasks** and restating progress after every turn
- Providing **concrete time estimates** and making wins visible

These formatting rules are **not suggestions**—they are enforced by the skill's runtime logic until a rule-exception command is detected.

## The Rule-Exception Trigger Mechanism

The override system uses **simple phrase detection** rather than complex configuration. The skill monitors incoming user messages for two specific trigger phrases:

| Trigger Phrase | Effect |
|---------------|--------|
| `stop adhd mode` | Disables ADHD-friendly formatting for subsequent replies |
| `normal mode` | Re-enables ADHD-friendly rules (toggles the internal flag off) |

Once detected, the skill flips an **internal toggle flag** that controls whether the special formatting pipeline is applied to the agent's output.

## When to Override: Practical Scenarios

Override the ADHD-friendly rules when structured formatting **hinders rather than helps** your current task:

- **Viewing large code dumps** — numbered steps and action-first phrasing clutter technical output
- **Free-form brainstorming** — exploratory thinking doesn't benefit from forced next-action framing
- **Copy-paste operations** — time estimates and progress restatements add noise to raw content
- **Multi-file analysis** — when you need the agent to focus on synthesis without iterative progress checks

## Architecture of Rule Enforcement and Exceptions

The implementation spans several components that work together to enforce and suspend rules:

| Component | Purpose | Key File |
|-----------|---------|----------|
| **Skill definition** | Holds persistent rules and metadata | [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) |
| **Plugin manifest** | Registers skill with the host platform | [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) |
| **Agent configuration** | Model-specific settings (OpenAI, Gemini) | [`skills/i-have-adhd/agents/openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/openai.yaml) and [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml) |
| **Evaluation scripts** | Automated testing of rule behavior | [`scripts/run_evals.py`](https://github.com/ayghri/i-have-adhd/blob/main/scripts/run_evals.py) |

The toggle logic itself is **runtime-level**—it doesn't modify the skill definition files or require reloading the plugin.

## Step-by-Step Override Workflow

Follow this sequence to temporarily suspend and resume ADHD-friendly rules:

1. **Start with rules active** — the agent applies formatting automatically after `/i-have-adhd` activation
2. **Issue override command** — type `stop adhd mode` to flip the disable flag
3. **Receive plain output** — the next response uses default model style without forced structure
4. **Re-enable when ready** — type `normal mode` to clear the flag and resume rule-driven formatting

This design preserves **session continuity**—you don't need to restart the agent or reload configurations to switch modes.

## Code Examples: Triggering Rule Exceptions

### Basic Trigger Commands

```text
User: stop adhd mode
→ Skill disables ADHD-friendly formatting. Next replies are unformatted.

```

```text
User: normal mode
→ Skill re-enables ADHD-friendly rules. Structured output resumes.

```

### Python Integration Example

```python
from cursor import Cursor

cursor = Cursor()

# Activate the skill with ADHD-friendly rules

cursor.run("/i-have-adhd")

# Work with structured, actionable output...

# Override for a task requiring plain formatting

cursor.run("stop adhd mode")

# Receive default model output without forced structure...

# Return to ADHD-friendly mode

cursor.run("normal mode")

```

### YAML Skill Invocation

```yaml

# Typical slash-command activation

/i-have-adhd

# Rules now persist until "stop adhd mode" is issued

```

## Key Files for Understanding Rule Overrides

| File | What It Contains |
|------|----------------|
| [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) | Core rule set, metadata, and trigger phrase definitions |
| [`skills/i-have-adhd/agents/openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/openai.yaml) | OpenAI-specific prompt configuration |
| [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml) | Gemini-specific prompt configuration |
| [`scripts/run_evals.py`](https://github.com/ayghri/i-have-adhd/blob/main/scripts/run_evals.py) | Test harness verifying rule enforcement and exception behavior |

The [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) file is the authoritative source for which phrases trigger exceptions and how the internal flag state is managed.

## Summary

- **Rule exceptions** in i-have-adhd are triggered by specific phrases: `stop adhd mode` and `normal mode`
- The override mechanism uses an **internal toggle flag** that persists for the session
- Override when structured formatting interferes with **code viewing, brainstorming, or raw content extraction**
- No configuration changes or restarts are required—**runtime phrase detection** handles all state changes
- Core implementation lives in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) with agent-specific settings in adjacent files

## Frequently Asked Questions

### What exact phrases trigger a rule exception in i-have-adhd?

The skill recognizes **"stop adhd mode"** to disable formatting and **"normal mode"** to re-enable it. These phrases are monitored at runtime by the skill's internal logic without requiring any prefix like `/` or special syntax.

### Does overriding rules permanently disable the skill?

No. The override is **temporary and session-scoped**. The internal flag can be toggled multiple times, and rules automatically resume when you issue `normal mode` or start a fresh session. The skill definition in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) remains unchanged.

### Can I customize the trigger phrases for rule exceptions?

The source analysis does not indicate user-customizable trigger phrases. The phrases **"stop adhd mode"** and **"normal mode"** are hardcoded in the skill's runtime logic. To modify them, you would need to edit the skill implementation directly.

### Will the agent remember my preference across sessions?

No. The toggle flag is **session-only**. Each new session starts with ADHD-friendly rules active unless the host platform persists state externally. You must issue `stop adhd mode` again if you want plain output in a new conversation.