How the 'i-have-adhd' AI Skill Modifies Coding Assistant Output for Focus and Action

The 'i-have-adhd' AI skill is a persistent output-shaping layer that rewrites every model reply into a concise, numbered, immediately actionable format—eliminating preambles, closing pleasantries, and tangential prose so developers with ADHD can execute without cognitive overhead.

The i-have-adhd skill, developed in the repository ayghri/i-have-adhd, transforms how coding assistants communicate by injecting behavioral rules directly into the system prompt. Unlike prompting tricks that must be repeated each turn, this skill creates durable, session-wide changes to the assistant's voice—making every response scannable, bounded, and executable in a single glance.


Source of Truth: SKILL.md Defines All Behavioral Rules

All ten directives that reshape the assistant's output live in a single canonical file: skills/i-have-adhd/SKILL.md.

This markdown file enumerates concrete, enforceable rules including:

  • "Lead with the next action" — the very first line must be immediately executable
  • "Number multi-step tasks" — sequential numbering for any procedure with more than one step
  • "Give specific time estimates" — concrete duration predictions, not vague ranges
  • "No preamble or closing pleasantries" — eliminate "Sure, I'd be happy to help..." and "Let me know if you need anything else"
  • One bounded action per step — each numbered item must be completable in isolation
  • End with exactly one more short actionable item — a final, concrete next move

The file also contains a Persistence section instructing the model to maintain this style until explicitly disabled.


Plugin Architecture: How Rules Inject Into the System Prompt

The OpenCode plugin .opencode/plugins/i-have-adhd.mjs implements the injection mechanism. It reads SKILL.md, strips its YAML front-matter, and appends the rule body to the model's system prompt via the experimental.chat.system.transform hook.

Two Activation Modes

The plugin supports both on-demand and persistent activation:

Mode Trigger Behavior
On-demand /i-have-adhd command Rules load for current session only
Always-on ~/.config/opencode/.i-have-adhd-always file exists Rules injected on every turn automatically

The Injection Process

When activated, the plugin:

  1. Concatenates a short header ("ADHD MODE ACTIVE …") with the full rule body from SKILL.md
  2. Passes this combined string to experimental.chat.system.transform
  3. The OpenCode runtime appends it to the system prompt sent to the language model

This mirrors the behavior in hooks/always-on.mjs (used by Claude Code), which demonstrates equivalent always-on injection logic that the OpenCode plugin replicates.


Activation and Deactivation Commands

Activate On-Demand

/i-have-adhd

Runs the command to load ADHD mode for the current session only.

Enable Always-On Mode

touch ~/.config/opencode/.i-have-adhd-always

Creates the flag file that triggers automatic rule injection on every assistant turn, persisting across sessions.

Disable Always-On Mode

rm ~/.config/opencode/.i-have-adhd-always

Removes the flag file, returning to standard assistant behavior.


Transformed Output: Before and After Effect

Because the rules become part of the system prompt, the language model automatically restructures every reply. Here's how the 'i-have-adhd' AI skill modifies coding assistant output in practice:

Generic response:

"I'd be happy to help you fix the authentication bug. First, you'll want to make sure you have the right dependencies installed. The jsonwebtoken package is commonly used for this. Once that's set up, you can look at your auth file and make some changes to the verifyToken function. Let me know if you need more assistance!"

ADHD-mode response:


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

1. Open `src/auth.ts`.
2. Replace `verifyToken` (lines 42‑58) with the snippet below.
3. Run `npm test -- auth.spec.ts`.

About 15 minutes if tests already exist.
Login now works with magic links. Try: `npm run dev`, open `/login`.

The transformation enforces four structural requirements:

  1. Immediate executable lead — no throat-clearing, no context-gathering questions
  2. Numbered single-action steps — each item bounded and completable
  3. Concrete time estimate — "About 15 minutes" not "a while"
  4. Single final action — one more concrete move, then hard stop

Persistence Model: Session vs. Permanent Control

The skill uses two layered persistence mechanisms:

  • Model-level persistence: The rules themselves instruct the assistant to maintain ADHD mode until the user says "stop adhd mode" or "normal mode"—allowing the model to exit for the current session
  • File-level persistence: The ~/.config/opencode/.i-have-adhd-always flag controls whether the plugin automatically re-injects rules on every new session

This design lets users toggle behavior by utterance (fast, temporary) or by filesystem state (durable, cross-session).


Key Files and Their Roles

File Purpose
skills/i-have-adhd/SKILL.md Canonical rule set defining output transformation requirements
.opencode/plugins/i-have-adhd.mjs Plugin implementing command handler and system prompt injection
opencode.json Plugin declaration for OpenCode runtime auto-loading
hooks/always-on.mjs Reference implementation showing Claude Code equivalent behavior

Summary

  • skills/i-have-adhd/SKILL.md contains ten concrete directives that restructure assistant output into actionable, numbered, time-bounded steps
  • .opencode/plugins/i-have-adhd.mjs implements the injection mechanism via experimental.chat.system.transform, supporting both /i-have-adhd on-demand command and always-on flag-file activation
  • The ~/.config/opencode/.i-have-adhd-always file enables persistent, cross-session behavior without repeated commands
  • Output transformations include: leading with executable commands, numbered single-action steps, specific time estimates, elimination of preambles/closings, and exactly one final actionable item
  • The skill demonstrates how system prompt engineering can create durable, persona-level modifications to AI assistant behavior

Frequently Asked Questions

How do I activate the 'i-have-adhd' skill temporarily?

Type /i-have-adhd in your OpenCode session. The plugin loads SKILL.md, strips its YAML front-matter, and injects the rules into the current session's system prompt. This lasts until you exit the session or say "stop adhd mode".

What file controls permanent always-on behavior?

The empty flag file at ~/.config/opencode/.i-have-adhd-always. Create it with touch to enable automatic rule injection on every turn across all sessions; delete it with rm to disable. The plugin checks for this file's existence in its initialization logic.

Can the model exit ADHD mode without deleting the flag file?

Yes. The SKILL.md rules include a Persistence directive instructing the model to honor utterances like "stop adhd mode" or "normal mode". This disables the style for the current session only, while the flag file remains for future sessions.

Where does the actual output transformation happen?

In the language model itself, because the i-have-adhd.mjs plugin appends the full ruleset to the system prompt via experimental.chat.system.transform. The model receives "ADHD MODE ACTIVE …" followed by the ten directives, then generates compliant output without additional post-processing.

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 →