The 10 Canonical Rules of the i-have-adhd Skill: A Complete Breakdown
The i-have-adhd skill defines 10 strict I/O rules that shape every response to be immediately actionable for readers with ADHD, codified in skills/i-have-adhd/SKILL.md in the ayghri/i-have-adhd repository.
Every interaction governed by the i-have-adhd skill follows a precise set of conventions designed to minimize cognitive load and maximize task completion. These rules are not guidelines—they are enforced structural requirements that persist for an entire session once activated. This article examines each rule as implemented in the source code, with practical examples showing compliant output.
Rule 1: Lead With the Next Action
The very first line must be an executable step, not context or explanation.
According to the source in skills/i-have-adhd/SKILL.md lines 33-41, any response that begins with background information violates this rule. The reader should be able to act immediately without scanning past introductory text.
❌ "JWT authentication is a common pattern for securing APIs. Here's how to add it..."
✅ "Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`."
Rule 2: Number Multi-Step Tasks
When more than one step is required, present a numbered list where each step is a single bounded action.
Lines 42-55 of SKILL.md specify that sequential steps must use explicit numbering (1, 2, 3...), not bullets or paragraphs. Each numbered item should represent one concrete action the reader can complete before moving on.
Example compliant structure:
1. Install the library:
```bash
npm install jsonwebtoken
-
Add a verify middleware (replace lines 42-58):
// implementation here -
Apply the middleware to protected routes:
app.use('/api/secure', verifyToken);
## Rule 3: End With One Concrete Next Action
After any explanation, finish with a **single, under-two-minute task** the reader can do next.
As defined in lines 57-63, every response must terminate with a "Next:" statement that specifies exactly what to do. This prevents decision paralysis by removing ambiguity about where to direct attention.
```text
Next: run `npm test -- auth.spec.ts` to confirm the new auth flow works.
Rule 4: Suppress Tangents
If another issue appears, finish the current one first; offer the next issue only after the first is resolved.
Lines 64-70 of SKILL.md prohibit preemptive problem-solving. The skill must not introduce secondary concerns—even valid ones—until the active task reaches completion. This prevents context switching, which disproportionately impacts ADHD executive function.
Rule 5: Restate State Every Turn
Re-announce the current step and progress on every message so the reader does not have to remember prior context.
According to lines 73-80, each response must contain within itself sufficient information to orient the reader: what step you're on, what was just accomplished, and what remains. No "as I mentioned earlier" references without restating the relevant facts.
Rule 6: Give Specific Time Estimates
Use concrete units (minutes, hours) rather than vague adjectives.
Lines 82-88 mandate specificity: "about 15 minutes" not "quickly"; "an afternoon" not "soon". This supports realistic planning and reduces time blindness.
About 15 minutes if tests already cover auth; an afternoon otherwise.
Rule 7: Make Completed Work Visible
Show the concrete result of each completed step; don't hide wins in a long recap.
Lines 89-95 require explicit acknowledgment of progress, formatted to stand out. The source shows checkmarks or clear completion statements immediately after each step finishes.
✅ Login now works with JWT. Try `npm run dev` and hit `/login`.
Rule 8: Matter-of-Fact Tone for Errors
State the cause and fix without emotive language ("Uh-oh", "Oops").
Lines 96-101 of SKILL.md prohibit apologetic or alarmist phrasing for failures. Errors are treated as neutral information requiring corrective action.
Example compliant error response:
Test fails at `auth.spec.ts:42`: expected 200, got 401.
Cause: missing `Authorization` header in the request.
Fix: add `Authorization: Bearer ${token}` to the request headers.
Next: re-run the failing test (`npm test -- auth.spec.ts`).
~5 minutes.
Rule 9: Cap Lists at Five Items
If a list would exceed five items, split it (e.g., "do now" vs. "later").
Lines 103-106 enforce a hard limit on working memory demands. Longer sequences must be chunked into phase-grouped sublists, each with its own five-item maximum.
Rule 10: No Preamble, Recap, or Pleasantries
Strip any opening niceties or closing filler; start directly with the answer and stop when the answer is finished.
Lines 107-114 are the most absolute: no "Hello", no "Hope this helps", no summary paragraphs at the end. The response begins with action and ends when the action is specified.
Persistence and Scope
The rules stay in effect for the entire session until the user explicitly says "stop adhd mode" or "normal mode" (lines 15-20). A single invocation /i-have-adhd activates the skill; no repeated triggering is needed.
When Rules May Be Broken
Lines 117-126 of SKILL.md define narrow exceptions. Safety-critical confirmations may temporarily relax a rule—though these deviations are explicitly documented in the source rather than left to discretion.
Complete Compliant Example
The following demonstrates all 10 rules in a single response to the query "How do I add JWT authentication to my Express app?":
Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`.
1. Install the library:
```bash
npm install jsonwebtoken
-
Add a verify middleware (replace lines 42-58):
// src/auth.ts import jwt from 'jsonwebtoken'; export const verifyToken = (req, res, next) => { const token = req.headers.authorization?.split(' ')[1]; if (!token) return res.sendStatus(401); try { req.user = jwt.verify(token, process.env.JWT_SECRET); next(); } catch { res.sendStatus(403); } }; -
Apply the middleware to protected routes:
app.use('/api/secure', verifyToken);
Next: run npm test -- auth.spec.ts to confirm the new auth flow works.
About 15 minutes if tests already cover auth; an afternoon otherwise.
✅ Login now works with JWT. Try npm run dev and hit /login.
Note: **No greeting. No sign-off. Immediate action leading numbered list, under-five items, specific time estimate, visible completion state, and a single next step.**
## Summary
- **Rule 1** requires the first line to be executable action, never preamble
- **Rules 2 and 9** structure output as numbered lists with a hard five-item cap
- **Rules 3, 5, 6, and 7** provide orientation (next action, state restatement, time estimate, and progress visibility)
- **Rule 4** enforces single-threaded task completion without tangents
- **Rule 8** mandates neutral, practical error communication
- **Rule 10** eliminates all conversational filler
All rules are defined in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) and persist session-wide once activated via `/i-have-adhd`.
## Frequently Asked Questions
### How do I activate the i-have-adhd skill in a conversation?
Type `/i-have-adhd` at any point. According to [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) lines 15-20, this single invocation remains active for the entire session until you explicitly say "stop adhd mode" or "normal mode". No repeated triggering is required.
### Can the rules ever be suspended mid-session?
Yes, but only in documented exceptional cases per lines 117-126. Safety-critical confirmations may temporarily relax a rule; these deviations are explicitly scoped and the skill returns to full compliance afterward. You can also terminate the skill entirely with "stop adhd mode".
### Where are the canonical rules actually defined?
The definitive source is [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) in the ayghri/i-have-adhd repository. Supporting infrastructure appears in [`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md) (runtime adapters), [`README.md`](https://github.com/ayghri/i-have-adhd/blob/main/README.md) (user-facing description), and [`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) (platform setup).
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 →