Two Claude Code skills for ADHD developers, copied unedited from the skills directory I run daily, in a public MIT repo. The install command, which skill does what, and how they differ from the two other skills called ADHD.
Why this matters #
The repo is github.com/ChudiNnorukam/claude-code-adhd-skills. It holds two skills, mirror and librarian, copied unedited from the skills directory I run every day, under MIT. Clone it, copy the two folders into ~/.claude/skills/, restart Claude Code, type /mirror. Neither is the i-have-adhd formatting skill or the adhd divergent-reasoning skill, which are two unrelated projects that share the name.
If you searched for a Claude ADHD skill and want a file on disk in the next ten minutes, this page is the file. The repository is public, MIT licensed, has no installer and no dependencies, and the two SKILL.md
files in it are byte-for-byte copies of the ones in my own ~/.claude/skills/
directory. Nothing in it is a demo written for a blog post.
The two-minute install #
Claude Code loads any directory under ~/.claude/skills/
that contains a SKILL.md
. So the install is a clone and a copy.
git clone https://github.com/ChudiNnorukam/claude-code-adhd-skills.git
mkdir -p ~/.claude/skills
cp -r claude-code-adhd-skills/mirror claude-code-adhd-skills/librarian ~/.claude/skills/
Restart Claude Code, then type:
/mirror
Repository: github.com/ChudiNnorukam/claude-code-adhd-skills
To install for one project only, copy the two folders into that repo’s .claude/skills/
instead of your home directory. Claude Code reads both locations.
I send a short note when a skill in the set is renamed, retired, or added. It is a plain newsletter, and nothing on this page depends on it.
Which ADHD skill is which #
Three unrelated things are currently called “the Claude ADHD skill”, and nothing on the search results page tells them apart. The AI Overview describes one of them, the second organic result is a different one, and the searcher can end up installing a skill that does something other than what they were told.
i-have-adhd |
adhd |
This repo | |
|---|---|---|---|
| Author | Ayoub G. | UditAkhourii | Chudi Nnorukam |
| What it changes | The output format | The reasoning process | Session review and codebase navigation |
| Relation to the condition | Built for readers with ADHD | A metaphor for divergent thinking | Built for a specific executive-function gap each |
| Published benchmark | None | Six problems, self-judged | None. First-hand daily use instead. |
| Runs on | Every reply | Open design problems | End of session; abstract requests in a codebase |
** i-have-adhd** is ten writing rules: lead with the next action, number the steps, suppress tangents, restate state, make wins visible, cap lists at five, no preamble. It changes where the answer sits in the reply and nothing else. If Claude’s answer being in paragraph four is the same to you as the answer not being there, that skill fixes it in one step. It publishes no benchmark and does not need one, because you can feel a formatting rule working inside a day.
** adhd** replaces a single chain of reasoning with five independent branches under different frames, scores the ideas, discards the ones it flags as traps, and develops the survivors. The name is a metaphor. It has nothing to do with the condition and does not claim to. Its published benchmark shows large gains on breadth, novelty and trap detection, which are close to asking whether the method ran, and a gain of under one point out of ten on builder usefulness. It lost the one problem that already had a known answer, a retry and timeout strategy, because a wider search walked it away from the standard solution. Use it on open problems. Do not use it on problems with a known answer.
This repo is neither. It is two skills that each patch one named executive-function deficit, described below, and it exists because those two gaps cost me more than output formatting ever did.
To check which one you already have, run /plugin
in Claude Code and read the names. Shorter replies that open with the next step mean the formatting skill. Long option lists with a section headed traps mean the reasoning skill. A three-line readback that starts with Hearing:
means you have librarian
from this repo.
mirror: the counter to discounting the positive #
The gap it patches: the cognitive distortion of discounting the positive.
“Discounting the positive” is a cognitive-behavioural-therapy term for deleting your own wins from the ledger. You shipped three features and your brain renders only the bug. ADHD bundles this so reliably that it feels like realism. It is a measurement error, and it starves a reward system that is already under-fuelled.
mirror
pulls the actual record before it says anything: the git log since the session started, the diff of uncommitted work, the decisions made in the conversation, the dead ends ruled out. Then it reflects that back, specific and unembellished. Not “you did great”. “You shipped three commits, fixed the auth redirect, and ruled out the caching theory. That is the bug closed.” It names invisible work explicitly, because an hour spent understanding a race condition is the reason the fix took ten minutes.
When it fires. “I got nothing done.” “Today was a waste.” “I am so behind.” “Was this session even worth it?” Any end-of-session reflection where the tone is self-erasing. It stays quiet when you want a genuine critique of the work, and it does not pathologise a good mood.
What it refuses to do. Flatter, argue with the feeling, invent accomplishments, or turn into a pep talk. If little genuinely got done, it says so and locates the cause accurately, which is usually the plan and not the person.
Try it now, at the end of a session:
I feel like I got nothing done today. How did it actually go?
librarian: the map you do not have to hold #
The gap it patches: working-memory overload from navigating a codebase.
Working in a large codebase means holding a map of it in your head: where things live, what calls what, which file owns which concern. ADHD working memory does not hold that map, so every navigation is a fresh expensive search, and the expense becomes a reason to avoid unfamiliar parts of the code.
librarian
holds the map instead. You describe the goal in your own words, “why is startup slow”, and it walks the project’s knowledge graph, checks each node it touches for drift against the current code, and answers in exactly three lines:
Hearing: <the goal, in your words>
Impacts: [the knowledge nodes involved]
Proposal: <one concrete change> [Verified | Inferred | Target]
Then, if the change is reversible and every node it relied on was fresh, it makes the change. If anything drifted or the change is not reversible, it stops after the readback and asks. After acting, it writes what it learned back into the graph, so the next walk starts further along.
When it fires. The request names a goal or a behaviour and does not name a file. “Make the import faster” fires it. “Edit server.ts:120
” does not, and it says so and steps aside.
The dependency, stated plainly. librarian
reads a knowledge graph at docs/codex/
in your repo: an index file, one markdown node per concept, and an optional principles file. If your repo has no codex, the skill has nothing to walk. It will tell you so and name /codex-bootstrap
, which is not in this repo. Install mirror
first. Install librarian
when you have a codex, or when you are ready to build one.
What connects them #
Both skills read from and write to the same underlying thing, a per-project knowledge graph that grows with every session. mirror
uses it as the benchmark for what counts as progress on this project, and works from git history alone when there is none. librarian
walks it and grows it. The longer explanation of why that compounds is in the skills-for-ADHD post, and the configuration layer underneath both is in the CLAUDE.md guide for ADHD developers.
Install troubleshooting #
The slash command does not appear. Restart Claude Code. Skills are read at startup. Then confirm~/.claude/skills/mirror/SKILL.md
exists as a real file. A broken symlink looks like a directory inls
and loads nothing.It fires when you did not want it. Thedescription:
line at the top of eachSKILL.md
is what Claude reads to decide whether to pick the skill up on its own. Narrow that sentence. You can always invoke by name regardless.Expected on any repo withoutlibrarian
says there is no codex.docs/codex/
. That is a dependency, not a bug. Usemirror
in the meantime.You want it in one project, not globally. Copy the folders into that repo’s.claude/skills/
and commit them. Everyone who clones the repo gets the skills.You edited a skill and want to share the edit. Fork therepository. It is MIT. I only merge changes to skills I run, so a pull request that changes what a skill does will get a slower answer than one that fixes how it reads.
Why only two #
An earlier post on this site described five ADHD skills. Two of those five, mirror
and librarian
, are in this repo. The other three are not, because I do not run them any more: one was retired, one never got past its design document, and one turned out to be a Claude Code built-in rather than a skill of mine. The rule for this repository is that a skill is listed only while it is present on my disk and in use, and it changes the same day a skill is renamed or retired. That is a smaller set than a listicle wants. It is also the only set I can vouch for.
· Frequently asked
FAQ #
Is this the same as the i-have-adhd skill?
No. i-have-adhd is a set of ten output-formatting rules by a different author. The two skills here change what Claude does at the end of a session (mirror) and how it navigates a codebase (librarian). They do not touch output formatting.
Do I need ADHD for these to be useful?
No. mirror helps anyone who undersells their own progress, and librarian helps anyone who loses time rebuilding a mental map of a codebase. ADHD makes both gaps sharper, so the payoff arrives faster.
Why only two skills?
Because two is how many ADHD-specific skills exist in my skills directory today. Three that I described in an earlier post were retired, never built, or turned out to be Claude Code built-ins. This repo ships only what I run.
· Sources & further reading
Sources & Further Reading #
Further reading
Claude Code Skills for ADHD: The 2 I Actually Run (and 3 I Retired) /blog/claude-code-skills-adhd-developersTwo Claude Code skills built for specific ADHD deficits, discounting your own wins and the working-memory cost of navigating a codebase, plus an honest account of the three I described earlier and no longer run. Both live skills are installable from a public repo.The ADHD Developer Tool Stack: What Actually Replaces Executive Function /blog/adhd-developer-tool-stackSix tools that externalize the specific executive functions ADHD breaks for developers: working memory, time perception, body doubling, and task-switching friction. What each one fixes and where it fails.CLAUDE.md as External Working Memory for ADHD Devs /blog/adhd-developers-guide-claude-mdThe exact CLAUDE.md config that stops the 'what was I doing?' reset every session, with before-and-after numbers. Session memory in one file Claude reads automatically.Claude for ADHD: There's No Plugin, Here's My Workflow /blog/claude-code-adhd-workflowsNo, Claude has no built-in ADHD mode or plugin. The 5-step workflow I use instead to beat task-initiation paralysis and context-switching.I Have 73 Browser Tabs Open. ADHD Made Me a Better Architect. /blog/adhd-systems-architecture-engineeringFive ADHD cognitive traits mapped to real systems architecture patterns: pattern recognition, parallel processing, novelty seeking, and chaos resilience.
Built for this brain
ADHD Engineer's Productivity System $19
Notion templates built for how ADHD brains actually work: energy-based task management, two-axis filtering, and a brain-dump capture system.
Want more of this in your Google results?
What do you think? #
I post about this stuff on LinkedIn every day and the conversations there are great. If this post sparked a thought, I'd love to hear it.