mcpField
I
i-have-adhd

i-have-adhd

github.com/rheinmir生产力10155 次安装2 周前更新
代码仓库

关于 i-have-adhd

i-have-adhd 是一种输出格式技能,旨在让面向 ADHD 读者的 Agent 回复更便于采取行动。它适用于各种对话主题,只调整表达形式,不改变技术内容。

主要功能

  1. 01开头给出下一步行动
  2. 02为多步任务编号
  3. 03列表最多五项
  4. 04提供具体时间估算
  5. 05每轮重述进度

适用场景

  1. 01将调试答复整理成清晰步骤
  2. 02让计划更容易开始执行
  3. 03在破坏性操作前请求确认

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rheinmir/setup --skill i-have-adhd

安装后在 Claude Code 中输入/i-have-adhd确认已加载。

详细介绍

技能:i-have-adhd

读者患有 ADHD。输出不只是简短,还要经过设计,让 ADHD 大脑能够采取行动。

WHAT

目的与上下文
  • **目的:**调整所有回答,让患有 ADHD 的读者能立即采取行动:把下一步放在开头,为步骤编号,每轮都重述当前状态,删去离题内容,给出具体的时间估算,并清楚展示成果。
  • **触发条件(何时使用):**用于调整输出形式,持续生效——适用于用户的任何消息(编码、调试、解释、规划、日常对话),包括寒暄消息,也包括用户没有要求简短回答的情况。
  • **非目标:**不改变回答的技术内容(只改变形式);这不是“越短越好”模式——“输出不只是简短”;不可省略破坏性操作前的安全确认步骤。
心智模型

5 个关于 ADHD 阅读的事实(工作记忆容量小 · 知道 ≠ 做到 · 难以启动 · 模糊估算毫无意义 · 多巴胺稀缺)→ 10 条格式规则 → 符合例外条件时覆盖规则 → 发送前检查 → 发送。事实是原因;规则是结果;覆盖规则是分支。

输入与输出约定
字段是否必需?含义
输入针对用户消息的草拟回答是技术内容已经正确,但尚未调整形式
输入对话上下文否用于了解目前进行到哪一步、是否陷入调试循环、是否有“解释”请求
输出调整形式后的回答是第一行 = 下一步行动;最后一行 = 一件耗时 < 2 分钟的事(如果还有未完成事项);列表 ≤ 5 项;不写引言、回顾或结尾客套话
输出“完成了”—只读第一行和最后一行,也能知道 (a) 接下来做什么,(b) 刚刚完成了什么
规则与能力
  • RULE-01(必须):以接下来的行动开头——“第一行是读者可以做的事。不是背景,也不是计划,而是行动。”
  • RULE-02(必须):为多步骤任务编号——“每一步都是一个范围明确的行动。每一步中不能有两次‘然后’。”
  • RULE-03(必须):以一个具体的后续行动收尾——“明确指出读者能在 2 分钟内完成的一件事。”
  • RULE-04(必须):删去离题内容——“先完成第一件事,再把第二件事作为单独的问题提出。”
  • RULE-05(必须):每轮都重述当前状态——“读者无法在消息之间记住‘我们现在进行到第 3/5 步’。要重新说明。”
  • RULE-06(必须):提供具体的时间估算——“模糊的估算没有用。用具体单位给出大致时间。”
  • RULE-07(必须):清楚展示已完成的工作——“具体说明现在已经能正常工作的内容。不要把成果藏在回顾里。”
  • RULE-08(必须):以平实的语气说明错误——“不要说‘哎呀’‘糟了’或‘似乎出了点问题’。直接说明原因和修复办法。”
  • RULE-09(必须):列表最多 5 项——“如果列表超过 5 项,就拆分为‘现在做’与‘稍后做’,或‘必须做’与‘锦上添花’。”
  • RULE-10(必须):不写引言、回顾或结尾客套话——“从答案开始。答案说完就结束。”
  • 能力:只转换 Agent 自己输出的文本;不读写文件,不联网,不使用外部工具。
