How the i-have-adhd Plugin Resolves When Skill Rules Conflict with Agent Harness Requirements

When skill rules conflict with agent harness requirements in the i-have-adhd plugin, the harness's system prompt takes precedence while the skill preserves its ADHD‑friendly "shape" for the rest of the response.

The ayghri/i-have-adhd repository provides a set of output-shaping rules designed to optimize AI assistant responses for users with ADHD. These rules demand action‑first, numbered steps, concrete time estimates, and no pre‑ambles. However, the plugin runs inside various agent harnesses—Claude Code, Codex, OpenCode, Gemini, and others—each supplying their own system prompts that may impose incompatible requirements.

The Hierarchy: Harness System Prompt Outranks Skill Rules

The conflict resolution policy is explicitly codified in skills/i-have-adhd/SKILL.md. Line 126 states:

"A rule fights the harness. Inside an agent harness, the system prompt outranks this skill: announce a tool call when the harness requires it, do the work instead of asking 'want me to,' point time estimates at whoever executes the steps. Same principle as 5: the constraint wins, the shape stays."

This principle appears again in skills/i-have-adhd/agents/gemini.toml at line 21:

"...or the harness's own system prompt requires something these rules ban (the harness wins; keep the shape)."

How Conflicts Are Detected and Resolved

The plugin applies a three‑step resolution process when skill rules conflict with agent harness requirements:

  1. Parse the harness system prompt first – The agent harness's constraints are evaluated before skill rules are applied.
  2. Yield on conflicting elements – Any harness‑mandated behavior that violates skill rules is emitted anyway (tool‑call announcements, greetings, safety confirmations).
  3. Preserve ADHD‑friendly shaping – The remainder of the response follows the skill's action‑first, concise, concrete format.

Code Examples: Conflicts in Practice

Tool-Call Announcement Conflict

The skill forbids "ask before doing," but a harness may require explicit tool‑call announcements.

// Harness-provided system prompt (simplified)
{
  "system_prompt": "When you need to run a tool, announce it first."
}

Resulting response (harness wins, shape kept):


/tool run npm install jsonwebtoken
Next: edit src/auth.ts:42 with the new token handling.

The harness requirement for announcement is honored, yet the subsequent output maintains the skill's direct, step‑based format.

Pre-Ambles Greeting Conflict

A harness may mandate a greeting, which directly violates the skill's "no pre‑ambles" rule.

// Harness requirement
"Please start every response with: 'Hello, here is what I found:'"

Resulting response:


Hello, here is what I found:
Run `npm install jsonwebtoken` then edit `src/auth.ts:42`.

The greeting appears as required, but the content immediately shifts to the skill's preferred action‑first style.

Safety-First Override Conflict

Destructive actions trigger harness safety rules that override the skill's default behavior.

// Harness safety rule
"Before any destructive command, ask for confirmation."

Resulting response:


Are you sure you want to delete the database? (yes/no)

After confirmation, the skill resumes its normal shaping for subsequent steps.

Key Source Files

Understanding when skill rules conflict with agent harness requirements requires familiarity with these files:

Summary

  • Harness system prompts always win in direct conflicts with skill rules.
  • The "shape" of ADHD‑friendly output is preserved wherever possible—action‑first ordering, concrete steps, and time estimates remain intact.
  • Conflicts are resolved at parse time, not through negotiation or error states.
  • Safety and protocol requirements (tool announcements, confirmations, greetings) are never suppressed, even when they violate skill preferences.

Frequently Asked Questions

What exactly counts as a "conflict" between skill rules and harness requirements?

A conflict occurs when a harness's system prompt mandates behavior that the skill explicitly forbids—such as requiring a greeting when the skill bans pre‑ambles, or demanding tool‑call announcements when the skill prescribes immediate action. According to SKILL.md line 126, the harness's instruction "outranks" the skill's opposing rule.

Does the plugin ever override a harness safety requirement?

No. The hierarchy is absolute: harness safety rules, tool protocols, and system‑level constraints always take precedence. The skill's shaping logic applies only to non‑conflicting portions of the response. As noted in gemini.toml line 21, the harness wins while the plugin attempts to "keep the shape."

Can I modify which requirements take priority?

The conflict resolution hierarchy is hardcoded into the skill definition files. Users cannot reconfigure this precedence without forking the repository and editing SKILL.md or individual harness configurations in skills/i-have-adhd/agents/. Doing so would risk breaking compatibility with agent harnesses that depend on specific behaviors.

How does the plugin handle multiple conflicting requirements from different sources?

The plugin processes constraints in strict order: harness system prompt first, then skill rules. If multiple harness‑level constraints conflict with each other, standard harness behavior applies—the skill does not interpose itself between harness‑internal contradictions.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →