How i-have-adhd Handles Multi-Step Tasks with Numbered Lists

The i-have-adhd repository enforces numbered lists for multi-step tasks by injecting a skill-based rule into the model's system prompt, requiring each step to be a single, bounded action without compound operations.

The i-have-adhd project provides a specialized skillset designed to help AI assistants communicate complex procedures in an ADHD-friendly format. By implementing strict formatting rules for multi-step tasks with numbered lists, the repository ensures that instructions are broken into discrete, actionable chunks that minimize cognitive load. This approach is implemented through a combination of skill definition files and runtime plugin injection.

The Numbered List Rule Definition

The core formatting logic resides in skills/i-have-adhd/SKILL.md, specifically within lines 42–55. This file defines the "Number multi-step tasks" rule, which mandates that any work requiring more than one action must be formatted as a concise numbered list.

The rule imposes strict constraints on step construction:

  • Single bounded actions — Each item must represent one discrete operation, avoiding compound steps such as "and then" or multiple verbs in sequence
  • Minimal step count — The model must use the fewest steps possible, collapsing trivial actions into the preceding step rather than creating separate line items
  • Immediate actionable format — Steps must follow the pattern demonstrated in the skill file:

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

This structure ensures that readers with ADHD can process information in small working-memory chunks without needing to retain multiple pieces of context simultaneously.

Skill Activation Methods

The repository provides two distinct activation mechanisms to make the numbered-list rule available to the model.

On-Demand Activation via Slash Command

Invoking the /i-have-adhd command registers the skill directory for the current session. This loads the ruleset on a per-conversation basis, applying the numbered-list constraint only when explicitly requested by the user.

Always-On Mode via Flag File

When a flag file named .i-have-adhd-always exists in the environment, the plugin located at .opencode/plugins/i-have-adhd.mjs automatically injects the entire ruleset into the system prompt every turn (see lines 55–78).

The plugin prepends a header to every system prompt (lines 67–72) indicating that ADHD mode is active:


ADHD MODE ACTIVE (always-on). The ruleset below applies to every response. "stop adhd mode" or "normal mode" turns it off for this session; delete /home/user/.config/opencode/.i-have-adhd-always to turn always-on off for good.

The plugin references hooks/always-on.mjs for analogous injection behavior in other runtimes, ensuring consistent enforcement across different execution contexts.

Runtime Enforcement and Model Behavior

The plugin does not transform or post-process the model's output. Instead, it operates through prompt engineering by supplying the ruleset as part of the system prompt context. The model's inference engine then follows the numbered-list instruction because it is explicitly defined in the prompt's behavioral constraints.

When a user requests a multi-step solution, the model's response begins immediately with the first numbered action, followed by subsequent steps in sequence. This creates a clear progression where each step provides an immediate next action that the reader can execute without recalling prior context, satisfying the repository's design goals for ADHD-accessible communication.

Practical Implementation Examples

When the skill is active, a request for complex guidance generates strictly formatted output. For example, asking how to add JWT authentication produces:

1. Install the jsonwebtoken package: `npm install jsonwebtoken`.
2. Create a middleware `auth.js` that verifies the token and attaches the user to `req`.
3. Add the middleware to routes that require authentication, e.g., `app.use('/api', auth)`.
4. Test the flow by sending a request with a valid JWT and verify `req.user` is populated.

In always-on mode, the system prompt includes the full ruleset from SKILL.md prepended with the ADHD mode header, ensuring that every multi-step response adheres to the numbered format regardless of query complexity.

Summary

  • Rule location: The numbered-list constraint is defined in skills/i-have-adhd/SKILL.md (lines 42–55) under the "Number multi-step tasks" directive
  • Activation: Use /i-have-adhd for session-based activation or create .i-have-adhd-always for persistent enforcement via .opencode/plugins/i-have-adhd.mjs
  • Format requirements: Single bounded actions only, no compound steps, minimal step count
  • Enforcement mechanism: Prompt injection rather than output transformation, with the model adhering to constraints provided in the system prompt

Frequently Asked Questions

What file contains the numbered list rule for multi-step tasks?

The rule is defined in skills/i-have-adhd/SKILL.md between lines 42 and 55. This file contains the "Number multi-step tasks" instruction that requires the model to format multi-action responses as numbered lists with single, bounded steps.

How do I enable always-on mode for ADHD-friendly formatting?

Create an empty file named .i-have-adhd-always in your configuration directory. When this flag file exists, .opencode/plugins/i-have-adhd.mjs automatically injects the skill ruleset into every system prompt (lines 55–78), ensuring all responses follow the numbered-list format without requiring the /i-have-adhd command.

Does the plugin modify the model's output after generation?

No. The plugin does not perform post-processing or transformation on generated text. It only supplies the ruleset as part of the system prompt context (lines 67–72), and the model follows these constraints during inference. The numbered format is generated natively by the model obeying the prompt engineering instructions.

Why are compound steps like "and then" discouraged in the format?

Compound steps increase cognitive load by requiring the reader to hold multiple actions in working memory simultaneously. The skill explicitly prohibits constructions like "and then" to ensure each numbered item represents a single, immediately executable action that can be completed before moving to the next line.

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 →