<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ADHD on Kalend's Blog</title><link>https://blog.kalend.top/tags/adhd/</link><description>Recent content in ADHD on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 10 Sep 2026 08:45:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/adhd/index.xml" rel="self" type="application/rss+xml"/><item><title>34590星的反ADHD技能：别让AI把答案埋在第十段，这个指令直接治好</title><link>https://blog.kalend.top/2026/09/10/2026-09-10-i-have-adhd-skill.html/</link><pubDate>Thu, 10 Sep 2026 08:45:00 +0800</pubDate><guid>https://blog.kalend.top/2026/09/10/2026-09-10-i-have-adhd-skill.html/</guid><description>&lt;p&gt;你问 AI 一个简单问题，它先铺垫三段背景知识，再分析五种可能方案，最后在第八段才给出你要的命令。&lt;/p&gt;
&lt;p&gt;这不只是 ADHD 患者的困扰——所有开发者都被这种&amp;quot;废话连篇&amp;quot;折磨过。&lt;/p&gt;
&lt;p&gt;GitHub 上有个项目专门治这个：&lt;a class="link" href="https://github.com/ayghri/i-have-adhd" target="_blank" rel="noopener"
 &gt;i-have-adhd&lt;/a&gt;，34590 星，2027 fork。它是一个给 Coding Agent 装的 Skill，通过 10 条规则，让 AI 输出变成&amp;quot;直接能用&amp;quot;的格式。&lt;/p&gt;
&lt;h2 id="它是什么"&gt;它是什么
&lt;/h2&gt;&lt;p&gt;一句话定位：给 Claude Code、Cursor 等 Coding Agent 装的&amp;quot;输出格式约束器&amp;quot;。&lt;/p&gt;
&lt;p&gt;不是让 AI 变短，而是让它变&lt;strong&gt;结构化+可行动&lt;/strong&gt;。区别很大——短但没重点的回复同样废，有结构的回复哪怕长一点也能快速定位。&lt;/p&gt;
&lt;p&gt;支持的 Agent 很广：Claude Code（原生 plugin）、Cursor（&lt;code&gt;.cursor/rules&lt;/code&gt;）、Codex、OpenCode、Gemini，甚至 Kimi 和 Qwen 都有适配文件。&lt;/p&gt;
&lt;h2 id="10-条规则拆解"&gt;10 条规则拆解
&lt;/h2&gt;&lt;p&gt;我从 SKILL.md 原文逐条读完，挑 4 条最实用的展开讲，其余简要带过。&lt;/p&gt;
&lt;h3 id="规则-1lead-with-the-next-action第一行就是动作"&gt;规则 1：Lead with the next action（第一行就是动作）
&lt;/h3&gt;&lt;p&gt;Before：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Great question! Let me think about this. Your auth flow has a few moving pieces&amp;hellip;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;After：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Run &lt;code&gt;npm install jsonwebtoken@latest&lt;/code&gt;, then edit &lt;code&gt;src/auth.ts:42&lt;/code&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;核心逻辑：如果答案是命令、路径或代码片段，它必须是第一行。上下文放在后面，甚至可以不放。&lt;/p&gt;
&lt;p&gt;SKILL.md 原文写得很清楚：&amp;ldquo;The first line is something the reader can do. Not context. Not a plan. The action.&amp;rdquo;&lt;/p&gt;
&lt;h3 id="规则-2number-multi-step-tasks多步骤必须编号"&gt;规则 2：Number multi-step tasks（多步骤必须编号）
&lt;/h3&gt;&lt;p&gt;Before：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;First open the file, find the function, swap it out, then run the tests.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;After：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;src/auth.ts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Replace &lt;code&gt;verifyToken&lt;/code&gt; (lines 42–58) with the snippet below&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npm test -- auth.spec.ts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;
&lt;p&gt;每步一个动作，不含&amp;quot;然后&amp;quot;。用最少步骤完成，能合并的合并——&amp;ldquo;短路径做完胜过长路径放弃&amp;rdquo;。&lt;/p&gt;
&lt;h3 id="规则-3end-with-one-concrete-next-step结尾给下一步"&gt;规则 3：End with one concrete next step（结尾给下一步）
&lt;/h3&gt;&lt;p&gt;Before：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Hope that helps. Let me know if you want to dig deeper.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;After：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Next: run &lt;code&gt;npm test&lt;/code&gt; and paste the first failing line.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;结尾永远留一个 2 分钟内能做的下一步。&amp;ldquo;Open the file&amp;rdquo; 都算。不能是&amp;quot;有问题随时问&amp;quot;——那是废话。&lt;/p&gt;
&lt;h3 id="规则-10no-preamble-no-recap-no-closers三不原则"&gt;规则 10：No preamble. No recap. No closers（三不原则）
&lt;/h3&gt;&lt;p&gt;禁止的开头：Great question / Let me&amp;hellip; / Sure! / Looking at your&amp;hellip;&lt;/p&gt;
&lt;p&gt;禁止的结尾：Let me know if you need anything else / Hope this helps / Feel free to ask&lt;/p&gt;
&lt;p&gt;禁止的中间：By the way&amp;hellip;（岔开话题的旁白）&lt;/p&gt;
&lt;p&gt;SKILL.md 有一条 Pre-send check：发之前删掉第一句（如果你在宣布&amp;quot;我要做什么&amp;quot;）、删掉最后一句（如果你在问&amp;quot;还需要什么&amp;quot;）、删掉所有旁白。然后验证：只读第一行和最后一行，能不能知道该做什么和发生了什么？&lt;/p&gt;
&lt;p&gt;其余 6 条简要概括：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;规则&lt;/th&gt;
					&lt;th&gt;一句话&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;4. Suppress tangents&lt;/td&gt;
					&lt;td&gt;发现第二个问题，先完成第一个再提&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5. Restate state every turn&lt;/td&gt;
					&lt;td&gt;每轮重申&amp;quot;我们在第3步/共5步&amp;quot;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6. Specific time estimates&lt;/td&gt;
					&lt;td&gt;给具体分钟数，不说&amp;quot;一会儿&amp;quot;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;7. Make wins visible&lt;/td&gt;
					&lt;td&gt;让进展可见，不要埋没成果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;8. Matter-of-fact errors&lt;/td&gt;
					&lt;td&gt;出错直说原因和修复，不铺垫不道歉&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;9. Cap lists at 5&lt;/td&gt;
					&lt;td&gt;列表最多 5 项，超出分&amp;quot;现在做&amp;quot;和&amp;quot;以后做&amp;quot;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="实测同一个问题before-vs-after"&gt;实测：同一个问题，Before vs After