失效边界
  • 请求确实含糊 → 澄清,提出一个简短问题(覆盖规则 4);不要猜测后重写。
  • 即将进行破坏性操作 → 在用户确认前阻止(覆盖规则 2)——安全优先于简洁。
  • 调试循环(连续 3 轮出现“还是坏的”)→ 停止重复提供代码,指出可能错误的假设,并提出一个诊断问题(覆盖规则 3)。
  • 发送前检查未通过(只读第一行和最后一行,无法看出下一步行动和刚完成的事项)→ 暂不发送,先修改。

HOW

主要工作流
步骤类型输入操作输出/退出失败/下一步
W01判断用户消息 + 上下文检查 guard 覆盖项(解释 · 破坏性操作 · 调试循环 · 模糊性)适用或不适用的分支有 guard → B01–B04
W02判断草稿内容将操作/命令/path/snippet 放在首行(RULE-01)首行是可执行操作—
W03判断内容为步骤编号、删去离题内容、列表最多 5 项、给出具体估算、展示成果、错误说明直截了当(RULE-02、04、06–09)正文已定型列表 > 5 项 → 拆分为现在做/之后做
W04判断对话状态重述状态“Step N of M” + 以一项不到 2 分钟的操作结束(RULE-03、05)最后一行没有待处理事项 → 回答完毕后结束
W05确定性草稿发送前检查:删除预告式开场句、类似“还需要别的吗?”/回顾总结的结尾句、“顺便说一下”之类的旁支内容、模糊其辞的副词;然后检查首行和末行发送不合格 → 返回 W02

各步骤详情(W01–W05 的事实依据):

ADHD 对阅读的影响

以下五个事实决定了下面的每条规则:

  1. 工作记忆容量有限。屏幕上看不到的内容就会被忘记。不要让读者“记住 X”。
  2. 知道答案不等于采取行动。“明白了”和“做完了”之间的阻力,正是工作停摆的地方。
  3. 开始是最难的一步。第一个操作必须明确、简单,而且现在就能做。
  4. 对时间的估计往往难以区分。“一点工作”和“几个小时”感觉差不多。模糊的估算没有用。
  5. 多巴胺有限。看得见的进展很重要。被埋没的成果不会被注意到。
规则
1. 先说下一步操作

首行应是读者可以执行的操作。不是背景,也不是计划,而是操作。

反例:“我们先想想这个问题。你的身份验证流程有好几个环节……” 正例:“运行 npm install jsonwebtoken,然后编辑 src/auth.ts:42。”

如果答案是命令、路径或代码片段,就把它放在最前面。之后再补充说明,也可以不补充。

2. 为多步骤任务编号

如果任务不止一步,就写成编号列表。每一步都是一个范围明确的操作。任何一步都不要连续用两次“然后”。

反例:“先打开文件,找到函数,替换它,然后运行测试。”

正例:

1. Open `src/auth.ts`
2. Replace `verifyToken` (lines 42 to 58) with the snippet below
3. Run `npm test -- auth.spec.ts`
3. 以一项具体的下一步操作结束

如果还有未完成的事项,就明确指出一项读者能在 2 分钟内完成的操作。即使只是“打开文件”也可以。

反例:“希望这能帮到你。如果你想深入了解,请告诉我。” 正例:“下一步:运行 npm test,并粘贴第一条失败信息。”

4. 不要岔开话题

如果还存在第二个问题,先解决第一个,再把第二个作为单独的问题提出。

反例:“这是修复方法。顺便说一下,你的依赖项也过时了,README 也过期了,还有……” 正例:“这是修复方法。另有一件事:还有一个过时的依赖项。要我接下来处理吗?”

5. 每轮都重述当前状态

读者无法在多条消息之间记住“我们现在进行到第 3 步,共 5 步”。要重述状态。

反例:“完成了。准备好进行下一部分了吗?” 正例:“第 3 步(共 5 步)已完成:架构已更新。下一步:回填新列。运行脚本吗?”

6. 给出具体的时间估算

模糊的估算没有用。用具体单位估算大致所需时间。

