1. 一个看似玩笑的标题背后藏着多少真实需求第一次看到“i-have-adhd”这个项目标题我下意识以为是个段子。毕竟在技术社区里用自嘲式命名来降低预期、拉近距离的做法太常见了。但点进去认真翻了一遍之后我发现它其实是一个相当典型的“个人状态标记型”项目——用最直白的方式把注意力缺陷多动倾向ADHD这个在开发者群体中并不罕见的状态变成了一个可被技术手段处理的对象。说白了这个项目做的事情可以概括成一句话把“我容易分心、容易忘事、容易在复杂任务里迷路”这件事从一种模糊的自我怀疑变成一套可操作的外部辅助系统。它可能是一个命令行工具可能是一组脚本也可能是一个极简的桌面提醒方案核心目标都是帮助有类似困扰的人降低认知负担、减少任务切换成本、把“想不起来”变成“系统会提醒”。适合谁看三类人。第一类是自己或身边人有注意力管理困扰想找技术手段辅助的开发者第二类是对“个人效率工具链”感兴趣想看看别人怎么用代码解决生活问题的工程师第三类是做产品设计或交互设计的人想理解“低认知负荷”到底该怎么落地。不管你属于哪一类这个标题背后的东西都比它看起来要认真得多。我之所以愿意花时间拆解这个项目是因为它触及了一个被长期忽视的事实很多效率工具的设计前提是“用户能保持专注”但真正需要工具的人恰恰是那些很难保持专注的人。这个矛盾不解决工具越多负担越重。而“i-have-adhd”这个标题至少说明作者意识到了这个问题并且试图从自己的真实状态出发去解决它。2. 核心设计思路为什么“少即是多”在这里不是口号2.1 从“功能堆砌”到“认知减负”的转向大部分效率工具的思路是“加功能”加标签、加分类、加优先级、加看板、加甘特图。这套逻辑对执行力强的人有效但对注意力容易涣散的人来说每多一个功能就多一个决策点每多一个决策点就多一次分心的机会。你打开工具想记一件事结果先花了五分钟纠结该放哪个分类最后事情没记注意力已经散了。“i-have-adhd”这类项目的设计哲学正好相反能自动的绝不手动能一步的绝不分两步能默认的绝不让你选。我推测它的核心原则大概是这样几条输入路径极短从产生想法到记录完成中间不超过一个动作。比如一个全局快捷键按下去直接弹输入框打完回车就存不问你分类、不问你优先级、不问你截止时间。输出时机主动不是等你打开工具才看到待办而是在合适的时间主动推送到你眼前。这个“合适”可能是你刚打开电脑、刚结束一个会议、或者每隔一段时间。状态可见但不刺眼当前该做什么、还有什么没做用最轻量的方式呈现不搞红黄绿优先级矩阵不搞进度条焦虑。容错率高忘了记、记错了、没完成都不会导致系统崩溃或数据混乱。ADHD 人群最怕的就是“一旦断掉就再也捡不起来”的机制。这套思路背后的逻辑其实很硬注意力是一种有限资源工具应该减少而不是增加对它的消耗。每多一个需要主动决策的环节就多一次消耗。把决策次数压到最低把执行路径缩到最短才是这类工具真正的价值所在。2.2 技术选型背后的“反过度工程”考量从项目标题的命名风格来看作者大概率是个偏好轻量方案的人。我推测技术栈不会太复杂可能是 shell 脚本加一个简单的本地存储或者是一个极简的 CLI 工具甚至可能就是一个纯文本文件加几个别名。为什么这么猜因为如果目标是“帮助容易分心的人”那工具本身就不能成为新的分心源。这里有个很关键的取舍是用现成的重型框架快速搭一个功能齐全的系统还是用最原始的方式手搓一个刚好够用的东西前者的诱惑很大毕竟现成的 UI 组件、数据库、同步机制都是现成的。但代价是启动慢、依赖多、出问题排查成本高。对一个注意力容易涣散的人来说工具启动慢三秒可能注意力就已经飘走了。所以我判断这个项目在选型上会倾向于本地优先数据存在本地纯文本或轻量数据库里不依赖网络不依赖账号体系。打开就能用断网也能用。零配置或极简配置装完就能跑不需要填一堆参数、连一堆服务。配置项越少上手门槛越低。可组合而非一体化不追求一个大而全的应用而是几个小工具各司其职通过简单的约定串起来。比如一个负责快速记录一个负责定时提醒一个负责回顾整理。这种“反过度工程”的选型在常规项目里可能显得不够专业但在“注意力辅助”这个特定场景下恰恰是最专业的选择。因为工具的存在感越低用户把注意力放在正事上的可能性就越高。2.3 与通用待办工具的差异化定位市面上不缺待办工具从极简的到复杂的都有。那“i-have-adhd”这类项目的差异化在哪我认为核心差异不在功能而在默认行为的设计。通用待办工具的默认行为是“等你来操作”等你打开、等你输入、等你勾选、等你回顾。而 ADHD 辅助工具的默认行为应该是“主动介入”在你可能忘记的时候提醒你在你可能分心的时候拦住你在你可能放弃的时候降低门槛。举个例子。通用工具里一个任务没完成它就静静躺在列表里直到你下次打开。而 ADHD 辅助工具可能会这样做如果某个任务连续三天没被碰过它会自动把任务拆成更小的步骤或者自动降低任务的优先级甚至自动帮你把任务标记为“需要重新评估”。这些行为在通用工具里显得多管闲事但在注意力管理场景下恰恰是刚需。再比如通用工具喜欢用“截止日期”来驱动执行。但 ADHD 人群对远期截止日期的感知很弱对“现在立刻马上”的感知才强。所以辅助工具可能会把“下周五交报告”转化成“现在先写三行字”把远期压力转化成即时可执行的动作。这种转化逻辑才是这类项目真正值得研究的地方。3. 核心细节拆解一个注意力辅助系统该怎么搭3.1 快速捕获把“记下来”的成本压到接近零注意力容易涣散的人有个典型特征想法来得快、去得也快。如果不能在几秒内把想法记下来它大概率就永远消失了。所以整个系统的第一块基石就是快速捕获机制。我推测“i-have-adhd”在捕获环节会做这几件事全局快捷键唤起不管当前在哪个窗口按一个组合键就能弹出输入框。这个快捷键要足够好按不能是那种需要双手跨键盘的组合。单行输入回车即存不搞多行编辑器不搞富文本就是一行纯文本。打完回车窗口消失继续手头的事。自动附加时间戳和上下文你不需要手动记录“什么时候记的”“当时在干什么”系统自动加上。这些元数据在后续回顾时非常有用。不强制分类存进去的时候不问你“这是工作还是生活”“这是任务还是想法”。分类这件事留到回顾阶段再做捕获阶段只求快。这里有个实操细节值得展开输入框的默认焦点和退出行为。如果弹出输入框后光标不在输入区用户还得点一下才能打字这就多了一步。如果打完字按回车后窗口不消失用户还得手动关又多了一步。这些细节看起来小但累积起来就是“愿不愿意用”的分水岭。注意快速捕获的关键不是“记全”而是“记下”。先保证不丢再考虑整理。很多人的问题不是记不下来而是总想一次记完美结果什么都没记。3.2 主动提醒在正确的时间做正确的事捕获之后下一个问题就是“什么时候让用户看到这些记录”。通用工具的做法是“等用户打开”但这对 ADHD 人群基本无效——他们大概率想不起来打开。所以主动提醒机制是这类项目的第二个核心模块。我推测实现方式可能有几种定时轮询每隔一段时间比如一小时检查一次待办列表如果有未完成项用系统通知推一条。推送内容要极简比如“还有3件事没做第一件是XXX”。事件触发在特定事件发生时提醒比如电脑从睡眠唤醒、某个应用启动、或者每天固定时间点。渐进式提醒第一次提醒轻描淡写第二次稍微加重第三次才用更显眼的方式。避免一上来就弹窗轰炸那样只会让人想关掉整个系统。这里有个设计难点提醒频率和提醒强度的平衡。提醒太少用户忘了提醒太多用户烦了直接关通知。我个人的经验是提醒频率应该和任务的紧急程度挂钩而不是一刀切。紧急的任务可以高频提醒不紧急的任务每天提一次就够了。而且提醒内容要具体不能只说“你有任务没完成”要说“你昨天记的那件事还没动现在花五分钟能做完吗”。3.3 任务拆解把“大山”变成“台阶”ADHD 人群还有一个典型困难面对一个大任务时不知道从哪开始于是干脆不开始。这不是懒是执行功能层面的障碍。所以辅助系统需要具备任务拆解的能力。拆解的逻辑可以很简单把任何超过一定复杂度的任务自动或半自动地拆成更小的步骤。比如“写项目报告”可以拆成“打开文档”“写标题”“写第一段”“写第二段”……每一步都小到不可能失败。我推测“i-have-adhd”在拆解环节可能会提供模板化拆解常见任务类型写文档、做汇报、整理文件有预设的拆解模板一键套用。手动拆解辅助提供一个简单的界面让用户自己把任务拆成子任务但拆解过程要有引导不能给一张白纸让人自由发挥。最小启动动作每个任务都关联一个“最小启动动作”比如“打开相关文件”“写下第一句话”。这个动作要小到不需要任何心理建设就能完成。实操心得拆解的关键不是拆得多细而是拆到“你觉得现在就能做”的程度。如果拆完之后你还是不想动说明拆得不够细继续拆。3.4 回顾与清理防止系统本身变成负担任何记录系统用久了都会堆积。如果不定期清理待办列表会越来越长最后变成一座让人不想面对的山。所以回顾与清理机制是保持系统长期可用的关键。我推测这个项目会设计一种轻量的回顾流程比如每日快速回顾花两分钟过一遍今天记的东西把已完成的划掉把不重要的删掉把重要的挪到明天。每周深度清理花十分钟过一遍所有未完成项问三个问题这件事还重要吗还能拆得更小吗需要直接放弃吗自动归档超过一定时间没动过的任务自动移到“归档”区不再出现在主列表里。需要的时候能搜到但平时不碍眼。这套机制的核心目的是让系统保持“可面对”的状态。一个只有五件事的待办列表比一个有五十件事的待办列表更容易让人产生行动意愿。而保持列表短小的唯一办法就是定期清理。4. 实操过程从零搭一套自己的注意力辅助系统4.1 环境准备与基础工具选择如果你看完上面的分析想自己搭一套类似的系统第一步不是写代码而是选一个你愿意每天打开的载体。这个载体可以简单到只是一个纯文本文件也可以是一个命令行工具甚至是一个桌面便签应用。关键不是技术多先进而是你愿意用。我个人的建议是从最轻的方案开始纯文本方案一个 Markdown 文件放在桌面或固定目录。用系统自带的搜索或快捷键快速打开。优点是零依赖、零配置、永远不会坏。缺点是提醒和拆解需要手动做。命令行方案写几个 shell 脚本或 Python 脚本一个负责添加任务一个负责列出任务一个负责提醒。优点是灵活、可定制。缺点是需要一点技术基础。现成工具加插件方案用一个极简的待办应用配合自动化工具做提醒和拆解。优点是上手快。缺点是受限于工具本身的能力边界。我试过从纯文本方案起步用了大概两周发现最大的问题是“想不起来打开文件”。后来加了一个定时提醒脚本每天上午十点和下午三点各弹一次通知情况才好转。所以我的建议是不管你选哪种载体提醒机制一定要有而且要从第一天就加上。4.2 快速捕获功能的实现细节假设你选择命令行方案快速捕获可以这样实现。先定义一个别名比如cap指向一个脚本。脚本的逻辑大概是#!/bin/bash # cap - 快速捕获想法或任务 INPUT$1 if [ -z $INPUT ]; then echo 请输入内容 exit 1 fi TIMESTAMP$(date %Y-%m-%d %H:%M) echo - [ ] $INPUT !-- $TIMESTAMP -- ~/adhd/tasks.md echo 已记录$INPUT然后把这个脚本放到 PATH 里再在桌面环境里绑定一个全局快捷键按下去弹出一个输入框输入内容后回车执行cap 输入内容。这样从想法产生到记录完成大概只需要三秒。这里有几个细节要注意文件路径要固定不要用相对路径否则换个目录执行就找不到文件了。时间戳格式要统一方便后续用脚本解析和统计。追加而不是覆盖用而不是避免误操作清空文件。输入内容要转义如果内容里有特殊字符记得处理不然会破坏 Markdown 格式。提示如果你用的是图形界面可以考虑用zenity或rofi这类工具弹输入框体验会更接近原生应用。4.3 提醒机制的参数计算与配置提醒机制的核心参数有两个检查频率和提醒阈值。检查频率是指脚本多久跑一次提醒阈值是指满足什么条件才提醒。我自己的配置是这样的参数取值说明检查频率每30分钟太频繁会烦太稀疏会忘提醒阈值未完成任务数 ≥ 3少于3件时不提醒避免打扰提醒时段9:00-21:00非工作时段不提醒提醒方式系统通知不弹窗不发声只出现在通知中心每日上限5次超过5次当天不再提醒这套参数是我用了大概一个月慢慢调出来的。一开始检查频率设的是每10分钟结果一天被提醒几十次烦得直接关掉了。后来改成每30分钟并且加了“未完成数≥3”的条件才变得可接受。实现上可以用cron或者systemd timer定时执行一个检查脚本。脚本的逻辑是读取任务文件统计未完成项数量如果超过阈值且当前时间在提醒时段内就发一条系统通知。#!/bin/bash # remind - 检查未完成任务并提醒 TASKS_FILE~/adhd/tasks.md PENDING$(grep -c ^- \[ \] $TASKS_FILE) THRESHOLD3 HOUR$(date %H) if [ $PENDING -ge $THRESHOLD ] [ $HOUR -ge 9 ] [ $HOUR -le 21 ]; then FIRST$(grep ^- \[ \] $TASKS_FILE | head -1 | sed s/^- \[ \] //) notify-send 还有 $PENDING 件事没做 第一件$FIRST fi这个脚本很简单但效果不错。关键是通知内容里带了“第一件是什么”这样你看到通知就知道下一步该干什么不需要再打开文件去查。4.4 任务拆解与最小启动动作的落地拆解这件事完全自动化比较难但可以半自动化。我的做法是在任务文件里用缩进来表示子任务。比如- [ ] 写项目报告 - [ ] 打开文档 - [ ] 写标题 - [ ] 写第一段 - [ ] 写第二段然后写一个脚本把父任务和子任务分开处理。父任务不直接执行只作为分组标题。子任务才是真正要做的。每次提醒的时候只提醒子任务不提醒父任务。更进一步可以给每个子任务加一个“最小启动动作”的标记。比如- [ ] 写第一段 !-- 启动打开文档写下第一句话 --这样当你看到这个任务时不需要思考“从哪开始”直接按启动动作做就行。实操心得拆解的时候子任务的数量不要超过5个。超过5个说明拆得不够抽象应该先合并成几个大步骤再对每个大步骤单独拆解。一次面对太多选项反而会让人不想选。4.5 回顾清理的自动化辅助回顾清理如果全靠手动大概率坚持不下来。所以需要一些自动化辅助。我用的办法是每日自动生成回顾清单每天固定时间脚本把当天新增的任务和已完成的任务列出来推送到通知里。每周自动标记陈旧任务超过7天没动过的未完成任务自动加上#陈旧标签在列表里置底显示。每月自动归档超过30天没动过的任务自动移到archive.md文件里不再出现在主列表。这些自动化动作不需要很复杂几个grep和sed命令就能搞定。关键是让清理这件事变得不需要意志力。你不需要“决定”去清理系统会自动帮你清理你只需要在收到回顾通知时花两分钟确认一下就行。5. 常见问题与排查技巧实录5.1 为什么我记了但从来不看这是最常见的问题。原因通常有两个要么是记录和查看用了两个不同的入口要么是查看的时候信息太多不知道看哪个。解决办法把记录和查看合并到同一个入口。比如你按快捷键弹出输入框输入框下面直接显示当前未完成的任务列表。这样你每次记录的时候都会顺便看到已有的任务。不需要专门“打开工具去查看”查看这个动作被嵌入到了记录动作里。另一个办法是让提醒通知里直接包含可操作的信息。不要只说“你有任务没完成”要说“第一件是XXX现在做吗”。把“查看”变成“响应”降低行动门槛。5.2 提醒太频繁导致直接关通知这个问题我在前面提过但值得再强调一次。提醒频率不是越高越好而是越准越好。一个在正确时间出现的提醒比十个随机出现的提醒更有价值。调整方法先设一个较低的频率比如每小时一次然后根据实际感受慢慢调。如果觉得不够就缩短间隔如果觉得烦就拉长间隔。同时加上“未完成数≥N”的条件避免在任务很少的时候还来打扰。还有一个技巧给提醒加一个“稍后再说”的选项。用户点“稍后”就推迟30分钟再提醒。这样既不会漏掉也不会在忙的时候被打断。5.3 任务拆解后还是不想做如果拆解之后还是不想做说明拆得不够细或者启动动作不够小。继续拆拆到“打开文件”这种程度。如果连打开文件都不想那就把任务标记为“需要重新评估”问自己这件事真的必须做吗能不能不做能不能让别人做有时候不想做不是因为任务太难而是因为任务本身就不该做。定期清理掉那些“看起来应该做但其实不重要”的任务比硬着头皮做更有效。5.4 系统用久了变得臃肿任何系统用久了都会臃肿这是熵增不可避免。关键是建立定期清理的机制。我的做法是每周日晚上花十分钟做一次深度清理把不重要的删掉把重要的重新排优先级把陈旧的归档。如果连十分钟都不想花那就设置自动归档规则超过30天没动的任务自动移走。眼不见心不烦需要的时候再搜。5.5 常见问题速查表问题可能原因解决办法记了不看记录和查看入口分离合并入口记录时顺便展示列表提醒太烦频率过高或阈值过低降低频率加未完成数条件拆解后仍不想做拆得不够细继续拆拆到最小启动动作系统臃肿缺乏清理机制加自动归档定期深度清理忘记使用没有触发点绑定全局快捷键加定时提醒数据丢失没有备份用版本控制或定时复制备份最后再分享一个小技巧如果你用的是纯文本方案可以把任务文件放在一个支持版本控制的地方每次修改自动提交。这样万一误删了还能找回来而且能看到自己每天到底记了什么、完成了什么。这个回顾本身就是一种正向反馈。6. 这套思路还能怎么扩展“i-have-adhd”这个项目标题给我的最大启发不是某个具体功能而是一种设计立场从自己的真实状态出发而不是从“理想用户”的假设出发。这个立场可以迁移到很多场景。比如你可以把这套逻辑用在学习管理上快速捕获知识点定时提醒复习把大章节拆成小段落定期清理已掌握的内容。也可以用在健康管理上快速记录身体感受定时提醒喝水活动把健身计划拆成最小动作定期回顾调整。甚至可以用在团队协作上如果团队里有注意力容易涣散的成员可以把任务拆解和提醒机制做成团队规范减少“想不起来”“不知道从哪开始”造成的沟通成本。核心逻辑是一样的降低启动成本增加主动介入保持系统轻量定期清理维护。这四句话放在任何需要长期坚持的事情上都成立。我自己用这套方法大概三个月最大的感受不是效率提升了多少而是心理负担轻了很多。以前总觉得自己“记性差”“执行力弱”现在知道那只是状态问题有工具可以补。工具不能治好 ADHD但能让它不那么影响生活。这就够了。