&lt;/h2&gt;&lt;p&gt;我在 Claude Code 里测试了一个真实场景：问&amp;quot;我的 React 组件渲染了两次，怎么回事？&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;没装 i-have-adhd 时的回复：&lt;/strong&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Great question! Double rendering in React is a common issue that many developers encounter, especially with React 18&amp;rsquo;s Strict Mode. Let me walk you through what&amp;rsquo;s happening. Your component might be re-rendering due to several reasons: state changes, parent re-renders, context changes, or the useEffect dependency array. Looking at your code, I can see that&amp;hellip;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;八段之后才给出排查步骤。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;装了之后的回复：&lt;/strong&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;ol&gt;
&lt;li&gt;打开 &lt;code&gt;src/components/UserList.tsx:23&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;useEffect&lt;/code&gt; 里加 &lt;code&gt;console.log('render')&lt;/code&gt; 确认触发次数&lt;/li&gt;
&lt;li&gt;检查父组件是否在 &lt;code&gt;onClick&lt;/code&gt; 里 &lt;code&gt;setState&lt;/code&gt; 导致子组件重渲染&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Next: 加完 log 后跑 &lt;code&gt;npm start&lt;/code&gt;，贴控制台输出。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;差距一目了然。前者你读完需要 30 秒，还得自己提炼行动项；后者你读完 5 秒就能开始操作。&lt;/p&gt;
&lt;h2 id="skillmd-里的心理学"&gt;SKILL.md 里的心理学
&lt;/h2&gt;&lt;p&gt;这个项目的 Credits 写着：基于 &lt;em&gt;The Adult ADHD Tool Kit&lt;/em&gt;（J. Russell Ramsay 和 Anthony L. Rostain 合著）改编。&lt;/p&gt;
&lt;p&gt;SKILL.md 开头有一段&amp;quot;Why ADHD changes about reading&amp;quot;，列了 5 个事实驱动所有规则：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;工作记忆很小&lt;/strong&gt;——屏幕外的东西会被遗忘，别让读者&amp;quot;记住 X&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知道答案不等于做完&lt;/strong&gt;——&amp;ldquo;懂了&amp;quot;和&amp;quot;做了&amp;quot;之间的摩擦是工作死亡的地方&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开始是最难的&lt;/strong&gt;——第一步必须明显、小、现在就能做&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间估算感觉一样&lt;/strong&gt;——&amp;ldquo;一点功夫&amp;quot;和&amp;quot;几小时&amp;quot;在 ADHD 大脑里注册相同，模糊估算无效&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多巴胺稀缺&lt;/strong&gt;——可见的进展很重要，被埋没的成就不会被感知&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这不是拍脑袋写的规则，是有临床依据的输出设计。&lt;/p&gt;
&lt;h2 id="什么时候可以打破规则"&gt;什么时候可以打破规则
&lt;/h2&gt;&lt;p&gt;SKILL.md 还列了 6 种可以覆盖默认规则的场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户明确要求&amp;quot;解释&amp;quot;或&amp;quot;带我过一遍&amp;rdquo;——可以展开讲，但仍不加寒暄&lt;/li&gt;
&lt;li&gt;危险操作（&lt;code&gt;rm -rf&lt;/code&gt;、force push、删表）——安全优先于简洁&lt;/li&gt;
&lt;li&gt;连续三轮调试都没修好——停下来，问一个诊断性问题&lt;/li&gt;
&lt;li&gt;请求有真正的歧义——一个短澄清问题好过猜测后重写&lt;/li&gt;
&lt;li&gt;规则和任务本身冲突——任务优先，格式保持&lt;/li&gt;
&lt;li&gt;规则和 Agent 框架冲突——系统提示优先级更高&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装方式"&gt;安装方式
&lt;/h2&gt;&lt;p&gt;一行命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Install the i-have-adhd skill/plugin from https://github.com/ayghri/i-have-adhd, refer to the repo&amp;#39;s AGENTS.md for instructions.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Claude Code 用户也可以直接 plugin install。Cursor 用户把规则文件放到 &lt;code&gt;.cursor/rules&lt;/code&gt; 目录即可。&lt;/p&gt;
&lt;h2 id="和-claude-code-内置-concise-模式有什么区别"&gt;和 Claude Code 内置 Concise 模式有什么区别
&lt;/h2&gt;&lt;p&gt;Claude Code v2.1.237（2026-08-20）内置了 &amp;ldquo;Concise&amp;rdquo; output style，不少人问：有了内置的还需要这个吗？&lt;/p&gt;
&lt;p&gt;答案是需要，因为两者管的东西不一样：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;Claude Code Concise&lt;/th&gt;
					&lt;th&gt;i-have-adhd&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;长度控制&lt;/td&gt;
					&lt;td&gt;✅ 只管短&lt;/td&gt;
					&lt;td&gt;✅ 管结构&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;动作前置&lt;/td&gt;
					&lt;td&gt;❌&lt;/td&gt;
					&lt;td&gt;✅ 第一行必须是动作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;步骤编号&lt;/td&gt;
					&lt;td&gt;❌&lt;/td&gt;
					&lt;td&gt;✅ 多步骤必须编号&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;状态重申&lt;/td&gt;
					&lt;td&gt;❌&lt;/td&gt;
					&lt;td&gt;✅ 每轮重申当前进度&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;时间估算&lt;/td&gt;
					&lt;td&gt;❌&lt;/td&gt;
					&lt;td&gt;✅ 给具体分钟数&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;下一步提示&lt;/td&gt;
					&lt;td&gt;❌&lt;/td&gt;
					&lt;td&gt;✅ 结尾必须有下一步&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Concise 模式解决的是&amp;quot;太长不看&amp;rdquo;，i-have-adhd 解决的是&amp;quot;看完不知道干嘛&amp;quot;。两个可以叠加使用——先用 Concise 控制长度，再用 i-have-adhd 控制结构。&lt;/p&gt;
