# Troubleshooting i-have-adhd Rules Not Applying to AI Responses

> Fix i-have-adhd rules not applying to AI responses. Ensure correct condition skill, runner configuration, and check for interference from .i-have-adhd-always. Get your AI working with i-have-adhd rules.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: troubleshooting-guide
- Published: 2026-07-31

---

**If i-have-adhd rules are not applying to AI responses, verify that you are using `--condition-skill skills/i-have-adhd/SKILL.md` with `--condition candidate`, ensure your runner configuration specifies `"response_format": "claude-json"`, and confirm that `~/.claude/.i-have-adhd-always` is not interfering with baseline tests.**

The **i-have-adhd** repository by ayghri provides a response-style skill that restructures AI assistant outputs (Claude, Codex, Gemini) into actionable, ADHD-friendly formats. When the formatting rules fail to appear in generated responses, the issue typically stems from incorrect command-line flags, runner misconfigurations, or skill registration errors rather than the skill logic itself.

## Common Causes for Rules Not Applying

### Missing `--condition-skill` Flag

The evaluation script [`scripts/run_evals.py`](https://github.com/ayghri/i-have-adhd/blob/main/scripts/run_evals.py) only injects the skill text when explicitly instructed. If you run the evaluation without the `--condition-skill` argument, the candidate condition receives the original task prompt only, bypassing the ADHD style rules entirely.

**Incorrect command:**

```bash
python3 scripts/run_evals.py run \
    --runner claude \
    --condition candidate \
    --output evals/results.jsonl

```

**Correct command:**

```bash
python3 scripts/run_evals.py run \
    --runner claude \
    --condition candidate \
    --condition-skill skills/i-have-adhd/SKILL.md \
    --output evals/results.jsonl

```

### Using the Baseline Condition

The `--condition` argument must be set to `candidate` (or another non-baseline condition) to apply the skill. The **baseline** condition intentionally runs tasks without any injected style to provide a control comparison.

Running `--condition baseline` will never apply the rules, as this is the expected behavior for isolated testing.

### Runner Configuration Errors

In [`evals/runners.example.json`](https://github.com/ayghri/i-have-adhd/blob/main/evals/runners.example.json), the `"response_format"` must be set to `"claude-json"` for Claude runners. If the format is set to `"text"`, the script cannot extract JSON-encoded usage information, causing the skill injection step to be skipped.

Verify your runner configuration includes:

```json
{
  "command": ["claude", "request", "-"],
  "response_format": "claude-json"
}

```

### Always-On File Conflicts

If you have created the file `~/.claude/.i-have-adhd-always`, the skill automatically injects into every Claude session. When running evaluations, this contaminates the baseline condition because the file applies globally.

Isolate your evaluation environment from this flag by temporarily renaming the file or using a clean environment, as detailed in [`evals/README.md`](https://github.com/ayghri/i-have-adhd/blob/main/evals/README.md).

### Malformed Skill Syntax

The YAML front-matter in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) (lines 1-15) must be well-formed. Malformed YAML causes the skill parser to abort, resulting in plain-text responses without ADHD formatting.

Verify the header structure:

```bash
cat skills/i-have-adhd/SKILL.md | head -n 20

```

## Diagnostic Steps to Verify Setup

1. **Confirm the skill file is reachable and valid**
   
   ```bash
   cat skills/i-have-adhd/SKILL.md | head -n 20
   ```

   
   Verify the file starts with the YAML header (lines 1-5) containing the skill definition.

2. **Validate YAML syntax**
   
   ```bash
   python -c "import yaml, pathlib; print(yaml.safe_load(pathlib.Path('skills/i-have-adhd/SKILL.md').read_text()))"
   ```

   
   If this raises a `YAMLException`, correct the front-matter before proceeding.

3. **Inspect the runner configuration**
   
   ```bash
   cat evals/runners.example.json
   ```

   
   Confirm the `"command"` array calls the appropriate CLI and `"response_format"` matches your target platform (`claude-json` for Claude).

4. **Check for always-on conflicts**
   
   ```bash
   ls -la ~/.claude/.i-have-adhd-always
   ```

   
   If this file exists during evaluation, remove or rename it to prevent baseline contamination.

## Manual Testing Procedures

### Testing with Claude Code

Install the plugin and invoke directly:

```bash
claude plugin marketplace add ayghri/i-have-adhd
claude plugin install i-have-adhd@i-have-adhd

```

Then trigger with:

```text
/i-have-adhd

```

The first line of the response should be an actionable command (e.g., `Run npm install...`) followed by numbered steps, confirming the skill is active.

### Testing with Codex

```bash
codex plugin marketplace add ayghri/i-have-adhd --ref main
codex plugin add i-have-adhd@i-have-adhd

```

Invoke explicitly with:

```text
$i-have-adhd

```

### Disabling the Skill Mid-Session

When the user says "stop adhd mode" or "normal mode", the skill automatically ends. In scripted tests, simulate this by sending the termination phrase as a separate message to verify the toggle functionality.

## Summary

- **Use `--condition-skill skills/i-have-adhd/SKILL.md`** when running [`scripts/run_evals.py`](https://github.com/ayghri/i-have-adhd/blob/main/scripts/run_evals.py) to inject the rules.
- **Select `--condition candidate`**, never `baseline`, when testing the skill application.
- **Set `"response_format": "claude-json"`** in your runner configuration for proper parsing.
- **Remove `~/.claude/.i-have-adhd-always`** before running baseline evaluations to prevent contamination.
- **Validate YAML syntax** in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) using Python's yaml module to ensure the parser can read the file.

## Frequently Asked Questions

### Why do rules work in my IDE but not in evaluation scripts?

IDE plugins use direct triggers (`/i-have-adhd` or `$i-have-adhd`) that bypass the evaluation framework. Evaluation scripts require explicit `--condition-skill` flags because they operate as isolated test harnesses. The runner must inject the skill text wrapped in `<response_style>` tags, which only happens when the flag is present and the condition is not `baseline`.

### How can I tell if the skill file is being parsed correctly?

Run the YAML validation command: `python -c "import yaml, pathlib; print(yaml.safe_load(pathlib.Path('skills/i-have-adhd/SKILL.md').read_text()))"`. If this returns a Python dictionary without errors, the front-matter is valid. If it raises an exception, the skill parser is likely aborting and you are receiving plain-text responses.

### What is the difference between using `/i-have-adhd` and the `--condition-skill` flag?

The slash command `/i-have-adhd` is a manual trigger used within Claude Code sessions that activates the skill for that specific conversation. The `--condition-skill` flag is used with [`scripts/run_evals.py`](https://github.com/ayghri/i-have-adhd/blob/main/scripts/run_evals.py) to automatically inject the skill content into the system prompt for automated evaluations. The former requires the plugin to be installed in your IDE; the latter requires the skill file path to be correct in the command line.

### Why does my baseline condition show ADHD formatting?

If `~/.claude/.i-have-adhd-always` exists in your home directory, Claude automatically applies the skill to every session, including those meant to be baseline comparisons. This file acts as a global toggle that overrides evaluation isolation. Remove or rename this file before running baseline conditions to ensure clean A/B testing.