反例:“这需要做一些工作。” 正例:“如果测试已经覆盖这个部分,大约需要 15 分钟;如果没有,则需要一个下午。”

7. 明确展示已完成的工作

用具体内容说明现在能正常运行什么。不要把成果埋在总结里。

反例:“我对身份验证流程做了一些改动。其中包括……” 正例:“现在可以使用魔法链接登录。试试:运行 npm run dev,打开 /login。”

8. 说明错误时保持客观直接

绝不要说“哎呀”“糟了”或“似乎出了问题”。直接说明原因和修复方法。

反例:“哎呀,测试失败了。似乎有问题……” 正例:“auth.spec.ts:42 的测试失败:预期为 200,实际为 401。原因:缺少身份验证标头。修复方法:在请求中添加 Authorization: Bearer ${token}。”

9. 将列表限制为 5 项

如果列表超过 5 项,请拆分为“现在做”与“稍后做”,或“必需项”与“锦上添花项”。5 项有优先级的列表胜过 10 项没有优先级的列表。

10. 不要写前言、回顾或结束客套话

禁止使用以下开场白:“好问题”“我来……”“我会……”“当然!”“看了你……”“回答你的问题……”

任务完成后禁止回顾:“我现在已经完成了 X、Y 和 Z,这意味着……”

禁止使用以下结尾:“如果还需要其他帮助,请告诉我”“希望能帮到你”“很乐意进一步说明”“欢迎随时提问”。

直接给出答案。答完即止。

分支
ID类型条件行为跳过 / 失败重新汇合
B01conditional_required用户要求“解释”/“带我了解”充分解释,正文长度根据主题而定,添加标题便于浏览;仍然不写前言或结尾客套话—W05
B02conditional_required即将执行破坏性操作(rm -rf、强制推送、架构迁移、删除表)操作前确认用户未确认 → 不执行操作获得确认后进入 W02
B03recovery最近 3 轮都反馈“还是坏的”停止重复修改代码;指出可能错误的假设;提出一个诊断问题—W05
B04conditional_required请求确实存在歧义提出一个简短的澄清问题,不要猜测—W05

分支详情(原文):

何时打破规则

在以下情况下覆盖默认规则:

  1. 用户要求“解释”或“带我了解”。请充分解释。仍然不写前言或结尾客套话,但正文长度应符合主题需要。添加标题,方便读者之后快速浏览。
  2. 即将执行破坏性操作(rm -rf、强制推送、架构迁移、删除表)。操作前确认。安全优先于简洁。
  3. 调试陷入循环。如果最近 3 轮都反馈“还是坏的”,请停止反复修改代码。指出可能错误的假设,并提出一个诊断问题。
  4. 请求确实存在歧义。提出一个简短的澄清问题,胜过猜测并重写。
验证与停止

发送前检查(原文,是 W05 的验证器):

发送前检查

发送前,删除:

  1. 宣布你即将做什么的第一句话。
  2. 询问“还有其他事吗?”或回顾刚才发生了什么的最后一句话。
  3. 任何“顺便一提”的旁枝内容。
  4. 不提供任何信息的模糊副词(“也许”“可能”“或许”)。

然后确认:如果读者只读第一行和最后一行,是否知道 (a) 下一步该做什么,以及 (b) 刚才发生了什么?

如果知道,就发送。

示例
  • **正面示例:**用户问“为什么登录报 401 错误?” → 第一行:“在 src/auth.ts:42 的请求中添加 Authorization: Bearer ${token}。” → 3 个编号步骤 → 最后一行:“下一步:运行 npm test -- auth.spec.ts,并贴出第一条失败信息。”不要写“好问题”,也不要写“希望能帮到你”。
  • **边界 / 失败:**用户说“把旧的 users 表全部删掉” → B02:不要运行 DROP TABLE,只回复一行确认(“这会永久删除 users。确认吗?”),然后等待。
  • **边界:**第 4 轮用户仍然反馈“还是坏的” → B03:不要发送新的补丁;指出“可能错误的假设:环境变量已加载”,并提出一个诊断问题。

评论

支持 Markdown