# When Should I-Have-ADHD Skill Rules Be Overridden? 6 Override Conditions Explained

> Discover when to override I-Have-ADHD skill rules. Learn about 6 key conditions for effective rule overriding in your AI agent.

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

---

**I-Have-ADHD skill rules should be overridden when users request explanations, destructive actions need confirmation, debugging stalls, requests are ambiguous, rules conflict with task completion, or agent harness constraints take precedence.**

The **I-Have-ADHD** skill enforces an ADHD-friendly communication style—terse, action-first, numbered steps, no tangents—across AI assistant interactions. Its canonical definition lives in [[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), with runtime enforcement handled by plugins and hooks that parse this file at load time. While the rules apply by default, the skill explicitly defines six **override conditions** (lines 17–27) that temporarily suspend strict enforcement for safety, clarity, or practical necessity.

## How the I-Have-ADHD Skill Architecture Enforces Rules

The skill operates through four coordinated layers that parse [[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) and apply its constraints:

| Layer | File Path | Purpose |
|-------|-----------|---------|
| **Canonical skill file** | [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) | Human-readable rules and override policy |
| **Mirror file** | [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) | Cursor runtime consistency |
| **Runtime plugins** | `.opencode/plugins/i-have-adhd.mjs`, [`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts) | Per-model rule enforcement (Claude, Codex, Pi, OMP, OpenCode) |
| **Always-on hooks** | `hooks/always-on.mjs`, `hooks/always-on.*` | Cross-session skill persistence |

When processing a request, these components check **override conditions** first. If matched, the plugin suspends default enforcement for that turn.

## The 6 Override Conditions for I-Have-ADHD Rules

According to the source code in [[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md), override I-Have-ADHD skill rules in these exact situations:

### 1. Explicit "Explain" or "Walk Me Through" Requests

**When users ask for full explanations**, the skill expands beyond terse responses while avoiding unnecessary preambles or closings.

**Normal rule-compliant response:**

```text
Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`.

```

**Overridden walkthrough response:**

```markdown

## Adding JWT Authentication

1. Install the library
   ```bash
   npm install jsonwebtoken
   ```

2. Open `src/auth.ts` and import the token verifier
   ```ts
   import jwt from 'jsonwebtoken';
   ```

3. Add a middleware function that verifies the token on each request …

*Next: test the endpoint with a sample token.*

```

### 2. Destructive Actions Requiring Confirmation

**Commands that delete data, force-push, or run schema migrations** supersede brevity with mandatory safety checks.

**User:** "Drop the `users` table."

**Overridden response:**

```text
⚠️ This command will delete all data in the `users` table.

Do you want to proceed? Reply "yes" to confirm.

```

### 3. Debug Spiral Detection

**After three consecutive "still broken" turns**, the skill stops iterating and pivots to diagnostic questioning instead of continuing step-by-step fixes.

**User:** "It's still failing after fixing the auth header." (third occurrence)

**Overridden response:**

```text
We've tried three fixes and the issue persists.
What is the exact error message you see now?

```

### 4. Genuine Request Ambiguity

**When the request is truly unclear**, a short clarifying question overrides the rule against asking questions—preventing harmful guesswork.

### 5. Rule-Task Conflict

**When strict adherence would prevent answering** (e.g., "what are my options"), the task takes precedence. The format adapts to list options with brief trade-offs rather than forcing a single actionable first line.

### 6. Agent Harness Constraint

**When the surrounding tool-calling system imposes higher-level constraints**, the skill announces the tool call and follows harness timing estimates instead of its own brevity rule.

## Runtime Implementation of Override Logic

The **OpenCode plugin** ([`.opencode/plugins/i-have-adhd.mjs`](https://github.com/ayghri/i-have-adhd/blob/main/.opencode/plugins/i-have-adhd.mjs)) and **TypeScript extension** ([[`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts)](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts)) implement this logic by:

1. Loading [[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) at runtime
2. Parsing the "When to break the rules" section
3. Checking each turn against the six conditions
4. Applying relaxed formatting only when matched
5. Reverting to strict rules on subsequent turns

The **always-on hook** ([`hooks/always-on.mjs`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.mjs)) ensures this behavior persists across sessions without requiring manual reactivation.

## Summary

- **I-Have-ADHD skill rules** enforce ADHD-friendly output: action-first, numbered steps, no tangents
- **Rules are overridden** only in six specific conditions defined in [[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) lines 17–27
- **Override triggers**: explanation requests, destructive actions, debug spirals, ambiguity, rule-task conflicts, harness constraints
- **Architecture**: Canonical skill file → mirror → runtime plugins → always-on hooks
- **Safety mechanism**: Overrides are temporary and turn-specific, preserving core behavior

## Frequently Asked Questions

### What triggers the debug spiral override?

**After three consecutive failed fix attempts**, counted as "still broken" responses. The skill then asks a diagnostic question instead of continuing the step-by-step pattern, breaking the loop of ineffective iteration.

### Does the I-Have-ADHD skill stay active across sessions?

**Yes.** The [`hooks/always-on.mjs`](https://github.com/ayghri/i-have-adhd/blob/main/hooks/always-on.mjs) hook and related always-on scripts keep the skill persistently loaded without requiring manual reactivation each session.

### Can I force the skill to provide longer explanations without triggering an override?

**No.** The skill architecture strictly enforces the six override conditions. To get expanded explanations, you must explicitly request them—e.g., "walk me through" or "explain"—which triggers **override condition 1** by design.

### Which AI models support the I-Have-ADHD skill?

**The runtime plugins support Claude, Codex, Pi, OMP, and OpenCode**, as implemented in [`.opencode/plugins/i-have-adhd.mjs`](https://github.com/ayghri/i-have-adhd/blob/main/.opencode/plugins/i-have-adhd.mjs) and [[`extensions/i-have-adhd.ts`](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts)](https://github.com/ayghri/i-have-adhd/blob/main/extensions/i-have-adhd.ts). Additional models can be supported by extending these plugin patterns.