&lt;h2 id="国内-agent-怎么用"&gt;国内 Agent 怎么用
&lt;/h2&gt;&lt;p&gt;通义灵码、豆包 MarsCode 等国内 Coding Agent 也支持自定义规则/提示词。核心思路一样：把 10 条规则翻译成中文，写进 Agent 的系统提示或规则文件。&lt;/p&gt;
&lt;p&gt;不依赖 Skill 也能用——直接在对话开头贴这段 prompt：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;从现在起，你的每条回复遵守以下规则：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. 第一行直接给可执行的动作（命令/代码/路径）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. 多步骤任务用编号列表，每步一个动作
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. 结尾留一个2分钟内能做的下一步
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;4. 不要开头寒暄，不要结尾总结，不要&amp;#34;Hope this helps&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;5. 列表最多5项
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;效果不差，但比原版少了状态重申、时间估算、可见进展这几条——这些需要 Agent 在多轮对话中持续遵守，靠单次 prompt 不够稳定。&lt;/p&gt;
&lt;h2 id="为什么这个项目火了"&gt;为什么这个项目火了
&lt;/h2&gt;&lt;p&gt;HN 526 分、362 条评论。社区反馈的一个共识是：这不是 ADHD 专属需求，而是&lt;strong&gt;所有开发者的需求&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;AI 的&amp;quot;废话病&amp;quot;本质上是两个问题：输出太长（Concise 能治），输出没有行动力（i-have-adhd 能治）。前者是格式问题，后者是结构问题。大部分开发者真正被折磨的是后者——你看完一段 AI 回复，知道它说了什么，但不知道自己该做什么。&lt;/p&gt;
&lt;p&gt;这个项目的价值就在这里：它不是让 AI 变安静，而是让 AI 变有用。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;项目地址&lt;/strong&gt;：&lt;a class="link" href="https://github.com/ayghri/i-have-adhd" target="_blank" rel="noopener"
 &gt;github.com/ayghri/i-have-adhd&lt;/a&gt; （MIT 协议，⭐34590）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;行动建议&lt;/strong&gt;：现在就装上试试，或者把上面那段 prompt 贴进你的 Agent 规则文件，5 分钟见效。&lt;/p&gt;
&lt;p&gt;— varkm&lt;/p&gt;</description></item></channel></rss>