到底安装的是什么
i-have-adhd 是一个改变编程助手回答格式的 agent skill(智能体技能)。所谓技能,就是把「遇到这种情况该怎么做」写进一个 markdown 文件(SKILL.md),助手把它当成自己的规则。它不执行代码,也不启动服务。可以理解为交给助手的一页说明书。
在 Claude Code 里,这个技能以插件形式分发。插件是把技能、钩子、命令等扩展件打成一包安装的单位。这个包里有技能本体(SKILL.md)和一个会话启动钩子。钩子是会话开始时自动运行的脚本,这里只用来处理「始终开启」这个选项。
作者是 Ayoub G.(github.com/ayghri),许可证是 MIT。撰写本文时插件版本为 0.1.0。这不是笔者做的东西,只是用过之后做个介绍,原始仓库地址在文末。
名字容易让人误会:不需要有 ADHD 诊断才能用。仓库第一行就写明了这点。如果你常常要在一大段回答里翻找真正需要的那一行,你就是它面向的读者。
安装 —— 两条命令

在终端里依次执行下面两行。第一行注册分发源,第二行才是真正安装。`i-have-adhd@i-have-adhd` 里名字出现两次不是笔误,格式是 `<插件名>@<分发源名>`,这个仓库恰好两者同名。
不需要自己 clone 仓库。Claude Code 会自动拉取并负责后续更新。
装完后重启一次 Claude Code。插件列表在启动时读取一次,重启前 `/i-have-adhd` 不会出现在自动补全里。
确认是否装上用 `claude plugin list`。之后更新用 `claude plugin marketplace update i-have-adhd`,卸载要同时执行 `claude plugin uninstall i-have-adhd` 和 `claude plugin marketplace remove i-have-adhd`。想保留但暂时关掉,用 `claude plugin disable i-have-adhd`。
claude plugin marketplace add ayghri/i-have-adhd
claude plugin install i-have-adhd@i-have-adhdclaude plugin list
claude plugin marketplace update i-have-adhd
claude plugin uninstall i-have-adhd
claude plugin marketplace remove i-have-adhd开启方式有两种

这是最容易搞混的一点:装上了回答并不会变。SKILL.md 的头部写着 `disable-model-invocation: true`,所以在 Claude Code 里模型无法自己发现并套用这个技能。必须由人来开。没有中间状态——你没开,它就是关的。
第一种是临时开。在会话里输入 `/i-have-adhd`,规则在该会话内生效。想关就在对话里写「stop adhd mode」或「normal mode」。
第二种是始终开。在 `~/.claude/` 目录下建一个名为 `.i-have-adhd-always` 的空文件即可,建文件的命令是 `touch`。只要这个文件在,插件的钩子就会在每次会话开始时自动载入全部规则。想恢复原样就删掉它。
如果你把配置目录挪过位置(设置了 `CLAUDE_CONFIG_DIR` 环境变量),钩子会跟着那个路径走。钩子只在这个文件存在时才动作,所以单是安装插件不会改变任何行为。
即便处于始终开启状态,只想关掉当前会话,「stop adhd mode」依然有效。
touch ~/.claude/.i-have-adhd-always # 每次会话自动生效
rm ~/.claude/.i-have-adhd-always # 回到手动开启输出会怎么变
仓库把同一个问题的前后两种回答并排放着。面对修认证代码的请求,开启前的回答以「好问题!让我想一下」开场,把认证流程的各个部件过一遍,描述一种做法,顺带提一句依赖也旧了,最后以「希望有帮助!」收尾。信息都在,但此刻该按哪一步埋在段落中间。
开启后的回答第一句就是执行 `npm install jsonwebtoken@latest` 并打开 `src/auth.ts:42`。接着是三行编号列表,最后一行是「若测试失败,把第一条失败信息贴过来」。内容相同,但读者接下来要做的事就在第一行和最后一行。
规则共十条,全文在仓库的 SKILL.md 里。每条针对的都是具体的地方——工作记忆、启动成本、时间感的扁平化——而不是文风偏好。
| # | 规则 | 防的是什么 |
|---|---|---|
| 1 | 把下一步动作放在第一行 | 要执行的命令被背景说明挤到下面 |
| 2 | 多步骤用编号 | 一句话里两个「然后」,顺序糊成一团 |
| 3 | 以两分钟内能做的动作收尾 | 在「懂了」和「做了」之间停摆 |
| 4 | 先压住旁枝 | 当前问题没结完,另一个问题插进来 |
| 5 | 每轮复述进度 | 要求读者自己记住「五步里的第三步」 |
| 6 | 时间估计给具体单位 | 「要花点时间」和「半天」读起来一样 |
| 7 | 让做成的事看得见 | 成果埋进总结段落 |
| 8 | 报错就事论事 | 以「哎呀」开头,把原因和解法往后推 |
| 9 | 列表最多五条 | 十行没有排序的清单 |
| 10 | 不要开场白、总结、结束语 | 「我这就来……」和「还有需要请告诉我」 |
规则自己让位的地方

