# Integrating the i-have-adhd Skill with Custom System Prompts: 3 Methods Explained

> Learn 3 methods to integrate the i-have-adhd skill with custom system prompts. Enhance your agent's capabilities by prepending rules, using YAML/TOML configs, or the GEMINI wrapper.

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

---

**The i-have-adhd skill integrates with custom system prompts by prepending its rule definition ([`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)) directly to the system message, loading it through YAML/TOML agent configs, or using the [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) convenience wrapper.**

The **i-have-adhd** skill is a lightweight, rule-based output-shaping module designed to make LLM responses more ADHD-friendly—prioritizing brevity, clear action steps, and chunkable information. When integrating this skill with custom system prompts or other instructions, you have multiple pathways depending on your infrastructure and whether you use raw prompt engineering, agent harnesses, or model-specific configurations.

## Architecture Overview

Understanding how the skill is structured helps you choose the right integration method.

- **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)** — The core rule set. It declares the skill name, description, and **10 formatting rules** the model must obey.
- **[`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json)** — Registers the skill with the harness so it can be discovered by name.
- **Agent configs** — Model-specific files in `skills/i-have-adhd/agents/` tell the harness which LLM to use and where to inject the skill:
  - [`agents/openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/agents/openai.yaml) for OpenAI models
  - [`agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/agents/gemini.toml) for Gemini models
- **[`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md)** — A convenience wrapper that simply points to [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) for quick manual inclusion.

Once activated, the skill remains in effect for the entire session until the user issues **"stop adhd mode"** or **"normal mode"** [SKILL.md – Persistence section](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md#persistence).

## Method 1: Direct System Prompt Prepending

The simplest approach for custom integrations is manually injecting [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) into your system prompt.

Structure your prompt with clear delimiters:

```text
You are a helpful coding assistant.

--- Begin i-have-adhd rules ---
<contents of skills/i-have-adhd/SKILL.md>
--- End i-have-adhd rules ---

[Your custom instructions here]

```

### Using Include Directives

Many prompt-templating engines support `@` path includes. Prepend the skill file, then append your instructions:

```markdown
@./skills/i-have-adhd/SKILL.md

{{CUSTOM_INSTRUCTIONS}}

```

The harness resolves the `@` path at runtime and injects the full rule set before your custom content.

### Python Example: Loading Programmatically

```python
import pathlib

# Load the skill definition

skill_md = pathlib.Path("skills/i-have-adhd/SKILL.md").read_text()

# Your custom prompt

custom_prompt = "You are an expert Python tutor. Explain concepts concisely."

# Build the final system prompt

system_prompt = f"{skill_md}\n\n{custom_prompt}"

# Pass to the LLM (example using OpenAI client)

client.chat(
    model="gpt-4",
    messages=[{"role": "system", "content": system_prompt},
              {"role": "user", "content": "How do list comprehensions work?"}]
)

```

## Method 2: Using the GEMINI.md Wrapper

For quick manual setups, the repository provides [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md)—a thin wrapper that includes [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) without duplication.

### Bash Example: Concatenating with Custom Instructions

```bash

# Start with the wrapper

cat GEMINI.md > tmp_prompt.txt

# Append your own instructions

echo -e "\nYou are a senior DevOps engineer.\n" >> tmp_prompt.txt

# Run evaluation with the assembled prompt

python3 scripts/run_evals.py run \
  --runner claude \
  --condition candidate \
  --custom-prompt-file tmp_prompt.txt \
  --trials 1

```

This method avoids path resolution issues since [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) contains the actual skill content by reference.

## Method 3: Agent Configuration Files

For production deployments using the skill harness, configure the skill through the provided YAML and TOML files.

### OpenAI Agent Config

Edit [`skills/i-have-adhd/agents/openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/openai.yaml):

```yaml
model: gpt-4
system_prompt: |
  @./skills/i-have-adhd/SKILL.md
  You are a CI/CD pipeline reviewer. Focus on actionable feedback.

```

### Gemini Agent Config

Edit [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml):

```toml
model = "gemini-1.5-pro"
system_prompt = """
@./skills/i-have-adhd/SKILL.md
{{YOUR_CUSTOM_PROMPT}}
"""

```

When the agent initializes, the harness:
1. Parses the config file
2. Resolves the `@` include to inject [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)
3. Appends your custom instructions
4. Sends the assembled prompt to the specified model

## Key Files Reference

| File | Purpose | Location |
|------|---------|----------|
| [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) | Core 10-rule definition shaping all outputs | [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) |
| [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) | Skill registration manifest | [`plugin.json`](https://github.com/ayghri/i-have-adhd/blob/main/plugin.json) |
| [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) | Wrapper for manual prompt assembly | [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) |
| [`openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/openai.yaml) | OpenAI-specific agent configuration | [`skills/i-have-adhd/agents/openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/openai.yaml) |
| [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) | Gemini-specific agent configuration | [`skills/i-have-adhd/agents/gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/agents/gemini.toml) |

## Summary

- **Direct prepending** — Load [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) programmatically or via `@` includes for maximum flexibility in any LLM client.
- **Wrapper shortcut** — Use [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) for quick bash-based workflows without path management.
- **Agent configs** — Leverage [`openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/openai.yaml) or [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) when operating within the skill harness for automatic injection and model-specific tuning.

All methods ensure the **10 ADHD-friendly formatting rules** apply before your custom instructions execute, creating consistently action-oriented, scannable LLM outputs.

## Frequently Asked Questions

### Can I modify the 10 rules in SKILL.md for my use case?

Yes. [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) is plain Markdown—edit it directly to adjust rule priorities or add domain-specific constraints. The harness will use your modified version when resolving `@` includes. Keep the file structure intact so persistence commands like "stop adhd mode" continue to function.

### What happens if I include both SKILL.md and GEMINI.md in the same prompt?

You will duplicate the rule set. [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) is strictly a pointer to [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md), so including both sends the rules twice. Use one or the other depending on whether your tooling supports `@` path resolution.

### Does the skill work with Claude, Mistral, or other models?

Yes. The skill is model-agnostic. [`GEMINI.md`](https://github.com/ayghri/i-have-adhd/blob/main/GEMINI.md) and [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) contain no provider-specific syntax. Any LLM that accepts system prompts—including Claude, Llama, or Mistral—will process the rules. The [`openai.yaml`](https://github.com/ayghri/i-have-adhd/blob/main/openai.yaml) and [`gemini.toml`](https://github.com/ayghri/i-have-adhd/blob/main/gemini.toml) files are convenience configs; copy their structure for other providers.