# When to Break i-have-adhd Rules: 6 Exception-Handling Scenarios Explained

> Discover 6 exception handling scenarios where breaking i-have-adhd rules is necessary. Learn when to bypass restrictions for destructive actions, debug spirals, and more.

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

---

**Break i-have-adhd rules only when handling destructive actions, debug spirals, explicit explanation requests, real ambiguity, rule conflicts, or harness-level constraints that would otherwise prevent delivering the answer.**

The *i-have-adhd* skill enforces a strict, ADHD-friendly output style across all AI interactions, but its creator explicitly defines six scenarios where standard formatting must yield to safety, clarity, or system requirements. According to the source code in `ayghri/i-have-adhd`, these exceptions are centralized in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) and represent the only authorized deviations from the default "lead with the next action" protocol.

## The Six Valid Exceptions

The skill documentation encodes a "when-to-break-the-rules" table that governs every allowed relaxation of the output format. All six conditions prioritize user safety or interaction quality over rigid adherence to brevity.

### Full Explanation Requests

When a user explicitly asks for a detailed walkthrough or deep explanation, you must provide multi-paragraph responses. This override satisfies the user's intent for depth while still avoiding unnecessary preambles or closers. In [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), this exception acknowledges that **brevity would be counter-productive** when the user signals they want comprehensive coverage.

### Destructive Actions

Any operation that can cause irreversible damage—such as `rm -rf` commands, database schema migrations, or `DROP TABLE` statements—requires an immediate confirmation prompt. This breaks the "no preamble" rule because **safety outweighs brevity**. The assistant must pause, announce the risk, and await explicit user consent before proceeding.

### Debug Spirals

If a user repeatedly responds with "still broken" or similar iterations without progress, the assistant must halt the loop. Instead of offering another incremental fix, state the most likely faulty assumption and ask **one single diagnostic question**. This prevents endless back-and-forth and forces a decisive troubleshooting pivot.

### Real Ambiguity

When the user's request contains genuine ambiguity that would lead to guessing, the assistant should ask **one concise clarification question**. This exception ensures the subsequent action is correct rather than expedient, avoiding wasted effort on misinterpreted instructions.

### Rule Conflicts

If applying a standard rule would delete the answer itself or conflict with harness requirements, the rule is superseded. The primary goal is **delivering the answer**, not obeying a self-defeating constraint. This safeguard prevents the formatting system from destroying valid content through over-application of style rules.

### Harness-Level Constraints

System-level requirements—such as mandatory tool-call announcements—take precedence over stylistic preferences. Even if announcing "I will now call the search tool" violates the "no preamble" directive, **the surrounding system dictates the interaction flow**. The skill yields to the harness architecture in these cases.

## Architectural Implementation

The exception logic is not hard-coded in executable scripts but stored in declarative markdown. In [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), the "when-to-break-the-rules" section contains the canonical table governing these exceptions. The skill loads via [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json), which registers it with the Claude/Kimi plugin system, while [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh) (and its PowerShell/JavaScript counterparts) ensure the style enforcement remains active across sessions unless one of the six trigger conditions is met.

This architecture keeps the exception criteria human-readable and version-controlled. Modifying when to break i-have-adhd rules requires editing only the markdown file, not refactoring the activation hooks or extension definitions in [`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts).

## Practical Examples of Rule Breaking

The following YAML patterns demonstrate how each exception manifests in actual interactions:

### Destructive Action Confirmation

```yaml
User: "I need to drop the `orders` table in my database."
Assistant:
- "⚠️ This operation will permanently delete data. Do you want to proceed?"
- "If you confirm, I will run: `DROP TABLE orders;`"

```

*The confirmation prompt overrides the "no preamble" rule because safety is paramount.*

### Debug Spiral Intervention

```yaml
User: "The test still fails after the fix."
Assistant:
- "Step 4 of 4: The failure persists."
- "Possible cause: environment variable `DB_URL` missing."
- "Next: Can you confirm the value of `DB_URL`?"

```

*The assistant stops iterating and asks a single diagnostic question, satisfying the "debug spiral" exception.*

### Detailed Walkthrough

```yaml
User: "Explain how the OAuth flow works in detail."
Assistant:
- "1. The client redirects the user to the provider's authorization endpoint."
- "2. After consent, the provider redirects back with an authorization code."
- "3. The server exchanges the code for an access token."
- "4. The token is stored and used for subsequent API calls."
- "5. Refresh tokens are used to obtain new access tokens when the original expires."

```

*Even though multiple paragraphs are used, the response respects the exception for "explain" requests.*

## Summary

- **Break rules only for the six documented exceptions**: full explanations, destructive actions, debug spirals, real ambiguity, rule conflicts, and harness constraints.
- **Safety and clarity override brevity** when dealing with data destruction or endless troubleshooting loops.
- **Source of truth**: The [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) file contains the authoritative table defining when to break i-have-adhd rules.
- **System integration**: The skill activates through [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) and remains persistent via [`hooks/always-on.sh`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.sh), but checks the markdown exception table before enforcing style rules.

## Frequently Asked Questions

### Can I break i-have-adhd rules for any safety-critical operation?

Yes, but specifically for destructive actions like `rm -rf`, database migrations, or table drops. The skill mandates a confirmation prompt that breaks the "no preamble" rule, as accidental damage is unacceptable. This is the only safety-related exception; general caution does not qualify unless data loss is imminent.

### What constitutes a "debug spiral" under i-have-adhd exception handling?

A debug spiral occurs when a user repeatedly indicates that a fix failed—typically with phrases like "still broken"—without providing new diagnostic information. Rather than offering another incremental solution, you must halt the loop, state the most likely root cause, and ask exactly one targeted diagnostic question to break the cycle.

### How do harness-level constraints override the standard output format?

When the surrounding system (the "harness") requires specific announcements—such as declaring an upcoming tool call or acknowledging a system message—these constraints supersede the skill's "no preamble" rule. You must announce the tool call and perform it, even if the announcement violates standard ADHD-friendly brevity, because the harness dictates the interaction flow.

### Where are the exception conditions documented in the source code?

All six exception conditions are documented in the `when-to-break-the-rules` section of [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md). This markdown file serves as the single source of truth for the exception logic, while [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) and the `hooks/always-on.*` scripts handle the mechanical enforcement of the rules during runtime.