如果简短这条规则把答案本身删掉了,那就本末倒置。所以技能里同时写了让规则退让的条件,一共六种。
当你要求解释或从头讲一遍时,长度限制解除,讲到透为止。开场白和结束语依然没有,但会加小标题方便回头快速扫。
面对难以回退的命令(`rm -rf`、强制推送、schema 变更、删表之类),确认比简短更优先。
如果连续三轮都是同样的失败,就停止改代码,点名可能站不住的前提,再抛一个诊断性问题。
如果请求本身含糊,一个简短的确认问题好过猜着写然后重写。被问到有哪些选择时,不给单一路径,而是给二到四个方案、推荐项排在最前。另外,规则与智能体运行环境的规则冲突时,环境那边赢。
不用 Claude Code 的话
同一份 SKILL.md 多个工具都能直接读,不需要转换。
Codex 的分发源命令要加 `--ref main`,安装命令是 `plugin add`,调用写作 `$i-have-adhd`。与 Claude Code 不同,Codex 允许隐式调用,遇到合适的任务可能自己开启。
读取 agent skills 的工具——Cursor、GitHub Copilot、OpenCode、Amp——用 `npx skills add ayghri/i-have-adhd` 安装。`-a <工具名>` 只装到某个工具,`-g` 对所有项目生效。
Zed 在智能体面板的技能管理器里选「Create skill from URL」,粘贴 SKILL.md 地址即可。Gemini CLI 没有分发源概念,所以分两条路:把一个命令文件下载到 `~/.gemini/commands/`,就是需要时才开;装成扩展,则从第一条消息起一直生效。
也可以把规则直接贴进配置文件。INSTALL.md 为各工具准备了十行的摘要块——Codex 放 `~/.codex/AGENTS.md`,Copilot 放 `.github/copilot-instructions.md`,Cursor 放用户规则(User Rules)。
# Codex
codex plugin marketplace add ayghri/i-have-adhd --ref main
codex plugin add i-have-adhd@i-have-adhd
# Cursor · Copilot · OpenCode 等(agent skills 标准)
npx skills add ayghri/i-have-adhd -a cursor -y
npx skills add ayghri/i-have-adhd -g不生效时看哪里
四种症状,原因大体是固定的。
自动补全里没有 `/i-have-adhd`:重启智能体。插件列表在启动时读一次。
建了始终开启的文件却毫无反应:更新插件后重启。钩子同样在启动时读取,而这个功能要从带 `hooks/hooks.json` 的版本起才有。
`claude plugin marketplace add` 失败:检查是不是 `owner/repo` 形式。用本地路径时必须指向仓库根目录,不能指向 `.claude-plugin/`。
装了但回答仍带开场白:开一个新会话。还是跑偏就自己去把 SKILL.md 的措辞收紧。想改规则就 fork 仓库、改 SKILL.md,先删掉上游那份(fork 和上游同名),再把自己的仓库注册成分发源。
顺带一提,这套规则松散地参考了 J. Russell Ramsay 与 Anthony L. Rostain 的《The Adult ADHD Tool Kit》,把它从「人该怎么安排一天」改写成了「语言模型该怎么回答」。
原始仓库(MIT):github.com/ayghri/i-have-adhd
