Troubleshooting i-have-adhd Rules Not Applying to AI Responses
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 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:
python3 scripts/run_evals.py run \
--runner claude \
--condition candidate \
--output evals/results.jsonl
Correct command:
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, 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:
{
"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.
Malformed Skill Syntax
The YAML front-matter in 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:
cat skills/i-have-adhd/SKILL.md | head -n 20
Diagnostic Steps to Verify Setup
-
Confirm the skill file is reachable and valid
cat skills/i-have-adhd/SKILL.md | head -n 20Verify the file starts with the YAML header (lines 1-5) containing the skill definition.
-
Validate YAML syntax
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. -
Inspect the runner configuration
cat evals/runners.example.jsonConfirm the
"command"array calls the appropriate CLI and"response_format"matches your target platform (claude-jsonfor Claude). -
Check for always-on conflicts
ls -la ~/.claude/.i-have-adhd-alwaysIf 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:
claude plugin marketplace add ayghri/i-have-adhd
claude plugin install i-have-adhd@i-have-adhd
Then trigger with:
/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
codex plugin marketplace add ayghri/i-have-adhd --ref main
codex plugin add i-have-adhd@i-have-adhd
Invoke explicitly with:
$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.mdwhen runningscripts/run_evals.pyto inject the rules. - Select
--condition candidate, neverbaseline, when testing the skill application. - Set
"response_format": "claude-json"in your runner configuration for proper parsing. - Remove
~/.claude/.i-have-adhd-alwaysbefore running baseline evaluations to prevent contamination. - Validate YAML syntax in
SKILL.mdusing 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 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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →